Files
operadores/api/common/Controller/Ventas.php
2021-08-18 19:03:58 -04:00

48 lines
1.6 KiB
PHP

<?php
namespace Incoviba\Common\Controller;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use \Model;
use Incoviba\Common\Define\Controller\Json;
use Incoviba\Venta;
class Ventas {
use Json;
public function __invoke(Request $request, Response $response): Response {
$ventas = Model::factory(Venta::class)->find_array();
$output = compact('ventas');
return $this->withJson($response, $output);
}
public function show(Request $request, Response $response, $id_venta): Response {
$venta = Model::factory(Venta::class)->find_one($id_venta);
$output = ['venta' => $venta->as_array()];
return $this->withJson($response, $output);
}
public function operador(Request $request, Response $response, $id_venta): Response {
$venta = Model::factory(Venta::class)->find_one($id_venta);
$output = [
'venta' => $venta->as_array(),
'operador' => $venta->operador() ? $venta->operador()->as_array() : null
];
return $this->withJson($response, $output);
}
public function facturas(Request $request, Response $response, $id_venta): Response {
$venta = Model::factory(Venta::class)->find_one($id_venta);
if (!$venta) {
return $this->withJson($response, ['venta' =>null, 'facturas' => null]);
}
$output = [
'venta' => $venta->as_array(),
'facturas' => null
];
if ($venta->facturas() !== null) {
$output['facturas'] = array_map(function($item) {
return $item->as_array();
}, $venta->facturas());
}
return $this->withJson($response, $output);
}
}