/** * * * Lotes * **/ public function testLotes() { //Buscar algun almacen $almacenes = AlmacenesController::Buscar(true); $almacenId = $almacenes["resultados"][0]->getIdAlmacen(); //nuevo lote $nLote = AlmacenesController::NuevoLote($almacenId); $this->assertNotNull($l = LoteDAO::getByPK($nLote["id_lote"])); ProductoDAO::save($producto = new Producto(array("compra_en_mostrador" => false, "metodo_costeo" => "precio", "precio" => 123.123, "activo" => true, "codigo_producto" => time() . "tp", "nombre_producto" => time() . "np", "costo_estandar" => 12.3123))); //metele productos $r = AlmacenesController::EntradaLote($nLote["id_lote"], array(array("id_producto" => $producto->getIdProducto(), "cantidad" => 123))); //Vamos a validar estas tablas //LoteEntradaDAO:: $this->assertNotNull(LoteEntradaDAO::getByPK($r["id_entrada_lote"])); //LoteProductoDAO:: $this->assertNotNull(LoteProductoDAO::getByPK($nLote["id_lote"], $producto->getIdProducto())); //LoteEntradaProductoDAO:: $this->assertNotNull(LoteEntradaProductoDAO::getByPK($r["id_entrada_lote"], $producto->getIdProducto(), 1)); //sacar de ese lote, uno por uno hasta llegar a retirar todo for ($i = 0; $i < 123; $i++) { AlmacenesController::SalidaLote($nLote["id_lote"], array(array("id_producto" => $producto->getIdProducto(), "cantidad" => 1))); } //la siguiente vez que retire algo, debe de arrojar una exception try { AlmacenesController::SalidaLote($nLote["id_lote"], array(array("id_producto" => $producto->getIdProducto(), "cantidad" => 1))); } catch (InvalidDataException $ivde) { } $this->assertNotNull($ivde); }
function updateProducto(Producto $p) { require_once '../conexion.php'; require_once '../model.business/Producto.php'; try { $conexion = new conexion(); $conn = $conexion->conn(); $idProducto = $p->getIdProducto(); $nombreProducto = $p->getNombreProducto(); $precioUnitario = $p->getPrecioUnitario(); $stock = $p->getStock(); $descripcion = $p->getDescripcion(); $tipoProducto = $p->getTipoProducto(); $marca = $p->getMarca(); $estado = $p->getEstado(); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = $conn->prepare("UPDATE productos p INNER JOIN tipoProductos t " . "ON p.idTipoProducto = t.idTipoProducto INNER JOIN marcas m " . "ON p.idMarca = m.idMarca " . "SET p.nombreProducto = :nombreProducto, " . "p.precioUnitario = :precioUnitario, " . "p.stock = :stock, p.descripcion = :descripcion, " . "p.idTipoProducto = :tipoProducto, " . "p.idMarca = :marca, p.estado = :estado " . "WHERE p.idProducto = :idProducto;"); $sql->bindParam(':idProducto', $idProducto); $sql->bindParam(':nombreProducto', $nombreProducto); $sql->bindParam(':precioUnitario', $precioUnitario); $sql->bindParam(':stock', $stock); $sql->bindParam(':descripcion', $descripcion); $sql->bindParam(':tipoProducto', $tipoProducto); $sql->bindParam(':marca', $marca); $sql->bindParam(':estado', $estado); return $sql->execute(); } catch (PDOException $exc) { echo $exc->getMessage(); } }