Ir para conteúdo
  • Cadastre-se

snoopyfael

Membros
  • Total de ítens

    14
  • Registro em

  • Última visita

Posts postados por snoopyfael

  1. Segundo o manual do BPe as formas de pagamento são: 01-Dinheiro;02-Cheque;03-Cartão de Crédito;04-Cartão de Débito;05-Vale Transporte;99 -Outros

    Fiz as modificações no arquivo para atender o BPe.

    PCNComum/pcnConversao.pas

    TpcnFormaPagamentoBPe = (fpDinheiroBPe, fpChequeBPe, fpCartaoCreditoBPe, fpCartaoDebitoBPe, fpValeTransporteBPe,
                            fpOutroBPe);
    
    function FormaPagamentoBPeToStr(const t: TpcnFormaPagamentoBPe): string;
    function FormaPagamentoBPeToDescricao(const t: TpcnFormaPagamentoBPe): string;
    function StrToFormaPagamentoBPe(out ok: boolean; const s: string): TpcnFormaPagamentoBPe;
    
    function FormaPagamentoBPeToStr(const t: TpcnFormaPagamentoBPe): string;
    begin
      result := EnumeradoToStr(t, ['01', '02', '03', '04', '05', '99'],
                                  [fpDinheiroBPe, fpChequeBPe, fpCartaoCreditoBPe, fpCartaoDebitoBPe, fpValeTransporteBPe,
                                   fpOutroBPe ]);
    end;
    
    function FormaPagamentoBPeToDescricao(const t: TpcnFormaPagamentoBPe): string;
    begin
      result := EnumeradoToStr(t,  ['Dinheiro', 'Cheque', 'Cartão de Crédito', 'Cartão de Débito', 'Vale Transporte',
                                   'Outro'],
                                   [fpDinheiroBPe, fpChequeBPe, fpCartaoCreditoBPe, fpCartaoDebitoBPe, fpValeTransporteBPe,
                                    fpOutroBPe]);
    end;
    
    function StrToFormaPagamentoBPe(out ok: boolean; const s: string): TpcnFormaPagamentoBPe;
    begin
      result := StrToEnumerado(ok, s, ['01', '02', '03', '04', '05', '99'],
                                      [fpDinheiroBPe, fpChequeBPe, fpCartaoCreditoBPe, fpCartaoDebitoBPe, fpValeTransporteBPe,
                                       fpOutroBPe]);
    end;

    ACBrDFe/ACBrBPe/ACBrBPeBilhetes.pas

    tPag    := StrToFormaPagamentoBPe(OK, sFim);

    ACBrDFe/ACBrBPe/DABPE/EscPos/ACBrBPeDABPeESCPOS.pas

    FPosPrinter.Buffer.Add('<c>' + ACBrStr(PadSpace(FormaPagamentoBPeToDescricao(FpBPe.pag.Items[i].tPag) +

    ACBrDFe/ACBrBPe/PCNBPe/pcnBPe.pas

    FtPag: TpcnFormaPagamentoBPe;
    
    property tPag: TpcnFormaPagamentoBPe read FtPag write FtPag;

    ACBrDFe/ACBrBPe/PCNBPe/pcnBPeR.pas

    BPe.Pag[i].tPag    := StrToFormaPagamentoBPe(ok, Leitor.rCampo(tcStr, 'tPag'));

    ACBrDFe/ACBrBPe/PCNBPe/pcnBPeW.pas

    Gerador.wCampo(tcStr, '#162', 'tPag    ', 02, 002, 1, FormaPagamentoBPeToStr(BPe.pag[i].tPag), DSC_TPAG);
    
    if(BPe.pag[i].tPag in [fpCartaoDebitoBPe,fpCartaoCreditoBPe]) and

     

    Segue arquivo para validação das modificações.

    ACBrBPeBilhetes.pas ACBrBPeDABPeESCPOS.pas pcnBPe.pas pcnBPeR.pas pcnBPeW.pas pcnConversao.pas

  2. Bom dia a todos,

     

    Foram feitas algumas alterações e correções, pois o nosso colega Nicolas detectou que a rotina esta anexando ao CTe somente um evento, sendo que o retorno da consulta a situação atual pode conter 1 ou mais e no teste que ele realizou continha 3 eventos.

     

    Alem dessa correção foi incluída uma nova propriedade chamada RetCTeDFe que pode ser lida logo após realizar a consulta.

     

    sXMLFinal := ACBrCTe1.WebServices.Consulta.RetCTeDFe;

     

    Por favor atualizem os fontes e realizem novos testes para que possamos arredondar essa funcionalidade.

     

    Bom dia Italo,

     

    Atualizei os fontes e fiz um teste aqui, a variável ACBrCTe1.WebServices.Consulta.RetCTeDFe esta sempre retornando vazia, mesmo o arquivo sendo gerado correto.

     

    Segue xml em anexo.

    31140616883860000150570020000766971000766973-CTeDFe.xml

  3. Justamente, na versão 2.0 do Cte, somente a chave do cte complementado é utilizado e enviado para a Receita. 

     

    Isso esta disponivel no Manual_CTe_v2_0.pdf pagina 148.

     

    O que acredito que esteja pendente de fazer, é no Dacte do Acbr, retirar a impressão de varios Ctes complementados deixando apenas 1 e retirar o Valor complementado, restando somente 1 chave do Cte complementado.

     

    Como migramos da versão 1.4 para 2.0 isso pasou dispercebido...

     

    Problema e convencer os clientes que não é necessarios sair impresso esse valor mais.

  4. Se vc esta usando a versão 2.0 do Cte, onde vc esta informando o valor complementado, uma vez que segundo a nota técnica so existe o campo chave do Cte complementado. 

                 with InfCTeComp do
                    begin
                      Chave := Cabecalho.Chave;
                      vPresComp.vTPrest := Rodape.ValorFrete;
    
  5. Debugando a unit pcteCTeR:

      (* Grupo da TAG <infCteComp> ************************************************)
      if Leitor.rExtrai(1, 'infCteComp') <> ''
      then begin
        CTe.InfCTeComp.Chave := Leitor.rCampo(tcStr, 'chave');
    
        if Leitor.rExtrai(2, 'vPresComp') <> ''
        then begin
          CTe.infCTeComp.vPresComp.vTPrest := Leitor.rCampo(tcDe2,'vTPrest');
    
          i01 := 0;
          while Leitor.rExtrai(3, 'compComp', '', i01 + 1) <> '' do
          begin
            CTe.InfCTeComp.vPresComp.compComp.Add;
            CTe.InfCTeComp.vPresComp.compComp[i01].xNome := Leitor.rCampo(tcStr, 'xNome');
            CTe.InfCTeComp.vPresComp.compComp[i01].vComp := Leitor.rCampo(tcDe2, 'vComp');
            inc(i01);
          end;
        end;
    

    Mas no xml as informaçõs dos valores complementados não vem dentro da tag <infCteComp> segue xml usado.

    31140416883860000150570010000000221000000229.xml

  6. Bom dia

    O problema está ao carregar o xml ao componente?

    ao efetuar o load chegaram a debugar pra ver como está preenchendo o componente?

    assim será fácil de achar o problema!

     

    Meu problema é ao carregar o xml ao componente...

     

    Vou adicionar as units ao projeto para debugar.

  7. Estou tendo um problema parecido ao imprimir a DACTE o valor complementado sai corretamente, mas ao carregar o componente com o XML via LoadFromStream o valor complementado sempre sai zero. 

     

    Alguma solução para esse problema?

  8. Bom dia snoopyfael,

    O que acontece é que o retorno de eventos em MG está vindo com namespace, impossibilitando que a leitura correta do retorno.

    Para interpretar o retorno eu fiz uma alteração em uma Unit e cheguei a postar neste tópico:

     

    Italo, se puder fazer a alteração proposta agradecemos.

     

    Obrigado Nellien, vou fazer o teste aqui.

  9. Bom dia snoopyfael,

     

    Você tem o arquivo de retorno após o envio da CC-e?

     

    Se sim, post como anexo.

     

    Segue retorno em Anexo: retorno.xml

     

     

    Se tentar enviar novamente recebo o retorno que o evento esta duplicado. Mas em todos os casos esta entrando na except raise EACBrCTeException.Create('Erro Desconhecido ao Enviar Evento de CT-e!')

  10.  Segue e-mail recebido ontem pela SEFAZ.

     

    Favor efetuar um teste (homologação).

     

    Segundo a área de TI o problema com CCe e cancelamento na versão 2.0 foi corrigido ontem em homologação.

     

    Att.,

    Equipe SINTEGRA/MG - DED/DIEF/SAIF
    Secretaria de Estado de Fazenda de Minas Gerais
    Superintendência de Arrecadação e Informações Fiscais

     

    Fazendo o teste aqui o retorno é stat=135 e mesmo assim retorna o erro de  'Erro Desconhecido ao Enviar Evento de CT-e!', consultando o CTe pelo http://portalcte.fazenda.mg.gov.br/consultas.html não tem como identificar se foi ou não enviada a CCe.

  11. Bom dia.

    Em MG esta ocorrendo esse erro sempre. Já entrei em contato 2 vezes com a Sefaz e tive a mesma resposta:

     

     

    Envie também sua reclamação pelo fale conosco... quem sabe aumentando o número de reclamações eles fazem algo a respeito

     

    Muito obrigado Nellien, estava quebrando a cabeça aqui...

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