Files
oficial/app/src/Service/Cartola.php

30 lines
1017 B
PHP
Raw Normal View History

2024-01-17 10:33:11 -03:00
<?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);
}
}