Ir para conteúdo
  • Cadastre-se

ROBERNAL

Membros
  • Total de ítens

    10
  • Registro em

  • Última visita

ROBERNAL's Achievements

Rookie

Rookie (2/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputação

  1. Pessoal Estou com um problema que acredito ser alguma falta de atenção minha que não estou consegundo resolver veja se entendem. Pessoal depois que fiz uma alteração no meu codigo minha nfe esta dando Rejeição 564 : 564 - [simulacao] Rejeicao: Total do Produto / Servico difere do somatorio dos itens No XML na Tag esta gerando assim 0 o correto era Gerar 1 No meu codigo esa assim: Prod.IndTot := qrnota.fieldbyname('Total_nota').asVariant; If eu colocar Assim : Prod.IndTot := '1'; ele me da erro de imcompatibilidade de tipo 'TpcnIndicadorTotal' and Char Alguem Tem uma luz
  2. Igor me desculpe mais quando mandei esta resposta não visto o que os colegas tinha postado mais blz agradeço a ajuda de vcs e pela as informações consegui resolver este problema do Volumes o codigo realmente estava em um loop de Produto valeu a pessoal..
  3. Pessoal é o seguinte ja fiz a nfe com 10 itens e realmente ele gerou os 10 vol. tirei do loop e agora vo testar Pessoal depois que fiz uma alteração no meu codigo minha nfe esta dando Rejeição 564 : 564 - [simulacao] Rejeicao: Total do Produto / Servico difere do somatorio dos itens No XML na Tag esta gerando assim 0 o correto era Gerar 1 No meu codigo esa assim: Prod.IndTot := qrnota.fieldbyname('Total_nota').asVariant; If eu colocar Assim : Prod.IndTot : 1; ele me da erro de imcompatibilidade de tipo 'TpcnIndicadorTotal' and Char Alguem Tem uma luz
  4. Blz pessoal vo verificar aqui
  5. Pessoal´ninguem vai me d uma força ai no meu codigo pra tirar minha duvida se eu fiz alguma coisa errada ?
  6. é isso mesmo me desculpe, vc vil que esta em branco.. é o que esta acontecendo ele gera tudo em branco se eu tiver 5 produtos ele vai gerar 5 volumes em branco.. vc pode dar uma olhada neste codigo que gera meu xml ?..
  7. iSSO MESMO ELE TEM ESTAS 5 TAGS Volume Qtde Especie Marca Numero Peso Liquido Peso Bruto Pelo que eu olhei esta correto..
  8. ESTE É O XML35121012347544000103550010000004771000004776-NFe.xml ME DESCULPE PESSOAL É QUE EU NÃO ESTAVA NA SALA
  9. Pessoal este é meu codigo que gera o xml: function Tfrmnotafiscal_menu.Gerar_XML():string; var vAux : String; BnF_VEICULO : BOOLEAN; iCRT, i : Integer; begin if qrnota.RecordCount = 0 then exit; // filial query2.close; query2.sql.clear; query2.sql.add('select * from c000004'); query2.sql.add('where codigo = '''+qrnota.fieldbyname('codfilial').asstring+''''); query2.open; qrnfe_cliente.close; qrnfe_cliente.sql.clear; qrnfe_cliente.sql.add('select * from c000007'); qrnfe_cliente.sql.add('where codigo = '''+qrnota.fieldbyname('codcliente').asstring+''''); qrnfe_cliente.open; qrtransportador2.close; qrtransportador2.sql.clear; qrtransportador2.sql.add('select * from c000010'); qrtransportador2.sql.add('where codigo = '''+qrnota.fieldbyname('codtransportador').asstring+''''); qrtransportador2.open; ACBrNFe1.NotasFiscais.Clear; with ACBrNFe1.NotasFiscais.Add.NFe do begin infNFe.ID := qrnota.fieldbyname('numero').asstring; Ide.natOp := qrnota.fieldbyname('natureza').asstring; Ide.nNF := StrToInt(qrnota.fieldbyname('numero').asstring); Ide.cNF := StrToInt(qrnota.fieldbyname('numero').asstring); Ide.modelo := 55; Ide.serie := StrToInt(qrnota.fieldbyname('serie_nf').asstring); Ide.dEmi := qrnota.fieldbyname('data').AsDateTime; Ide.dSaiEnt := qrnota.fieldbyname('data_saida').asdatetime; Ide.hSaiEnt := StrToTime(qrnota.fieldbyname('hora').asstring);; IF QRNOTA.FIELDBYNAME('MOVIMENTO').ASSTRING = 'S' Then Ide.tpNF := tnSaida else Ide.tpNF := tnEntrada; if qrnota.FieldByName('fat_tipo').asinteger = 1 then Ide.indPag := ipVista else Ide.indpag := ipPrazo; Ide.verProc := '7.0'; Ide.cUF := strtoint(Copy(QUERY2.FIELDBYNAME('COD_MUNICIPIO_IBGE').ASstring,1,2)); Ide.cMunFG := QUERY2.FIELDBYNAME('COD_MUNICIPIO_IBGE').ASINTEGER; // dados do emitente Emit.CNPJCPF := sn(QUERY2.FIELDBYNAME('CNPJ').ASSTRING); IF (QUERY2.FIELDBYNAME('IE').ASSTRING = '') or (QUERY2.FIELDBYNAME('IE').ASSTRING = 'ISENTO') Then Emit.IE := '1234567890' else Emit.IE := SN(QUERY2.FIELDBYNAME('IE').ASSTRING); Emit.IM := sn(QUERY2.FIELDBYNAME('INSC_MUNICIPAL').ASSTRING); Emit.CNAE := sn(QUERY2.FIELDBYNAME('CNAE').ASSTRING); IF QUERY2.FIELDBYNAME('CRT').ASSTRING = '1' Then Emit.CRT := crtSimplesNacional else IF QUERY2.FIELDBYNAME('CRT').ASSTRING = '2' Then Emit.CRT := crtSimplesExcessoReceita else IF QUERY2.FIELDBYNAME('CRT').ASSTRING = '3' Then Emit.CRT := crtRegimeNormal; Emit.xNome := QUERY2.FIELDBYNAME('FILIAL').ASSTRING; Emit.xFant := QUERY2.FIELDBYNAME('FILIAL').ASSTRING; Emit.EnderEmit.fone := QUERY2.FIELDBYNAME('TELEFONE').ASSTRING; Emit.EnderEmit.CEP := StrToInt(SN(QUERY2.FIELDBYNAME('CEP').ASSTRING)); Emit.EnderEmit.xLgr := QUERY2.FIELDBYNAME('ENDERECO').ASSTRING; Emit.EnderEmit.nro := QUERY2.FIELDBYNAME('NUMERO').ASSTRING; Emit.EnderEmit.xCpl := QUERY2.FIELDBYNAME('COMPLEMENTO').ASSTRING; Emit.EnderEmit.xBairro := QUERY2.FIELDBYNAME('BAIRRO').ASSTRING; Emit.EnderEmit.cMun := StrToInt(QUERY2.FIELDBYNAME('COD_MUNICIPIO_IBGE').ASSTRING); Emit.EnderEmit.xMun := QUERY2.FIELDBYNAME('CIDADE').ASSTRING; Emit.EnderEmit.UF := QUERY2.FIELDBYNAME('UF').ASSTRING; Emit.enderEmit.cPais := 1058; Emit.enderEmit.xPais := 'BRASIL'; // destinatario Dest.xNome := qrnfe_cliente.fieldbyname('nome').asstring; Dest.CNPJCPF := sn(qrnfe_cliente.fieldbyname('cpf').asstring); Dest.EnderDest.CEP := StrToInt(sn(qrnfe_cliente.fieldbyname('cep').asstring)); Dest.EnderDest.xLgr := qrnfe_cliente.fieldbyname('endereco').asstring; Dest.EnderDest.nro := qrnfe_cliente.fieldbyname('numero').asstring; Dest.EnderDest.xCpl := qrnfe_cliente.fieldbyname('complemento').asstring; Dest.EnderDest.xBairro := qrnfe_cliente.fieldbyname('bairro').asstring; Dest.EnderDest.cMun := StrToInt(qrnfe_cliente.fieldbyname('cod_municipio_ibge').asstring); Dest.EnderDest.xMun := qrnfe_cliente.fieldbyname('cidade').asstring; Dest.EnderDest.UF := qrnfe_cliente.fieldbyname('uf').asstring; Dest.EnderDest.Fone := sn(qrnfe_cliente.fieldbyname('telefone1').asstring); Dest.IE := sn(qrnfe_cliente.fieldbyname('rg').asstring); Dest.ISUF := ''; Dest.EnderDest.cPais := 1058; Dest.EnderDest.xPais := 'BRASIL'; Dest.Email := qrnfe_cliente.fieldbyname('email').asstring; // itens qrnota_item.close; qrnota_item.sql.clear; qrnota_item.sql.add('select c000062.*, c000025.produto, c000025.codbarra cod_barra, c000025.unidade un'); qrnota_item.sql.add('from c000062, c000025 where c000062.codproduto = c000025.codigo'); qrnota_item.sql.add('and c000062.codnota = '''+qrnota.fieldbyname('codigo').asstring+''''); qrnota_item.open; qrnota_item.Last; qrnota_item.first; while not qrnota_item.eof do begin bnf_veiculo := false; frmmodulo.qrconfig.Open; IF FRMMODULO.QRCONFIG.FieldByName('CADASTRO_PRODUTO').asstring = 'PECAS' then BEGIN query.close; query.sql.clear; query.sql.add('select * from c000025 where codigo = '''+qrnota_item.fieldbyname('codproduto').asstring+''''); query.open; IF query.FieldByName('CODRECEITA').ASSTRING = 'SIM' THEN BEGIN bnf_veiculo := true; END; END; if BNF_VEICULO THEN begin with Det.Add do begin Prod.nItem := qrnota_item.fieldbyname('item').asinteger; Prod.cProd := qrnota_item.fieldbyname('codproduto').asstring; if length(trim(qrnota_item.fieldbyname('codbarra').asString))>0 then Prod.cEAN := frmPrincipal.Zerarcodigo(qrnota_item.fieldbyname('codbarra').asstring, 13) else Prod.cEAN := ''; prod.NCM := sn(qrnota_item.fieldbyname('classificacao_fiscal').asstring); Prod.xProd := copy(query.fieldbyname('veic_especie').asstring,1,3)+'/'+ query.fieldbyname('veic_tipo').asstring; infAdProd := query.fieldbyname('veic_cod_marca').asstring+'/'+ qrnota_item.fieldbyname('produto').asstring+';'+ 'Ano: '+query.fieldbyname('veic_ano_fabricacao').asstring+' '+ 'Mod: '+query.fieldbyname('veic_ano_modelo').asstring+';'+ 'Cor: '+query.fieldbyname('veic_cor').asstring+';'+ 'Combustivel: '+query.fieldbyname('veic_tipo_combustivel').asstring+';'+ 'Placa: '+query.fieldbyname('VEIC_SERIE').asstring+';'+ 'Renavam: '+query.fieldbyname('veic_renavam').asstring+';'+ 'Chassi: '+query.fieldbyname('veic_chassi').asstring+';'+ 'Categoria: '+query.fieldbyname('VEIC_NUMERO_MOTOR').asstring; Prod.CFOP := qrnota_item.fieldbyname('cfop').asstring; Prod.EXTIPI := '23'; Prod.uCom := qrnota_item.fieldbyname('UN').asstring; Prod.qCom := qrnota_item.fieldbyname('qtde').asfloat; Prod.vUnCom := qrnota_item.fieldbyname('unitario').asfloat; Prod.vProd := qrnota_item.fieldbyname('total').asfloat; Prod.cEANTrib := ''; Prod.qTrib := qrnota_item.fieldbyname('qtde').asfloat; Prod.vUnTrib := qrnota_item.fieldbyname('unitario').asfloat; prod.uTrib := qrnota_item.fieldbyname('UN').asstring; prod.vDesc := qrnota_item.fieldbyname('desconto').asfloat; Prod.vFrete := qrnota.fieldbyname('frete').AsCurrency; Prod.vSeg := qrnota.fieldbyname('seguro').AsCurrency; Prod.vOutro := qrnota.fieldbyname('outras_despesas').AsCurrency; Prod.IndTot := qrnota.fieldbyname('total_nota').AsVariant; with Imposto do begin ICMS.orig := oeNacional; iCRT := StrToInt(frmmodulo.qrfilial.fieldbyname('crt').asstring); case iCRT of 1:begin // Linhas para o simples nacional if qrnota_item.fieldbyname('csosn').asstring = '101' then ICMS.CSOSN := csosn101; if qrnota_item.fieldbyname('csosn').asstring = '102' then ICMS.CSOSN := csosn102; if qrnota_item.fieldbyname('csosn').asstring = '103' then ICMS.CSOSN := csosn103; if qrnota_item.fieldbyname('csosn').asstring = '300' then ICMS.CSOSN := csosn300; if qrnota_item.fieldbyname('csosn').asstring = '400' then ICMS.CSOSN := csosn400; if qrnota_item.fieldbyname('csosn').asstring = '201' then ICMS.CSOSN := csosn201; if qrnota_item.fieldbyname('csosn').asstring = '202' then ICMS.CSOSN := csosn202; if qrnota_item.fieldbyname('csosn').asstring = '500' then ICMS.CSOSN := csosn500; if qrnota_item.fieldbyname('csosn').asstring = '900' then ICMS.CSOSN := csosn900; case ICMS.CSOSN of csosn101 : begin ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; csosn102 : begin end; csosn103 : begin end; csosn300 : begin end; csosn400 : begin end; csosn201 : begin ICMS.modBCST := dbisMargemValorAgregado;; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; csosn202 : begin ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; end; csosn500 : begin ICMS.vBCSTRet := qrnota_item.fieldbyname('base_sub').Value; ICMS.vICMSSTRet := qrnota_item.fieldbyname('icms_sub').Value; end; csosn900 : begin ICMS.modBC := dbiMargemValorAgregado; ICMS.vBC := qrnota_item.fieldbyname('base_calculo').Value; ICMS.pRedBC := qrnota_item.fieldbyname('icms_reduzido').Value; ICMS.pICMS := qrnota_item.fieldbyname('ICMS').asfloat; ICMS.vICMS := qrnota_item.fieldbyname('valor_icms').Value; ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; end; // fim do case icms.csosn end; 2:begin // (...) end; 3:begin if qrnota_item.fieldbyname('cst').asstring = '000' then ICMS.CST := cst00; if qrnota_item.fieldbyname('cst').asstring = '010' then ICMS.CST := cst10; if qrnota_item.fieldbyname('cst').asstring = '020' then ICMS.CST := cst20; if qrnota_item.fieldbyname('cst').asstring = '030' then ICMS.CST := cst30; if qrnota_item.fieldbyname('cst').asstring = '040' then ICMS.CST := cst40; if qrnota_item.fieldbyname('cst').asstring = '041' then ICMS.CST := cst41; if qrnota_item.fieldbyname('cst').asstring = '050' then ICMS.CST := cst50; if qrnota_item.fieldbyname('cst').asstring = '051' then ICMS.CST := cst51; if qrnota_item.fieldbyname('cst').asstring = '060' then ICMS.CST := cst60; if qrnota_item.fieldbyname('cst').asstring = '070' then ICMS.CST := cst70; if qrnota_item.fieldbyname('cst').asstring = '080' then ICMS.CST := cst80; if qrnota_item.fieldbyname('cst').asstring = '081' then ICMS.CST := cst81; if qrnota_item.fieldbyname('cst').asstring = '090' then ICMS.CST := cst90; ICMS.modBC := dbiPrecoTabelado; ICMS.pICMS := qrnota_item.fieldbyname('ICMS').asfloat; ICMS.vICMS := qrnota_item.fieldbyname('valor_icms').asfloat; ICMS.vBC := qrnota_item.fieldbyname('base_calculo').asfloat; ICMS.orig := oeNacional; IPI.CST := ipi00; IPI.clEnq := ''; IPI.cEnq := '999'; end; end; // fim do case iCRT end; //fim do with imposto end; end ELSE BEGIN With Det.Add do begin Prod.nItem := qrnota_item.fieldbyname('item').asinteger; Prod.cProd := qrnota_item.fieldbyname('codproduto').asstring; // Aqui verifica se há codBarra se não tiver deixa em branco if length(trim(qrnota_item.fieldbyname('codbarra').asString))>0 then Prod.cEAN := frmPrincipal.Zerarcodigo(qrnota_item.fieldbyname('codbarra').asstring, 13) else Prod.cEAN := ''; prod.NCM := sn(qrnota_item.fieldbyname('classificacao_fiscal').asstring); Prod.xProd := qrnota_item.fieldbyname('produto').asstring; Prod.CFOP := qrnota_item.fieldbyname('cfop').asstring; Prod.uCom := qrnota_item.fieldbyname('UN').asstring; Prod.qCom := qrnota_item.fieldbyname('qtde').asfloat; Prod.vUnCom := qrnota_item.fieldbyname('unitario').asfloat; Prod.vProd := qrnota_item.fieldbyname('total').asfloat; Prod.qTrib := qrnota_item.fieldbyname('qtde').asfloat; Prod.vUnTrib := qrnota_item.fieldbyname('unitario').asfloat; prod.uTrib := qrnota_item.fieldbyname('UN').asstring; prod.vDesc := qrnota_item.fieldbyname('desconto').AsCurrency; Prod.vFrete := qrnota.fieldbyname('frete').AsCurrency; Prod.vSeg := qrnota.fieldbyname('seguro').AsCurrency; Prod.vOutro := qrnota.fieldbyname('outras_despesas').AsCurrency; infAdProd := ''; // complemento do nome do item Prod.EXTIPI := '23'; Prod.cEANTrib := ''; Prod.IndTot := qrnota.fieldbyname('total_nota').AsVariant; with Imposto do begin ICMS.orig := oeNacional; iCRT := StrToInt(frmmodulo.qrfilial.fieldbyname('crt').asstring); case iCRT of 1:begin // Linhas para o simples nacional if qrnota_item.fieldbyname('csosn').asstring = '101' then ICMS.CSOSN := csosn101; if qrnota_item.fieldbyname('csosn').asstring = '102' then ICMS.CSOSN := csosn102; if qrnota_item.fieldbyname('csosn').asstring = '103' then ICMS.CSOSN := csosn103; if qrnota_item.fieldbyname('csosn').asstring = '300' then ICMS.CSOSN := csosn300; if qrnota_item.fieldbyname('csosn').asstring = '400' then ICMS.CSOSN := csosn400; if qrnota_item.fieldbyname('csosn').asstring = '201' then ICMS.CSOSN := csosn201; if qrnota_item.fieldbyname('csosn').asstring = '202' then ICMS.CSOSN := csosn202; if qrnota_item.fieldbyname('csosn').asstring = '500' then ICMS.CSOSN := csosn500; if qrnota_item.fieldbyname('csosn').asstring = '900' then ICMS.CSOSN := csosn900; case ICMS.CSOSN of csosn101 : begin ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; csosn102 : begin end; csosn103 : begin end; csosn300 : begin end; csosn400 : begin end; csosn201 : begin ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; csosn202 : begin ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; end; csosn500 : begin ICMS.vBCSTRet := qrnota_item.fieldbyname('base_sub').Value; ICMS.vICMSSTRet := qrnota_item.fieldbyname('icms_sub').Value; end; csosn900 : begin ICMS.modBC := dbiMargemValorAgregado; ICMS.vBC := qrnota_item.fieldbyname('base_calculo').Value; ICMS.pRedBC := qrnota_item.fieldbyname('icms_reduzido').Value; ICMS.pICMS := qrnota_item.fieldbyname('ICMS').asfloat; ICMS.vICMS := qrnota_item.fieldbyname('valor_icms').Value; ICMS.modBCST := dbisMargemValorAgregado; ICMS.pMVAST := qrnota_item.fieldbyname('margem_agregada').Value; ICMS.pRedBCST := 00.00; ICMS.vBCST := qrnota_item.fieldbyname('base_sub').Value; ICMS.pICMSST := 00.00; ICMS.vICMSST := qrnota_item.fieldbyname('icms_sub').Value; ICMS.pCredSN := 0.0; // Colocar o percentual do Crédito ICMS.vCredICMSSN := 0.0; // Colocar o valor do Crédito end; end; // fim do case icms.csosn end; 2:begin // (...) end; 3:begin if qrnota_item.fieldbyname('cst').asstring = '000' then ICMS.CST := cst00; if qrnota_item.fieldbyname('cst').asstring = '010' then ICMS.CST := cst10; if qrnota_item.fieldbyname('cst').asstring = '020' then ICMS.CST := cst20; if qrnota_item.fieldbyname('cst').asstring = '030' then ICMS.CST := cst30; if qrnota_item.fieldbyname('cst').asstring = '040' then ICMS.CST := cst40; if qrnota_item.fieldbyname('cst').asstring = '041' then ICMS.CST := cst41; if qrnota_item.fieldbyname('cst').asstring = '050' then ICMS.CST := cst50; if qrnota_item.fieldbyname('cst').asstring = '051' then ICMS.CST := cst51; if qrnota_item.fieldbyname('cst').asstring = '060' then ICMS.CST := cst60; if qrnota_item.fieldbyname('cst').asstring = '070' then ICMS.CST := cst70; if qrnota_item.fieldbyname('cst').asstring = '080' then ICMS.CST := cst80; if qrnota_item.fieldbyname('cst').asstring = '081' then ICMS.CST := cst81; if qrnota_item.fieldbyname('cst').asstring = '090' then ICMS.CST := cst90; ICMS.modBC := dbiPrecoTabelado; ICMS.pICMS := qrnota_item.fieldbyname('ICMS').asfloat; ICMS.vICMS := qrnota_item.fieldbyname('valor_icms').asfloat; ICMS.vBC := qrnota_item.fieldbyname('base_calculo').asfloat; ICMS.orig := oeNacional; IPI.CST := ipi00; IPI.clEnq := ''; IPI.cEnq := '999'; end; end; // fim do case iCRT end; // fim do with imposto end; // fim do with det.add qrnota_item.Next; end; // fim do loop de itens // base de calculo do icms Total.ICMSTot.vBC := qrnota.fieldbyname('base_calculo').asfloat; // valor do icms Total.ICMSTot.vICMS := qrnota.fieldbyname('valor_icms').asfloat; // base de calculo st Total.ICMSTot.vBCST := qrnota.fieldbyname('base_sub').AsFloat; // valor st Total.ICMSTot.vst := qrnota.fieldbyname('icms_sub').AsFloat; // frete Total.ICMSTot.vFrete:= qrnota.fieldbyname('frete').asfloat; // seguro Total.ICMSTot.vSeg := qrnota.fieldbyname('seguro').AsFloat; // outras despesas Total.ICMSTot.vOutro:= qrnota.fieldbyname('OUTRAS_DESPESAS').asfloat; // ipi Total.ICMSTot.vIPI:= qrnota.fieldbyname('VALOR_TOTAL_IPI').asfloat; // valor da nota Total.ICMSTot.vNF := qrnota.fieldbyname('TOTAL_NOTA').asfloat; // valor dos produtos Total.ICMSTot.vProd := qrnota.fieldbyname('VALOR_PRODUTOS').asfloat; // desconto Total.ICMSTot.vDesc := qrnota.fieldbyname('DESCONTO').asfloat; //contas a pagar cobr.Fat.nFat := qrnota.fieldbyname('numero').AsString; cobr.Fat.vOrig := RoundTo(qrnota.fieldbyname('TOTAL_NOTA').asfloat, -2); cobr.Fat.vDesc := RoundTo(0.0, -2); cobr.Fat.vLiq := RoundTo(qrnota.fieldbyname('TOTAL_NOTA').asfloat, -2); for i:=1 to qrnota.fieldbyname('fat_qtde_prestacao').AsInteger do begin with Cobr.Dup.Add do begin // nDup := FormatFloat('00', i); -> para que o numero saisse 01, 02, 03... case i of 1: begin nDup := qrnota.fieldbyname('faturamento_numero1').AsString; dVenc := qrnota.fieldbyname('faturamento_data1').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor1').asfloat, -2); end; 2: begin nDup := qrnota.fieldbyname('faturamento_numero2').AsString; dVenc := qrnota.fieldbyname('faturamento_data2').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor2').asfloat, -2); end; 3: begin nDup := qrnota.fieldbyname('faturamento_numero3').AsString; dVenc := qrnota.fieldbyname('faturamento_data3').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor3').asfloat, -2); end; 4: begin nDup := qrnota.fieldbyname('faturamento_numero4').AsString; dVenc := qrnota.fieldbyname('faturamento_data4').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor4').asfloat, -2); end; 5: begin nDup := qrnota.fieldbyname('faturamento_numero5').AsString; dVenc := qrnota.fieldbyname('faturamento_data5').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor5').asfloat, -2); end; 6: begin nDup := qrnota.fieldbyname('faturamento_numero6').AsString; dVenc := qrnota.fieldbyname('faturamento_data6').AsDateTime; vDup := RoundTo(qrnota.fieldbyname('faturamento_valor6').asfloat, -2); end; end; end; end; //trasnportadora case qrnota.fieldbyname('frete_conta').AsInteger of 0 : Transp.modFrete := mfContaEmitente; 1 : Transp.modFrete := mfContaDestinatario; 2 : Transp.modFrete := mfContaTerceiros; 9 : Transp.modFrete := mfSemFrete; end; Transp.Transporta.CNPJCPF := qrtransportador2.fieldbyname('cpf').asstring; Transp.Transporta.xNome := Trim(qrtransportador2.fieldbyname('nome').asstring); Transp.Transporta.IE := qrtransportador2.fieldbyname('rg').asstring; Transp.Transporta.xEnder := Trim(qrtransportador2.fieldbyname('endereco').asstring)+', '+ Trim(qrtransportador2.fieldbyname('numero').asstring); Transp.Transporta.xMun := Trim(qrtransportador2.fieldbyname('cidade').asstring); Transp.Transporta.UF := qrtransportador2.fieldbyname('uf').asstring; Transp.retTransp.vServ := RoundTo(0.0, -2);; // X12 - Valor do Serviço Transp.retTransp.vBCRet := RoundTo(0.0, -2);; // X13 - BC da Retenção do ICMS Transp.retTransp.pICMSRet := RoundTo(0.0, -2);; // X14 - Alíquota da Retenção Transp.retTransp.vICMSRet := RoundTo(0.0, -2);; // X15 - Valor do ICMS Retido Transp.retTransp.CFOP := ''; // X16 - CFOP (Utilizar Tabela de CFOP) Transp.retTransp.cMunFG := 0; // X17 - Código do município de ocorrência do fato gerador do ICMS do transporte (Tabela do IBGE) if qrnota.fieldbyname('frete_conta').AsString = '9' then begin Transp.Transporta.xEnder := ''; Transp.veicTransp.placa := ''; Transp.veicTransp.UF := ''; Transp.veicTransp.RNTC := ''; // X21 - Registro Nacional de Transportador de Carga (ANTT) end else begin Transp.Transporta.xEnder := Trim(qrtransportador2.fieldbyname('endereco').asstring)+', '+ Trim(qrtransportador2.fieldbyname('numero').asstring); Transp.veicTransp.placa := qrnota.fieldbyname('placa').asstring; Transp.veicTransp.UF := qrnota.fieldbyname('placa_uf').asstring; Transp.veicTransp.RNTC := qrtransportador2.fieldbyname('antt').asstring; // X21 - Registro Nacional de Transportador de Carga (ANTT) end; end; //Dados sobre Volumes Transportados with Transp.Vol.Add do begin qVol := qrnota.fieldbyname('vol_qtde').AsInteger; esp := qrnota.fieldbyname('vol_especie').AsString; marca := qrnota.fieldbyname('vol_marca').AsString; nVol := qrnota.fieldbyname('vol_numero').AsString; pesoL := RoundTo(qrnota.fieldbyname('peso_liquido').AsFloat, -3); pesoB := RoundTo(qrnota.fieldbyname('peso_bruto').AsFloat, -3); end; // Informações complementares InfAdic.infCpl := qrnota.fieldbyname('inf1').asstring+';'+ qrnota.fieldbyname('inf2').asstring+';'+ qrnota.fieldbyname('inf3').asstring+';'+ qrnota.fieldbyname('inf4').asstring+';'+ qrnota.fieldbyname('inf5').asstring+';'; end; ACBrNFe1.NotasFiscais.Items[0].SaveToFile; result := ACBrNFe1.NotasFiscais.Items[0].NomeArq; MemoResp.Lines.LoadFromFile(PathWithDelim(ACBrNFe1.Configuracoes.Geral.PathSalvar)+copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID, (length(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.ID)-44)+1, 44)+'-NFe.xml'); LoadXML(MemoResp, WBResposta);
  10. ROBERNAL

    NFe Gerando varios Volumes

    Pessoal bom dia, estou precisando de ajuda urgente implanteia a NFe no cliente e na hora de imprimir o danfe ele esta gerando varias linhas (Ex. Se tiver 3 itens na nota ele esta gerando 3 linhas de volumes ), porfavor se poder me ajudar agradeço.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.