diff --git a/src/Cnab/Retorno/Cnab240/Arquivo.php b/src/Cnab/Retorno/Cnab240/Arquivo.php index 0682c44..46569b7 100755 --- a/src/Cnab/Retorno/Cnab240/Arquivo.php +++ b/src/Cnab/Retorno/Cnab240/Arquivo.php @@ -1,6 +1,8 @@ pos = $posLinha++; + $linhaRetorno->texto = $linha; + + $this->linhas[] = $linhaRetorno; + $tipo_registro = substr($linha, 7, 1); if($tipo_registro == '0') { // header $this->header->loadFromString($linha); + $linhaRetorno->linhaCnab = $this->header; } else if($tipo_registro == '1') { @@ -53,6 +66,8 @@ public function __construct($codigo_banco, $filename, $layoutVersao=null) $lastLote = new Lote($this); $lastLote->header = new HeaderLote($this); $lastLote->header->loadFromString($linha); + + $linhaRetorno->linhaCnab = $lastLote->header; } else if($tipo_registro == '2') { @@ -62,7 +77,7 @@ public function __construct($codigo_banco, $filename, $layoutVersao=null) { // registros de detalhe - Segmentos if($lastLote) - $lastLote->insertSegmento($linha); + $linhaRetorno->linhaCnab = $lastLote->insertSegmento($linha); } else if($tipo_registro == '4') { @@ -74,12 +89,15 @@ public function __construct($codigo_banco, $filename, $layoutVersao=null) $lastLote->trailer = new TrailerLote($this); $lastLote->trailer->loadFromString($linha); $this->lotes[] = $lastLote; + $linhaRetorno->linhaCnab = $lastLote->trailer; $lastLote = null; } else if($tipo_registro == '9') { // trailer do arquivo $this->trailer->loadFromString($linha); + + $linhaRetorno->linhaCnab = $this->trailer; } } } diff --git a/src/Cnab/Retorno/Cnab240/Lote.php b/src/Cnab/Retorno/Cnab240/Lote.php index ab24207..5a6bba3 100755 --- a/src/Cnab/Retorno/Cnab240/Lote.php +++ b/src/Cnab/Retorno/Cnab240/Lote.php @@ -45,6 +45,7 @@ public function insertSegmento($linha) if($this->lastDetalhe) $this->lastDetalhe->segmento_w = $segmento; } + return $segmento; } public function listDetalhes() diff --git a/src/Cnab/Retorno/Cnab400/Arquivo.php b/src/Cnab/Retorno/Cnab400/Arquivo.php index ce76866..4eacb7e 100755 --- a/src/Cnab/Retorno/Cnab400/Arquivo.php +++ b/src/Cnab/Retorno/Cnab400/Arquivo.php @@ -1,15 +1,20 @@ content); $this->header = new Header($this); $this->trailer = new Trailer($this); + + $posLinha = 0; foreach($linhas as $linha) { + if(!trim($linha)) + continue; + + $linhaRetorno = new Linha; + $linhaRetorno->pos = $posLinha++; + $linhaRetorno->texto = $linha; + + $this->linhas[] = $linhaRetorno; + $tipo_registro = substr($linha, 0, 1); + if($tipo_registro == '0' && $linha) { $this->header->loadFromString($linha); + + $linhaRetorno->linhaCnab = $this->header; } else if(in_array((int)$tipo_registro,array(1,7))) { $detalhe = new Detalhe($this); $detalhe->loadFromString($linha); $this->detalhes[] = $detalhe; + + $linhaRetorno->linhaCnab = $detalhe; } else if($tipo_registro == '9') + { $this->trailer->loadFromString($linha); + $linhaRetorno->linhaCnab = $this->trailer; + } } } diff --git a/src/Cnab/Retorno/Linha.php b/src/Cnab/Retorno/Linha.php new file mode 100644 index 0000000..7b89a0c --- /dev/null +++ b/src/Cnab/Retorno/Linha.php @@ -0,0 +1,20 @@ +