Ir para conteúdo
  • Cadastre-se

wmrodrigo

Membros
  • Total de ítens

    10
  • Registro em

  • Última visita

Posts postados por wmrodrigo

  1. Saudações,

    Na última sexta-feira, 18/10/2019, identificamos um problema ao imprimir documentos fiscais confirmados do tipo CT-e OS. Fiz as devidas atualizações do ACBr no dia de hoje 21/10/2019 para me certificar que estava com a versão mais recente, porém o problema persiste.

    Após análise do problema "RLCTe: Erro durante preparação do relatório EListError(List index out of bounds (0))", realizamos a seguinte alteração no arquivo "ACBrTrunk\Fontes\ACBrDFe\ACBrCTe\DACTE\Fortes\ACBrCTeDACTeRLRetrato.pas", linha 780.

    { Código versionado }
    if (fpCTe.infCTeNorm.infDoc.infNFe.Count > 0) or
       (fpCTe.infCTeNorm.docAnt.emiDocAnt.Items[0].idDocAnt.Count > 0) then
    begin
      rllTituloCNPJ1.Caption := 'CHAVE DO DF-e';
      rllTituloCNPJ2.Caption := 'CHAVE DO DF-e';
      rllTituloSerie1.Caption := '';
      rllTituloSerie2.Caption := '';
    end;
    
    { Código alterado }
    if (fpCTe.infCTeNorm.infDoc.infNFe.Count > 0) or
       (fpCTe.infCTeNorm.docAnt.emiDocAnt.Count > 0) then
    begin
      rllTituloCNPJ1.Caption := 'CHAVE DO DF-e';
      rllTituloCNPJ2.Caption := 'CHAVE DO DF-e';
      rllTituloSerie1.Caption := '';
      rllTituloSerie2.Caption := '';
    end;

    Segue em anexo o arquivo modificado para análise.

     ACBrCTeDACTeRLRetrato.pas

    Grato pela atenção,

    []'s!

    • Obrigado 1
  2. Saudações,

    No corrente mês, realizamos implantações da NFS-e em alguns municípios que não contém informações no arquivo "Cidades.ini". Foi realizada inclusão manual destes e estão funcionando corretamente. Creio que, disponibilizar/incluir essas informações, facilitará posteriores implementações. Segue abaixo a lista de municípios e respectivas informações para serem acrescidas ao Cidades.ini.

    [4302204]
    Nome=Boa vista do Buricá
    UF=RS
    Provedor=ABase
    
    [4319158]
    Nome=São Miguel das Missões
    UF=RS
    Provedor=ABase
    
    [4322103]
    Nome=Tucunduva
    UF=RS
    Provedor=ABase
    
    [4322301]
    Nome=Tuparendi
    UF=RS
    Provedor=ABase
    
    [4315057]
    Nome=Porto Mauá
    UF=RS
    Provedor=ABase
    
    [4315404]
    Nome=Redentora
    UF=RS
    Provedor=ABase
    
    [4313805]
    Nome=Palmitinho
    UF=RS
    Provedor=IPM
    
    [4306072]
    Nome=Cristal do Sul
    UF=RS
    Provedor=IPM
    
    [4317202]
    Nome=Santa Rosa
    UF=RS
    Provedor=IPM
    
    [4314456]
    Nome=Pinhal
    UF=RS
    Provedor=Digifred
    
    [4310504]
    Nome=Iraí
    UF=RS
    Provedor=Digifred
    
    [4307500]
    Nome=Espumoso
    UF=RS
    Provedor=Digifred
    
    [4323507]
    Nome=Vista Alegre
    UF=RS
    Provedor=Betha

    Grato pela atenção,

    []'s!

  3. Saudações,

    Ao realizar o cancelamento de uma NFS-e para o provedor "Digifred" de Frederico Westphalen - RS, ocorre erro após a assinatura do XML. Após assinar o XML, o componente tenta carregar o XML assinado e nesse momento ocorre o erro. Alterei o raise EACBrDFeException do arquivo "ACBrDFeXsMsXmlCapicom" linha 115  para exibir o "parseError.reason" e neste consta que a tag "CancelarNfseEnvio" não havia sido fechada corretamente.

    Verifiquei que, no arquivo "ACBrNFSeWebServices", o procedimento "DefinirDadosMsg" passou por melhorias, porém, parte do código que ajustava a constante "FdocElemento" para o provedor "Digifred" foi removido.

    Na versão 16575 tinha-se o seguinte:

    case FProvedor of
      proISSe,
      proBetha: FdocElemento := 'Pedido';
      
      proDBSeller: FdocElemento := FPrefixo3 + 'Pedido></' + FTagGrupo + '></CancelarNfse';
    
      proBHISS,
      proPublica,
      proBethav2,
      proDigifred,
      proISSJoinville,
      proFiorilli,
      proSystemPro: FdocElemento := FPrefixo3 + 'Pedido></' + FTagGrupo;
    
      proGinfes,
      proISSDSF,
      proEquiplano,
      proInfisc,
      proInfiscv11,
      proSP,
      proThema,
      proNotaBlu: FdocElemento := FTagGrupo;
    
    //      proISSNet: FdocElemento := FPrefixo3 + 'Pedido></p1:' + FTagGrupo;
    
      proSMARAPD: FdocElemento := 'nfd';
    
      proIPM: FdocElemento := 'nfse';
    else
      FdocElemento := FPrefixo3 + 'Pedido';
    end;

    O case citado acima, concatenava algumas informações para o provedor "Digifred", o que não acontece na versão 16736.

    Código adicionado para solucionar o problema:

    case FProvedor of
      proDigifred: FdocElemento := FdocElemento + '></' + FTagGrupo;
    end;

    Para solucionar o problema e liberar o cliente, adicionei o código acima, porém, contempla apenas o provedor "Digifred". Não possuo clientes que utilizam os demais provedores para realizar testes e prover uma solução mais completa.

    O ACBr foi atualizado hoje 21/03/2019 10:00 e esta na versão 16736.

    Grato pela atenção

    []'s!

     

  4. Bom dia,

    Após realização de alguns testes foi identificado problema na impressão das informações dos campos Uso Exclusivo do Emissor do CT-e (ObsCont) e Reservado ao Fisco (ObsFisco). Ao incluir mais de 4 registros a qualquer um dos campos ocorrem inconsistências na impressão com o componente FortesReport.

    O campo Uso Exclusivo do Emissor do CT-e (ObsCont) corta a informação do quinto registro e não exibe os registros do sexto ao décimo, e, o campo Reservado ao Fisco (ObsFisco), exibe uma linha em branco antes de imprimir as informações cadastradas pelo usuário e, não exibe os registros do quarto ao décimo.

    Os fontes do ACBr foram atualizados no dia de hoje 07/12/2018 às 10h30.

    Para solucionar o descrito, realizei algumas modificações no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.pas e no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.dfm (ambos em anexo).

    ACBrCTeDACTeRLRetrato.dfm

    object rlb_16_DadosExcEmitente: TRLBand
          Left = 26
          Top = 1985
          Width = 742
          Height = 70
          AutoSize = True
          BandType = btHeader
          Color = clWhite
          ParentColor = False
          BeforePrint = rlb_16_DadosExcEmitenteBeforePrint
          object RLDraw71: TRLDraw
            Left = 0
            Top = 1
            Width = 741
            Height = 67
            Brush.Style = bsClear
          end
          object RLLabel165: TRLLabel
            Left = 566
            Top = 4
            Width = 102
            Height = 12
            Caption = 'RESERVADO AO FISCO'
            Color = clWhite
            Font.Charset = DEFAULT_CHARSET
            Font.Color = clWindowText
            Font.Height = -9
            Font.Name = 'Times New Roman'
            Font.Style = []
            ParentColor = False
            ParentFont = False
            Transparent = False
          end
          object RLLabel7: TRLLabel
            Left = 142
            Top = 4
            Width = 171
            Height = 12
            Caption = 'USO EXCLUSIVO DO EMISSOR DO CT-E'
            Color = clWhite
            Font.Charset = DEFAULT_CHARSET
            Font.Color = clWindowText
            Font.Height = -9
            Font.Name = 'Times New Roman'
            Font.Style = []
            ParentColor = False
            ParentFont = False
            Transparent = False
          end
          object rlmObsExcEmitente: TRLMemo
            Left = 5
            Top = 17
            Width = 492
            Height = 49
    		AutoSize = True
            Behavior = [beSiteExpander]
            Color = clWhite
            Font.Charset = DEFAULT_CHARSET
            Font.Color = clWindowText
            Font.Height = -9
            Font.Name = 'Times New Roman'
            Font.Style = []
            IntegralHeight = True
            Lines.Strings = (
              'OBS LINHA 1'
              'OBS LINHA 2')
            ParentColor = False
            ParentFont = False
          end
          object RLDraw27: TRLDraw
            Left = 1
            Top = 15
            Width = 740
            Height = 1
            HelpContext = 1
            Brush.Style = bsClear
            DrawKind = dkLine
          end
          object RLDraw3: TRLDraw
            Left = 500
            Top = 1
            Width = 1
            Height = 67
            Angle = 90.000000000000000000
            Brush.Style = bsClear
            DrawKind = dkLine
          end
          object rlmObsFisco: TRLMemo
            Left = 509
            Top = 17
            Width = 228
            Height = 49
    		AutoSize = True
            Behavior = [beSiteExpander]
            Color = clWhite
            Font.Charset = DEFAULT_CHARSET
            Font.Color = clWindowText
            Font.Height = -9
            Font.Name = 'Times New Roman'
            Font.Style = []
            IntegralHeight = True
            Lines.Strings = (
              'OBS LINHA 1'
              'OBS LINHA 2')
            ParentColor = False
            ParentFont = False
          end
        end

     

    ACBrCTeDACTeRLRetrato.pas (linha 2333)

    procedure TfrmDACTeRLRetrato.rlb_16_DadosExcEmitenteBeforePrint(Sender: TObject;
      var PrintIt: boolean);
    var
      i, vHeight: integer;
    begin
      inherited;
      PrintIt := RLCTe.PageNumber = 1;
    
      rlmObsExcEmitente.Lines.BeginUpdate;
      rlmObsExcEmitente.Lines.Clear;
      rlmObsFisco.Lines.BeginUpdate;
      rlmObsFisco.Lines.Clear;
    
      for i := 0 to (fpCTe.Compl.ObsCont.Count - 1) do
        with fpCTe.Compl.ObsCont.Items[i] do
        begin
          rlmObsExcEmitente.Lines.Add(StringReplace(xCampo, '<BR>',
            #13#10, [rfReplaceAll, rfIgnoreCase]) + ': ' +
            StringReplace(xTexto, '<BR>', #13#10, [rfReplaceAll, rfIgnoreCase]));
        end;
    
      rlmObsExcEmitente.Lines.Text :=
        StringReplace(rlmObsExcEmitente.Lines.Text, ';', #13, [rfReplaceAll]);
      rlmObsExcEmitente.Lines.EndUpdate;
    
      // Incluido por Italo em 17/09/2012
      if Length(Trim(fpCTe.Imp.infAdFisco)) > 0 then
        rlmObsFisco.Lines.Add(StringReplace(fpCTe.Imp.infAdFisco, '<BR>',
          #13#10, [rfReplaceAll, rfIgnoreCase]));
    
      for i := 0 to (fpCTe.Compl.ObsFisco.Count - 1) do
        with fpCTe.Compl.ObsFisco.Items[i] do
        begin
          rlmObsFisco.Lines.Add(StringReplace(xCampo, '<BR>', #13#10,
            [rfReplaceAll, rfIgnoreCase]) + ': ' + StringReplace(xTexto,
            '<BR>', #13#10, [rfReplaceAll, rfIgnoreCase]));
        end;
    
      rlmObsFisco.Lines.Text := StringReplace(rlmObsFisco.Lines.Text, ';',
        #13, [rfReplaceAll]);
      rlmObsFisco.Lines.EndUpdate;
    
      if (rlmObsExcEmitente.Lines.Count > 0) or (rlmObsFisco.Lines.Count > 0) then
      begin
        vHeight := rlmObsExcEmitente.Height + 20;
        if rlmObsFisco.Height > rlmObsExcEmitente.Height then
          vHeight := rlmObsFisco.Height + 20;
    
        RLDraw71.Height := vHeight;
        RLDraw3.Height  := vHeight;
      end;
    end;

    A validação abaixo foi incluída para remover a linha em branco adicionada automaticamente ao imprimir o documento fiscal

    // Incluido por Italo em 17/09/2012
    if Length(Trim(fpCTe.Imp.infAdFisco)) > 0 then
      rlmObsFisco.Lines.Add(StringReplace(fpCTe.Imp.infAdFisco, '<BR>',
        #13#10, [rfReplaceAll, rfIgnoreCase]));

     

    ACBrCTeDACTeRLRetrato.dfm

    ACBrCTeDACTeRLRetrato.pas

    • Curtir 2
  5. Bom dia,

    Ao efetuar alguns testes de CT-e's em ambiente de homologação, ocorreram inconsistências com os campos da Previsão do fluxo da carga.

    O campo "#64" - xOrig e o campo "#67" - xDest estão com tamanho divergente do especificado no Manual da CT-e V 3.00 e retornam alerta ao validar o XML.

    Para sanar a inconsistência foi efetuada alteração no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/PCNCTe/pcteCTeW.pas (em anexo) nas linhas 650 e 662 na procedure TCTeW.GerarFluxo.

    procedure TCTeW.GerarFluxo;
    var
      i: Integer;
    begin
      if (trim(CTe.Compl.fluxo.xOrig) <> '') or (CTe.Compl.fluxo.pass.Count > 0) or
         (trim(CTe.Compl.fluxo.xDest) <> '') or (trim(CTe.Compl.fluxo.xRota) <> '') then
      begin
        Gerador.wGrupo('fluxo', '#063');
        Gerador.wCampo(tcStr, '#064', 'xOrig ', 01, 60, 0, CTe.Compl.fluxo.xOrig, DSC_XORIG);
    
        for i := 0 to CTe.Compl.fluxo.pass.Count - 1 do
        begin
          Gerador.wGrupo('pass', '#065');
          Gerador.wCampo(tcStr, '#066', 'xPass ', 01, 15, 1, CTe.Compl.fluxo.pass[i].xPass, DSC_XPASS);
          Gerador.wGrupo('/pass');
        end;
    
        if CTe.Compl.fluxo.pass.Count > 990 then
          Gerador.wAlerta('#065', 'pass', DSC_PASS, ERR_MSG_MAIOR_MAXIMO + '990');
    
        Gerador.wCampo(tcStr, '#067', 'xDest ', 01, 60, 0, CTe.Compl.fluxo.xDest, DSC_XDEST);
        Gerador.wCampo(tcStr, '#068', 'xRota ', 01, 10, 0, CTe.Compl.fluxo.xRota, DSC_XROTA);
        Gerador.wGrupo('/fluxo');
      end;
    end;

    Na imagem em anexo é possível verificar a divergência.

    pcteCTeW.pas

    divergência_campos.jpg

    • Curtir 2
  6. Boa Tarde,

    Após relato de cliente sobre problemas na impressão das informações do campo Observações, identificou-se que, dependendo da formatação da String setada no campo "ACBrCTe1.Conhecimentos.Add.CTe.Compl.xObs" a impressão do CT-e com o componente FortesReport apresentou alguns comportamentos inconsistentes.

    Ao setar o campo "xObs" com String no formato "1000_caracteres_aleatórios" + #13 + "500_caracteres_aleatórios" resulta na impressão dos primeiros 1000 caracteres e os demais não são exibidos.

    Ao setar o campo "xObs" com String no formato "1000_caracteres_aleatórios" + "1000_caracteres_formatados_com_diversos_parágrafos" resulta na impressão de parte da informação e parte da informação extrapola o limite do campo Observações (imagem em anexo).

    Para solucionar o descrito, realizei algumas modificações no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.pas e no arquivo acbr/code/trunk2/Fontes/ACBrDFe/ACBrCTe/DACTE/Fortes/ACBrCTeDACTeRLRetrato.dfm (ambos em anexo).

    ACBrCTeDACTeRLRetrato.dfm

    object rlmObs: TRLMemo
    	Left = 5
    	Top = 19
    	Width = 730
    	Height = 45
    	AutoSize = True
    	Behavior = [beSiteExpander]
    	Color = clWhite
    	Font.Charset = DEFAULT_CHARSET
    	Font.Color = clWindowText
    	Font.Height = -8
    	Font.Name = 'Times New Roman'
    	Font.Style = []
    	IntegralHeight = True
    	Lines.Strings = (
    	  'OBS LINHA 1'
    	  'OBS LINHA 2'
    	  'OBS LINHA 3'
    	  'OBS LINHA 4')
    	ParentColor = False
    	ParentFont = False
      end

    ACBrCTeDACTeRLRetrato.pas (linha 2113)

    // Ajusta o tamanho do quadro conforme a OBS
    rlsQuadro08.Height := rlmObs.Height + 20;

     

     

    inconsistência_observações.jpg

    ACBrCTeDACTeRLRetrato.dfm

    ACBrCTeDACTeRLRetrato.pas

    • Curtir 2
×
×
  • 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.

The popup will be closed in 10 segundos...