30 lines
1017 B
PHP
30 lines
1017 B
PHP
|
<?php
|
||
|
namespace Incoviba\Service;
|
||
|
|
||
|
use DateTimeInterface;
|
||
|
use Psr\Http\Message\StreamFactoryInterface;
|
||
|
use Psr\Http\Message\UploadedFileInterface;
|
||
|
use Incoviba\Common\Define\Cartola\Banco;
|
||
|
use Incoviba\Common\Define\Contabilidad\Exporter;
|
||
|
use Incoviba\Model;
|
||
|
|
||
|
class Cartola
|
||
|
{
|
||
|
public function __construct(protected StreamFactoryInterface $streamFactory, protected Exporter $exporter) {}
|
||
|
|
||
|
protected array $bancos;
|
||
|
public function register(string $name, Banco $banco): Cartola
|
||
|
{
|
||
|
$this->bancos[$name] = $banco;
|
||
|
return $this;
|
||
|
}
|
||
|
public function process(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, UploadedFileInterface $file): array
|
||
|
{
|
||
|
return $this->bancos[strtolower($banco->nombre)]->process($file);
|
||
|
}
|
||
|
public function export(Model\Inmobiliaria $inmobiliaria, Model\Banco $banco, DateTimeInterface $mes, array $movimientos): string
|
||
|
{
|
||
|
return $this->exporter->export($inmobiliaria, $banco, $mes, $movimientos);
|
||
|
}
|
||
|
}
|