E. srv / det-venta.php

1<?php
2
3require_once __DIR__ . "/../lib/php/NOT_FOUND.php";
4require_once __DIR__ . "/../lib/php/ejecutaServicio.php";
5require_once __DIR__ . "/../lib/php/recuperaIdEntero.php";
6require_once __DIR__ . "/../lib/php/selectFirst.php";
7require_once __DIR__ . "/../lib/php/devuelveJson.php";
8require_once __DIR__ . "/../lib/php/ProblemDetails.php";
9require_once __DIR__ . "/Bd.php";
10require_once __DIR__ . "/TABLA_VENTA.php";
11require_once __DIR__ . "/TABLA_PRODUCTO.php";
12require_once __DIR__ . "/TABLA_DET_VENTA.php";
13require_once __DIR__ . "/productoBusca.php";
14require_once __DIR__ . "/validaProducto.php";
15require_once __DIR__ . "/ventaEnCapturaBusca.php";
16require_once __DIR__ . "/validaVenta.php";
17
18ejecutaServicio(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
skip_previous skip_next