-
Total de ítens
52 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Wellington Cimples
-
-
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??
-
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
-
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
-
Turma
Obrigado pelas dicas, dei conta conforme orientações de voces , muito obrigado, agora estou começando a entender a nfe.
resolvido
-
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
beginNFe.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
- 1
-
desculpe ter postado pensei que ficaria mais facil,
Vou tentar aqui conforme Ricardo orientou,
-
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
beginif 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; -
Segue xml,
Agnaldo posso colocar ela em qualquer lugar no codigo??
-
Rejeição: Não informado o Grupo de Autorização para UF que exige a identificação do Escritório de Contabilidade na Nota Fiscal.
Alguem pode me ajudar a resolver isto, no estado de MG, funciona normal , mas na Bahia da este erro
qual a forma mais facil de resolver isto.
-
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
-
-
ok
pesquisei, vou abrir outro topico
topico resolvido
-
-
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
1 minuto atrás, Wellington Cimples disse: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 que esta dando erro
Alguem pode me ajudar
-
-
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, ??? -
-
Valeu
Vou instalar ele aqui pra ver, e te retorno
erro ao transmitir o MDFE
em ACBrMDFe
Postado
Atualizei o schemas e deu certo obrigado, O Italo tambem me ajudou muito, valeu a todos