/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ddns.grupotsergio;

import java.sql.*;

/**
 *
 * @author Edson
 */
public class cadcustoGS {
    public int chave = 0;
    public String codigo = null;
    public String descricao = null;
    public String sintanal = null;
    public String auditoria = null;
    public int cttos_idcttos = 0;
    public int filiais_idfiliais = 0;
    public int empresa_idempresa = 0;

    private static PreparedStatement stm = null;
    private static ResultSet rs = null;
    private static Statement stmt;

    public cadcustoGS(){
    }

    public String getAuditoria() {
        return auditoria;
    }

    public void setAuditoria(String auditoria) {
        this.auditoria = auditoria;
    }

    public int getChave() {
        return chave;
    }

    public void setChave(int chave) {
        this.chave = chave;
    }

    public int getCttos_idcttos() {
        return cttos_idcttos;
    }

    public void setCttos_idcttos(int cttos_idcttos) {
        this.cttos_idcttos = cttos_idcttos;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public int getEmpresa_idempresa() {
        return empresa_idempresa;
    }

    public void setEmpresa_idempresa(int empresa_idempresa) {
        this.empresa_idempresa = empresa_idempresa;
    }

    public int getFiliais_idfiliais() {
        return filiais_idfiliais;
    }

    public void setFiliais_idfiliais(int filiais_idfiliais) {
        this.filiais_idfiliais = filiais_idfiliais;
    }

    public String getSintanal() {
        return sintanal;
    }

    public void setSintanal(String sintanal) {
        this.sintanal = sintanal;
    }


    public static boolean inserirCadcusto (cadcustoGS cadcusto){
        try{
            stm = Conexao.conectar().prepareStatement("INSERT INTO custo( "
                    + "idcusto,"
                    + "codigo,"
                    + "descricao,"
                    + "sintanal,"
                    + "auditoria,"
                    + "cttos_idcttos,"
                    + "filiais_idfiliais,"
                    + "empresa_idempresa)"
                    + " values (?,?,?,?,?,?,?,?)");
            stm.setInt(1, cadcusto.getChave());
            stm.setString(2, cadcusto.getCodigo());
            stm.setString(3, cadcusto.getDescricao());
            stm.setString(4, cadcusto.getSintanal());
            stm.setString(5, cadcusto.getAuditoria());
            stm.setInt(6, cadcusto.getCttos_idcttos());
            stm.setInt(7, cadcusto.getFiliais_idfiliais());
            stm.setInt(8, cadcusto.getEmpresa_idempresa());
            stm.executeUpdate();
            stm.close();
            return true;
        }catch(Exception e){
            System.out.println("Erro ao inserir");
            return false;
        }
    }

    public static boolean altCadCuscod (cadcustoGS cadcusto){
        boolean testa = false;
        try{
            stm = Conexao.conectar().prepareStatement("UPDATE custo SET "
                    + "codigo = ? "
                    + "WHERE "
                    + "idcusto = ? "
                    + "and cttos_idcttos = ? "
                    + "and filiais_idfiliais = ?");
            stm.setString(1, cadcusto.getCodigo());
            stm.setInt(2, cadcusto.getChave());
            stm.setInt(3, cadcusto.getCttos_idcttos());
            stm.setInt(4, cadcusto.getFiliais_idfiliais());

            int executeUpdate = stm.executeUpdate();

            if(executeUpdate > 0)
                testa = true;
            else
                testa = false;
        }catch(Exception e){
            System.out.println("Erro ao alterar");
        }
        return testa;
    }

    public static boolean altCadCusdes (cadcustoGS cadcusto){
        boolean testa = false;
        try{
            stm = Conexao.conectar().prepareStatement("UPDATE custo SET "
                    + "descricao = ? "
                    + "WHERE "
                    + "idcusto = ? "
                    + "and cttos_idcttos = ? "
                    + "and filiais_idfiliais = ?");
            stm.setString(1, cadcusto.getDescricao());
            stm.setInt(2, cadcusto.getChave());
            stm.setInt(3, cadcusto.getCttos_idcttos());
            stm.setInt(4, cadcusto.getFiliais_idfiliais());

            int executeUpdate = stm.executeUpdate();

            if(executeUpdate > 0)
                testa = true;
            else
                testa = false;
        }catch(Exception e){
            System.out.println("Erro ao alterar");
        }
        return testa;
    }

    public static boolean altCadCussa (cadcustoGS cadcusto){
        boolean testa = false;
        try{
            stm = Conexao.conectar().prepareStatement("UPDATE custo SET "
                    + "sintanal = ? "
                    + "WHERE "
                    + "idcusto = ? "
                    + "and cttos_idcttos = ? "
                    + "and filiais_idfiliais = ?");
            stm.setString(1, cadcusto.getSintanal());
            stm.setInt(2, cadcusto.getChave());
            stm.setInt(3, cadcusto.getCttos_idcttos());
            stm.setInt(4, cadcusto.getFiliais_idfiliais());

            int executeUpdate = stm.executeUpdate();

            if(executeUpdate > 0)
                testa = true;
            else
                testa = false;
        }catch(Exception e){
            System.out.println("Erro ao alterar");
        }
        return testa;
    }

    public static boolean altCadCusaud (cadcustoGS cadcusto){
        boolean testa = false;
        try{
            stm = Conexao.conectar().prepareStatement("UPDATE custo SET "
                    + "auditoria = ? "
                    + "WHERE "
                    + "idcusto = ? "
                    + "and cttos_idcttos = ? "
                    + "and filiais_idfiliais = ?");
            stm.setString(1, cadcusto.getAuditoria());
            stm.setInt(2, cadcusto.getChave());
            stm.setInt(3, cadcusto.getCttos_idcttos());
            stm.setInt(4, cadcusto.getFiliais_idfiliais());

            int executeUpdate = stm.executeUpdate();

            if(executeUpdate > 0)
                testa = true;
            else
                testa = false;
        }catch(Exception e){
            System.out.println("Erro ao alterar");
        }
        return testa;
    }

    public static boolean excluiCadcusto (cadcustoGS cadcusto){
        boolean testa = false;
        try {
            stm = Conexao.conectar().prepareStatement("delete from custo "
                    + "where idcustto = ? "
                    + "and cttos_idcttos = ? "
                    + "and filiais_idfiliais = ?");
            stm.setInt(1, cadcusto.getChave());
            stm.setInt(2, cadcusto.getCttos_idcttos());
            stm.setInt(3, cadcusto.getFiliais_idfiliais());
            
            int executeUpdate = stm.executeUpdate();

            if(executeUpdate > 0)
                testa = true;
            else
                testa = false;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return testa;
    }

    public void selCadcusto(String Id, String Idc, String Idf) {
        try {
            cttosGS scid = null;
            stmt = Conexao.conectar().createStatement();
            rs = stmt.executeQuery("Select c.*, o.cttonr From custo c, cttos o "
                    + " Where c.cttos_idcttos=o.idcttos "
                    + "and c.filiais_idfiliais = o.filiais_idfiliais "
                    + "and c.idcusto ='"+Id+"' "
                    + "and c.cttos_idcttos = '"+Idc+"' "
                    + "and c.filiais_idfiliais = '"+Idf+"'");
            if (rs.next()) {
                scid = new cttosGS();
                scid.setChave(rs.getInt("chave"));
                scid.setChcli(rs.getInt("cttos_idcttos"));
                scid.setCttonr(rs.getString("ni"));
                scid.setDtini(rs.getString("n2"));
                scid.setDtfin(rs.getString("n3"));
                scid.setAtivo(rs.getString("descricao"));
                scid.setValor(rs.getString("nivel"));
                scid.setAuditoria(rs.getString("auditoria"));
            }
            rs.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static int getAutoInc(String Idc, String Idf) {
        int Codigo = 0;
        try {
            PreparedStatement pstmt = Conexao.conectar().prepareStatement(
                    "Select max(idcusto) From custo "
                    + "where cttos_idcttos = '"+Idc+"' "
                    + "and filiais_idfiliais = '"+Idf+"'");
            ResultSet rss = pstmt.executeQuery();
            rss.next();
            Codigo = rss.getInt(1) + 1;
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return Codigo;
    }

    public void listaCadcusto(String Id, String Idf){
        try{
            stmt = Conexao.conectar().createStatement();
            rs = stmt.executeQuery("select * from custo "
            + "where cttos_idcttos = '"+Id+"' "
            + "and filiais_idfiliais = '"+Idf+"' "
            + "order by codigo");
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public static int selCadCusCt(String Id, String Idc, String Idf) {
        int nregis = 0;
        try {
            PreparedStatement pstmt = Conexao.conectar().prepareStatement("Select "
            + "idcusto From custo Where codigo ='"+Id+"' "
            + "and cttos_idcttos = '"+Idc+"' "
            + "and filiais_idfiliais = '"+Idf+"'");
            ResultSet rss = pstmt.executeQuery();
            rss.next();
            nregis = rss.getInt(1);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return nregis;
    }

    public ResultSet getResultado(){
        return rs;
    }

}
