procedure TForm1.salvarNotas(Sender: TObject); var id:Integer; idItensNota:Integer; entrada:Integer; cfop:Integer; resultadoNNF:Integer; codPart:String; tempCNPJ:String; tempRAZAO:String; idTemp:Integer; i:Integer; iTemp:Integer; teste:String; begin entrada:=1; cfop:=5102; if RadioButton1.Checked then begin entrada:=0; cfop:=1102; end; codPart:=Edit4.Text; tempCNPJ:=Edit2.Text; tempRAZAO:=Edit3.Text; DataModule1.ibDatabase1.Open; begin Edit1.Enabled:=false; Edit2.Enabled:=false; Edit3.Enabled:=false; Edit4.Enabled:=false; Button1.Enabled:=false; btnSair.Enabled:=false; for i:=1 to StrToInt(Edit1.Text) do begin idTemp := retornaMaxIdNota; with DataModule1.IBStoredProc1 do try params[0].Value := idTemp; //ID: CODIGO SEQUENCIAL. USADO PARA REFERENCIAR TABELA [NOTAS_ITENS]. params[1].Value := entrada; //TIPO: Tipo de Operacao: 0-entrada / 1-saida. params[2].Value := cfop; //CFOP: Codigo Fiscal de Operacoes e Prestacoes. Utilizar Tabela de CFOP. params[3].value := '00'; //IDE_CODSIT: Tabela Situacao do Documento. params[4].Value := 1; //IDE_INDPAG: CODIGO SEQUENCIAL. USADO PARA REFERENCIAR TABELA [NOTAS_ITENS]. params[5].value := '01'; //IDE_MOD: Tabela Documentos Fiscais do ICMS. params[6].value := '0'; //IDE_SERIE: Tabela Documentos Fiscais do ICMS hipotese de a NF-e nao possuir serie. params[7].Value := retornaMaxNNF; //IDE_NNF: Numero do Documento Fiscal. params[8].Value :='11/01/2011'; //IDE_DEMI: Data de emissao do Documento Fiscal. params[9].Value := '26/01/2011'; //IDE_DSAIENT: Data de emissão do Documento Fiscal. params[10].Value :='00:00:00'; //IDE_HSAIENT: Hora de Saida ou da Entrada da Mercadoria/Produto. params[11].Value :=1500602; //IDE_CMUNFG: Codigo do Municipio de Ocorrencia do Fato Gerador. params[12].value :=''; //IDE_CHNFE: CHAVE DA NF-E. CASO O REGISTRO FOR REFERENTE A NFE. DEIXAR NULL SE FOR MODELO 1/1A. params[13].value :=''; //IDE_CHCTE: CHAVE DO CONHECIMENTO DE TRANSPORTE ELETRONICO. params[14].value :=codPart; //DESTEMIT_CODIGO: CODIGO DO DESTINATARIO/EMITENTE DA NOTA. params[15].value :=tempCNPJ; //DESTEMIT_CNPJCPF: CPF do REMETENTE/RECEBEDOR. params[16].value :=tempRAZAO; //DESTEMIT_XNOME: Razão Social ou Nome. params[17].value :='ORTOBOM'; //DESTEMIT_XFANT: Nome fantasia. params[18].value :='ROD. BR 316'; //DESTEMIT_XLGR: Logradouro. params[19].value :='S/N'; //DESTEMIT_NRO: Numero. params[20].value :='KM 10'; //DESTEMIT_XCLP: Completo. params[21].value := 'SO JOAO'; //DESTEMIT_XBAIRRO: Bairro. params[22].Value := 1504422; //DESTEMIT_CMUN: Codigo do municipio. Utilizar a Tabela do IBGE params[23].value := 'MARITUBA'; //DESTEMIT_XMUN: Nome do municipio. params[24].value := 'PA'; //DESTEMIT_UF: Sigla UF. params[25].value := '67200000'; //DESTEMIT_CEP: Codigo de Enderecamento Postal. params[26].Value := '1058'; //DESTEMIT_CPAIS: Codigo do Pais. params[27].value := 'BRASIL'; //DESTEMIT_XPAIS: Nome do Pais. params[28].value := ''; //DESTEMIT_FONE: Telefone. params[29].value := '151973164'; //DESTEMIT_IE: Inscricao Estadual. params[30].value := ''; //DESTEMIT_IEST: IE do Substituto Tributario. params[31].value := ''; //DESTEMIT_IM: Inscrição Municipal. params[32].value := ''; //DESTEMIT_CNAE: CNAE fiscal. Este campo deve ser informado quando o campo IM for informado. params[33].Value := 0; //DESTEMIT_CRT: Codigo de Regime Tributario. params[34].value := ''; //DESTEMIT_ISUF: Inscricao na SUFRAMA. params[35].value := ''; //DESTEMIT_EMAIL: Endereco do correio eletronico. params[36].Value := 0; //TRANSP_CODIGO: Codigo da Transportadora. params[37].Value := 9; //TRANSP_MODFRETE: Modalidade do frete. params[38].value := ''; //TRANSP_CNPJCPF: Informar o CNPJ ou o CPF do Transportador. params[39].value := ''; //TRANSP_XNOME: Razao Social ou nome. params[40].value := ''; //TRANSP_IE: Inscricao Estadual. Informar a IE quando o transportador for contribuinte do ICMS. params[41].value := ''; //TRANSP_XBAIRRO: Nome do Bairro. params[42].value := ''; //TRANSP_XLGR: Nome do Logradouro. params[43].Value := 1058; //TRANSP_CPAIS: Codigo do Pais. params[44].Value := 0; //TRANSP_CMUN: Codigo do Municipio do Transportador. params[45].value := ''; //TRANSP_XMUN: Descricao do Municipio do Transportador. params[46].Value := 0; //TRANSP_NRO: Numero. params[47].value := ''; //TRANSP_UF: Sigla UF. params[48].value := ''; //TRANSP_PLACA: Placa do Veiculo. params[49].value :=''; //TRANSP_RNTC: Registro Nacional de Transportador de Carga (ANTT). params[50].Value := 0; //TRANSP_QVOL: Quantidade de volumes transportados. params[51].value := ''; //TRANSP_ESP: Especie dos volumes transportados. params[52].value := ''; //TRANSP_MARCA: Marca dos volumes transportados. params[53].value := ''; //TRANSP_NVOL: Numeracao dos volumes transportados. params[54].Value:= 0.000; //TRANSP_PESOL: Peso Liquido (em kg). params[55].value := 0.000; //TRANSP_PESOB: Peso Bruto (em kg). params[56].value := 544.1; //TOTAL_VBC: Base de Calculo do ICMS params[57].value := 92.49; //TOTAL_VICMS: Valor Total do ICMS params[58].value := 0.00; //TOTAL_VBCST: Base de Calculo do ICMS ST params[59].value := 0.00; //TOTAL_VST: Valor Total do ICMS ST params[60].value := 544.1; //TOTAL_VPROD: Valor Total dos produtos (C100) ou da prestacao de servicos (D100, D500) params[61].value := 0.00; //TOTAL_VFRETE: Valor Total do Frete. params[62].value := 0.00; //TOTAL_VSEG: Valor Total do Seguro. params[63].value := 0.00; //TOTAL_VDESC: Valor Total do Desconto. params[64].value := 0.00; //TOTAL_VII: Valor Total do II. params[65].value := 0.00; //TOTAL_VIPI: Valor Total do IPI. params[66].value := 0.00; //TOTAL_VPIS: Valor do PIS. params[67].value := 0.00; //TOTAL_VCOFINS: Valor do COFINS. params[68].value := 0.00; //TOTAL_VOUTRO: Outras Despesas acessorias. params[69].value := 544.1; //TOTAL_VNF: Valor Total da NF. params[70].value := ''; //NFREF_REFNF: Numero da NF referenciada. params[71].value := ''; //REFECF_MOD: Informacoes do Cupom Fiscal referenciado / Modelo do Documento Fiscal. params[72].value := 0; //REFECF_NECF: Informacoes do Cupom Fiscal referenciado / Numero de ordem sequencial do ECF. params[73].value := 0; //REFECF_NCOO: Numero do Contador de Ordem de Operacao - COO. params[74].value := 1; //REFECF_TPIMP: Formato de Impressao. 1-Retrato/ 2-Paisagem. params[75].value := 1; //REFECF_TPEMIS: Tipo de Emissao da NF. params[76].value := 0; //REFECF_CDV: Digito Verificador da Chave de Acesso da NF-e. params[77].value := 1; //REFECF_TPAMB: Identificacao do Ambiente. 1-Producao/ 2-Homologacao. params[78].value := 0; //REFECF_FINNFE: Finalidade de emissao da NFe. params[79].value := 0; //REFECF_PROCEMI: Identificador do processo de emissão da NF-e. params[80].value := '1.10'; //REFECF_VERPROC: Identificador da versao do processo de emissao (informar a versAo do aplicativo emissor de NF-e). params[81].value := '01/01/1753'; //REFECF_DHCONT: Data e Hora da entrada em contingencia. params[82].value := ''; //REFECF_XJUST: Justificativa da entrada em contingencia. params[83].value := 0; //FAT_INDTIT: Indicador do tipo de titulo de credito (apenas para NFs 1/1A). params[84].value := 0; //IDE_CODCONS: Codigo de classe de consumo de energia eletrica ou gas. params[85].value := 0; //IDE_INDEMIT: Indicador do emitente do documento fiscal: 0- Emissao propria / 1- Terceiros. DataModule1.IBStoredProc1.ExecProc; salvaItensNota(idTemp,cfop); DataModule1.IBTransaction1.Commit; except on Exc:Exception do begin showMessage('Erro na gravao da nota...'+Exc.Message); DataModule1.IBTransaction1.Rollback; end; end; //**************************************************************************************** end; DataModule1.ibDatabase1.Close; Edit1.Enabled:=true; Edit2.Enabled:=true; Edit3.Enabled:=true; Edit4.Enabled:=true; Button1.Enabled:=true; btnSair.Enabled:=true; ShowMessage('Notas inseridas com sucesso.'); end; end; //procedure responsavel por setar os valores e salvar os itens(NOTAS_ITENS) da nota(NOTA) procedure salvaItensNota(id:Integer; cfop:Integer); var idItensNota:Integer; numeroNull:Integer; begin idItensNota:=retornaMaxIdNotasItem; numeroNull:=null; with DataModule1.itensNota do try //Close; params[0].Value := idItensNota; //ID: CODIGO SEQUENCIAL. params[1].Value :=id; //NOTA_ID: REFERE-SE AO [NOTAS].[ID], VINCULANDO OS DADOS. MESTRE/DETALHE. params[2].Value := '0000000005557'; //CPROD: Codigo do produto params[3].Value := '0000000005557'; //CEAN: GTIN (Global Trade Item Number) do produto, antigo codigo EAN ou codigo de barras. params[4].Value := 'COLCHAO ORTOBOM D-45 PHYSICAL 138X20..............'; //XPROD: Descricao do produto. params[5].Value := ''; //NCM: Codigo NCM com 8 digitos ou 2 digitos (genero). params[6].Value := cfop; //CFOP: Codigo Fiscal de Operacoes e Prestacoes. params[7].Value := 'UN'; //UCOM: Informar a unidade de comercializacao do produto. params[8].Value := 1; //QCOM: Informar a quantidade de comercializacao do produto. params[9].Value := 0; //VUNCOM: Informar o valor unitario de comercializacao do produto. params[10].Value := 246.61; //VPROD: Valor Total Bruto dos Produtos. params[11].Value := 0; //VFRETE: Valor Total do Frete. params[12].Value := 0; //VSEG: Valor Total do Seguro. params[13].Value := 0; //VDESC: Valor do Desconto. params[14].Value := 0; //VOUTRO: Outras despesas acessorias. params[15].Value := '00'; //CST_ICMS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do ICMS. params[16].Value := '01'; //CST_PIS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do PIS. params[17].Value := '01'; //CST_COFINS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do COFINS. params[18].Value := '99'; //CST_IPI: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do IPI. params[19].Value := ''; //DI_NDI: Numero do Documento de Importacao DI/DSI/DA. params[20].Value := '01/01/1753'; //DI_DDI: Data de Registro da DI/DSI/DA. params[21].Value := ''; //DI_XLOCDESEMB: Local de desembaraco. params[22].Value := ''; //DI_UFDESEMB: Sigla da UF onde ocorreu o Desembaraco Aduaneiro. params[23].Value := ''; //DI_CEXPORTADOR: Codigo do exportador. params[24].Value := 0; //ORIG: Origem da mercadoria: 0 Nacional; 1 Estrangeira; 2 Estrangeira; params[25].Value := 246.61; //VBC: Valor da BC do ICMS. params[26].Value := 17.00; //PICMS: Aliquota do imposto. params[27].Value := 41.92; //VICMS: Valor do ICMS. params[28].Value:=0; //VBCST: Valor da BC do ICMS ST. params[29].Value := 0; //PICMSST: Aliquota do imposto do ICMS ST. params[30].Value := 0; //VICMSST: Valor do ICMS ST retido. params[31].Value := 0; //MODBC: Modalidade de determinacao da BC do ICMS. params[32].Value := 0; //MODBCST: Modalidade de determinacao da BC do ICMS ST. params[33].Value := 0; //PCOFINS: Aliquota da COFINS (em percentual). params[34].Value := 0; //VCOFINS: Valor da COFINS. params[35].Value := 0; //PIPI: Aliquota do IPI. params[36].Value := 0; //VIPI: Valor do IPI. params[37].Value := 0; //PPIS: Aliquota do PIS (em percentual). params[38].Value := 0; //VPIS: Valor do PIS. params[39].Value := 0; //PMVAST:Percentual da margem de valor Adicionado do ICMS ST. params[40].Value := 0; //PREDBCST: Percentual da Reducao de BC do ICMS ST. params[41].Value := 0; //PREDBC: Percentual da Reducao de BC. params[42].Value := 0; //MODDESICMS: Este campo sera preenchido quando o campo [VICMS] estiver preenchido. params[43].Value := 0; //VBCSTRET: Valor da BC do ICMS ST cobrado anteriormente por ST. params[44].Value := 0; //VICMSSTRET: Valor do ICMS ST cobrado anteriormente por ST. params[45].Value := 0; //QBCPROD: Quantidade Vendida. params[46].Value := 0; //VALIQPROD: Aliquota da COFINS (em reais). DataModule1.itensNota.ExecProc; idItensNota:=idItensNota+1; except on Exc:Exception do begin showMessage('Erro na gravao do primeiro item da nota...'+Exc.Message); end; end; //************************************************************************************** //intem 2 with DataModule1.itensNota do try params[0].Value := idItensNota; //ID: CODIGO SEQUENCIAL. params[1].Value :=id; //NOTA_ID: REFERE-SE AO [NOTAS].[ID], VINCULANDO OS DADOS. MESTRE/DETALHE. params[2].Value := '0000000009266'; //CPROD: Codigo do produto params[3].Value := '0000000009266'; //CEAN: GTIN (Global Trade Item Number) do produto, antigo codigo EAN ou codigo de barras. params[4].Value := 'COLCHAO ORTOBOM D-33 LIGHT SELADO 88X17...........'; //XPROD: Descricao do produto. params[5].Value := ''; //NCM: Codigo NCM com 8 digitos ou 2 digitos (genero). params[6].Value := cfop; //CFOP: Codigo Fiscal de Operacoes e Prestacoes. params[7].Value := 'UN'; //UCOM: Informar a unidade de comercializacao do produto. params[8].Value := 1; //QCOM: Informar a quantidade de comercializacao do produto. params[9].Value := 0; //VUNCOM: Informar o valor unitario de comercializacao do produto. params[10].Value := 100.29; //VPROD: Valor Total Bruto dos Produtos. params[11].Value := 0; //VFRETE: Valor Total do Frete. params[12].Value := 0; //VSEG: Valor Total do Seguro. params[13].Value := 0; //VDESC: Valor do Desconto. params[14].Value := 0; //VOUTRO: Outras despesas acessorias. params[15].Value := '00'; //CST_ICMS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do ICMS. params[16].Value := '01'; //CST_PIS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do PIS. params[17].Value := '01'; //CST_COFINS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do COFINS. params[18].Value := '99'; //CST_IPI: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do IPI. params[19].Value := ''; //DI_NDI: Numero do Documento de Importacao DI/DSI/DA. params[20].Value := '01/01/1753'; //DI_DDI: Data de Registro da DI/DSI/DA. params[21].Value := ''; //DI_XLOCDESEMB: Local de desembaraco. params[22].Value := ''; //DI_UFDESEMB: Sigla da UF onde ocorreu o Desembaraco Aduaneiro. params[23].Value := ''; //DI_CEXPORTADOR: Codigo do exportador. params[24].Value := 0; //ORIG: Origem da mercadoria: 0 Nacional; 1 Estrangeira; 2 Estrangeira; params[25].Value := 100.29; //VBC: Valor da BC do ICMS. params[26].Value := 17; //PICMS: Aliquota do imposto. params[27].Value := 17.05; //VICMS: Valor do ICMS. params[28].Value := 0; //VBCST: Valor da BC do ICMS ST. params[29].Value := 0; //PICMSST: Aliquota do imposto do ICMS ST. params[30].Value := 0; //VICMSST: Valor do ICMS ST retido. params[31].Value := 0; //MODBC: Modalidade de determinacao da BC do ICMS. params[32].Value := 0; //MODBCST: Modalidade de determinacao da BC do ICMS ST. params[33].Value := 0; //PCOFINS: Aliquota da COFINS (em percentual). params[34].Value := 0; //VCOFINS: Valor da COFINS. params[35].Value := 0; //PIPI: Aliquota do IPI. params[36].Value := 0; //VIPI: Valor do IPI. params[37].Value := 65; //PPIS: Aliquota do PIS (em percentual). params[38].Value := 120000; //VPIS: Valor do PIS. params[39].Value := 0; //PMVAST:Percentual da margem de valor Adicionado do ICMS ST. params[40].Value := 0; //PREDBCST: Percentual da Reducao de BC do ICMS ST. params[41].Value := 0; //PREDBC: Percentual da Reducao de BC. params[42].Value := 0; //MODDESICMS: Este campo sera preenchido quando o campo [VICMS] estiver preenchido. params[43].Value := 0; //VBCSTRET: Valor da BC do ICMS ST cobrado anteriormente por ST. params[44].Value := 0; //VICMSSTRET: Valor do ICMS ST cobrado anteriormente por ST. params[45].Value := 0; //QBCPROD: Quantidade Vendida. params[46].Value := 0; //VALIQPROD: Aliquota da COFINS (em reais). DataModule1.itensNota.ExecProc; idItensNota:=idItensNota+1; except on Exc:Exception do begin showMessage('Erro na gravao do segundo item da nota...'+Exc.Message); end; end; //************************************************************************************************* //item3 with DataModule1.itensNota do try //Close; params[0].Value := idItensNota; //ID: CODIGO SEQUENCIAL. params[1].Value :=id; //NOTA_ID: REFERE-SE AO [NOTAS].[ID], VINCULANDO OS DADOS. MESTRE/DETALHE. params[2].Value := '0000000008303'; //CPROD: Codigo do produto params[3].Value := '0000000008303'; //CEAN: GTIN (Global Trade Item Number) do produto, antigo codigo EAN ou codigo de barras. params[4].Value := 'BOX ORTOBOM UNION ESPUMA 88X43....................'; //XPROD: Descricao do produto. params[5].Value := ''; //NCM: Codigo NCM com 8 digitos ou 2 digitos (genero). params[6].Value := cfop; //CFOP: Codigo Fiscal de Operacoes e Prestacoes. params[7].Value := 'UN'; //UCOM: Informar a unidade de comercializacao do produto. params[8].Value := 1; //QCOM: Informar a quantidade de comercializacao do produto. params[9].Value := 0; //VUNCOM: Informar o valor unitario de comercializacao do produto. params[10].Value := 197.20; //VPROD: Valor Total Bruto dos Produtos. params[11].Value := 0; //VFRETE: Valor Total do Frete. params[12].Value := 0; //VSEG: Valor Total do Seguro. params[13].Value := 0; //VDESC: Valor do Desconto. params[14].Value := 0; //VOUTRO: Outras despesas acessorias. params[15].Value := '00'; //CST_ICMS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do ICMS. params[16].Value := '01'; //CST_PIS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do PIS. params[17].Value := '01'; //CST_COFINS: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do COFINS. params[18].Value := '99'; //CST_IPI: CODIGO DE SITUACAO TRIBUTARIA. Tributacao do IPI. params[19].Value := ''; //DI_NDI: Numero do Documento de Importacao DI/DSI/DA. params[20].Value := '01/01/1753'; //DI_DDI: Data de Registro da DI/DSI/DA. params[21].Value := ''; //DI_XLOCDESEMB: Local de desembaraco. params[22].Value := ''; //DI_UFDESEMB: Sigla da UF onde ocorreu o Desembaraco Aduaneiro. params[23].Value := ''; //DI_CEXPORTADOR: Codigo do exportador. params[24].Value := 0; //ORIG: Origem da mercadoria: 0 Nacional; 1 Estrangeira; 2 Estrangeira; params[25].Value := 197.20; //VBC: Valor da BC do ICMS. params[26].Value := 17; //PICMS: Aliquota do imposto. params[27].Value := 33.52; //VICMS: Valor do ICMS. params[28].Value := 0; //VBCST: Valor da BC do ICMS ST. params[29].Value := 0; //PICMSST: Aliquota do imposto do ICMS ST. params[30].Value := 0; //VICMSST: Valor do ICMS ST retido. params[31].Value := 0; //MODBC: Modalidade de determinacao da BC do ICMS. params[32].Value := 0; //MODBCST: Modalidade de determinacao da BC do ICMS ST. params[33].Value := 0; //PCOFINS: Aliquota da COFINS (em percentual). params[34].Value := 0; //VCOFINS: Valor da COFINS. params[35].Value := 0; //PIPI: Aliquota do IPI. params[36].Value := 0; //VIPI: Valor do IPI. params[37].Value := 65; //PPIS: Aliquota do PIS (em percentual). params[38].Value := 120000; //VPIS: Valor do PIS. params[39].Value := 0; //PMVAST:Percentual da margem de valor Adicionado do ICMS ST. params[40].Value := 0; //PREDBCST: Percentual da Reducao de BC do ICMS ST. params[41].Value := 0; //PREDBC: Percentual da Reducao de BC. params[42].Value := 0; //MODDESICMS: Este campo sera preenchido quando o campo [VICMS] estiver preenchido. params[43].Value := 0; //VBCSTRET: Valor da BC do ICMS ST cobrado anteriormente por ST. params[44].Value := 0; //VICMSSTRET: Valor do ICMS ST cobrado anteriormente por ST. params[45].Value := 0; //QBCPROD: Quantidade Vendida. params[46].Value := 0; //VALIQPROD: Aliquota da COFINS (em reais). DataModule1.itensNota.ExecProc; except on Exc:Exception do begin showMessage('Erro na gravao do terceiro item da nota...'+Exc.Message); end; end; end;