private void btnIserirNotasActionPerformed(java.awt.event.ActionEvent evt) {
//Testa se os campos na GUI estão vazios
if (!txtCNPJNotas.getText().isEmpty() && !txtQtdNotas.getText().isEmpty() && !txtRazaoNotas.getText().isEmpty() && !txtCodParticipante.getText().isEmpty()) {
//desabilita o botão inserirNotas
btnIserirNotas.setEnabled(false);
btnGerarEFD.setEnabled(false);
btnInserirCupons.setEnabled(false);
new Thread(new Runnable() {
public synchronized void run() {
try {
//Instancia o objeto notaFiscalDAO
nfDAO = new NotaFiscalDAO();
//Instancia o objeto ItensNotaFiscalDAO
itemDAO = new ItensNotaFiscalDAO();
//Instancia a conexão com firebird
connFB = new ConexaoFb(strConn.split(":")[0], strConn.replaceAll("localhost:", ""), "sysdba", "masterkey");
//Seta o valor máximo do progessBar
jProgressBar1.setMaximum(Integer.parseInt(txtQtdNotas.getText()));
jProgressBar1.setStringPainted(true);
//Variável que armazena o valor selecionado do raioButton(Tipo operação)
int op = jRadioButton1.isSelected() ? 0 : 1;
//Seta a conexão que as classes de acesso a dados irá usar
nfDAO.setConexao(connFB.getConexaoFB());
itemDAO.setConexao(connFB.getConexaoFB());
//Pega o ID+1 do registro na tabela notas
int ultimoRegistroNF = nfDAO.ultimoRegistro();
//Pega o NNF+1 do registro na tabela notas
int ultimaSequenciaNNF = nfDAO.sequenciaNNF();
//Pega o ID+1 do registro na tabela notas_itens
int ultimoRegistroItem = itemDAO.ultimoRegistro();
//Gerar NotaFiscal
//Instancia o objeto notaFiscal
nf = new NotaFiscal();
nf.setTIPO(op); //TIPO: Tipo de Operação: 0-entrada / 1-saída.
nf.setCFOP(1102); //CFOP: Código Fiscal de Operações e Prestações. Utilizar Tabela de CFOP.
if (op == 1) {
nf.setCFOP(5102);
}
nf.setIDE_CODSIT("00"); //IDE_CODSIT: Tabela Situação do Documento.
nf.setIDE_INDPAG(1); //IDE_INDPAG: CODIGO SEQUENCIAL. USADO PARA REFERENCIAR TABELA [NOTAS_ITENS].
nf.setIDE_MOD("01"); //IDE_MOD: Tabela Documentos Fiscais do ICMS.
nf.setIDE_SERIE("0"); //IDE_SERIE: Tabela Documentos Fiscais do ICMS hipótese de a NF-e não possuir série.
nf.setIDE_DEMI(new java.sql.Date(111, 0, 11));//IDE_DEMI: Data de emissão do Documento Fiscal.
nf.setIDE_DSAIENT(new java.sql.Date(111, 0, 26));//IDE_DSAIENT: Data de emissão do Documento Fiscal.
nf.setIDE_HSAIENT(new java.sql.Time(00, 00, 00));//IDE_HSAIENT: Hora de Saída ou da Entrada da Mercadoria/Produto.
nf.setIDE_CMUNFG(1500602); //IDE_CMUNFG: Código do Município de Ocorrência do Fato Gerador.
nf.setIDE_CHNFE(""); //IDE_CHNFE: CHAVE DA NF-E. CASO O REGISTRO FOR REFERENTE A NFE. DEIXAR NULL SE FOR MODELO 1/1A.
nf.setIDE_CHCTE(""); //IDE_CHCTE: CHAVE DO CONHECIMENTO DE TRANSPORTE ELETRONICO.
//IDE_INDEMIT: Indicador do emitente do documento fiscal: 0- Emissão própria / 1- Terceiros.
nf.setDESTEMIT_CODIGO(txtCodParticipante.getText()); //DESTEMIT_CODIGO: CODIGO DO DESTINATARIO/EMITENTE DA NOTA.
nf.setDESTEMIT_CNPJCPF(txtCNPJNotas.getText());//DESTEMIT_CNPJCPF: CPF do REMETENTE/RECEBEDOR.
nf.setDESTEMIT_XNOME(txtRazaoNotas.getText()); //DESTEMIT_XNOME: Razão Social ou Nome.
nf.setDESTEMIT_XFANT("ORTOBOM"); //DESTEMIT_XFANT: Nome fantasia.
nf.setDESTEMIT_XLGR("ROD. BR 316");//DESTEMIT_XLGR: Logradouro.
nf.setDESTEMIT_NRO("S/N"); //DESTEMIT_NRO: Numero.
nf.setDESTEMIT_XCLP("KM 10"); //DESTEMIT_XCLP: Completo.
nf.setDESTEMIT_XBAIRRO("SÃO JOAO"); //DESTEMIT_XBAIRRO: Bairro.
nf.setDESTEMIT_CMUN(1504422); //DESTEMIT_CMUN: Código do município. Utilizar a Tabela do IBGE
nf.setDESTEMIT_XMUN("MARITUBA"); //DESTEMIT_XMUN: Nome do município.
nf.setDESTEMIT_UF("PA"); //DESTEMIT_UF: Sigla UF.
nf.setDESTEMIT_CEP("67200000"); //DESTEMIT_CEP: Código de Endereçamento Postal.
nf.setDESTEMIT_CPAIS(1058); //DESTEMIT_CPAIS: Codigo do País.
nf.setDESTEMIT_XPAIS("BRASIL"); //DESTEMIT_XPAIS: Nome do País.
nf.setDESTEMIT_FONE(""); //DESTEMIT_FONE: Telefone.
nf.setDESTEMIT_IE("151973164"); //DESTEMIT_IE: Inscricao Estadual.
nf.setDESTEMIT_IEST(""); //DESTEMIT_IEST: IE do Substituto Tributário.
nf.setDESTEMIT_IM(""); //DESTEMIT_IM: Inscrição Municipal.
nf.setDESTEMIT_CNAE(""); //DESTEMIT_CNAE: CNAE fiscal. Este campo deve ser informado quando o campo IM for informado.
nf.setDESTEMIT_CRT(0); //DESTEMIT_CRT: Código de Regime Tributário.
//DESTEMIT_ISUF: Inscrição na SUFRAMA.
//DESTEMIT_EMAIL: Endereço do correio eletrônico.
nf.setTRANSP_CODIGO(0); //TRANSP_CODIGO: Codigo da Transportadora.
nf.setTRANSP_MODFRETE(9); //TRANSP_MODFRETE: Modalidade do frete.
nf.setTRANSP_CNPJCPF(""); //TRANSP_CNPJCPF: Informar o CNPJ ou o CPF do Transportador.
nf.setTRANSP_XNOME(""); //TRANSP_XNOME: Razão Social ou nome.
nf.setTRANSP_IE(""); //TRANSP_IE: Inscrição Estadual. Informar a IE quando o transportador for contribuinte do ICMS.
nf.setTRANSP_XBAIRRO(""); //TRANSP_XBAIRRO: Nome do Bairro.
nf.setTRANSP_XLGR(""); //TRANSP_XLGR: Nome do Logradouro.
nf.setTRANSP_CPAIS(1058); //TRANSP_CPAIS: Codigo do Pais.
nf.setTRANSP_XMUN("0"); //TRANSP_CMUN: Código do município. Utilizar a Tabela do IBGE.
nf.setTRANSP_XMUN(""); //TRANSP_XMUN: Descricao do Municipio do Transportador.
nf.setTRANSP_NRO(0); //TRANSP_NRO: Número.
nf.setTRANSP_UF(""); //TRANSP_UF: Sigla UF.
//TRANSP_PLACA: Placa do Veículo.
//TRANSP_RNTC: Registro Nacional de Transportador de Carga (ANTT).
nf.setTRANSP_QVOL(0); //TRANSP_QVOL: Quantidade de volumes transportados.
//TRANSP_ESP: Espécie dos volumes transportados.
//TRANSP_MARCA: Marca dos volumes transportados.
//TRANSP_NVOL: Numeração dos volumes transportados.
nf.setTRANSP_PESOL(0); //TRANSP_PESOL: Peso Líquido (em kg).
nf.setTRANSP_PESOB(0); //TRANSP_PESOB: Peso Bruto (em kg).
nf.setTOTAL_VBC(544.10); //TOTAL_VBC: Base de Cálculo do ICMS
nf.setTOTAL_VICMS(92.49); //TOTAL_VICMS: Valor Total do ICMS
nf.setTOTAL_VBCST(0); //TOTAL_VBCST: Base de Cálculo do ICMS ST
nf.setTOTAL_VST(0); //TOTAL_VST: Valor Total do ICMS ST
nf.setTOTAL_VPROD(544.10); //TOTAL_VPROD: Valor Total dos produtos (C100) ou da prestação de serviços (D100, D500)
nf.setTOTAL_VFRETE(0); //TOTAL_VFRETE: Valor Total do Frete.
nf.setTOTAL_VSEG(0); //TOTAL_VSEG: Valor Total do Seguro.
nf.setTOTAL_VDESC(0); //TOTAL_VDESC: Valor Total do Desconto.
nf.setTOTAL_VII(0); //TOTAL_VII: Valor Total do II.
nf.setTOTAL_VIPI(0); //TOTAL_VIPI: Valor Total do IPI.
nf.setTOTAL_VPIS(0); //TOTAL_VPIS: Valor do PIS.
nf.setTOTAL_VCOFINS(0); //TOTAL_VCOFINS: Valor do COFINS.
nf.setTOTAL_VOUTRO(0); //TOTAL_VOUTRO: Outras Despesas acessórias.
nf.setTOTAL_VNF(544.10); //TOTAL_VNF: Valor Total da NF.
//NFREF_REFNF: Numero da NF referenciada.
//REFECF_MOD: Informações do Cupom Fiscal referenciado / Modelo do Documento Fiscal.
nf.setREFECF_NECF(0); //REFECF_NECF: Informações do Cupom Fiscal referenciado / Número de ordem seqüencial do ECF.
nf.setREFECF_NCOO(0); //REFECF_NCOO: Número do Contador de Ordem de Operação - COO.
nf.setREFECF_TPIMP(1); //REFECF_TPIMP: Formato de Impressão. 1-Retrato/ 2-Paisagem.
nf.setREFECF_TPEMIS(1); //REFECF_TPEMIS: Tipo de Emissão da NF.
nf.setREFECF_CDV(0); //REFECF_CDV: Dígito Verificador da Chave de Acesso da NF-e.
nf.setREFECF_TPAMB(1); //REFECF_TPAMB: Identificação do Ambiente. 1-Produção/ 2-Homologação.
nf.setREFECF_FINNFE(0); //REFECF_FINNFE: Finalidade de emissão da NFe.
nf.setREFECF_PROCEMI(0); //REFECF_PROCEMI: Identificador do processo de emissão da NF-e.
nf.setREFECF_VERPROC("1.10"); //REFECF_VERPROC: Identificador da versão do processo de emissão (informar a versão do aplicativo emissor de NF-e).
//nf.setREFECF_DHCONT(new java.sql.Date(2001,1,1));//REFECF_DHCONT: Data e Hora da entrada em contingência.
//REFECF_XJUST: Justificativa da entrada em contingência.
//FAT_INDTIT: Indicador do tipo de titulo de credito (apenas para NFs 1/1A).
//IDE_CODCONS: Código de classe de consumo de energia elétrica ou gás.
//EOF NotaFiscal
//Gerar itens
//Item 1
item1 = new ItensNotaFiscal();
item1.setCPROD("0000000005557");
item1.setCEAN("0000000005557");
item1.setXPROD("COLCHAO ORTOBOM D-45 PHYSICAL 138X20..............");
item1.setNCM("");
item1.setCFOP(1102);
//Seta o CFOP deacordo com o tipo(Entrada ou Saida)
if (op != 0) {
item1.setCFOP(5102);
}
item1.setUCOM("UN");
item1.setQCOM(1);
item1.setVUNCOM(0);
item1.setVPROD(246.61);
item1.setVFRETE(0);
item1.setVSEG(0);
item1.setVDESC(0);
item1.setVOUTRO(0);
item1.setCST_ICMS("00");
item1.setCST_PIS("01");
item1.setCST_COFINS("01");
item1.setCST_IPI("99");
item1.setDI_NDI("");
//item1.setDI_DDI(null);
item1.setDI_XLOCDESEMB("");
item1.setDI_UFDESEMB("");
item1.setDI_CEXPORTADOR("");
item1.setORIG(0);
item1.setMODBC(0);
item1.setVBC(246.61);
item1.setPICMS(17.00);
item1.setVICMS(41.92);
//Item 2
item2 = new ItensNotaFiscal();
item2.setCPROD("0000000019266");
item2.setCEAN("00000000019266");
item2.setXPROD("0000000019266");
item2.setCFOP(1102);
//Seta o CFOP deacordo com o tipo(Entrada ou Saida)
if (op != 0) {
item2.setCFOP(5102);
}
item2.setUCOM("UN");
item2.setQCOM(1);
item2.setVUNCOM(0);
item2.setVPROD(100.29);
item2.setVFRETE(0);
item2.setVSEG(0);
item2.setVDESC(0);
item2.setVOUTRO(0);
item2.setCST_ICMS("00");
item2.setCST_PIS("01");
item2.setCST_COFINS("01");
item2.setCST_IPI("99");
item2.setORIG(0);
item2.setMODBC(0);
item2.setVBC(100.29);
item2.setPICMS(17.00);
item2.setVICMS(17.05);
//Item 3
item3 = new ItensNotaFiscal();
item3.setCPROD("0000000008303");
item3.setCEAN("0000000008303");
item3.setXPROD("BOX ORTOBOM UNION ESPUMA 88X43....................");
item3.setCFOP(1102);
//Seta o CFOP deacordo com o tipo(Entrada ou Saida)
if (op != 0) {
item3.setCFOP(5102);
}
item3.setUCOM("UN");
item3.setQCOM(1);
item3.setVUNCOM(0);
item3.setVPROD(197.20);
item3.setVFRETE(0);
item3.setVSEG(0);
item3.setVDESC(0);
item3.setVOUTRO(0);
item3.setCST_ICMS("00");
item3.setCST_PIS("01");
item3.setCST_COFINS("01");
item3.setCST_IPI("99");
item3.setORIG(0);
item3.setMODBC(0);
item3.setVBC(197.20);
item3.setPICMS(17.00);
item3.setVICMS(33.52);
//Abre o frame com o progressBar
jFrame1.setVisible(true);
//Insere a quantidade de notas indicadas na GUI
for (int i = 0; i < Integer.parseInt(txtQtdNotas.getText()); i++) {
nf.setID(ultimoRegistroNF); //ID: CODIGO SEQUENCIAL. USADO PARA REFERENCIAR TABELA [NOTAS_ITENS].
nf.setIDE_NNF(ultimaSequenciaNNF); //IDE_NNF: Número do Documento Fiscal.
//Salva nota
nfDAO.salvarNota(nf);
//Seta o id do item
item1.setID(ultimoRegistroItem);
//Seta o nota_id no item
item1.setNotaFiscal(nf);
//Salva o item1
itemDAO.salvarItem(item1);
//incrementa o id
ultimoRegistroItem++;
//Seta o id do item
item2.setID(ultimoRegistroItem);
//Seta o nota_id no item
item2.setNotaFiscal(nf);
//Salva o item2
itemDAO.salvarItem(item2);
//incrementa o id
ultimoRegistroItem++;
//Seta o id do item
item3.setID(ultimoRegistroItem);
//Seta o nota_id no item
item3.setNotaFiscal(nf);
//Salva o item3
itemDAO.salvarItem(item3);
//incrementa
ultimoRegistroItem++;
ultimaSequenciaNNF++;
ultimoRegistroNF++;
//incrementa progressBar
jProgressBar1.setValue(i + 1);
}
//fecha conexão
connFB.fechaConexao();
//menssagem de conclusão
JOptionPane.showMessageDialog(null, "Processo concluído.");
//zera o progressBar
jProgressBar1.setValue(0);
//esconde o Jframe de progresso
jFrame1.setVisible(false);
//Abilita os botoes
btnIserirNotas.setEnabled(true);
btnGerarEFD.setEnabled(true);
btnInserirCupons.setEnabled(true);
} catch (Exception ex) {
try {
connFB.fechaConexao();
} catch (Exception ex1) {
}
//caso haja erros exibe em mensagem na tela
JOptionPane.showMessageDialog(null, ex);
//zera o progressBar
jProgressBar1.setValue(0);
//Abilita os botoes
btnIserirNotas.setEnabled(true);
btnGerarEFD.setEnabled(true);
btnInserirCupons.setEnabled(true);
}
}
}).start();
} else {
JOptionPane.showMessageDialog(null, "Favor Preencher todos os campos.");
}
}