Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 26-11-2016 em todas as áreas

  1. Prezados, Nos deparamos com a seguinte situação durante a validação da remessa gerada em um cliente, a remessa no layout c400 para o banco sicoob (BANCOOB) e estamos tendo problema no arquivo de remessa com relação a taxa de ValorMoraJuros, onde ocorreu que, naturalmente informamos o valor em reais do que tem de ser cobrado de juros/mora por dia após o vencimento, com isso o boleto é impresso corretamente e apresenta a seguinte frase: "Cobrar Juros de R$ X,XX por dia de atraso para pagamento a partir de xx/xx/xxxx" o valor e a data são preenchidos conforme os valores informados no componente, o que está correto. Até aí tudo certo e conferido, no entanto ao gerar a remessa o nosso cliente foi informado pelo banco que a taxa de mora estava muito alta e quando conferiu com o boleto gerado, realmente estava, pois conforme demonstraremos abaixo o banco exige a taxa de mora mês mas e o componente informa o Valor de mora mês . Na planilha da sicoob que mostra as regras de Layout para a geração dos arquivos e constatamos que este banco requer que seja informado a "Taxa de mora mês", enquanto o boleto recebe o "ValorMoraJuros" que é ao dia, segue como está na planilha do banco: Até onde pudemos verificar nos outros posts e nos fontes da geração dos demais bancos, é uma particularidade desse banco, assim imaginei que isso pudesse ser ajustado no momento da geração do arquivo que, segundo a linha de código do arquivo ACBrBancoBancoob.pas trata como Valor de mora mês, pois multiplica o mesmo por 30, mas o próprio comentário indica que o campo exige a taxa: IntToStrZero( Round( (ValorMoraJuros * 30) *10000 ), 6) + // Taxa de mora mês Como temos o Valor do boleto, o Valor da mora diária todos em reais, seria possível obter a taxa de mora mês para alimentar este campo e gerar a remessa corretamente, mas gostaria da opinião dos colegas mais entendidos quanto a sistemática de desenvolvimento dos componentes ACBr, pois não tenho a intenção de fazer mudanças grossas em algo que, talvez nem necessite de correção ou se for o caso tenha uma solução mais elegante. Mas se for o caso de realizar a alteração e essa linha de pensamento for o caminho, me proponho a alterar, testar e postar os arquivos aqui. Segue a planilha de orientação do banco: LAYOUTS.xls Agradeço a colaboração.
    1 ponto
  2. Bom dia, A justificativa tem que ter pelo menos 15 caracteres.
    1 ponto
  3. ACBrETQ já adicionado no ACBrFramework.
    1 ponto
  4. Boa noite Valdir, Com certeza a solução é essa, já fiz a alteração e vou disponibilizar no repositório.
    1 ponto
  5. Modificações no SVN... Por favor mantenha sempre o foco do post... se necessário crie um novo post, para um novo assunto... Não há erros de compilação nos fontes... e SIM, a ACBrTEFDClass.pas foi modificada para que fpCodigoAutorizacaoTransacao seja String; e ela não existe em ACBrTEFD Provavelmente o problema está nos seus fontes...
    1 ponto
  6. Bom dia colegas, gostei da atualização sugerida só que na Epson ainda não estava funcionando. Envio correção. Quero pedir também que tomem um pouco de cuidado ao comitar os códigos pois as units ACBrTEFD e ACBrTEFDClass ainda estavam com a property CodigoAutorizacaoTransacao como Integer ao contrário do que diz a alteração publicada em www.projetoacbr.com.br/forum/index.php?showtopic=33615 ACBrSerial-change-log.txt ACBrECFEscECF.pas
    1 ponto
  7. Bom dia, Certo, entendi o que ocorre. O problema é que quando dhIniViagem NÃO é alimentada, seu valor fica 0 (30/12/1899). Então, mesmo sendo uma data inválida, o campo TEM valor e isso faz com que o componente gere a tag. Mas esse valor não passa na validação do XML do WS. Sugiro que essa rotina seja alterada para: if MDFe.ide.dhIniViagem > 0 then begin if VersaoDF = ve100 then Gerador.wCampo(tcDatHor, '#024a', 'dhIniViagem', 19, 19, 0, MDFe.ide.dhIniViagem, DSC_DHINIVIAGEM) else Gerador.wCampo(tcStr, '#024a', 'dhIniViagem', 25, 25, 0, FormatDateTime('yyyy-mm-dd"T"hh:nn:ss', MDFe.ide.dhIniViagem) + GetUTC(CodigoParaUF(MDFe.ide.cUF), MDFe.ide.dhIniViagem), DSC_DHINIVIAGEM); end; Dessa forma a tag só seria criada no XML se dhIniViagem tiver sido alimentada com uma data válida. Obrigado!
    1 ponto
×
×
  • 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.