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."); } }