Ir para conteúdo
  • Cadastre-se

Flavio A. Zago

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Contact Methods

  • Website URL
    http://www.gerenteonline.com.br

Últimos Visitantes

635 visualizações

Flavio A. Zago's Achievements

Newbie

Newbie (1/14)

  • First Post
  • Conversation Starter
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputação

  1. Bom dia. Encontrei um problema ao tentar imprimir boletos para o banco ITAU com DataMulta diferente do vencimento, ( ACBrMonitorPlus ). Incluí a linha em destaque abaixo no DoBoletoUnit.pas para sanar o ocorrido. DataMoraJuros := StrToDateDef(Trim(aIni.ReadString(Sessao,'DataMoraJuros','')),0); DataMulta := StrToDateDef(Trim(aIni.ReadString(Sessao,'DataMulta','')),0); DataProtesto := StrToDateDef(Trim(aIni.ReadString(Sessao,'DataProtesto','')),0); Não sei se esta modificação pode ser incluída no SVN. Sem esta correção, o seguinte trecho do ACBrBoleto.pas não funciona corretamente. if PercentualMulta <> 0 then begin if DataMulta <> 0 then AStringList.Add(ACBrStr('Cobrar Multa de ' + FormatCurr('R$ #,##0.00', IfThen(MultaValorFixo, PercentualMulta, ValorDocumento*( 1+ PercentualMulta/100)-ValorDocumento)) + ' a partir '+FormatDateTime('dd/mm/yyyy',ifthen(Vencimento = DataMulta, IncDay(DataMulta,1),DataMulta)))) else AStringList.Add(ACBrStr('Cobrar Multa de ' + FormatCurr('R$ #,##0.00', IfThen(MultaValorFixo, PercentualMulta, ValorDocumento*( 1+ PercentualMulta/100)-ValorDocumento)) + ' após o vencimento.')); end; Obrigado. Flavio
  2. Bom dia. Primeiramente, obrigado por responder. Como disse, não sou programador DELPHI/LAZARUS, então não conheço as sintaxes das funções, mas quando alterei o referido trecho do código, passou a gerar o digito na posição correta do arquivo de remessa. Veja abaixo como estava e como ficou. ANTES: {SEGMENTO P} Result:= '748' + // 001 a 003 - Código do banco na compensação '0001' + // 004 a 007 - Lote de serviço = "0001" '3' + // 008 a 008 - Tipo de registro = "3" DETALHE IntToStrZero( (2 * ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo)) + 1 , 5) + // 009 a 013 - Nº sequencial do registro do lote 'P' + // 014 a 014 - Cód. segmento do registro detalhe Space(1) + // 015 a 015 - Uso exclusivo FEBRABAN/CNAB '01' + // 016 a 017 - Código de movimento remessa PadLeft(OnlyNumber(Agencia), 5,'0') + // 018 a 022 - Agência mantenedora da conta Space(1) + // 023 a 023 - Dígito verificador da agência PadLeft(OnlyNumber(Conta), 12, '0') + // 024 a 035 - Número da conta corrente ContaDigito + // 036 a 036 - DV Conta Asim não funciona ( Não sai o digito no arquivo de remessa) Space(1) + // 037 a 037 - Dígito verificador da coop/ag/conta PadRight(OnlyNumber(MontarCampoNossoNumero(ACBrTitulo)), 20, '0')+ // 038 a 057 - Identificação do título no banco '1' + // 058 a 058 - Código da carteira '1' + // 059 a 059 - Forma de cadastro do título no banco '2' + // 060 a 060 - Tipo de documento '2' + // 061 a 061 - Identificação de emissão do bloqueto '2' + // 062 a 062 - Identificação da distribuição PadRight(NumeroDocumento, 15) + // 063 a 077 - Nº do documento de cobrança FormatDateTime('ddmmyyyy', Vencimento) + // 078 a 085 - Data de vencimento do título IntToStrZero(Round(ValorDocumento * 100), 15) + // 086 a 100 - Valor nominal do título '00000' + // 101 a 105 - Coop./Ag. encarregada da cobrança Space(1) + // 106 a 106 - Dígito verificador da coop./agência PadLeft(Especie, 2, '0') + // 107 a 108 - Espécie do título AceiteStr + // 109 a 109 - Identificação de título aceito/não aceito FormatDateTime('ddmmyyyy', DataDocumento) + // 110 a 117 - Data da emissão do título IfThen(ValorMoraJuros = 0, '3', '1') + // 118 a 118 - Código do juro de mora '00000000' + // 119 a 126 - Data do juro de mora IntToStrZero(Round(ValorMoraJuros * 100), 15) + // 127 a 141 - Juros de mora por dia/taxa '1' + // 142 a 142 - Código do desconto 1 IfThen(ValorDesconto = 0, '00000000', FormatDateTime('ddmmyyyy', Vencimento)) + // 143 a 150 - Data do desconto 1 IntToStrZero(Round(ValorDesconto * 100), 15) + // 151 a 165 - Valor percentual a ser concedido IntToStrZero(Round(ValorIOF * 100), 15) + // 166 a 180 - Valor do IOF a ser recolhido IntToStrZero(Round(ValorAbatimento * 100), 15) + // 181 a 195 - Valor do abatimento PadRight(NumeroDocumento, 25) + // 196 a 220 - Identificação do título na empresa CodProtesto + // 221 a 221 - Código para protesto DiasProtesto + // 222 a 223 - Número de dias para protesto '1' + // 224 a 224 - Código para baixa/devolução '060' + // 225 a 227 - Nº de dias para baixa/devolução '09' + // 228 a 229 - Código da moeda = "09" PadRight('', 10, '0') + // 230 a 239 - Nº do contrato da operação de crédito Space(1); // 240 a 240 - Uso exclusivo FEBRABAN/CNAB DEPOIS: {SEGMENTO P} Result:= '748' + // 001 a 003 - Código do banco na compensação '0001' + // 004 a 007 - Lote de serviço = "0001" '3' + // 008 a 008 - Tipo de registro = "3" DETALHE IntToStrZero( (2 * ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo)) + 1 , 5) + // 009 a 013 - Nº sequencial do registro do lote 'P' + // 014 a 014 - Cód. segmento do registro detalhe Space(1) + // 015 a 015 - Uso exclusivo FEBRABAN/CNAB '01' + // 016 a 017 - Código de movimento remessa PadLeft(OnlyNumber(Agencia), 5,'0') + // 018 a 022 - Agência mantenedora da conta Space(1) + // 023 a 023 - Dígito verificador da agência PadLeft(OnlyNumber(Conta), 12, '0') + // 024 a 035 - Número da conta corrente PadRight(ContaDigito, 1, '0') + // 036 a 036 - DV Conta Asim funciona ( O arquivo de remessa sai com o digito ) Space(1) + // 037 a 037 - Dígito verificador da coop/ag/conta PadRight(OnlyNumber(MontarCampoNossoNumero(ACBrTitulo)), 20, '0')+ // 038 a 057 - Identificação do título no banco '1' + // 058 a 058 - Código da carteira '1' + // 059 a 059 - Forma de cadastro do título no banco '2' + // 060 a 060 - Tipo de documento '2' + // 061 a 061 - Identificação de emissão do bloqueto '2' + // 062 a 062 - Identificação da distribuição PadRight(NumeroDocumento, 15) + // 063 a 077 - Nº do documento de cobrança FormatDateTime('ddmmyyyy', Vencimento) + // 078 a 085 - Data de vencimento do título IntToStrZero(Round(ValorDocumento * 100), 15) + // 086 a 100 - Valor nominal do título '00000' + // 101 a 105 - Coop./Ag. encarregada da cobrança Space(1) + // 106 a 106 - Dígito verificador da coop./agência PadLeft(Especie, 2, '0') + // 107 a 108 - Espécie do título AceiteStr + // 109 a 109 - Identificação de título aceito/não aceito FormatDateTime('ddmmyyyy', DataDocumento) + // 110 a 117 - Data da emissão do título IfThen(ValorMoraJuros = 0, '3', '1') + // 118 a 118 - Código do juro de mora '00000000' + // 119 a 126 - Data do juro de mora IntToStrZero(Round(ValorMoraJuros * 100), 15) + // 127 a 141 - Juros de mora por dia/taxa '1' + // 142 a 142 - Código do desconto 1 IfThen(ValorDesconto = 0, '00000000', FormatDateTime('ddmmyyyy', Vencimento)) + // 143 a 150 - Data do desconto 1 IntToStrZero(Round(ValorDesconto * 100), 15) + // 151 a 165 - Valor percentual a ser concedido IntToStrZero(Round(ValorIOF * 100), 15) + // 166 a 180 - Valor do IOF a ser recolhido IntToStrZero(Round(ValorAbatimento * 100), 15) + // 181 a 195 - Valor do abatimento PadRight(NumeroDocumento, 25) + // 196 a 220 - Identificação do título na empresa CodProtesto + // 221 a 221 - Código para protesto DiasProtesto + // 222 a 223 - Número de dias para protesto '1' + // 224 a 224 - Código para baixa/devolução '060' + // 225 a 227 - Nº de dias para baixa/devolução '09' + // 228 a 229 - Código da moeda = "09" PadRight('', 10, '0') + // 230 a 239 - Nº do contrato da operação de crédito Space(1); // 240 a 240 - Uso exclusivo FEBRABAN/CNAB []s Flavio
  3. Boa tarde a todos. Estava utilizando o ABCrMonitorPlus para emissão de boletos do SICREDI, porem após a última atualização, tive problemas com o arquivo de remessa, pois o banco alega que que não esta sendo informado o digito verificador da conta no Segmento P coluna 36. Não sou programador DELPHI/LAZARUS, mas observando o ACBRBancoSicredi.pas, na linha 1612, encontrei a possível causa: Esta assim : ContaDigito Mas acho que deveria ser assim : PadRight(ContaDigito, 1, '0') Estou correto em minha conclusão? Obrigado.
×
×
  • 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.