Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2813 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá,

Estou ajustando o sistema para emissão do CT-e 3.00 e tive que adicionar um novo campo para Observações de CT-e Globalizado.

Foi adicionado o campo 'ObsGlobalizado' no DataSet "cdsIdentificacao".

E o no momento de setar as informações foi Alterado de:

if indGlobalizado = tiSim then
   FieldByName('indGlobalizado').AsString  := 'Sim'
else
   FieldByName('indGlobalizado').AsString  := 'Não';

Para:

if indGlobalizado = tiSim then
   begin
      FieldByName('indGlobalizado').AsString  := 'Sim';
      if (Trim(FCTe.infCTeNorm.infGlobalizado.xObs) <> '') then
         FieldByName('ObsGlobalizado').AsString  := FCTe.infCTeNorm.infGlobalizado.xObs;
   end
else
   FieldByName('indGlobalizado').AsString  := 'Não';

Efetuei outra alteração referente aos Documentos Originários que não eram informados em CT-e de Redespacho Intermediário e Vinculado e Multimodal. Porem segundo manual da SeFaz a inserção desses dados é opcional, sendo assim, devido a uma solicitação de um cliente, alterei a unit 'pcteCTeW' de:

procedure TCTeW.GerarInfCTeNorm;
var
 versao: String;
begin
  if (CTe.Ide.tpCTe = tcNormal) or (CTe.Ide.tpCTe = tcSubstituto) then
  begin
    Gerador.wGrupo('infCTeNorm', '#252');

    if (CTe.infCTe.versao >= 3) and (CTe.ide.modelo = 67) then
    begin
      GerarinfServico;
      GerarinfDocRef;
      GerarInfSeg;
    end
    else begin
      GerarinfCarga;

      if (CTe.Ide.tpServ <> tsIntermediario) and (CTe.Ide.tpServ <> tsMultimodal)
       then GerarInfDoc;

      if CTe.infCTeNorm.docAnt.emiDocAnt.Count > 0
       then GerarDocAnt;

      if CTe.infCTe.versao = 2 then
        GerarInfSeg;
    end;
...

Para:

procedure TCTeW.GerarInfCTeNorm;
var
 versao: String;
begin
  if (CTe.Ide.tpCTe = tcNormal) or (CTe.Ide.tpCTe = tcSubstituto) then
  begin
    Gerador.wGrupo('infCTeNorm', '#252');

    if (CTe.infCTe.versao >= 3) and (CTe.ide.modelo = 67) then
    begin
      GerarinfServico;
      GerarinfDocRef;
      GerarInfSeg;
    end
    else begin
      GerarinfCarga;
      GerarInfDoc;

      if CTe.infCTeNorm.docAnt.emiDocAnt.Count > 0
       then GerarDocAnt;

      if CTe.infCTe.versao = 2 then
        GerarInfSeg;
    end;
...

As Units alteradas estão em anexo e me mantenho a disposição para esclarecimentos.

 

Att

José S. Simione

ACBrCTeDACTEFR.pas

pcteCTeW.pas

Postado (editado)

A alteração referente aos Documentos Transportados na UNIT  pcteCTeW pode ignorar por hora, estou verificando com a SeFaz, pois a uma discrepância nas informações do Manual. 

Acontece que o campo cita essas informações como Opcionais nesses casos, porem existe uma validação que apresenta uma Rejeição nesses casos.

Separei os pontos que estou questionando a SeFaz, assim que me retornarem eu posto aqui. 

Segue em anexo.

 

Rejeição.png

Campo.png

Editado por José S. Simione
Postado

O fr3 que estou trabalhando vai compor muitas mudanças referentes ao CT-e 3.00, como a remoção de algumas informações da DACTe e do XML, isso requer mudanças em outras UNITs. Creio que vai fugir do assunto do tópico.

Devo abrir outro tópico para isso?

  • Este tópico foi criado há 2813 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.