1 | <?php |
2 | |
3 | require_once __DIR__ . "/../modelo/Producto.php"; |
4 | require_once __DIR__ . "/Bd.php"; |
5 | require_once __DIR__ . "/productoBusca.php"; |
6 | require_once __DIR__ . "/archivoModifica.php"; |
7 | |
8 | function productoModifica(Producto $modelo) |
9 | { |
10 | $modelo->valida(); |
11 | $con = Bd::getConexion(); |
12 | $con->beginTransaction(); |
13 | $archivo = $modelo->archivo; |
14 | $anterior = productoBusca($modelo->id); |
15 | if ($anterior === false) { |
16 | throw new Exception("Producto no encontrado."); |
17 | } |
18 | if ($anterior->archivo === null) { |
19 | throw new Exception("Falta el archivo anterior."); |
20 | } |
21 | if ($archivo === null) { |
22 | $archivo = $anterior->archivo; |
23 | $modelo->archivo = $archivo; |
24 | } else { |
25 | $archivo->id = $anterior->archivo->id; |
26 | archivoModifica($archivo); |
27 | } |
28 | $stmt = $con->prepare( |
29 | "UPDATE PRODUCTO |
30 | SET |
31 | PROD_NOMBRE = :nombre, |
32 | ARCH_ID = :archId |
33 | WHERE PROD_ID = :id" |
34 | ); |
35 | $stmt->execute([ |
36 | ":id" => $modelo->id, |
37 | ":nombre" => $modelo->nombre, |
38 | ":archId" => $archivo->id |
39 | ]); |
40 | $con->commit(); |
41 | } |
42 | |