Example #1
0
function genListadoCruzadoAsArray($IdProducto, $IdTallaje = false, $IdLang = false)
{
    $IdProducto = CleanID($IdProducto);
    $IdTallaje = CleanID($IdTallaje);
    $out = "";
    //Cadena de salida
    if (!$IdLang) {
        $IdLang = getSesionDato("IdLenguajeDefecto");
    }
    $sql = "SELECT Referencia, IdTallaje FROM ges_productos WHERE IdProducto='{$IdProducto}' AND Eliminado='0'";
    $row = queryrow($sql);
    if (!$row) {
        return false;
    }
    $tReferencia = CleanRealMysql($row["Referencia"]);
    if (!$IdTallaje) {
        $IdTallaje = $row["IdTallaje"];
    }
    if (!$IdTallaje) {
        $IdTallaje = 2;
    }
    //gracefull degradation
    $sql = "SELECT  ges_locales.NombreComercial,ges_modelos.Color,\n\t\tges_detalles.Talla, SUM(ges_almacenes.Unidades) as TotalUnidades FROM ges_almacenes INNER\n\t\tJOIN ges_locales ON ges_almacenes.IdLocal = ges_locales.IdLocal INNER\n\t\tJOIN ges_productos ON ges_almacenes.IdProducto =\n\t\tges_productos.IdProducto INNER JOIN ges_modelos ON\n\t\tges_productos.IdColor = ges_modelos.IdColor INNER JOIN ges_detalles ON\n\t\tges_productos.IdTalla = ges_detalles.IdTalla\n\t\tWHERE\n\t\tges_productos.Referencia = '{$tReferencia}'\n\t\tAND ges_modelos.IdIdioma = 1\n\t\tAND ges_locales.Eliminado = 0\n\t\tGROUP BY ges_almacenes.IdLocal, ges_productos.IdColor, ges_productos.IdTalla\n\t\tORDER BY ges_almacenes.IdLocal, ges_productos.IdColor";
    $data = array();
    $colores = array();
    $tallas = array();
    $locales = array();
    $tallasTallaje = array();
    $listaColores = array();
    $res = query($sql, "Generando Listado Cruzado");
    while ($row = Row($res)) {
        $color = $row["Color"];
        $talla = $row["Talla"];
        $nombre = $row["NombreComercial"];
        $unidades = CleanInt($row["TotalUnidades"]);
        $colores[$color] = 1;
        $tallas[$talla] = 1;
        $locales[$nombre] = 1;
        $num = 0;
        //echo "Adding... c:$color,t:$talla,n:$nombre,u:$unidades<br>";
        $data[$color][$talla][$nombre] = $unidades;
    }
    $sql = "SELECT Talla,SizeOrden FROM ges_detalles WHERE IdTallaje= '{$IdTallaje}' AND IdIdioma='{$IdLang}' AND Eliminado='0'" . "\t ORDER BY SizeOrden ASC, Talla ASC";
    $res = query($sql);
    $numtallas = 0;
    while ($row = Row($res)) {
        $orden = intval($row["SizeOrden"]);
        $talla = $row["Talla"];
        $posicion = GetOrdenVacio($tallasTallaje, $orden);
        $tallasTallaje[$posicion] = $talla;
        $numtallas++;
    }
    //$out .= "<table class='forma'>";
    //$out .= "<tr><td class='nombre'>".$tReferencia."</td>";
    $out_nombretabla = $tReferencia;
    $out_tallas = array();
    $out_tallas["talla_0"] = "{$tReferencia}/Tienda";
    $out_tallas["talla_1"] = "C o l o r";
    $num = 2;
    foreach ($tallasTallaje as $k => $v) {
        $out_tallas["talla_{$num}"] = $v;
        $num++;
    }
    $out_base = array();
    $out_rows = array();
    $numrow = 0;
    $out_filas = array();
    $out_bloques = array();
    foreach ($locales as $l => $v2) {
        $out_base["nombre"] = $l;
        $out_bloques[] = $l;
        foreach ($colores as $c => $v1) {
            $row = array();
            $row[] = $l;
            $row[] = $c;
            foreach ($tallasTallaje as $k2 => $t) {
                if (isset($data[$c][$t][$l])) {
                    $u = $data[$c][$t][$l];
                } else {
                    $u = "";
                }
                //$out .= "<td class='unidades' align='center'>" . $u . "</td>";
                $row[] = $u;
            }
            $out_rows[] = $row;
            //$out .= "</tr>";
        }
    }
    //$out .= "</table>";
    $out_final = array();
    $out_final["heads"] = $out_tallas;
    $out_final["rows"] = $out_rows;
    $out_final["numheads"] = count($out_tallas);
    //$out_final["rowheads"] = $out_filas;
    $out_final["nombretabla"] = $out_nombretabla;
    //$out_final["bloques"] = $out_bloques;
    return $out_final;
}
Example #2
0
function genListadoCruzado($IdProducto, $IdTallaje = false, $IdLang = false)
{
    $IdProducto = CleanID($IdProducto);
    $IdTallaje = CleanID($IdTallaje);
    $out = "";
    //Cadena de salida
    if (!$IdLang) {
        $IdLang = getSesionDato("IdLenguajeDefecto");
    }
    $sql = "SELECT Referencia, IdTallaje, IdProdBase,UnidadMedida FROM ges_productos WHERE IdProducto='{$IdProducto}' AND Eliminado='0'";
    $row = queryrow($sql);
    if (!$row) {
        return false;
    }
    $tReferencia = CleanRealMysql($row["Referencia"]);
    if (!$IdTallaje) {
        $IdTallaje = $row["IdTallaje"];
    }
    if (!$IdTallaje) {
        $IdTallaje = 2;
    }
    //gracefull degradation
    $IdProdBase = $row["IdProdBase"];
    $UnidadMedida = $row["UnidadMedida"];
    $sql = "SELECT  ges_contenedores.Contenedor,ges_productos.VentaMenudeo,ges_productos.UnidadesPorContenedor,ges_locales.NombreComercial,ges_modelos.Color,\n        ges_detalles.Talla, SUM(ges_almacenes.Unidades) as TotalUnidades FROM ges_almacenes INNER\n        JOIN ges_locales ON ges_almacenes.IdLocal = ges_locales.IdLocal INNER\n        JOIN ges_productos ON ges_almacenes.IdProducto =\n        ges_productos.IdProducto INNER JOIN ges_modelos ON\n        ges_productos.IdColor = ges_modelos.IdColor INNER JOIN ges_detalles ON\n        ges_productos.IdTalla = ges_detalles.IdTalla   INNER JOIN ges_contenedores ON \n        ges_productos.IdContenedor = ges_contenedores.IdContenedor\n        WHERE\n        ges_productos.Referencia = '{$tReferencia}'\n        AND\n        ges_modelos.IdIdioma = 1\n        AND ges_locales.Eliminado =0\n        GROUP BY ges_almacenes.IdLocal, ges_productos.IdColor, ges_productos.IdTalla\n        ORDER BY ges_almacenes.IdLocal, ges_productos.IdColor";
    $data = array();
    $colores = array();
    $tallas = array();
    $locales = array();
    $tallasTallaje = array();
    $listaColores = array();
    $res = query($sql, "Generando Listado Cruzado");
    while ($row = Row($res)) {
        $color = $row["Color"];
        $talla = NormalizaTalla($row["Talla"]);
        $nombre = $row["NombreComercial"];
        $unidades = CleanInt($row["TotalUnidades"]);
        $ventamenudeo = $row["VentaMenudeo"];
        $undsxcont = $row["UnidadesPorContenedor"];
        $contenedor = $row["Contenedor"];
        $colores[$color] = 1;
        $tallas[$talla] = 1;
        $locales[$nombre] = 1;
        //echo "Adding... c:$color,t:$talla,n:$nombre,u:$unidades<br>";
        $num = 0;
        $enteros = 0;
        $puchos = 0;
        if ($ventamenudeo == "0" && $unidades != 0) {
            $data[$color][$talla][$nombre] = $unidades . $UnidadMedida;
        }
        if ($ventamenudeo == "1" && $unidades != 0) {
            if ($undsxcont > $unidades) {
                $puchos = "";
                $enteros = $unidades;
            } else {
                $enteros = intval($unidades / $undsxcont);
                $puchos = $unidades % $undsxcont;
            }
            if ($puchos == 0) {
                $data[$color][$talla][$nombre] = $enteros . $contenedor;
            } else {
                $data[$color][$talla][$nombre] = $enteros . $contenedor . "+" . $puchos . $UnidadMedida;
            }
        }
    }
    $sql = "SELECT Talla,SizeOrden FROM ges_detalles,ges_productos WHERE ges_detalles.IdTallaje= '{$IdTallaje}' AND ges_detalles.IdTalla = ges_productos.IdTalla AND ges_productos.IdProdBase = '{$IdProdBase}'  AND IdIdioma='{$IdLang}' AND ges_detalles.Eliminado='0'" . "\t ORDER BY SizeOrden ASC, Talla + 0 ASC";
    $res = query($sql);
    $numtallas = 0;
    while ($row = Row($res)) {
        $orden = intval($row["SizeOrden"]);
        $talla = NormalizaTalla($row["Talla"]);
        $posicion = GetOrdenVacio($tallasTallaje, $orden, $talla);
        $tallasTallaje[$posicion] = $talla;
        $numtallas++;
    }
    $out .= "<table class='forma'>";
    $num = 0;
    /*$out .= "<tr><td class='nombre'>".$tReferencia."</td>";
    
        foreach ($tallasTallaje as $k=>$v) {
            $out .= "<td class='lh' id='talla_$num'>".($v)."</td>";
            $num++;
        }
        $out .= "</tr>";*/
    foreach ($locales as $l => $v2) {
        $out .= "<tr class='f'><td></td><td class='lh' colspan='" . $numtallas . "'>" . $l . "</td></tr>";
        $out .= "<tr><td class='nombre'>" . $tReferencia . "</td>";
        foreach ($tallasTallaje as $k => $v) {
            $out .= "<td class='lhz' id='talla_{$num}' style='width: 16px!important;background-color: #ccc'>" . $v . "</td>";
            $num++;
        }
        $out .= "</tr>";
        foreach ($colores as $c => $v1) {
            $out .= "<tr class='f'><td class='lh'>" . $c . "</td>";
            foreach ($tallasTallaje as $k2 => $t) {
                if (isset($data[$c][$t][$l])) {
                    $num = $data[$c][$t][$l];
                    $color = $num < 0 ? "red" : "black";
                    $u = "<b style='color: {$color}'>" . $data[$c][$t][$l] . "</b>";
                } else {
                    $u = "-";
                }
                $out .= "<td  align='center'>" . $u . "</td>";
            }
            $out .= "</tr>";
        }
        $out .= "<tr><td><font color='white'>-</font></td></tr>\n";
    }
    $out .= "</table>";
    return $out;
}