
ario
Membros-
Total de ítens
7 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
ario's Achievements
-
Ola Pessoal, alguem sabe onde eu possa abaixar o layout do cofins e pis, grato
-
Ola Pessoal, por gentileza, eu tenho rodando o acbrnfe, gostaria de saber como q faço para instalar o Sped Fiscal, onde posso estar baixando o pacote,agradeço a todos que postarem em ajudar-me, valeu obrg.
-
agradeço ao pessoal que direta e indiretamente cooperaram para meu entendimento, vou estar anexando os campos para que caso alguem necessite saber,boa sorte a todos, abraços //////////////////////////////////////////////////////////////////////////////// // // // Descrição: Classes para geração/leitura dos arquivos xml da NFe // // // //////////////////////////////////////////////////////////////////////////////// unit pcnModeloNFe; interface uses SysUtils, Classes, {$IFNDEF VER130} Variants, {$ENDIF} pcnAuxiliar, pcnConversao, pcnNFe, pcnNFeW; procedure ModeloNFe; implementation procedure ModeloNFe; var NFe: TNFe; NFeW: TNFeW; i, j, k: integer; s: string; ReferenciadaTipoNFe: boolean; Opcao1: boolean; begin // IMPORTANTE: Os laços For - Next codificados nesses modelo são meramente descritivos. // Esse arquivo é apenas um modelo e deve ser adaptado conforme as suas necessidades. Opcao1 := True; // Esta variavel esta sendo usada nesse modelo para indicar os locais onde // devem ser tomadas decissões por parte do programador conforme a regras // de negocio de cada cliente. NFe := TNFe.create; s := NFe.infNFe.ID; // ATENÇÃO: Esse campo representa a chave da NFe // Não utilize esse campo para escrita (apenas para leitura) // pois a chave é gerada automaticamente no momento da geração do arquivo (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo das informações de identificação da NF-e - - Ocorrência 1-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) NFe.Ide.cUF := 0; // B02 - Código da UF do emitente do Documento Fiscal - Tabela do IBGE // Você pode utilizar a função UFparaCodigo caso não sáiba o código da UF // ex: NFe.Ide.cUF := UFparaCodigo(MinhaUF); NFe.Ide.cNF := -1; // B03 - Código Numérico que compõe a Chave de Acesso // Se nenhum valor for informado será atribuido um valor aleatório // Se for informado o valor -1; será gerado um valor baseado no numero da NFe NFe.Ide.natOp := ''; // B04 - Descrição da Natureza da Operação NFe.Ide.indPag := ipVista; // B05 - Indicador da forma de pagamento (*) // (0)=ipVista // (1)=ipPrazo // (2)=ipOutras NFe.Ide.modelo := 55; // B06 - Código do Modelo do Documento Fiscal Utilizar o código 55 para identificação da NF-e, emitida em substituição ao modelo 1 ou 1A. NFe.Ide.serie := 0; // B07 - Série do Documento Fiscal, informar 0 (zero) para série única. NFe.Ide.nNF := 0; // B08 - Número do Documento Fiscal NFe.Ide.dEmi := null; // B09 - Data de emissão do Documento Fiscal NFe.Ide.dSaiEnt := null; // B10 - Data de Saída ou da Entrada da Mercadoria/Produto NFe.Ide.tpNF := tnSaida; // B11 - Tipo do Documento Fiscal (*) // (0)=tnEntrada // (1)=tnSaida NFe.Ide.cMunFG := 0; // B12 - Código do Município de Ocorrência do Fato Gerador do ICMS ( Tab. IBGE ) NFe.Ide.tpImp := tiRetrato; // B21 - Formato de Impressão do DANFE (*) // (1)=tiRetrato // (2)=tiPaisagem NFe.Ide.tpEmis := teNormal; // B22 - Forma de Emissão da NF-e (*) // (1)=teNormal // (2)=teContingencia // (3)=teSCAN // (4)=teDPEC // (5)=teFSDA // Ex: i := NFe.Ide.cDv; // B23 - Dígito Verificador da Chave de Acesso da NF-e // Não utilize esse campo para escrita (apenas para leitura) // pois o digito é gerado automaticamente no momento da geração do arquivo NFe.Ide.tpAmb := taProducao; // B24 - Identificação do Ambiente (*) // (1)=Produção // (2)=Homologação NFe.Ide.finNFe := fnNormal; // B25 - Finalidade de emissão da NF-e (*) // (1)=fnNormal // (2)=fnComplementar // (3)=fnAjuste NFe.Ide.procEmi := // B26 - Processo de emissão da NF-e (*) peAplicativoContribuinte; // (0)=peAplicativoContribuinte - emissão de NF-e com aplicativo do contribuinte; // (1)=peAvulsaFisco - emissão de NF-e avulsa pelo Fisco; // (2)=peAvulsaContribuinte - emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site do Fisco; // (3)=peContribuinteAplicativoFisco - emissão NF-e pelo contribuinte com aplicativo fornecido pelo Fisco. NFe.Ide.verProc := ''; // B27 - Versão do Processo de emissão da NF-e ReferenciadaTipoNFe := True; // TAG - Informação das NF/NF-e referenciadas - - Ocorrência 0-N ******** if ReferenciadaTipoNFe then begin // Se a nota referenciada for um NFe preencher o campo abaixo: NFe.Ide.NFref.Add; NFe.Ide.NFref[0].refNFe := ''; // B13 - Chave de acesso das NF-e referenciadas end; if not ReferenciadaTipoNFe then begin // Se a nota referenciada não for uma NFe preencher o campos abaixo: NFe.Ide.NFref.Add; NFe.Ide.NFref[1].RefNF.cUF := 0; // B15 - Código da UF do emitente do Documento Fiscal - Tabela do IBGE NFe.Ide.NFref[1].RefNF.AAMM := ''; // B16 - Ano e Mês de emissão da NF-e NFe.Ide.NFref[1].RefNF.CNPJ := ''; // B17 - CNPJ do emitente NFe.Ide.NFref[1].RefNF.modelo := 0; // B18 - Modelo do Documento Fiscal - Ex. 01 NFe.Ide.NFref[1].RefNF.serie := 0; // B19 - Série do Documento Fiscal - informar zero se inexistente NFe.Ide.NFref[1].RefNF.nNF := 0; // B20 - Número do Documento Fiscal end; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de identificação do emitente da NF-e - - Ocorrência 1-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) NFe.Emit.CNPJCPF := ''; // C02 - CNPJ do emitente / CPF do remetente NFe.Emit.xNome := ''; // C03 - Razão Social ou Nome do emitente NFe.Emit.xFant := ''; // C04 - Nome fantasia NFe.Emit.IE := ''; // C17 - Inscrição Estadual do emitente NFe.Emit.IEST := ''; // C18 - Inscrição Estadual do Substituto Tributário da UF de destino da mercadoria, quando houver a retenção do ICMS ST para a UF de destino. NFe.Emit.IM := ''; // C19 - Inscrição Municipal (NF-e conjugada, com prestação de serviços sujeitos ao ISSQN e fornecimento de peças sujeitos ao ICMS.) NFe.Emit.CNAE := ''; // C20 - CNAE fiscal Este campo deve ser informado quando o campo NFe.Emit.IM for informado. // TAG de grupo do Endereço do emitente - - Ocorrência 1-1 ******** NFe.Emit.enderEmit.xLgr := ''; // C06 - Logradouro NFe.Emit.enderEmit.nro := ''; // C07 - Número NFe.Emit.enderEmit.xCpl := ''; // C08 - Complemento NFe.Emit.enderEmit.xBairro := ''; // C09 - Bairro NFe.Emit.enderEmit.cMun := 0; // C10 - Código do município (Tabela do IBGE - '9999999' para operações com o exterior)) NFe.Emit.enderEmit.xMun := ''; // C11 - Nome do município ('EXTERIOR' para operações com o exterior) NFe.Emit.enderEmit.UF := ''; // C12 - Sigla da UF ('EX' para operações com o exterior.) NFe.Emit.enderEmit.CEP := 0; // C13 - Código do CEP NFe.Emit.enderEmit.cPais := 0; // C14 - Código do País (Tabela do BACEN ) NFe.Emit.enderEmit.xPais := ''; // C15 - Nome do País NFe.Emit.enderEmit.fone := ''; // C16 - Telefone ( Código DDD + número do telefone. ) (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de Identificação do Fisco Emitente da NF-e - - Ocorrência 0-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) // D01 - Grupo para uso exclusivo do fisco NFe.Avulsa.CNPJ := ''; NFe.Avulsa.xOrgao := ''; NFe.Avulsa.matr := ''; NFe.Avulsa.xAgente := ''; NFe.Avulsa.fone := ''; NFe.Avulsa.UF := ''; NFe.Avulsa.nDAR := ''; NFe.Avulsa.dEmi := null; NFe.Avulsa.vDAR := 0; NFe.Avulsa.repEmi := ''; NFe.Avulsa.dPag := null; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de identificação do Destinatário da NF-e - - Ocorrência 1-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) NFe.Dest.CNPJCPF := ''; // E02 - CNPJ do destinatário / CPF do destinatário NFe.Dest.xNome := ''; // E04 - Razão Social ou nome do destinatário NFe.Dest.IE := ''; // E17 - Inscrição Estadual do destinatário NFe.Dest.ISUF := ''; // E18 - Inscrição na SUFRAMA // TAG de grupo de endereço do Destinatário da NF-e - - Ocorrência 1-1 * NFe.Dest.enderDest.xLgr := ''; // E06 - Logradouro NFe.Dest.enderDest.nro := ''; // E07 - Número NFe.Dest.enderDest.xCpl := ''; // E08 - Complemento NFe.Dest.enderDest.xBairro := ''; // E09 - Bairro NFe.Dest.enderDest.cMun := 0; // E10 - Código do município (Tabela do IBGE - '9999999' para operações com o exterior)) NFe.Dest.enderDest.xMun := ''; // E11 - Nome do município ('EXTERIOR' para operações com o exterior) NFe.Dest.enderDest.UF := ''; // E12 - Sigla da UF ('EX' para operações com o exterior.) NFe.Dest.enderDest.CEP := 0; // E13 - Código do CEP NFe.Dest.enderDest.cPais := 0; // E14 - Código do País (Tabela do BACEN ) NFe.Dest.enderDest.xPais := ''; // E15 - Nome do País NFe.Dest.enderDest.fone := ''; // E16 - Telefone ( Código DDD + número do telefone. ) (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de identificação do Local de retirada - - Ocorrência 0-N *) (* ----------------------------------------------------------------------------------------------------------------- *) // Informar os valores desse grupo somente se o endereço de // retirada for diferente do endereço do remetente. // Assim se retirada.xLgr '' o gerador grava o grupo no XML NFe.Retirada.CNPJ := ''; // F02 - CNPJ NFe.Retirada.xLgr := ''; // F03 - Logradouro NFe.Retirada.nro := ''; // F04 - Número NFe.Retirada.xCpl := ''; // F05 - Complemento NFe.Retirada.xBairro := ''; // F06 - Bairro NFe.Retirada.cMun := 0; // F07 - Código do município (Tabela do IBGE - '9999999' para operações com o exterior)) NFe.Retirada.xMun := ''; // F08 - Nome do município ('EXTERIOR' para operações com o exterior) NFe.Retirada.UF := ''; // F09 - Sigla da UF ('EX' para operações com o exterior.) (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de identificação do Local de entrega - - Ocorrência 0-N *) (* ----------------------------------------------------------------------------------------------------------------- *) // Informar os valores desse grupo somente se o // endereço de entrega for diferente do endereço do destinatario. // Assim se entrega.xLgr '' o gerador grava o grupo no XML NFe.Entrega.CNPJ := ''; // G02 - CNPJ NFe.Entrega.xLgr := ''; // G03 - Logradouro NFe.Entrega.nro := ''; // G04 - Número NFe.Entrega.xCpl := ''; // G05 - Complemento NFe.Entrega.xBairro := ''; // G06 - Bairro NFe.Entrega.cMun := 0; // G07 - Código do município (Tabela do IBGE - '9999999' para operações com o exterior)) NFe.Entrega.xMun := ''; // G08 - Nome do município ('EXTERIOR' para operações com o exterior) NFe.Entrega.UF := ''; // G09 - Sigla da UF ('EX' para operações com o exterior.) (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo do detalhamento de Produtos e Serviços da NF-e - - Ocorrência 1-990 *) (* ----------------------------------------------------------------------------------------------------------------- *) for i := 0 to 1 do begin NFe.Det.Add; NFe.Det[i].infAdProd := ''; // - Informações Adicionais do Produto NFe.Det[i].Prod.nItem := 1 + i; // H02 - Número do item DE 1 a 990 NFe.Det[i].Prod.cProd := ''; // I02 - Código do produto ou serviço NFe.Det[i].Prod.cEAN := ''; // I03 - GTIN (Global Trade Item Number) do produto, antigo código EAN ou código de barra NFe.Det[i].Prod.xProd := ''; // I04 - Descrição do produto ou serviço NFe.Det[i].Prod.NCM := ''; // I05 - Código NCM (Em caso de serviço, não incluir a TAG.) NFe.Det[i].Prod.EXTIPI := ''; // I06 - Código EX da TIPI (Em caso de serviço, não incluir a TAG.) NFe.Det[i].Prod.genero := 0; // I07 - Gênero do Produto ou Serviço (Tabela de Capítulos da NCM)(Em caso de serviço, não incluir a TAG.) NFe.Det[i].Prod.CFOP := ''; // I08 - Código Fiscal de Operações e Prestações NFe.Det[i].Prod.uCom := ''; // I09 - Unidade Comercial NFe.Det[i].Prod.qCom := 0; // I10 - Quantidade Comercial NFe.Det[i].Prod.vUnCom := 0; // I10a Valor Unitário de comercialização NFe.Det[i].Prod.vProd := 0; // I11 - Valor Total Bruto dos Produtos ou Serviços NFe.Det[i].Prod.uTrib := ''; // I13 - Unidade Tributável NFe.Det[i].Prod.qTrib := 0; // I14 - Quantidade Tributável NFe.Det[i].Prod.vUnTrib := 0; // I14a Valor Unitário de tributação (* EXEMPLO *) // NFe.Det[i].Prod.uCom := 'CX'; // NFe.Det[i].Prod.qCom := 2; Vendidas 2 caixas ( com 10 unidades cada ) // NFe.Det[i].Prod.vUnCom := 50; R$ 50,00 cada caixa // NFe.Det[i].Prod.vProd := 100; R$ 100,00 Valor dos produtos // NFe.Det[i].Prod.uTrib := 'UN'; // NFe.Det[i].Prod.qTrib := 20; 2 caixas X 10 unidades por caixa = 20 unidades // NFe.Det[i].Prod.vUnTrib := 5; R$ 100,00 / 20 unidades = R$ 5,00 cada unidade NFe.Det[i].Prod.cEANTrib := ''; // I12 - GTIN (Global Trade Item Number) da unidade tributável, antigo código EAN ou código de barras ?? NFe.Det[i].Prod.vFrete := 0; // I15 - Valor Total do Frete NFe.Det[i].Prod.vSeg := 0; // I16 - Valor Total do Seguro NFe.Det[i].Prod.vDesc := 0; // I17 - Valor do Desconto // Tag da Declaração de Importação - - Ocorrência 0-N for j := 0 to 1 do begin NFe.Det[i].Prod.DI.Add; NFe.Det[i].Prod.DI[j].nDi := ''; // I19 - Número do Documento de Importação DI/DSI/DA (DI/DSI/DA) NFe.Det[i].Prod.DI[j].dDi := null; // I20 - Data de Registro da DI/DSI/DA NFe.Det[i].Prod.DI[j].xLocDesemb := ''; // I21 - Local de desembaraço NFe.Det[i].Prod.DI[j].UFDesemb := ''; // I22 - Sigla da UF onde ocorreu o Desembaraço Aduaneiro NFe.Det[i].Prod.DI[j].dDesemb := null; // I23 - Data do Desembaraço Aduaneiro NFe.Det[i].Prod.DI[j].cExportador := ''; // I24 - Código do exportador for k := 0 to 1 do begin NFe.Det[i].Prod.DI[j].adi.Add; // Tag de Adições - - Ocorrência 1-N NFe.Det[i].Prod.DI[j].adi[k].nAdicao := 0; // I26 - Numero da adição NFe.Det[i].Prod.DI[j].adi[k].nSeqAdi := 0; // I27 - Numero seqüencial do item dentro da adição NFe.Det[i].Prod.DI[j].adi[k].cFabricante := ''; // I28 - Código do fabricante estrangeiro NFe.Det[i].Prod.DI[j].adi[k].vDescDI := 0; // I29 - Valor do desconto do item da DI – adição end; end; // TAG de grupo do detalhamento de Veículos novos - - Ocorrência 0-1 // Este grupo será criado no XML somente se o campo for informado. NFe.Det[i].prod.veicProd.tpOP := toVendaDireta; // J02 - Tipo da operação // (1)=toVendaConcessionaria // (2)=toFaturamentoDireto // (3)=toVendaDireta // (0)=toOutros NFe.Det[i].prod.veicProd.chassi := ''; // J03 - Chassi do veículo NFe.Det[i].prod.veicProd.cCor := ''; // J04 - Cor NFe.Det[i].prod.veicProd.xCor := ''; // J05 - Descrição da Cor NFe.Det[i].prod.veicProd.pot := ''; // J06 - Potência Motor NFe.Det[i].prod.veicProd.CM3 := ''; // J07 - CM3 (Potência) NFe.Det[i].prod.veicProd.pesoL := ''; // J08 - Peso Líquido NFe.Det[i].prod.veicProd.pesoB := ''; // J09 - Peso Bruto NFe.Det[i].prod.veicProd.nSerie := ''; // J10 - Serial (série) NFe.Det[i].prod.veicProd.tpComb := ''; // J11 - Tipo de combustível NFe.Det[i].prod.veicProd.nMotor := ''; // J12 - Número de Motor NFe.Det[i].prod.veicProd.CMKG := ''; // J13 - CMKG NFe.Det[i].prod.veicProd.dist := ''; // J14 - Distância entre eixos NFe.Det[i].prod.veicProd.RENAVAM := ''; // J15 - RENAVAM (Não informar a TAG na exportação) NFe.Det[i].prod.veicProd.anoMod := 0; // J16 - Ano Modelo de Fabricação NFe.Det[i].prod.veicProd.anoFab := 0; // J17 - Ano de Fabricação NFe.Det[i].prod.veicProd.tpPint := ''; // J18 - Tipo de Pintura NFe.Det[i].prod.veicProd.tpVeic := 0; // J19 - Tipo de Veículo (Utilizar Tabela RENAVAM) NFe.Det[i].prod.veicProd.espVeic := 0; // J20 - Espécie de Veículo (Utilizar Tabela RENAVAM) NFe.Det[i].prod.veicProd.VIN := ''; // J21 - Condição do VIN NFe.Det[i].prod.veicProd.condVeic := cvAcabado; // J22 - Condição do Veículo (1-Acabado; 2-Inacabado; 3-Semi-acabado) NFe.Det[i].prod.veicProd.cMod := ''; // J23 - Código Marca Modelo (Utilizar Tabela RENAVAM) // TAG de grupo do detalhamento de Medicamentos - - Ocorrência 0-N for j := 0 to 1 do begin NFe.Det[i].prod.med.add; NFe.Det[i].prod.med[j].nLote := ''; // K02 - Número do Lote do medicamento NFe.Det[i].prod.med[j].qLote := 0; // K03 - Quantidade de produto no Lote do medicamento NFe.Det[i].prod.med[j].dFab := null; // K04 - Data de fabricação NFe.Det[i].prod.med[j].dVal := null; // K05 - Data de validade NFe.Det[i].prod.med[j].vPMC := 0; // K06 - Preço máximo consumidor end; // TAG de grupo do detalhamento de Armamento - - Ocorrência 0-N for j := 0 to 1 do begin NFe.Det[i].prod.arma.add; NFe.Det[i].prod.arma[j].tpArma := taUsoPermitido; // L02 - Indicador do tipo de arma de fogo // (0)=taUsoPermitido // (1)=taUsoRestrito NFe.Det[i].prod.arma[j].nSerie := 0; // L03 - Número de série da arma NFe.Det[i].prod.arma[j].nCano := 0; // L04 - Número de série do cano NFe.Det[i].prod.arma[j].descr := ''; // L05 - Descrição completa da arma, compreendendo: calibre, marca, capacidade, etc) end; // TAG de grupo de informações específicas para combustíveis // líquidos - - Ocorrência 0-1 // Se for informado algum dos valores abaixo: // a TAG grava o grupo no XML ******************************************** NFe.Det[i].prod.comb.cProdANP := 0; // L102 - Código de produto da ANP - codificação de produtos do SIMP NFe.Det[i].prod.comb.CODIF := ''; // L103 - Código de autorização / registro do CODIF NFe.Det[i].prod.comb.qTemp := 0; // L104 - Quantidade de combustível faturada à temperatura ambiente. // TAG de grupo da CIDE - - Ocorrência 0-1 NFe.Det[i].prod.comb.CIDE.qBCprod := 0; // L106 - BC da CIDE em quantidad NFe.Det[i].prod.comb.CIDE.vAliqProd := 0; // L107 - Valor da alíquota da CIDE NFe.Det[i].prod.comb.CIDE.vCIDE := 0; // L108 - Valor da CIDE // TAG de grupo do ICMS - - Ocorrência 1-1 NFe.Det[i].prod.comb.ICMS.vBCICMS := 0; // L110 - BC do ICMS NFe.Det[i].prod.comb.ICMS.vICMS := 0; // L111 - Valor do ICMS NFe.Det[i].prod.comb.ICMS.vBCICMSST := 0; // L112 - BC do ICMS ST retido NFe.Det[i].prod.comb.ICMS.vICMSST := 0; // L113 - Valor do ICMS ST retido // TAG de grupo do ICMSST de operação interestadual - - Ocorrência 0-1 NFe.Det[i].prod.comb.ICMSInter.vBCICMSSTDest := 0; // L115 - BC do ICMS ST da UF de destino NFe.Det[i].prod.comb.ICMSInter.vICMSSTDest := 0; // L116 - Valor do ICMS ST da UF de destino // TAG de ICMS para consumo em UF diversa da UF de localização do destinatário do produto - - Ocorrência 0-1 NFe.Det[i].prod.comb.ICMSCons.vBCICMSSTCons := 0; // L118 - BC do ICMS ST da UF de consumo NFe.Det[i].prod.comb.ICMSCons.vICMSSTCons := 0; // L119 - Valor do ICMS ST da UF de consumo NFe.Det[i].prod.comb.ICMSCons.UFcons := ''; // L120 - Sigla da UF de consumo // TAG de grupo do ICMS da Operação própria e ST - - Ocorrência 1-1 NFe.Det[i].Imposto.ICMS.orig := oeNacional; // N11 - Origem da mercadoria // (0)=oeNacional // (1)=oeEstrangeiraImportacaoDireta // (2)=oeEstrangeiraAdquiridaBrasil NFe.Det[i].Imposto.ICMS.CST := cst00; // N12 - Tributação do ICMS // (00)=cst00 // (10)=cst10 // (20)=cst20 // (30)=cst30 // (40)=cst40 // (41)=cst41 // (50)=cst50 // (51)=cst51 // (60)=cst60 // (70)=cst70 // (90)=cst90 if NFe.Det[i].Imposto.ICMS.CST = cst00 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS end; if NFe.Det[i].Imposto.ICMS.CST = cst10 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS NFe.Det[i].Imposto.ICMS.modBCST := dbisMargemValorAgregado; // N18 - Modalidade de determinação da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pMVAST := 0; // N19 - Percentual da margem de valor Adicionado do ICMS ST NFe.Det[i].Imposto.ICMS.pRedBCST := 0; // N20 - Percentual da Redução de BC do ICMS ST NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pICMSST := 0; // N22 - Alíquota do imposto do ICMS ST NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST end; if NFe.Det[i].Imposto.ICMS.CST = cst20 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.pRedBC := 0; // N14 - Percentual da Redução de BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS end; if NFe.Det[i].Imposto.ICMS.CST = cst30 then begin NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS NFe.Det[i].Imposto.ICMS.pMVAST := 0; // N19 - Percentual da margem de valor Adicionado do ICMS ST NFe.Det[i].Imposto.ICMS.pRedBCST := 0; // N20 - Percentual da Redução de BC do ICMS ST NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pICMSST := 0; // N22 - Alíquota do imposto do ICMS ST NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST end; if NFe.Det[i].Imposto.ICMS.CST = cst51 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.pRedBC := 0; // N14 - Percentual da Redução de BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS end; if NFe.Det[i].Imposto.ICMS.CST = cst60 then begin NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST end; if NFe.Det[i].Imposto.ICMS.CST = cst70 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.pRedBC := 0; // N14 - Percentual da Redução de BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS NFe.Det[i].Imposto.ICMS.modBCST := dbisMargemValorAgregado; // N18 - Modalidade de determinação da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pMVAST := 0; // N19 - Percentual da margem de valor Adicionado do ICMS ST NFe.Det[i].Imposto.ICMS.pRedBCST := 0; // N20 - Percentual da Redução de BC do ICMS ST NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pICMSST := 0; // N22 - Alíquota do imposto do ICMS ST NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST end; if NFe.Det[i].Imposto.ICMS.CST = cst90 then begin NFe.Det[i].Imposto.ICMS.modBC := dbiMargemValorAgregado; // N13 - Modalidade de determinação da BC do ICMS NFe.Det[i].Imposto.ICMS.pRedBC := 0; // N14 - Percentual da Redução de BC do ICMS NFe.Det[i].Imposto.ICMS.vBC := 0; // N15 - Valor da BC do ICMS NFe.Det[i].Imposto.ICMS.pICMS := 0; // N16 - Alíquota do imposto NFe.Det[i].Imposto.ICMS.vICMS := 0; // N17 - Valor do ICMS NFe.Det[i].Imposto.ICMS.modBCST := dbisMargemValorAgregado; // N18 - Modalidade de determinação da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pMVAST := 0; // N19 - Percentual da margem de valor Adicionado do ICMS ST NFe.Det[i].Imposto.ICMS.pRedBCST := 0; // N20 - Percentual da Redução de BC do ICMS ST NFe.Det[i].Imposto.ICMS.vBCST := 0; // N21 - Valor da BC do ICMS ST NFe.Det[i].Imposto.ICMS.pICMSST := 0; // N22 - Alíquota do imposto do ICMS ST NFe.Det[i].Imposto.ICMS.vICMSST := 0; // N23 - Valor do ICMS ST end; // N13 - Modalidade de determinação da BC do ICMS // (0)=dbiMargemValorAgregado // (1)=dbiPauta // (2)=dbiPrecoTabelado // (3)=dbiValorOperacao // N18 - Modalidade de determinação da BC do ICMS ST // (0)=dbisPrecoTabelado – Preço tabelado ou máximo sugerido; // (1)=dbisListaNegativa - Lista Negativa (valor); // (2)=dbisListaPositiva - Lista Positiva (valor); // (3)=dbisListaNeutra - Lista Neutra (valor); // (4)=dbisMargemValorAgregado - Margem Valor Agregado (%); // (5)=dbisPauta - Pauta (valor);) // TAG de grupo do IPI - - Ocorrência 0-1 NFe.Det[i].Imposto.IPI.clEnq := ''; // O02 - Classe de enquadramento do IPI para Cigarros e Bebidas NFe.Det[i].Imposto.IPI.CNPJProd := ''; // O03 - CNPJ do produtor da mercadoria, quando diferente do emitente. Somente para os casos de exportação direta ou indireta. NFe.Det[i].Imposto.IPI.cSelo := ''; // O04 - Código do selo de controle IPI NFe.Det[i].Imposto.IPI.qSelo := 0; // O05 - Quantidade de selo de controle NFe.Det[i].Imposto.IPI.cEnq := ''; // O06 - Código de Enquadramento Legal do IPI (Tabela a ser criada pela RFB, informar 999 enquanto a tabela não for criada) NFe.Det[i].Imposto.IPI.CST := ipi00; // O09 - Código da situação tributária do IPI // (00)=ipi00 - Entrada com recuperação de crédito // (49)=ipi49 - Outras entradas // (50)=ipi50 - Saída tributada // (99)=ipi99 - Outras saídas // (01)=ipi01 - Entrada tributada com alíquota zero // (02)=ipi02 - Entrada isenta // (03)=ipi03 - Entrada não-tributada // (04)=ipi04 - Entrada imune // (05)=ipi05 - Entrada com suspensão // (51)=ipi51 - Saída tributada com alíquota zero // (52)=ipi52 - Saída isenta // (53)=ipi53 - Saída não-tributada // (54)=ipi54 - Saída imune // (55)=ipi55 - Saída com suspensão if (NFe.Det[i].Imposto.IPI.CST = ipi00) or (NFe.Det[i].Imposto.IPI.CST = ipi49) or (NFe.Det[i].Imposto.IPI.CST = ipi50) or (NFe.Det[i].Imposto.IPI.CST = ipi99) then begin if opcao1 then begin NFe.Det[ i].Imposto.IPI.vBC := 0; // O10 - Valor da BC do IPI NFe.Det[ i].Imposto.IPI.pIPI := 0; // 013 - Alíquota do IPI NFe.Det[i].Imposto.IPI.vIPI := 0; // O14 - Valor do IPI end; if not opcao1 then begin NFe.Det[ i].Imposto.IPI.qUnid := 0; // O11 - Qtde total na unidade padrão para tributação (somente para os produtos tributados por unidade) NFe.Det[ i].Imposto.IPI.vUnid := 0; // O12 - Valor por Unidade Tributável NFe.Det[i].Imposto.IPI.vIPI := 0; // O14 - Valor do IPI end; end; // TAG de grupo do Imposto de Importação - - Ocorrência 0-1 // Informar apenas quando o item for sujeito ao II NFe.Det[i].Imposto.II.vBc := 0; // P02 - Valor da BC do Imposto de Importação NFe.Det[i].Imposto.II.vDespAdu := 0; // P03 - Valor das despesas aduaneiras NFe.Det[i].Imposto.II.vII := 0; // P04 - Valor do Imposto de Importação NFe.Det[i].Imposto.II.vIOF := 0; // P05 - Valor do Imposto sobre Operações Financeiras // TAG de grupo do PIS - - Ocorrência 1-1 NFe.Det[i].Imposto.PIS.CST := pis01; // Q06 - Código de Situação Tributária do PIS // (01)=pis01 – Operação Tributável (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo)); // (02)=pis02 - Operação Tributável (base de cálculo = valor da operação (alíquota diferenciada)); // (03)=pis03 - Operação Tributável (base de cálculo = quantidade vendida x alíquota por unidade de produto ) // (04)=pis04 - Operação Tributável (tributação monofásica (alíquota zero)); // (06)=pis06 - Operação Tributável (alíquota zero); // (07)=pis07 - Operação Isenta da Contribuição; // (08)=pis08 - Operação Sem Incidência da Contribuição; // (09)=pis09 - Operação com Suspensão da Contribuição; // (99)=pis99 - Outras Operações; if (NFe.Det[i].Imposto.PIS.CST = pis01) or (NFe.Det[i].Imposto.PIS.CST = pis02) then begin NFe.Det[i].Imposto.PIS.vBC := 0; // Q07 - Valor da Base de Cálculo do PIS NFe.Det[i].Imposto.PIS.pPIS := 0; // Q08 - Alíquota do PIS (em percentual) NFe.Det[i].Imposto.PIS.qBCProd := 0; // Q10 - Quantidade Vendida NFe.Det[i].Imposto.PIS.vAliqProd := 0; // Q11 - Alíquota do PIS (em reais) NFe.Det[i].Imposto.PIS.vPIS := 0; // Q09 - Valor do PIS end; if (NFe.Det[i].Imposto.PIS.CST = pis03) then begin NFe.Det[i].Imposto.PIS.qBCProd := 0; // Q10 - Quantidade Vendida NFe.Det[i].Imposto.PIS.vAliqProd := 0; // Q11 - Alíquota do PIS (em reais) NFe.Det[i].Imposto.PIS.vPIS := 0; // Q09 - Valor do PIS end; if (NFe.Det[i].Imposto.PIS.CST = pis03) and (opcao1)then begin NFe.Det[i].Imposto.PIS.vBC := 0; // Q07 - Valor da Base de Cálculo do PIS NFe.Det[i].Imposto.PIS.pPIS := 0; // Q08 - Alíquota do PIS (em percentual) NFe.Det[i].Imposto.PIS.vPIS := 0; // Q09 - Valor do PIS end; if (NFe.Det[i].Imposto.PIS.CST = pis03) and (not opcao1)then begin NFe.Det[i].Imposto.PIS.qBCProd := 0; // Q10 - Quantidade Vendida NFe.Det[i].Imposto.PIS.vAliqProd := 0; // Q11 - Alíquota do PIS (em reais) NFe.Det[i].Imposto.PIS.vPIS := 0; // Q09 - Valor do PIS end; // TAG do grupo de PIS Substituição Tributária - - Ocorrência 0-1 if opcao1 then begin NFe.Det[i].Imposto.PISST.vBc := 0; // R02 - Valor da Base de Cálculo do PIS NFe.Det[i].Imposto.PISST.pPis := 0; // R03 - Alíquota do PIS (em percentual) NFe.Det[i].Imposto.PISST.vPIS := 0; // R06 - Valor do PIS end; if not opcao1 then begin NFe.Det[i].Imposto.PISST.qBCProd := 0; // R04 - Quantidade Vendida NFe.Det[i].Imposto.PISST.vAliqProd := 0; // R05 - Alíquota do PIS (em reais) NFe.Det[i].Imposto.PISST.vPIS := 0; // R06 - Valor do PIS end; // TAG de grupo do COFINS - - Ocorrência 1-1 NFe.Det[i].Imposto.COFINS.CST := cof01; // S06 - Código de Situação Tributária do COFINS // (01) – Operação Tributável (base de cálculo = valor da operação alíquota normal (cumulativo/não cumulativo)); // (02) - Operação Tributável (base de cálculo = valor da operação // (03) - Operação Tributável (base de cálculo = quantidade vendida x alíquota por unidade de produto); // (04) - Operação Tributável (tributação monofásica (alíquota zero)); // (06) - Operação Tributável (alíquota zero); // (07) - Operação Isenta da Contribuição; // (08) - Operação Sem Incidência da Contribuição; // (09) - Operação com Suspensão da Contribuição; // (99) - Outras Operações; if (NFe.Det[i].Imposto.COFINS.CST = cof01) or (NFe.Det[i].Imposto.COFINS.CST = cof02) then begin NFe.Det[i].Imposto.COFINS.vBC := 0; // S07 - Valor da Base de Cálculo da COFINS NFe.Det[i].Imposto.COFINS.pCOFINS := 0; // S08 - Alíquota da COFINS (em percentual) NFe.Det[i].Imposto.COFINS.vCOFINS := 0; // S11 - Valor do COFINS end; if NFe.Det[i].Imposto.COFINS.CST = cof03 then begin NFe.Det[i].Imposto.COFINS.vBCProd := 0; // S09 - Valor do COFINS NFe.Det[i].Imposto.COFINS.vAliqProd := 0; // S10 - Alíquota do COFINS (em reais) NFe.Det[i].Imposto.COFINS.vCOFINS := 0; // S11 - Valor do COFINS end; if ( NFe.Det[i].Imposto.COFINS.CST = cof99) and (opcao1) then begin NFe.Det[i].Imposto.COFINS.vBC := 0; // S07 - Valor da Base de Cálculo da COFINS NFe.Det[i].Imposto.COFINS.pCOFINS := 0; // S08 - Alíquota da COFINS (em percentual) NFe.Det[i].Imposto.COFINS.vCOFINS := 0; // S11 - Valor do COFINS end; if ( NFe.Det[i].Imposto.COFINS.CST = cof99) and (not opcao1) then begin NFe.Det[i].Imposto.COFINS.qBCProd := 0; // S09 - Quantidade Vendida NFe.Det[i].Imposto.COFINS.vAliqProd := 0; // S10 - Alíquota do COFINS (em reais) NFe.Det[i].Imposto.COFINS.vCOFINS := 0; // S11 - Valor do COFINS end; // TAG do grupo de COFINS Substituição Tributária - - Ocorrência 0-1 if opcao1 then begin NFe.Det[i].Imposto.COFINSST.vBC := 0; // T02 - Valor da Base de Cálculo da COFINS NFe.Det[i].Imposto.COFINSST.pCOFINS := 0; // T03 - Alíquota da COFINS (em percentual) NFe.Det[i].Imposto.COFINSST.vCOFINS := 0; // T06 - Valor do COFINS end; if not opcao1 then begin NFe.Det[i].Imposto.COFINSST.qBCProd := 0; // T04 - Quantidade Vendida NFe.Det[i].Imposto.COFINSST.vAliqProd := 0; // T05 - Alíquota do COFINS (em reais) NFe.Det[i].Imposto.COFINSST.vCOFINS := 0; // T06 - Valor do COFINS end; // TAG do grupo do ISSQN - - Ocorrência 0-1 NFe.Det[i].Imposto.ISSQN.vBC := 0; // U02 - Valor da Base de Cálculo do ISSQN NFe.Det[i].Imposto.ISSQN.vAliq := 0; // U03 - Alíquota do ISSQN NFe.Det[i].Imposto.ISSQN.vISSQN := 0; // U04 - Valor do ISSQN NFe.Det[i].Imposto.ISSQN.cMunFG := 0; // U05 - Código do município de ocorrência do fato gerador do ISSQN NFe.Det[i].Imposto.ISSQN.cListServ := 0; // U06 - Código da Lista de Serviços end; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de Valores Totais da NF-e - - Ocorrência 1-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) // TAG de grupo de Valores Totais referentes ao ICMS - - Ocorrência 1-1 NFe.Total.ICMSTot.vBC := 0; // W03 - Base de Cálculo do ICMS NFe.Total.ICMSTot.vICMS := 0; // W04 - Valor Total do ICMS NFe.Total.ICMSTot.vBCST := 0; // W05 - Base de Cálculo do ICMS ST NFe.Total.ICMSTot.vST := 0; // W06 - Valor Total do ICMS ST NFe.Total.ICMSTot.vProd := 0; // W07 - Valor Total dos produtos e serviços NFe.Total.ICMSTot.vFrete := 0; // W08 - Valor Total do Frete NFe.Total.ICMSTot.vSeg := 0; // W09 - Valor Total do Seguro NFe.Total.ICMSTot.vDesc := 0; // W10 - Valor Total do Desconto NFe.Total.ICMSTot.vII := 0; // W11 - Valor Total do II NFe.Total.ICMSTot.vIPI := 0; // W12 - Valor Total do IPI NFe.Total.ICMSTot.vPIS := 0; // W13 - Valor do PIS NFe.Total.ICMSTot.vCOFINS := 0; // W14 - Valor do COFINS NFe.Total.ICMSTot.vOutro := 0; // W15 - Outras Despesas acessórias NFe.Total.ICMSTot.vNF := 0; // W16 - Valor Total da NF-e // TAG de grupo de Valores Totais referentes ao ISSQN - - Ocorrência 0-1 NFe.Total.ISSQNtot.vServ := 0; // W18 - Valor Total dos Serviços sob nãoincidência ou não tributados pelo ICMS NFe.Total.ISSQNtot.vBC := 0; // W19 - Base de Cálculo do ISS NFe.Total.ISSQNtot.vISS := 0; // W20 - Valor Total do ISS NFe.Total.ISSQNtot.vPIS := 0; // W21 - Valor do PIS sobre serviços NFe.Total.ISSQNtot.vCOFINS := 0; // W22 - Valor do COFINS sobre serviços // TAG de grupo de Retenções de Tributos - - Ocorrência 0-1 NFe.Total.retTrib.vRetPIS := 0; // W24 - Valor Retido de PIS NFe.Total.retTrib.vRetCOFINS := 0; // W25 - Valor Retido de COFINS NFe.Total.retTrib.vRetCSLL := 0; // W26 - Valor Retido de CSLL NFe.Total.retTrib.vBCIRRF := 0; // W27 - Base de Cálculo do IRRF NFe.Total.retTrib.vIRRF := 0; // W28 - Valor Retido do IRRF NFe.Total.retTrib.vBCRetPrev := 0; // W29 - Base de Cálculo da Retenção da Previdência Social NFe.Total.retTrib.vRetPrev := 0; // W30 - Valor da Retenção da Previdência Social (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de Informações do Transporte da NF-e - - Ocorrência 1-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) NFe.Transp.modFrete := mfContaEmitente; // X02 - Modalidade do frete // (0)=mfContaEmitente – por conta do emitente; // (1)=mfContaDestinatario – por conta do destinatário) // TAG de grupo Transportador - - Ocorrência 0-1 NFe.Transp.Transporta.CNPJCPF := ''; // X05 - Informar o CNPJ ou o CPF do Transportador, preenchendo os zeros não significativos. NFe.Transp.Transporta.xNome := ''; // X06 - Razão Social ou nome NFe.Transp.Transporta.IE := ''; // X07 - Inscrição Estadual NFe.Transp.Transporta.xEnder := ''; // X08 - Endereço Completo NFe.Transp.Transporta.xMun := ''; // X09 - Nome do município NFe.Transp.Transporta.UF := ''; // X10 - Sigla da UF // TAG de grupo de Retenção do ICMS do transporte - - Ocorrência 0-1 NFe.Transp.retTransp.vServ := 0; // X12 - Valor do Serviço NFe.Transp.retTransp.vBCRet := 0; // X13 - BC da Retenção do ICMS NFe.Transp.retTransp.pICMSRet := 0; // X14 - Alíquota da Retenção NFe.Transp.retTransp.vICMSRet := 0; // X15 - Valor do ICMS Retido NFe.Transp.retTransp.CFOP := ''; // X16 - CFOP (Utilizar Tabela de CFOP) NFe.Transp.retTransp.cMunFG := 0; // X17 - Código do município de ocorrência do fato gerador do ICMS do transporte (Tabela do IBGE) // TAG de grupo Veículo - - Ocorrência 0-1 NFe.Transp.veicTransp.placa := ''; // X19 - Placa do Veículo NFe.Transp.veicTransp.UF := ''; // X20 - Sigla da UF NFe.Transp.veicTransp.RNTC := ''; // X21 - Registro Nacional de Transportador de Carga (ANTT) for i := 0 to 1 do begin NFe.Transp.Reboque.Add; // TAG de grupo Reboque - - Ocorrência 0-2 NFe.Transp.Reboque[i].placa := ''; // X23 - Placa do Veículo NFe.Transp.Reboque[i].UF := ''; // X24 - Sigla da UF NFe.Transp.Reboque[i].RNTC := ''; // X25 - Registro Nacional de Transportador de Carga (ANTT) end; for i := 0 to 1 do begin NFe.Transp.Vol.add; // TAG de grupo Volumes - - Ocorrência 0-N NFe.Transp.Vol[i].qVol := 0; // X27 - Quantidade de volumes transportados NFe.Transp.vol[i].esp := ''; // X28 - Espécie dos volumes transportados NFe.Transp.Vol[i].marca := ''; // X29 - Marca dos volumes transportados NFe.Transp.Vol[i].nVol := ''; // X30 - Numeração dos volumes transportados NFe.Transp.Vol[i].pesoL := 0; // X31 - Peso Líquido (em kg) NFe.Transp.Vol[i].pesoB := 0; // X32 - Peso Bruto (em kg) for j := 0 to 1 do begin NFe.transp.Vol[i].lacres.add; // TAG de grupo de Lacres - - Ocorrência 0-N NFe.transp.Vol[i].lacres[j].nLacre := ''; // X34 - Número dos Lacres // Para Combustíveis, um Caminhão (Toco, Truck, Carreta, Bi-Tren) pode ter até 32 bocas. // Ou seja até 32 lacres. Cada lacre pode ser um número de até 8 digitos. end; end; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de Cobrança - - Ocorrência 0-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) // >>> TAG de grupo da Fatura - - Ocorrência 0-1 NFe.Cobr.Fat.nFat := ''; // Y03 - Número da Fatura NFe.Cobr.Fat.vOrig := 0; // Y04 - Valor Original da Fatura NFe.Cobr.Fat.vDesc := 0; // Y05 - Valor do desconto NFe.Cobr.Fat.vLiq := 0; // Y06 - Valor Líquido da Fatura for i := 0 to 1 do begin NFe.Cobr.Dup.Add; // >>> TAG de grupo da Duplicata - - Ocorrência 0-N NFe.Cobr.Dup[i].nDup := ''; // Y08 - Número da Duplicata NFe.Cobr.Dup[i].dVenc := now; // Y09 - Data de vencimento NFe.Cobr.Dup[i].vDup := 0; // Y10 - Valor da duplicata end; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG de grupo de Informações Adicionais - - Ocorrência 0-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) NFe.InfAdic.infAdFisco := ''; // Z02 - Informações Adicionais de Interesse do Fisco NFe.InfAdic.infCpl := ''; // Z03 - Informações Complementares de interesse do Contribuinte for i := 0 to 9 do begin NFe.InfAdic.obsCont.Add; // >>> TAG de grupo do campo de uso livre do contribuinte - - Ocorrência 0-10 NFe.InfAdic.obsCont[i].xCampo := ''; // Z05 - Identificação do campo (TAM : 1-20) NFe.InfAdic.obsCont[i].xTexto := ''; // Z06 - Conteúdo do campo (TAM : 1-60) end; for i := 0 to 9 do begin NFe.InfAdic.obsFisco.Add; // >>> TAG de grupo do campo de uso livre do Fisco - - Ocorrência 0-10 NFe.InfAdic.obsFisco[i].xCampo := ''; // Z08 - Identificação do campo (TAM : 1-20) NFe.InfAdic.obsFisco[i].xTexto := ''; // Z09 - Conteúdo do campo (TAM : 1-60) end; for i := 0 to 1 do begin NFe.InfAdic.procRef.Add; // >>> Tag de grupo do processo referenciado - - Ocorrência 0-N NFe.InfAdic.procRef[i].nProc := ''; // Z08 - Indentificador do processo ou ato concessório NFe.InfAdic.procRef[i].indProc := ipSEFAZ; // Z09 - Indicador da origem do processo (0 - SEFAZ; 1 - Justiça Federal; 2 - Justiça Estadual; 3 - Secex/RFB; 9 - Outros) end; (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG do Grupo de Exportação - - Ocorrência 0-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) // O grupo sera gravado se um dos campos abaixo for preenchido NFe.exporta.UFembarq := ''; // ZA02 - Sigla da UF onde ocorrerá o Embarque dos produtos NFe.exporta.xLocEmbarq := ''; // ZA03 - Local onde ocorrerá o Embarque dos produtos (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG do Grupo de Compra - - Ocorrência 0-1 *) (* ----------------------------------------------------------------------------------------------------------------- *) // O grupo sera gravado se um dos campos abaixo for preenchido NFe.compra.xNEmp := ''; // ZB02 - Nota de Empenho quando se tratar de compras públicas NFe.compra.xPed := ''; // ZB03 - Pedido NFe.compra.xCont := ''; // ZB04 - Contrato de Compra (* ----------------------------------------------------------------------------------------------------------------- *) (* TAG do Assinatura - *) (* ----------------------------------------------------------------------------------------------------------------- *) // Opcionalmente pode gerar o template da assinatura - Isso não sginifica assinar o arquivo! NFe.signature.URI := NFe.infNFe.Id; (****************************************************************************) (* *) (* G E R A R O A R Q U I V O X M L *) (* *) (****************************************************************************) // Criar a class TNFeW para a geração do arquivo conforme os dados inseridos // em NFe passar o objeto que contém os dados para a geração do arquivo xml NFeW := TNFeW.Create(NFe); // Informa as opções especificas de TNFeW NFeW.schema := tsPL005C; NFeW.Opcoes.AjustarTagNro := True; // Ajusta o tamanho do campo para 3 posições com zero a esquerda NFew.Opcoes.GerarTagIPIparaNaoTributado := True; // No caso de produto não tributado gera a TAG especifica NFeW.Opcoes.GerarTXTSimultaneamente := False; // Possibilita gerar um arquivo TXT do formato do programa SEFAZ-SP NFeW.Opcoes.NormatizarMunicipios := False; // Realiza a normatização do nome do municipio conforme a tabela do IBGE NFeW.Opcoes.PathArquivoMunicipios := 'C:\meuCaminho\MunIBGE\'; // Indicar para aonde estão os arquivo com os nomes dos municipios NFeW.Opcoes.GerarTagAssinatura := taNunca; // Opção de gerar o template da assinature em branco NFeW.Opcoes.ValidarInscricoes := False; // Valida as Inscrições. (É melhor quando essa validação é feita no ERP) // Informar as opções comuns ao gerador ( Abaixo opcões Default) NFeW.Gerador.Opcoes.IdentarXML := False; // Os arquivos que serão enviados para o SEFAZ não devem estar identados NFeW.Gerador.Opcoes.TamanhoIdentacao := 3; // Tamanho da identação do arquivo NFeW.Gerador.Opcoes.FormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.'; // Formato em que a mensagem vai ser gravada a ListaDeAlertas NFeW.Gerador.Opcoes.RetirarEspacos := True; // Retira os espaços em branco duplos nas tag do xml NFeW.Gerador.Opcoes.SuprimirDecimais := False; // Ignora valores não significativos nas casa decimais NFeW.Gerador.Opcoes.SomenteValidar := False; // Não gera o arquivo apenas valida as informações // Gerar o arquivo XML NFeW.GerarXml; // Carrega erros // if NFeW.Gerador.ListaDeAlertas.Count > 0 then // memo1.Lines.Add(NFeW.gerador.ListaDeAlertas.Text); // Gravar o arquivo no HD if NFeW.Gerador.ListaDeAlertas.Count = 0 then // Se não contiver nenhum erro, grava begin NFeW.gerador.SalvarArquivo('C:\Meu-Caminho\' + NFeW.ObterNomeArquivo); // Não é necessário informar o parametro fpXML pois ele é default if NFeW.Opcoes.GerarTXTSimultaneamente then NFeW.gerador.SalvarArquivo('C:\Meu-Caminho\' + NFeW.ObterNomeArquivo + '.txt',fgTXT); // Informar o parametro fgTXT para gerar o arquivo no formato TEXTO end; NFeW.Free; NFe.Free; end; end.
-
estou direcionando o link onde possa averiguar a situacao do erro ocasionado, espero que seja util, boa sorte http://www.sefaz.ma.gov.br/NFE/mostra_perguntas_nfe.asp ou neste link http://www.activedelphi.com.br/forum/vi ... 38dc251bb4 amarildo
-
por gentileza, estou precisando passar os parametros da minha tabela do campo valor de icms com substituicao tributaria para o campo do componente acbrnfe, do qual nao sei, caso alguem possa orientar-me quanto a isso, grato a todos q cooperarem na ajuda. obrg
-
Caso alguem tenha conhecimento de como passar os parametros da minha tabela para qual campo do componente ACBRnfe, pois nao estou encontrando, grato
-
Bom Dia, estou usando o componente acbrnfe, e preciso passar o campo da minha tabela para o campo do componente acbrnfe que contenha o campo da situacao tributaria do icms com substituicao, os campos valor e taxa. grato pela atencao Felippe