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

51 lines
1.7 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\FacturaProyectoOperador;
class Facturas {
use Json;
public function __invoke() {
}
public function proyecto_operador(Request $request, Response $response): Response {
$post = $request->getParsedBody();
$facturas = Model::factory(FacturaProyectoOperador::class)
->where('proyecto_id', $post['proyecto_id'])
->where('operador_id', $post['operador_id'])
->find_many();
$output = [
'facturas' => $facturas ? array_map(function($item) {
return $item->as_array();
}, $facturas) : null
];
return $this->withJson($response, $output);
}
public function add(Request $request, Response $response): Response {
$post = $request->getParsedBody();
$output = FacturaProyectoOperador::add($post);
return $this->withJson($response, $output);
}
public function ventas(Request $request, Response $response, $id_factura): Response {
$factura = Model::factory(FacturaProyectoOperador::class)->find_one($id_factura);
$output = [
'factura' => $factura->as_array(),
'ventas' => array_map(function($item) {
return $item->as_array();
}, $factura->ventas())
];
return $this->withJson($response, $output);
}
public function add_venta(Request $request, Response $response, $id_factura): Response {
$post = $request->getParsedBody();
$factura = Model::factory(FacturaProyectoOperador::class)->find_one($id_factura);
$output = $factura->addVenta($post);
return $this->withJson($response, $output);
}
}