1 | <?php |
2 | |
3 | require_once __DIR__ . "/../lib/php/NOT_FOUND.php"; |
4 | require_once __DIR__ . "/../lib/php/ejecutaServicio.php"; |
5 | require_once __DIR__ . "/../lib/php/recuperaIdEntero.php"; |
6 | require_once __DIR__ . "/../lib/php/selectFirst.php"; |
7 | require_once __DIR__ . "/../lib/php/devuelveJson.php"; |
8 | require_once __DIR__ . "/../lib/php/ProblemDetails.php"; |
9 | require_once __DIR__ . "/Bd.php"; |
10 | require_once __DIR__ . "/TABLA_VENTA.php"; |
11 | require_once __DIR__ . "/TABLA_PRODUCTO.php"; |
12 | require_once __DIR__ . "/TABLA_DET_VENTA.php"; |
13 | require_once __DIR__ . "/productoBusca.php"; |
14 | require_once __DIR__ . "/validaProducto.php"; |
15 | require_once __DIR__ . "/ventaEnCapturaBusca.php"; |
16 | require_once __DIR__ . "/validaVenta.php"; |
17 | |
18 | ejecutaServicio(function () { |
19 | |
20 | $prodId = recuperaIdEntero("prodId"); |
21 | |
22 | $pdo = Bd::pdo(); |
23 | |
24 | $venta = ventaEnCapturaBusca($pdo); |
25 | validaVenta($venta); |
26 | |
27 | $producto = productoBusca($pdo, $prodId); |
28 | validaProducto($producto, $prodId); |
29 | |
30 | $detVenta = selectFirst( |
31 | pdo: $pdo, |
32 | from: DET_VENTA, |
33 | where: [ |
34 | VENT_ID => $venta[VENT_ID], |
35 | PROD_ID => $prodId |
36 | ] |
37 | ); |
38 | |
39 | if ($detVenta === false) { |
40 | $htmlId = htmlentities($prodId); |
41 | throw new ProblemDetails( |
42 | status: NOT_FOUND, |
43 | type: "/error/detalledeventanoencontrado.html", |
44 | title: "Detalle de venta no encontrado.", |
45 | detail: "No se encontró ningún detalle de venta con el id de producto " |
46 | . $htmlId . ".", |
47 | ); |
48 | } |
49 | |
50 | devuelveJson([ |
51 | "prodId" => ["value" => $prodId], |
52 | "prodNombre" => ["value" => $producto[PROD_NOMBRE]], |
53 | "precio" => ["value" => "$" . number_format($detVenta[DTV_PRECIO], 2)], |
54 | "cantidad" => ["valueAsNumber" => $detVenta[DTV_CANTIDAD]], |
55 | ]); |
56 | }); |
57 | |