Open nandodigi opened 4 years ago
Ola, penso que a melhor forma de fazer isso é fazendo com que a biblioteca some esses valores para vc, incluindo um acumulador interno no registro1.php
ficaria mais ou menos assim
protected function set_valor($value){// o nome da função é o nome de variável que usar no layout junto com a palavra set_ $this->data['valor'] = $value; RemessaAbstract::$entryData['total_valor'] = RemessaAbstract::$entryData['total_valor'] + $value; }
Depois inclua no registro9.php
protected function set_total_valor($value){ // o nome da função é o nome de variável que usar no layout junto com a palavra set_ $this->data['total_valor'] = RemessaAbstract::$entryData['total_valor']; }
Olá Rogério Ajustei no programa sua ideia e não esta dando erro, mas não esta somando Quando coloco no nome da função o nome set_total_geral no registro9, que é o nome do campo ele da o seguinte erro: Fatal error: Uncaught Error: Class 'CnabPHP\resources\B041\remessa\cnab400\RemessaAbstract' not found in C:\xampp\htdocs\Boletos\vendor\OpenCnab\src\resources\B041\remessa\cnab400\Registro9.php:39 Stack trace: #0 [internal function]: CnabPHP\resources\B041\remessa\cnab400\Registro9->set_total_geral('0') #1 C:\xampp\htdocs\Boletos\vendor\OpenCnab\src\RegistroRemAbstract.php(34): call_user_func(Array, '0') #2 C:\xampp\htdocs\Boletos\vendor\OpenCnab\src\RegistroRemAbstract.php(21): CnabPHP\RegistroRemAbstract->__set('total_geral', '0') #3 C:\xampp\htdocs\Boletos\vendor\OpenCnab\src\RemessaAbstract.php(116): CnabPHP\RegistroRemAbstract->__construct(Array) #4 C:\xampp\htdocs\Boletos\remessa041.php(205): CnabPHP\RemessaAbstract->getText() #5 {main} thrown in C:\xampp\htdocs\Boletos\vendor\OpenCnab\src\resources\B041\remessa\cnab400\Registro9.php on line 39 Abaixo o registro9: `<?php namespace CnabPHP\resources\B041\remessa\cnab400;
use CnabPHP\resources\generico\remessa\cnab400\Generico9;
class Registro9 extends Generico9 { protected $meta = array( 'tipo_registro'=>array( 'tamanho'=>1, 'default'=>'9', 'tipo'=>'int', 'required'=>true), 'filler23'=>array( 'tamanho'=>26, 'default'=>' ', 'tipo'=>'alfa', 'required'=>true), 'total_geral'=>array( 'tamanho' => 11, 'default' => '0', 'tipo' => 'decimal', 'precision' => 2, 'required' => true), 'filler24'=>array( 'tamanho'=>354, 'default'=>' ', 'tipo'=>'alfa', 'required'=>true), 'numero_registro'=>array( 'tamanho'=>6, 'default'=>'0', 'tipo'=>'int', 'required'=>true), );
protected function set_total_geral($value)
{
$this->data['total_geral'] = RemessaAbstract::$entryData['total_valor'];
}
}` No Registro1 esta assim e a principio não esta dando erro nenhum:
No campo esta:
'valor' => array(//21.3P 'tamanho' => 11, 'default' => '', 'tipo' => 'decimal', 'precision' => 2, 'required' => true), ..... // Na função de soma esta assim: protected function set_total_geral($value) {// o nome da função é o nome de variável que usar no layout junto com a palavra set_ $this->data['valor'] = $value; RemessaAbstract::$entryData['total_valor'] = RemessaAbstract::$entryData['total_valor'] + $value; }
Se puderes me ajudar onde estou errando agradeço. Fernando Pereira fernando@digiterm.com.br
Ola @nandodigi , parece ser um erro de namespace, se quiser, atualize seu fork com o código do jeito que está e eu dou uma olhada
Oi Rogério
Problema resolvido
Registro1
protected function set_valor($value){ $this->data['valor'] = $value; RemessaAbstract::$entryData['total_valor'] = RemessaAbstract::$entryData['total_valor'] + $value; }
Registro9 Sem nenhuma function
Generico9
protected function set_total_geral($value) { $this->data['total_geral'] = RemessaAbstract::$entryData['total_valor']; }
Como Registro9 é uma extensão do Generico9 funcionou OK
Bom dia pessoal Estou montando a remessa do Banrisul 400 e neste o registro 9 tem um somatório dos valores de todos os boletos daquela remessa. Não estou conseguindo fazer com que esse valor apareça. Tentei $lote->inserirDetalhe(array( 'total_geral' => fsem_milhar($valortotal,2) ));
Mas não apareceu o valor no registro 9 (Trailler) Acho que não é ali no inserirDetalhe que se coloca esse valor. Alguem pode ajudar ?