Jump to content

Scheila Dornelles

Membros
  • Content Count

    28
  • Joined

  • Last visited

Community Reputation

7 Neutral

1 Follower

About Scheila Dornelles

  • Rank
    Membro

Recent Profile Visitors

537 profile views
  1. Não sei se consegui explicar claramente, mas tem esse problema então, de gravação no passo anterior que ao reverter em caso de exceção, mantém o subtotal do desconto já alterado.
  2. Então, mas ao executar LerArqIni ele vai ler o valor que já foi atualizado no passo anterior, visto que o subtotaliza é executado sem erros. Só os valores da venda do item são retornados e não os subtotais: procedure TACBrECFVirtualClass.SubtotalizaCupom(DescontoAcrescimo: Double; MensagemRodape : AnsiString ); var ValorTotal: Double; PosAliqItem, I: Integer; begin GravaLog( ComandoLOG ); if not (Estado in [estVenda, estNaoFiscal]) then raise EACBrECFERRO.create(ACBrStr('O Estado nao é "VENDA" Cupom não Aberto')) ; if SubTotal <= 0 then raise EACBrECFERRO.create(ACBrStr('Nenhum Item foi vendido ainda')) ; try { Essa atribuição irá recomputar o total por aliquota, considerando o Rateio desse Desconto / Acrescimo, nos totais por aliquota do Cupom. Veja "TACBrECFVirtualClassCupom.SetDescAcresSubtotal" } fpCupom.DescAcresSubtotal := DescontoAcrescimo; fpEstado := estPagamento ; if (DescontoAcrescimo < 0) then begin fpTotalDescontosICMS := fpTotalDescontosICMS - fpCupom.DescAcresSubtotalICMS; fpTotalDescontosISSQN := fpTotalDescontosISSQN - fpCupom.DescAcresSubtotalISSQN; end else begin fpTotalAcrescimosICMS := fpTotalAcrescimosICMS + fpCupom.DescAcresSubtotalICMS; fpTotalAcrescimosISSQN := fpTotalAcrescimosISSQN + fpCupom.DescAcresSubtotalISSQN; { Se for Acréscimo, deve somar em GT e Venda Bruta } fpVendaBruta := fpVendaBruta + DescontoAcrescimo; fpGrandeTotal := fpGrandeTotal + DescontoAcrescimo; end; { Recomputando Total Diário das Aliquotas. Lista fpCupom.Aliquotas, contem o total por Aliquota do Cupom, já considerando se o rateio de Desconto e Acrescimo no SubTotal } if fpCupom.Aliquotas.Count > 0 then begin { Primeiro, vamos remover o ValorTotal por Item, que já havia sido adicionado em "VendeItem"; } For I := 0 to fpCupom.Itens.Count-1 do begin with fpCupom.Itens do begin ValorTotal := TotalLiquido; PosAliqItem:= AliqPos; end; with fpAliquotas[ PosAliqItem ] do Total := max(Total - ValorTotal, 0) ; end; { Agora, vamos adicionar o total computado por aliquota usada no cupom. Essa lista já contem o rateio do Desconto/Acrescimo dessa operação } for I := 0 to fpCupom.Aliquotas.Count-1 do begin with fpCupom.Aliquotas do begin ValorTotal := TotalLiquido; PosAliqItem:= AliqPos; end; with fpAliquotas[ PosAliqItem ] do Total := max(Total + ValorTotal, 0) ; end; end; SubtotalizaCupomVirtual( MensagemRodape ); GravaArqINI ; - - - > aqui atualiza o valor do fpTotalDescontosICMS por exemplo, sem erros except LeArqINI ; raise; end ; end;
  3. Bom dia, Utilizo o ACBrECFVirtual para realizar as operações do SAT. Encontrei divergência no valor relacionado aos descontos totais ( fpTotalDescontosICMS da unit ACBrECFVirtual ) quando da emissão do relatório da Redução Z para a seguinte situação: - Rejeição do CFe SAT: por exemplo ao informar um valor de cpf inválido 00.000.000/0000-00. Ao realizar debug, verifiquei que o campo fpTotalDescontosICMS é atualizado ao subtotalizar o cupom (TACBrECFVirtualClass.SubtotalizaCupom), onde o arquivo .ini é atualizado, e somente posteriormente a este passo, será chamada a rotina em TACBrECFVirtualSATClass.FechaCupomVirtual. Se houver 3 rejeições seguidas para o mesmo CFe, então o valor do desconto será acrescentado 3x no campo de desconto total, fazendo que ao ser emitido o relatório da Z, o valor líquido das vendas do dia esteja incorreto. Gostaria de saber como posso proceder neste caso, devo implementar no evento OnErrorFechaCupom para ajustar os valores dos totalizadores do arquivo Ini ? Ou poderia ser alterado o momento da gravação dos campos totais do arquivo ini somente após a efetivação da operação? Alguma sugestão para a correção a ser realizada? Att. Scheila H. Dorneles
  4. Não consegui verificar exatamente porque ele acaba caindo no raise 'Erro ao obter Dados da Redução Z', pois não consegui debugar propriamente, não tenho esse ecf para desenvolvimento o que dificulta pra mim. Talvez EscECFResposta.TBR seja zerada em algum momento pelo ecf, ou talvez algum campo em específico não retornou corretamente o resultado invalidando o conjunto todo de informações. Não sei, pode ser que tenha algo mais influenciando, e acabou estourando ali, o que eu consegui testar foi uma versão com o loop e uma versão sem, pois de acordo com as alterações realizadas na unit na revisão alteração nessa função teria sido só essa. Na versão sem o loop o comportamento era normal, retornando os dados corretamente e com o loop gerava a exceção. E só com esse modelo, com outras marcas não ocorre a exceção.
  5. Instalei o driver e na porta COM funcionou corretamente. Obrigada. Att. Scheila
  6. Boa tarde, Estou utilizando versão 4.9 da dll, mesma versão disponibilizada na pasta de dll pelo ACBr. É interessante que funcionava muito bem até a revisão que eu citei, com a porta USB. Fiz um teste na função GetDadosUltimaReducaoZ da ACBrECFEscECF, onde foi alterado o trecho adicionando número de tentativas para a mensagem de erro. Não consigo debugar melhor para apontar exatamente a causa, pois o ecf está no cliente, mas deu pra checar que no formato antigo conseguia receber a resposta do ECF. De: RetornaInfoECF( '17|'+IntToStr(ECFCRZ) ) ; // DEBUG //WriteToTXT('C:\TEMP\REDZ.TXT', EscECFResposta.Params.Text, False, False); if (UpperCase(copy(EscECFResposta.Params.Text, 0, 5)) = 'ERRO:') then raise EACBrECFERRO.Create(ACBrStr(EscECFResposta.Params.Text)) ; Para: Tentativas := 0; repeat RetornaInfoECF( '17|'+IntToStr(ECFCRZ) ) ; // DEBUG //WriteToTXT('C:\TEMP\REDZ.TXT', EscECFResposta.Params.Text, False, False); if (UpperCase(copy(EscECFResposta.Params.Text, 0, 5)) = 'ERRO:') then raise EACBrECFERRO.Create(ACBrStr(EscECFResposta.Params.Text)) ; Inc( Tentativas ); until (EscECFResposta.TBR > 0) or (Tentativas > 2); if (EscECFResposta.TBR = 0) then raise EACBrECFERRO.Create(ACBrStr('Erro ao obter Dados da Redução Z: '+IntToStr(ECFCRZ))) ; Vou testar o driver sugerido e verificar se há alguma alteração. Att, Scheila
  7. Bom dia, Após atualização recente dos fontes, começamos a obter erro na função que retorna os dados da redução Z para impressoras Epson T900F. Fiz o teste da função com uma Bematech 4200 FI II e uma Daruma e ambas trouxeram corretamente os dados da última redução, sendo um problema retornado apenas pelo modelo da Epson. Gostaria de saber se alguém teve um problema similar com esse modelo de ECF. Fiz o teste pelo ECF Teste(Variáveis > Mapa Resumo > Dados da última Redução Z) , apenas acionado a função. Verifiquei também que o erro é apresentado a partir da revisão 14219 de 30/11 na unit ACBrECFEscECF. Em anexo log gerado pelo ECF. Desde já agradeço por possíveis sugestões para solução do problema, Att. Scheila acbrlog.txt
  8. Bom dia, Alguém sabe dizer quando utilizaremos a base simples e quando utilizaremos a base dupla? Fiquei um pouco confusa quanto à isso pois há menção sobre se o cliente é contribuinte ou não em operação não presencial, em alguns fóruns li que seria determinado por estado.
  9. Eu pelo menos verifico semanalmente e no momento que tive o problema no início da semana passada não havia nada nem no svn e nem em discussão aqui, pelo menos não o meu problema exatamente. Por questão de urgência acabamos encontrando esse meio de ter os componentes funcionando concomitantemente, mas ótimo saber que já está disponível a correção.
  10. Bom, você não disse em que situação ou qual tipo de relatório está usando, mas se estiver usando fast, eu tive um problema parecido quando há mais de um componente de impressão acbr em fast na mesma tela (como a impressão da Nf-e por exemplo), ou data module (como era o meu caso). A simples existência deles na mesma unit é conflituosa. Resolvi mantendo os componentes separadamente.
  11. Olá, Ciga não tem nem webService disponibilizado ainda, pelo que parece está em contrução. Entrei em contato com setor de desenvolvimento deles e por enquanto não oferecem nenhuma ferramenta para integração. O que estou desenvolvendo para o meu cliente é que a importação do arquivo xml da nfse emitida pelo sistema deles. Por enquanto resta aguardar.
  12. Boa tarde, Gostaria de sugerir a inclusão do provedor Ciga para a cidade de Fraiburgo. Seguem arquivos com modificação sugerida. Att. Scheila pnfsConversao.rar
×
×
  • Create New...