Exemple #1
0
 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"]);
                     }
                 }
             }
         }
     }
 }