Import Precios
This commit is contained in:
@ -1,13 +1,16 @@
|
||||
<?php
|
||||
namespace Incoviba\Controller\API\Ventas;
|
||||
|
||||
use DateTime;
|
||||
use Exception;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Incoviba\Common\Implement\Exception\EmptyRedis;
|
||||
use Incoviba\Common\Implement\Exception\EmptyResult;
|
||||
use Incoviba\Common\Implement\Exception\{EmptyRedis,EmptyResult};
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Incoviba\Controller\API\{withJson,emptyBody};
|
||||
use Incoviba\Service;
|
||||
use Incoviba\Controller\withRedis;
|
||||
use Incoviba\Exception\ServiceAction\Create;
|
||||
use Incoviba\Service;
|
||||
|
||||
class Precios
|
||||
{
|
||||
@ -51,4 +54,29 @@ class Precios
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function import(ServerRequestInterface $request, ResponseInterface $response,
|
||||
LoggerInterface $logger,
|
||||
Service\Venta\Precio $precioService): ResponseInterface
|
||||
{
|
||||
$body = $request->getParsedBody();
|
||||
$projectId = $body['project_id'];
|
||||
$date = $body['date'];
|
||||
$file = $request->getUploadedFiles()['file'];
|
||||
$output = [
|
||||
'input' => $body,
|
||||
'total' => 0,
|
||||
'precios' => [],
|
||||
'status' => false
|
||||
];
|
||||
$date = DateTime::createFromFormat('Y-m-d', $date);
|
||||
try {
|
||||
$output['precios'] = $precioService->import($projectId, $date, $file);
|
||||
$output['total'] = count($output['precios']);
|
||||
$output['status'] = true;
|
||||
} catch (Create | Exception $exception) {
|
||||
$logger->warning($exception);
|
||||
}
|
||||
return $this->withJson($response, $output);
|
||||
}
|
||||
}
|
||||
|
@ -9,9 +9,9 @@ use Incoviba\Model;
|
||||
|
||||
class Precios
|
||||
{
|
||||
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Proyecto $proyectoService): ResponseInterface
|
||||
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Proyecto $proyectoService, ?int $project_id = null): ResponseInterface
|
||||
{
|
||||
$proyectos = array_map(function(Model\Proyecto $proyecto) {return ['id' => $proyecto->id, 'descripcion' => $proyecto->descripcion];}, $proyectoService->getVendibles());
|
||||
return $view->render($response, 'ventas.precios.list', compact('proyectos'));
|
||||
return $view->render($response, 'ventas.precios.list', compact('proyectos', 'project_id'));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user