-
Total de ítens
52 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Wellington Cimples postou
-
Atualizei o schemas e deu certo obrigado, O Italo tambem me ajudou muito, valeu a todos
-
Bom dia estou tentando transmitir meu MDFE esta dando esse erro, alguém sabe como resolver e porque deste erro??
-
Boa tarde o que posso fazer para nao dar mais essa rejeição como posso fazer??
-
Como acrescentar valor de frete e pedagio para complementar o valor do serviço no cte?
um tópico no fórum postou Wellington Cimples ACBrCTe
Boa tarde estou com um problemão preciso acrescentar na impressao do cte, os valores complementares de valor do frete e de pedagio para que some no valor do serviço -
erro ao instalar o acbr
Wellington Cimples replied to Wellington Cimples's tópico in Dúvidas Gerais sobre o ACBr
valeu obrigado, na verdade eu nao tinha instalado o fortes report, por isto do erro, instalei o fortes e depois o acbr e deu certo obrigado -
Boa tarde alguem sabe como resolver isso
-
So pra voces entenderem Estou tentando implementar ao meu sistema de agronegocio, a NOTA FISCAL ELETRONICA, consegui este codigo acima e esta funcionando pra o estado de MG So que o da BAHIA da este erro, eu estou tentando colocar o ( NFe.autXML.Add.CNPJCPF := '12345678901'; ) bem acima deste mas aida nao funciona with NFe.Det.Add do begin NFe.autXML.Add.CNPJCPF := '12345678901'; Prod.nItem := i; Prod.xProd := LerCampo(Grupo, '|&|' + intTostr(i) + '|&|'); // retira o código '|&|1|&|' Grupo := copy(Grupo, 8, Length(Grupo)); Prod.qCom := ConverteStrToNumero(LerCampo(Grupo, '|&|')); como eu nunca mexi com NFE ta dando trabalho, mas vou apreder
-
Estou perdido, Se puderem me ajudar segue minha rotina pra gerar o xml, Onde posso colocar o codigo para aparecer no xml a tag para nao da o erro segue var NFe: TNFe; GeradorXML: TNFeW; ok, bIgnoraDuplicata: Boolean; dData, dDataSaida: TDateTime; i, posIni, posFim: Integer; sDataEmissao, sDataSaida, Versao, sTexto: String; CaminhoXML, Grupo, ArquivoTXT, ArquivoRestante, GrupoTmp: AnsiString; ArquivoItens, ArquivoItensTemp, ArquivoDuplicatas, ArquivoVolumes: AnsiString; produtos: Integer; begin NFe := TNFe.Create; ArquivoTXT := StringReplace(Arquivo, #$D#$A, '|&|', [rfReplaceAll]); ArquivoTXT := StringReplace(ArquivoTXT, ' |&|', '|&|', [rfReplaceAll]); { : Informações Cabeçalho da Nota } Grupo := SeparaAte('Dados da NF-e', ArquivoTXT, ArquivoRestante); NFe.infNFe.ID := OnlyNumber(LerCampo(Grupo, 'Chave de Acesso')); NFe.procNFe.chNFe := OnlyNumber(LerCampo(Grupo, 'Chave de acesso')); NFe.Ide.nNF := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'Número')), 0); NFe.Ide.cNF := NFe.Ide.nNF; Versao := LerCampo(Grupo, 'Versão XML'); if Trim(Versao) <> '2.00' then if Application.MessageBox (pwidechar('Atenção!' + #13#10 + 'Houve mudanças no layout do portal da nota fiscal eletrônica "nfe.fazenda.gov" podendo causar inconsistências dos dados na importação.' + #13#10 + 'Versão Suportada: ' + '2.00' + #13#10 + 'Versão do portal: ' + Trim(Versao) + #13#10 + 'Caso tenha dificuldades nesta consulta favor utilizar o XML original do emitente fornecedor.' + #13#10 + 'Deseja continuar mesmo assim?'), 'Aviso', mb_ok + MB_ICONWARNING) = ID_NO then raise Exception.Create('Operação de importação cancelada pelo usuário.'); Grupo := SeparaAte('Emitente', ArquivoRestante, ArquivoRestante); NFe.Ide.modelo := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'Modelo')), 55); NFe.Ide.serie := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'Série')), 1); // NFe.Ide.modelo := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 21, 2)); // NFe.Ide.serie := StrToInt(copy(SomenteNumeros(NFe.infNFe.ID), 23, 3)); if NFe.Ide.nNF = 0 then NFe.Ide.nNF := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'Número')), 0); sDataEmissao := LerCampo(Grupo, 'Data de Emissão'); if Length(sDataEmissao) > 0 then dData := EncodeDate(StrToInt(copy(sDataEmissao, 07, 4)), StrToInt(copy(sDataEmissao, 04, 2)), StrToInt(copy(sDataEmissao, 01, 2))) else dData := 0; sDataSaida := LerCampo(Grupo, 'Data/Hora Saída/Entrada'); if Length(sDataSaida) > 0 then dDataSaida := EncodeDate(StrToInt(copy(sDataEmissao, 07, 4)), StrToInt(copy(sDataEmissao, 04, 2)), StrToInt(copy(sDataEmissao, 01, 2))) else dDataSaida := 0; NFe.Ide.dEmi := dData; NFe.Ide.dSaiEnt := dDataSaida; NFe.Total.ICMSTot.vNF := ConverteStrToNumero(LerCampo(Grupo, 'ValorTotaldaNotaFiscal')); { : Emitente } Grupo := SeparaAte('Destinatário', ArquivoRestante, ArquivoRestante); NFe.Emit.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ')); NFe.Emit.xNome := LerCampo(Grupo, 'Nome / Razão Social'); NFe.Emit.IE := LerCampo(Grupo, 'Inscrição Estadual'); NFe.Emit.EnderEmit.UF := LerCampo(Grupo, 'UF'); { : Destinatário } Grupo := SeparaAte('Destino da operação', ArquivoRestante, ArquivoRestante); NFe.Dest.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ')); NFe.Dest.xNome := LerCampo(Grupo, 'Nome / Razão Social'); NFe.Dest.IE := LerCampo(Grupo, 'Inscrição Estadual'); NFe.Dest.EnderDest.UF := LerCampo(Grupo, 'UF'); { : Emissão } Grupo := SeparaAte('Dados do Emitente', ArquivoRestante, ArquivoRestante); NFe.Ide.procEmi := StrToProcEmi(ok, LerCampo(Grupo, 'Processo', 1)); NFe.Ide.verProc := LerCampo(Grupo, 'Versão do Processo'); NFe.Ide.tpEmis := StrToTpEmis(ok, LerCampo(Grupo, 'Tipo de Emissão', 1)); NFe.Ide.finNFe := StrToFinNFe(ok, LerCampo(Grupo, 'Finalidade', 1)); NFe.Ide.natOp := LerCampo(Grupo, 'Natureza da Operação'); NFe.Ide.tpNF := StrToTpNF(ok, LerCampo(Grupo, 'Tipo da Operação', 1)); NFe.Ide.indPag := StrToIndpag(ok, LerCampo(Grupo, 'Forma de Pagamento', 1)); NFe.procNFe.digVal := LerCampo(Grupo, 'Digest Value da NF-e'); NFe.procNFe.nProt := copy(LerCampo(Grupo, 'Autorização de Uso', 33), 18); NFe.procNFe.dhRecbto := dDataSaida; // **-- { : Emitente } Grupo := SeparaAte('Dados do destinatário', ArquivoRestante, ArquivoRestante); NFe.Emit.xNome := LerCampo(Grupo, 'Nome / Razão Social'); NFe.Emit.xFant := LerCampo(Grupo, 'Nome Fantasia'); NFe.Emit.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ')); NFe.Emit.EnderEmit.xLgr := LerCampo(Grupo, 'Endereço'); NFe.Emit.EnderEmit.xLgr := copy(NFe.Emit.EnderEmit.xLgr, 1, Pos(',', NFe.Emit.EnderEmit.xLgr) - 1); NFe.Emit.EnderEmit.nro := copy(LerCampo(Grupo, 'Endereço'), Pos(',', LerCampo(Grupo, 'Endereço')) + 1, 10); NFe.Emit.EnderEmit.xBairro := LerCampo(Grupo, 'Bairro / Distrito'); NFe.Emit.EnderEmit.CEP := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'CEP')), 0); NFe.Emit.EnderEmit.cMun := StrToIntDef(LerCampo(Grupo, 'Município', 7), 0); NFe.Ide.cUF := StrToIntDef(LerCampo(Grupo, 'Município', 2), 0); NFe.Emit.EnderEmit.xMun := copy(LerCampo(Grupo, 'Município'), 10, 60); NFe.Emit.EnderEmit.fone := OnlyAlphaNum(LerCampo(Grupo, 'Telefone')); NFe.Emit.EnderEmit.UF := LerCampo(Grupo, 'UF'); NFe.Emit.EnderEmit.cPais := StrToIntDef(LerCampo(Grupo, 'País', 4), 1058); NFe.Emit.EnderEmit.xPais := copy(LerCampo(Grupo, 'País'), 8, 60); NFe.Emit.IE := OnlyAlphaNum(LerCampo(Grupo, 'Inscrição Estadual')); NFe.Ide.cMunFG := StrToIntDef(LerCampo(Grupo, 'Município da Ocorrência do Fato Gerador do ICMS'), 0); NFe.Emit.CRT := StrToCRT(ok, Trim(LerCampo(Grupo, 'Código de Regime Tributário', 2))); { : Destinatário } Grupo := SeparaAte('Dados do Transporte', ArquivoRestante, ArquivoRestante); NFe.Dest.xNome := LerCampo(Grupo, 'Nome / Razão social'); NFe.Dest.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ/CPF')); NFe.Dest.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ')); NFe.Dest.EnderDest.xLgr := LerCampo(Grupo, 'Endereço'); NFe.Dest.EnderDest.xLgr := copy(NFe.Dest.EnderDest.xLgr, 1, Pos(',', NFe.Dest.EnderDest.xLgr) - 1); NFe.Dest.EnderDest.nro := copy(LerCampo(Grupo, 'Endereço'), Pos(',', LerCampo(Grupo, 'Endereço')) + 1, 10); NFe.Dest.EnderDest.xBairro := LerCampo(Grupo, 'Bairro / Distrito'); NFe.Dest.EnderDest.CEP := StrToIntDef(OnlyNumber(LerCampo(Grupo, 'CEP')), 0); NFe.Dest.EnderDest.cMun := StrToIntDef(LerCampo(Grupo, 'Município', 7), 0); NFe.Dest.EnderDest.xMun := copy(LerCampo(Grupo, 'Município'), 10, 60); NFe.Dest.EnderDest.fone := OnlyAlphaNum(LerCampo(Grupo, 'Telefone')); NFe.Dest.EnderDest.UF := LerCampo(Grupo, 'UF'); NFe.Dest.EnderDest.cPais := StrToIntDef(LerCampo(Grupo, 'País', 4), 1058); NFe.Dest.EnderDest.xPais := copy(LerCampo(Grupo, 'País'), 8, 60); NFe.Dest.IE := OnlyAlphaNum(LerCampo(Grupo, 'Inscrição estadual')); { : Totais } Grupo := copy(Grupo, Pos('Totais', Grupo), Length(Grupo)); NFe.Total.ICMSTot.vBC := ConverteStrToNumero(LerCampo(Grupo, 'Base de Cálculo ICMS')); NFe.Total.ICMSTot.vICMS := ConverteStrToNumero(LerCampo(Grupo, 'Valor do ICMS')); NFe.Total.ICMSTot.vBCST := ConverteStrToNumero(LerCampo(Grupo, 'Base de Cálculo ICMS ST')); NFe.Total.ICMSTot.vST := ConverteStrToNumero(LerCampo(Grupo, 'Valor ICMS Substituição')); NFe.Total.ICMSTot.vProd := ConverteStrToNumero(LerCampo(Grupo, 'Valor Total dos Produtos')); NFe.Total.ICMSTot.vFrete := ConverteStrToNumero(LerCampo(Grupo, 'Valor do Frete')); NFe.Total.ICMSTot.vSeg := ConverteStrToNumero(LerCampo(Grupo, 'Valor do Seguro')); NFe.Total.ICMSTot.vOutro := ConverteStrToNumero(LerCampo(Grupo, 'Outras Despesas Acessórias')); NFe.Total.ICMSTot.vIPI := ConverteStrToNumero(LerCampo(Grupo, 'Valor do IPI')); NFe.Total.ICMSTot.vIPI := ConverteStrToNumero(LerCampo(Grupo, 'Valor Total do IPI')); NFe.Total.ICMSTot.vNF := ConverteStrToNumero(LerCampo(Grupo, 'Valor Total da NFe')); NFe.Total.ICMSTot.vDesc := ConverteStrToNumero(LerCampo(Grupo, 'Valor Total dos Descontos')); NFe.Total.ICMSTot.vII := ConverteStrToNumero(LerCampo(Grupo, 'Valor do II')); NFe.Total.ICMSTot.vPIS := ConverteStrToNumero(LerCampo(Grupo, 'Valor do PIS')); NFe.Total.ICMSTot.vCOFINS := ConverteStrToNumero(LerCampo(Grupo, 'Valor da COFINS')); NFe.Total.ICMSTot.vTotTrib := ConverteStrToNumero(LerCampo(Grupo, 'Valor Aproximado dos Tributos')); { : Transportador } Grupo := SeparaAte('Dados de Cobrança', ArquivoRestante, ArquivoRestante); NFe.Transp.modFrete := StrTomodFrete(ok, LerCampo(Grupo, 'Modalidade do Frete', 1)); NFe.Transp.Transporta.CNPJCPF := OnlyNumber(LerCampo(Grupo, 'CNPJ')); NFe.Transp.Transporta.xNome := LerCampo(Grupo, 'Razão Social / Nome'); NFe.Transp.Transporta.IE := LerCampo(Grupo, 'Inscrição Estadual'); NFe.Transp.Transporta.xEnder := LerCampo(Grupo, 'Endereço Completo'); NFe.Transp.Transporta.xMun := LerCampo(Grupo, 'Município'); NFe.Transp.Transporta.UF := LerCampo(Grupo, 'UF'); NFe.Transp.veicTransp.placa := LerCampo(Grupo, 'Placa'); NFe.Transp.veicTransp.UF := LerCampo(Grupo, 'UF'); // Volumes if Pos('VOLUMES', UpperCase(Grupo)) > 0 then begin i := 0; posIni := Pos('VOLUMES', UpperCase(Grupo)) + Length('VOLUMES') + 3; ArquivoVolumes := copy(Grupo, posIni, Length(Grupo)); while true do begin NFe.Transp.Vol.Add; NFe.Transp.Vol.qVol := StrToIntDef(LerCampo(Grupo, 'Quantidade'), 0); NFe.Transp.Vol.esp := LerCampo(Grupo, 'Espécie'); NFe.Transp.Vol.marca := LerCampo(Grupo, 'Marca dos Volumes'); NFe.Transp.Vol.nVol := LerCampo(Grupo, 'Numeração'); NFe.Transp.Vol.pesoL := ConverteStrToNumero(LerCampo(Grupo, 'Peso Líquido')); NFe.Transp.Vol.pesoB := ConverteStrToNumero(LerCampo(Grupo, 'Peso Bruto')); Inc(i); Break; // Falta rotina para pegar vários volumes end; end; { : Dados de Cobrança } Grupo := SeparaAte('Informações Adicionais', ArquivoRestante, ArquivoRestante); if Trim(Grupo) = '' then begin Grupo := SeparaAte('Dados dos Produtos e Serviços', ArquivoRestante, ArquivoRestante); bIgnoraDuplicata := true; end; if not bIgnoraDuplicata then begin NFe.Cobr.Fat.nFat := LerCampo(Grupo, 'Número'); NFe.Cobr.Fat.vOrig := ConverteStrToNumero(LerCampo(Grupo, 'Valor Original')); NFe.Cobr.Fat.vDesc := ConverteStrToNumero(LerCampo(Grupo, 'Valor Desconto')); NFe.Cobr.Fat.vLiq := ConverteStrToNumero(LerCampo(Grupo, 'Valor Líquido')); // Duplicatas if Pos('DUPLICATAS', UpperCase(Grupo)) > 0 then begin i := 0; posIni := Pos('DUPLICATAS', UpperCase(Grupo)) + Length('DUPLICATAS') + 3; ArquivoDuplicatas := copy(Grupo, posIni, Length(Grupo)); posIni := Pos('VALOR', UpperCase(ArquivoDuplicatas)) + Length('VALOR') + 4; ArquivoDuplicatas := copy(ArquivoDuplicatas, posIni, Length(ArquivoDuplicatas)); while true do begin NFe.Cobr.Dup.Add; NFe.Cobr.Dup.nDup := copy(ArquivoDuplicatas, 1, Pos('|&|', ArquivoDuplicatas) - 1); ArquivoDuplicatas := copy(ArquivoDuplicatas, Pos('|&|', ArquivoDuplicatas) + 3, Length(ArquivoDuplicatas)); NFe.Cobr.Dup.dVenc := StrToDateDef(copy(ArquivoDuplicatas, 1, Pos('|&|', ArquivoDuplicatas) - 1), 0);; ArquivoDuplicatas := copy(ArquivoDuplicatas, Pos('|&|', ArquivoDuplicatas) + 3, Length(ArquivoDuplicatas)); NFe.Cobr.Dup.vDup := ConverteStrToNumero(copy(ArquivoDuplicatas, 1, Pos('|&|', ArquivoDuplicatas) - 1));;; ArquivoDuplicatas := copy(ArquivoDuplicatas, Pos('|&|', ArquivoDuplicatas) + 3, Length(ArquivoDuplicatas)); Inc(i); if Length(ArquivoDuplicatas) <= 4 then Break; end; end; end; { : Informações Adicionais Rodapé Nota } Grupo := SeparaAte('Dados dos Produtos e Serviços', ArquivoRestante, ArquivoRestante); if Pos('INFORMAÇÕES COMPLEMENTARES DE INTERESSE DO FISCO', UpperCase(Grupo)) > 0 then begin posIni := Pos('INFORMAÇÕES COMPLEMENTARES DE INTERESSE DO FISCO', UpperCase(Grupo)) + Length('INFORMAÇÕES COMPLEMENTARES DE INTERESSE DO FISCO') + 4; posFim := Pos('|&|', UpperCase(copy(Grupo, posIni, Length(Grupo)))) - 1; NFe.InfAdic.infAdFisco := copy(Grupo, posIni, posFim); end; if Pos('INTERESSE DO CONTRIBUINTE', UpperCase(Grupo)) > 0 then begin posIni := Pos('INTERESSE DO CONTRIBUINTE', UpperCase(Grupo)) + Length('INTERESSE DO CONTRIBUINTE') + 15; posFim := Pos('|&|', UpperCase(copy(Grupo, posIni, Length(Grupo)))) - 1; NFe.InfAdic.infCpl := copy(Grupo, posIni, posFim); end; Grupo := SeparaAte('Dados de Nota Fiscal Avulsa', ArquivoRestante, Grupo); // OBSERVAÇÕES DO CONTRIBUINTE if Pos('OBSERVAÇÕES DO CONTRIBUINTE', UpperCase(Grupo)) > 0 then begin i := 0; posIni := Pos('OBSERVAÇÕES DO CONTRIBUINTE', UpperCase(Grupo)) + Length('OBSERVAÇÕES DO CONTRIBUINTE') + 3; ArquivoDuplicatas := copy(Grupo, posIni, Length(Grupo)); posIni := Pos('TEXTO', UpperCase(ArquivoDuplicatas)) + Length('TEXTO') + 4; ArquivoDuplicatas := copy(ArquivoDuplicatas, posIni, Length(ArquivoDuplicatas)); while true do begin NFe.InfAdic.obsCont.Add; NFe.InfAdic.obsCont.xCampo := copy(ArquivoDuplicatas, 1, Pos('|&|', ArquivoDuplicatas) - 1); ArquivoDuplicatas := copy(ArquivoDuplicatas, Pos('|&|', ArquivoDuplicatas) + 3, Length(ArquivoDuplicatas)); NFe.InfAdic.obsCont.xTexto := copy(ArquivoDuplicatas, 1, Pos('|&|', ArquivoDuplicatas) - 1); ArquivoDuplicatas := copy(ArquivoDuplicatas, Pos('|&|', ArquivoDuplicatas) + 3, Length(ArquivoDuplicatas)); Inc(i); if Length(ArquivoDuplicatas) <= 4 then Break; end; end; { : Itens da nota } ArquivoItens := SeparaAte('Receita Federal', ArquivoRestante, ArquivoRestante); produtos := 0; while true do begin ArquivoItensTemp := copy(ArquivoItens, 88, Length(ArquivoItens)); // aqui faz o teste com o inteiro para achar quantidade de produtos for i := 1 to 990 do begin if Pos('|&|' + intTostr(i) + '|&|', ArquivoItensTemp) > 0 then Inc(produtos); end; for i := 1 to produtos do begin if i < produtos then Grupo := SeparaAte('|&|' + intTostr(i + 1) + '|&|', ArquivoItensTemp, ArquivoItensTemp) // separa até o proximo inteiro else Grupo := ArquivoItensTemp; with NFe.Det.Add do begin Prod.nItem := i; Prod.xProd := LerCampo(Grupo, '|&|' + intTostr(i) + '|&|'); // retira o código '|&|1|&|' Grupo := copy(Grupo, 8, Length(Grupo)); Prod.qCom := ConverteStrToNumero(LerCampo(Grupo, '|&|')); // separa até a próxima tag |&| Grupo := copy(Grupo, Pos('|&|', Grupo) + 3, Length(Grupo)); Prod.uCom := LerCampo(Grupo, '|&|'); // separa até a próxima tag |&| Grupo := copy(Grupo, Pos('|&|', Grupo) + 3, Length(Grupo)); Prod.vProd := ConverteStrToNumero(LerCampo(Grupo, '|&|')); // separa até a próxima tag |&| Grupo := copy(Grupo, Pos('|&|', Grupo) + 3, Length(Grupo)); // Daqui em diante continua mesmo layout Prod.cProd := LerCampo(Grupo, 'Código do Produto'); Prod.NCM := LerCampo(Grupo, 'Código NCM'); Prod.CFOP := LerCampo(Grupo, 'CFOP'); Prod.vOutro := ConverteStrToNumero(LerCampo(Grupo, 'Outras despesas acessórias')); Prod.vDesc := ConverteStrToNumero(LerCampo(Grupo, 'Valor do Desconto')); Prod.vFrete := ConverteStrToNumero(LerCampo(Grupo, 'Valor Total do Frete')); Prod.vSeg := ConverteStrToNumero(LerCampo(Grupo, 'Valor do Seguro')); Prod.IndTot := StrToindTot(ok, LerCampo(Grupo, 'Indicador de Composição do Valor Total da NF-e', 2)); Prod.cEAN := LerCampo(Grupo, 'Código EAN Comercial'); Prod.uCom := LerCampo(Grupo, 'Unidade Comercial'); Prod.qCom := ConverteStrToNumero(LerCampo(Grupo, 'Quantidade Comercial')); Prod.cEANTrib := LerCampo(Grupo, 'Código EAN Tributável'); Prod.uTrib := LerCampo(Grupo, 'Unidade Tributável'); Prod.qTrib := ConverteStrToNumero(LerCampo(Grupo, 'Quantidade Tributável')); Prod.vUnCom := ConverteStrToNumero(LerCampo(Grupo, 'Valor unitário de comercialização')); Prod.vUnTrib := ConverteStrToNumero(LerCampo(Grupo, 'Valor unitário de tributação')); Prod.xPed := LerCampo(Grupo, 'Número do pedido de compra'); Prod.nItemPed := StrToIntDef(LerCampo(Grupo, 'Item do pedido de compra'), 0); Prod.nFCI := LerCampo(Grupo, 'Número da FCI'); if LerCampo(Grupo, 'Chassi do veículo ') <> '' then begin // preencher as tags referente a veículo Prod.veicProd.chassi := LerCampo(Grupo, 'Chassi do veículo '); Prod.veicProd.cCor := LerCampo(Grupo, 'Cor '); Prod.veicProd.xCor := LerCampo(Grupo, 'Descrição da cor '); Prod.veicProd.nSerie := LerCampo(Grupo, 'Serial (Série) '); Prod.veicProd.tpComb := LerCampo(Grupo, 'Tipo de Combustível '); Prod.veicProd.nMotor := LerCampo(Grupo, 'Número de Motor '); // Prod.veicProd.RENAVAM := LerCampo(Grupo,'RENAVAM'); Prod.veicProd.anoMod := StrToInt(LerCampo(Grupo, 'Ano Modelo de Fabricação ')); Prod.veicProd.anoFab := StrToInt(LerCampo(Grupo, 'Ano de Fabricação ')); end; with Imposto.ICMS do begin orig := StrToOrig(ok, LerCampo(Grupo, 'Origem da Mercadoria', 1)); CST := StrToCSTICMS(ok, Trim(LerCampo(Grupo, 'Tributação do ICMS', 3))); if not ok then CST := cstVazio; CSOSN := StrToCSOSNIcms(ok, Trim(LerCampo(Grupo, 'Código de Situação da Operação', 4))); if not ok then CSOSN := csosnVazio; // separa até a próxima tag GrupoTmp := copy(Grupo, Pos('Modalidade', Grupo), Length(Grupo)); // lança impostos if CST <> cstVazio then begin modBC := StrTomodBC(ok, Trim(LerCampo(Grupo, 'Modalidade Definição da BC ICMS NORMAL', 1))); if not ok then modBC := dbiValorOperacao; // ICMS Normal vBC := ConverteStrToNumero(LerCampo(GrupoTmp, 'Base de Cálculo do ICMS Normal')); pICMS := ConverteStrToNumero(LerCampo(GrupoTmp, 'Alíquota do ICMS Normal')); vICMS := ConverteStrToNumero(LerCampo(GrupoTmp, 'Valor do ICMS Normal')); // ICMS ST vBCST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Base de Cálculo do ICMS ST')); pICMSST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Alíquota do ICMS ST')); vICMSST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Valor do ICMS ST')); pRedBCST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Percentual Redução de BC do ICMS ST')); pMVAST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Percentual do MVA do ICMS ST')); modBCST := StrTomodBCST(ok, Trim(LerCampo(Grupo, 'Modalidade Definição da BC ICMS ST', 1))); if not ok then modBCST := dbisMargemValorAgregado; // separa até a TAG alíquota // GrupoTmp := copy(GrupoTmp, Pos('Alíquota do ICMS Normal', GrupoTmp), Length(GrupoTmp)); end else // se for do simples nacional csosn begin modBCST := StrTomodBCST(ok, Trim(LerCampo(Grupo, 'Modalidade de determinação da BC do ICMS ST', 1))); if not ok then modBCST := dbisMargemValorAgregado; pMVAST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Percentual da margem de valor Adicionado do ICMS ST')); pRedBCST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Percentual da Redução de BC do ICMS ST')); vBCST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Valor da BC do ICMS ST')); pICMSST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Alíquota do imposto do ICMS ST')); vICMSST := ConverteStrToNumero(LerCampo(GrupoTmp, 'Valor do ICMS ST')); end; end; // PIS with Imposto.PIS do begin CST := pis01; vBC := 0; pPIS := 0; vPIS := 0; qBCProd := 0; vAliqProd := 0; end; // COFINS with Imposto.COFINS do begin CST := cof01; vBC := 0; pCOFINS := 0; vCOFINS := 0; vBCProd := 0; vAliqProd := 0; end; // COFINSST with Imposto.COFINSST do begin vBC := 0; pCOFINS := 0; vCOFINS := 0; vAliqProd := 0; end; // IPI if (LerCampo(Grupo, '|&|IMPOSTO SOBRE PRODUTOS INDUSTRIALIZADOS|&|') <> '') then begin Grupo := copy(Grupo, Pos('|&|IMPOSTO SOBRE PRODUTOS INDUSTRIALIZADOS|&|', Grupo), Length(Grupo)); with Imposto.IPI do begin cEnq := LerCampo(Grupo, 'Código de Enquadramento'); clEnq := LerCampo(Grupo, 'Classe de Enquadramento'); cSelo := LerCampo(Grupo, 'Código do Selo'); CNPJProd := LerCampo(Grupo, 'CNPJ do Produtor'); qSelo := StrToIntDef(LerCampo(Grupo, 'Qtd. Selo'), 0); CST := StrToCSTIPI(ok, LerCampo(Grupo, 'CST', 2)); qUnid := ConverteStrToNumero(LerCampo(Grupo, 'Qtd Total Unidade Padrão')); vUnid := ConverteStrToNumero(LerCampo(Grupo, 'Valor por Unidade')); vIPI := ConverteStrToNumero(LerCampo(Grupo, 'Valor IPI')); vBC := ConverteStrToNumero(LerCampo(Grupo, 'Base de Cálculo')); GrupoTmp := Copy(Grupo,Pos('Valor IPI',Grupo), length(Grupo)); pIPI := ConverteStrToNumero(LerCampo(GrupoTmp, 'Alíquota')); end; end; end; end; Break; end; GeradorXML := TNFeW.Create(NFe); try // GeradorXML.schema := TsPL005c; GeradorXML.GerarXML; CaminhoXML := PathWithDelim(ExtractFilePath(Application.ExeName)) + 'nfe\xml_entradas\' + copy(NFe.infNFe.ID, (Length(NFe.infNFe.ID) - 44) + 1, 44) + '-nfe.xml'; GeradorXML.Gerador.SalvarArquivo(CaminhoXML); Result := CaminhoXML; finally GeradorXML.Free; end; NFe.Free; end;
-
como gerar um cte no exemplo acbrcte
Wellington Cimples replied to Wellington Cimples's tópico in ACBrCTe
Obrigado pela resposta rapida Vamos la Estou com um certificado de um cliente meu aqui, para testar, Primeiro passo e clicar no botão criar e enviar correto ele me pede o numero do conhecimento depois ele me pede o lote, mas este lote eu nao tenho e coloco qualquer numero?? quando coloco numero 1 por exemplo ele aparece este erro nenhum cte adicionado ao lote, na verdade e eu tentar gerar um cte no exemplo, e adptar a rotina dos botões no exemplo no meus cadastros no meu sistema, para isto eu preciso tentar gerar um no exemplo primeiro agradeço se me ajudarem, pois preciso implementar ate final de dezembro -
Boa tarde Estou tentando implementar a rotina do acbrcte no meu sistema, so que eu nao sei como ele e gerado, no exemplo Alguem poderia me explicar como posso gerar um cte no exemplo do acbr pois preciso enternder ele para eu acoplar na minha rotina aguardo
-
Boa tarde Alguem pode me da um ideia porque deste erro e como resolver??
-
ok pesquisei, vou abrir outro topico topico resolvido
-
Agora tentando o acbrnfe ao abrir o demo deu este erro alguem sabe como resolver??
-
juliomar deu certo eu tinha copiados as dll, mas nao tinha colocado o caminho da library obrigado, O exemplo do acbrCTE esta rodando normalmente, agora estou tentando o ACBRNFE qualquer duvido posto. obrigado
-
juliomar obrigado pela resposta mas coloquei as dll no system32 mas continua o erro
-
descobri este erro so quando tem o componente ACBRNFE no form , ele aparece na aba mas nao aceita eu colocar no form. Parece que nao esta instalado so este componente Alguem pode me ajudar
-
consegui instalar o TACBRTeDACTeRL como queria mas quando abro o exemplo acbrCTE, aparece este erro e nao deixa eu fazer nada
-
consegui instalar o acbr , e o forts report, agora aparece este erro quando abro o exemplo access violation at address 40026952 in module rtl70.bpl read of address 00000000
-
Gente nao to conseguindo instalar o componente ACBRCTE VEJA O LOG ACBr_NFeDanfeRL.dpk(76) Fatal: Required package 'frce' not found Compilation failure Erro ao compilar o pacote "ACBr_NFeDanfeRL.dpk". Abortando... Ocorreram erros na compilação dos pacotes. Alguem pode me ajudar a instalar o ACBRCTE, ???
-
instalei mas continua o erro, agora ta dando este erro Fversao := Leitor.rAtributo('versao', 'retConsReciCTe');
-
Valeu Vou instalar ele aqui pra ver, e te retorno