openboleto / OpenCnabPHP

Biblioteca multibanco para geração e leitura de arquivos Cnab240 e Cna400 de remessa e retorno
MIT License
192 stars 117 forks source link

Multa no Itaú #232

Open EduardoJM opened 8 months ago

EduardoJM commented 8 months ago

O registro de multa no Itaú CNAB 400 foi comentado no arquivo Registro1.php

//$this->inserirMulta($data); não consegui validar o arquivo enviando o registro 2, entao temporariamente ficara desativado

No Registro2, a soma com os tamanhos contabiliza 399 posições, faltando, assim, 1 posição para as 400 do tipo de arquivo:

        'tipo_registro'=>array(
            'tamanho'=>1,
            'default'=>'2',
            'tipo'=>'int',
            'required'=>true),
        'codigo_multa'=>array(    //24.3P
            'tamanho'=>1,
            'default'=>'1',
            'tipo'=>'alfa',
            'required'=>true),
        'data_multa'=>array(            //31.3P
            'tamanho'=>8,
            'default'=>'0',
            'tipo'=>'date',
            'required'=>true),
        'vlr_multa'=>array(            //29.3P
            'tamanho'=>11,
            'default'=>'0',
            'tipo'=>'decimal',
            'precision'=>2,
            'required'=>true),
        'filler2'=>array(            //32.3P
            'tamanho'=>370, 
            'default'=>' ',
            'tipo'=>'alfa',
            'required'=>true),
        'numero_registro'=>array(       // 4.3R
            'tamanho'=>6,
            'default'=>'0',
            'tipo'=>'int',
            'required'=>true),
    );

image

Conferindo com as posições ao invés da coluna PICTURE, os brancos (filler2) deveriam ocupar da posição 24, até a posição 394 (incluindo ambas as extremidades), assim sendo, o campo filler2 deveria ter 371 posições, totalizando as 400 da linha.

Confere?


Edit: alterei o texto da issue pois acabei confundindo a contagem de tamanho no tipo decimal, porém o restante creio que faça sentido.