public function ProcesaPedidos() { require_once 'clsConexion.php'; require_once 'clsArticulo.php'; $objCon = new Conexion(); $objArt = new Articulo(); $this->LimpiaSoluciones(); /* INICIO Consulta los pedidos que no han sido atendidos*/ $sql = "select \r\n dp.id_det_ped as id_dp,\r\n art.id_art as articulo,\r\n art.nombre_art as nombre,\r\n a.id_alm as almacen,\r\n a.nombre_alm as nombre_almacen,\r\n dp.cantidad_art as cantidad,\r\n dp.atendido_det_ped\r\n from\r\n almacen a\r\n inner join\r\n pedido p ON a.id_alm = p.almacen_id_alm\r\n inner join\r\n detalle_pedido dp ON p.id_ped = dp.Pedido_id_ped\r\n inner join\r\n articulo art ON dp.articulo_id_art = art.id_art\r\n where dp.atendido_det_ped=0"; /* FIN Consulta los pedidos que no han sido atendidos*/ /* * Contiene las posibles ubicaciones de donde usar los articulos * [dp][art][cant_ped][alm_dest][alm_prov][cant_prod] */ $resultado = $objCon->Consultar($sql); /* * Contiene todos los artículos existentes en todos los almacenes * bajo la siguiente estructura: * [articulo][cantidad][almacen][nombre_almacen] */ $arregloProductos = $objArt->ArregloArticulos(); $arregloSoluciones; $j = 0; $k = 0; /* * toma el pedido y verifica el artículo solicitado * en toda la lista de artículos disponibles */ while ($registro = $resultado->fetch()) { //print_r($registro);echo"<br><br>"; /* * De este algoritmo se determinará también si se genera * orden de compra, ya que al no encontrar ninguna solución * registrada, se va a generar la orden de compra con la * información del pedido (en procedimiento ) */ for ($i = 0; $i < count($arregloProductos); $i++) { /* * primero verifica que el artículo solicitado coincida con el artículo buscado * luego valida que la busqueda no se realice en el mismo almacen */ if ($registro["articulo"] == $arregloProductos[$i]["articulo"] && $registro["almacen"] != $arregloProductos[$i]["almacen"]) { /* * si la cantidad requerida es abastecida por un subalmacen * se registra en un arreglo que guardará el almacén con * que abastecerá el pedido */ if ($arregloProductos[$i]["cantidad"] - $registro["cantidad"] >= 0) { /* Registra los almacenes que pueden dar abasto al requerimiento */ $this->RegistraSoluciones($registro["id_dp"], $arregloProductos[$i]["almacen"], $registro["articulo"], $arregloProductos[$i]["cantidad"], 0, 0); //$j++; } else { if ($arregloProductos[$i]["cantidad"] - $registro["cantidad"] < 0) { //$arregloSoluciones[$j]["dp"] = $registro["id_dp"]; //$arregloSoluciones[$j]["resto"] = ($arregloProductos[$i]["cantidad"]) - ($registro["cantidad"]); //$arregloSoluciones[$j]["proveedor"] = $arregloProductos[$i]["almacen"]; //$arregloSoluciones[$j]["solicitante"] = $registro["almacen"]; //$arregloSoluciones[$j]["cant_prov"] = $arregloProductos[$i]["cantidad"]; //$arregloSoluciones[$j]["articulo"] = $arregloProductos[$i]["articulo"]; //$arregloSoluciones[$j]["alm_dest"] = $registro["almacen"]; //$arregloSoluciones[$j]["cant_solic"] = $registro["cantidad"]; $this->RegistraSoluciones($registro["id_dp"], $arregloProductos[$i]["almacen"], $registro["articulo"], $arregloProductos[$i]["cantidad"], 1, $registro["cantidad"] - $arregloProductos[$i]["cantidad"]); } } } } } }