27 lines
1.1 KiB
PHP
27 lines
1.1 KiB
PHP
![]() |
<?php
|
||
|
namespace Incoviba\Controller;
|
||
|
|
||
|
use Psr\Http\Message\ResponseInterface;
|
||
|
use Psr\Http\Message\ServerRequestInterface;
|
||
|
use Incoviba\Common\Alias\View;
|
||
|
use Incoviba\Service;
|
||
|
use Incoviba\Model;
|
||
|
|
||
|
class Ventas
|
||
|
{
|
||
|
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, View $view, Service\Proyecto $proyectoService): ResponseInterface
|
||
|
{
|
||
|
$proyectos = array_map(function(Model\Proyecto $proyecto) {return ['id' => $proyecto->id, 'descripcion' => $proyecto->descripcion];}, $proyectoService->getVendibles());
|
||
|
return $view->render($response, 'ventas.list', compact('proyectos'));
|
||
|
}
|
||
|
public function proyecto(ServerRequestInterface $request, ResponseInterface $response, Service\Venta $service): ResponseInterface
|
||
|
{
|
||
|
$body = $request->getBody();
|
||
|
$json = json_decode($body->getContents());
|
||
|
$proyecto_id = $json->proyecto_id;
|
||
|
$ventas = $service->getByProyecto($proyecto_id);
|
||
|
$response->getBody()->write(json_encode(['ventas' => $ventas, 'total' => count($ventas)]));
|
||
|
return $response->withHeader('Content-Type', 'application/json');
|
||
|
}
|
||
|
}
|