| 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 | |