Sub Banco for the Cartola Services

This commit is contained in:
Juan Pablo Vial
2024-08-26 15:25:45 -04:00
parent 7d210601da
commit 478b407646

View File

@ -0,0 +1,36 @@
<?php
namespace Incoviba\Service\Contabilidad\Cartola;
use Incoviba\Common\Ideal\Cartola\Banco;
use Psr\Http\Message\UploadedFileInterface;
trait withSubBancos
{
protected array $subBancos;
public function registerSub(Banco $sub): self
{
$this->subBancos []= $sub;
return $this;
}
public function getSubBanco(string $filename): Banco
{
foreach ($this->subBancos as $subBanco) {
if ($subBanco->is($filename)) {
return $subBanco;
}
}
return $this;
}
public function process(UploadedFileInterface $file): array
{
$filename = $this->processUploadedFile($file);
try {
$subBanco = $this->getSubBanco($filename);
$data = $subBanco->processFile($filename);
return $subBanco->mapColumns($data);
} catch (InvalidArgumentException) {
$data = parent::processFile($filename);
return $this->mapColumns($data);
}
}
}