Esempio n. 1
0
function FormularioEditarArticulo($id)
{
    global $action;
    $ot = getTemplate("FormEditarArticulo");
    if (!$ot) {
        error(__FILE__ . __LINE__, "Error: template busqueda no encontrado");
        return false;
    }
    $articulo = new articulo();
    $oProducto = new producto();
    if (!$articulo->Load($id)) {
        error(__FILE__ . __LINE__, "Error: no puedo modificar ese producto");
        return false;
    }
    $oProducto->Load($articulo->get("IdProducto"));
    $igv = getSesionDato("IGV");
    $local = $_SESSION["LocalMostrado"];
    $idProducto = $articulo->get("Id");
    $CostoUnitario = $articulo->get("CostoUnitario");
    $PVD = $articulo->get("PrecioVenta");
    $PVDD = $articulo->get("PVDDescontado");
    $IGVD = round($PVD / (1 + $igv / 100) * ($igv / 100) * 100) / 100;
    $MUD = round(($PVD - $IGVD - $CostoUnitario) * 100) / 100;
    $PVC = $articulo->get("PrecioVentaCorporativo");
    $PVCD = $articulo->get("PVCDescontado");
    $IGVC = round($PVC / (1 + $igv / 100) * ($igv / 100) * 100) / 100;
    $MUC = round(($PVC - $IGVC - $CostoUnitario) * 100) / 100;
    $disponible = $articulo->is("Disponible") ? "checked" : "";
    $dispOnline = $articulo->is("DisponibleOnline") ? "checked" : "";
    $obsoleto = $oProducto->get("Obsoleto") ? "checked" : "";
    $esLote = $oProducto->get("Lote");
    $esVence = $oProducto->get("FechaVencimiento");
    $esSerie = $oProducto->get("Serie");
    $oferta = $articulo->is("Oferta") ? "checked" : "";
    $stockilimitado = $articulo->is("StockIlimitado") ? "checked" : "";
    $esIlimitado = $esSerie ? 'none' : 'table-row';
    $esIlimitado = $esLote ? 'none' : $esIlimitado;
    $esIlimitado = $esVence ? 'none' : $esIlimitado;
    $existencias = $articulo->get("Unidades");
    $stockunidades = $existencias;
    $producto = getDatosProductosExtra($articulo->get("IdProducto"), 'nombretodos');
    $nombre = $producto["Nombre"];
    $esMenudeo = $producto["Menudeo"];
    $unidad = $producto["Und"];
    $unidxemp = $producto["UndxEmp"];
    $empaque = $producto["Empaque"];
    $resmenudeo = $esMenudeo ? "  ( " . $stockunidades . " " . $unidad . " a " . $unidxemp . $unidad . "x" . $empaque . " )" : "";
    $disponibleunid = $articulo->get("DisponibleUnidades");
    $reservadaunid = $disponibleunid > 0 ? $existencias - $disponibleunid : 0;
    $resto = $esMenudeo ? $existencias % $unidxemp : 0;
    $empaques = $esMenudeo ? ($existencias - $resto) / $unidxemp : 0;
    $existencias = $esMenudeo ? $empaques . " " . $empaque . " + " . $resto : $existencias;
    $disponibleunid = $disponibleunid > 0 ? $disponibleunid : $stockunidades;
    $txtMoDet = getModeloDetalle2txt();
    $txtModelo = $txtMoDet[1];
    $txtDetalle = $txtMoDet[2];
    $txtalias = $txtMoDet[3];
    $txtref = $txtMoDet[4];
    $ot->fijar("tTituloAux", _("Otras tiendas"));
    $ot->fijar("tIgualar", _("Todas las tiendas el mismo precio"));
    $ot->fijar("tMotivo", _("Motivo mod. existencias"));
    $ot->fijar("tTitulo", _("Modificar existencias"));
    $ot->fijar("vRefProvHab", $articulo->get("RefProvHab"));
    $ot->fijar("tRefProvHab", $txtref);
    $ot->fijar("vPresentacion", $oProducto->getTextColor());
    $ot->fijar("tPresentacion", $txtModelo);
    $ot->fijar("vProductoAlias0", getIdProductoAlias2Texto($articulo->get("IdProductoAlias0")));
    $ot->fijar("tProductoAlias0", $txtalias);
    $ot->fijar("vProductoAlias1", getIdProductoAlias2Texto($articulo->get("IdProductoAlias1")));
    $ot->fijar("tProductoAlias1", $txtalias);
    $ot->fijar("vSubPresentacion", $oProducto->getTextTalla());
    $ot->fijar("tSubPresentacion", $txtDetalle);
    $ot->fijar("vReferencia", $articulo->get("Referencia"));
    $ot->fijar("tReferencia", _("Referencia"));
    $ot->fijar("vDescripcion", $nombre);
    $ot->fijar("tDescripcion", _("Nombre"));
    $ot->fijar("vUnidades", $existencias);
    $ot->fijar("tUnidades", _("Stock"));
    $ot->fijar("mUnidad", $resmenudeo);
    $ot->fijar("vIGV", $igv);
    $ot->fijar("tIGV", "IGV");
    $ot->fijar("vCostoUnitario", round($articulo->get("CostoUnitario") * 100) / 100);
    $ot->fijar("tCostoUnitario", _("CU"));
    $ot->fijar("vCostoUnitarioC", round($articulo->get("CostoUnitario") * 100) / 100);
    $ot->fijar("tCostoUnitarioC", _("CU"));
    $ot->fijar("vMUD", $MUD);
    $ot->fijar("tMUD", _("MU"));
    $ot->fijar("vIGVD", $IGVD);
    $ot->fijar("tIGVD", _("IGV"));
    $ot->fijar("vPVD", $PVD);
    $ot->fijar("tPVD", _("PVP"));
    $ot->fijar("vPVDD", $PVDD);
    $ot->fijar("tPVDD", _("PVPD"));
    $ot->fijar("vMUC", $MUC);
    $ot->fijar("tMUC", _("MU"));
    $ot->fijar("vIGVC", $IGVC);
    $ot->fijar("tIGVC", _("IGV"));
    $ot->fijar("vPVC", $PVC);
    $ot->fijar("tPVC", _("PVC"));
    $ot->fijar("vPVCD", $PVCD);
    $ot->fijar("tPVCD", _("PVCD"));
    $ot->fijar("tTipoImpuesto", _("Impuesto"));
    $ot->fijar("vTipoImpuesto", $articulo->get("TipoImpuesto"));
    $ot->fijar("vImpuesto", $articulo->get("Impuesto"));
    $ot->fijar("vStockMin", $articulo->get("StockMin"));
    $ot->fijar("vStockUnidades", $stockunidades);
    $ot->fijar("tOfertaUnidades", _("Unidades en Oferta "));
    $ot->fijar("vOfertaUnidades", $articulo->get("OfertaUnidades"));
    $ot->fijar("tPrecioVentaOferta", _("Precio de Oferta"));
    $ot->fijar("vPrecioVentaOferta", $articulo->get("PrecioVentaOferta"));
    $ot->fijar("tDisponibleUnidades", _("Unidades Disponibles"));
    $ot->fijar("vDisponibleUnidades", $disponibleunid);
    $ot->fijar("tUnidad", $unidad);
    $ot->fijar("tUnidadesReservadas", _("Unidades Reservadas"));
    $ot->fijar("vUnidadesReservadas", $reservadaunid);
    $ot->fijar("cDisponible", $disponible);
    $ot->fijar("cDisponibleOnline", $dispOnline);
    $ot->fijar("cOferta", $oferta);
    $ot->fijar("cStockIlimitado", $stockilimitado);
    $ot->fijar("esStockIlimitado", $esIlimitado);
    $ot->fijar("tDisponible", _("Disponible"));
    $ot->fijar("tDisponibleOnline", _("Disponible Online"));
    $ot->fijar("tObsoleto", _("Obsoleto"));
    $ot->fijar("cObsoleto", $obsoleto);
    $ot->fijar("tOferta", _("En oferta"));
    $ot->fijar("tStockIlimitado", _("Stock ilimitado"));
    $ot->fijar("tStockMin", _("Stock minimo"));
    $ot->fijar("action", $action);
    $ot->fijar("vId", $articulo->get("Id"));
    echo $ot->Output();
}
Esempio n. 2
0
 function formClon($action, $lang = false, $volver = false)
 {
     $ot = getTemplate("ClonProducto");
     if (!$ot) {
         return false;
     }
     $modo = "salvaclon";
     $ListadoCombinado = genListadoCruzado($this->getId(), $this->get("IdTallaje"));
     $tieneserie = $this->get("Serie");
     $incluidons = $this->get("Serie") == 1 ? "checked" : "";
     $incluidolt = $this->get("Lote") == 1 ? "checked" : "";
     $incluidofv = $this->get("FechaVencimiento") == 1 ? "checked" : "";
     $incluidomd = $this->get("VentaMenudeo") == 1 ? "checked" : "";
     $motivomd = $this->get("VentaMenudeo") == 1 ? "visible" : "hidden";
     $tienefechavencimiento = $this->get("FechaVencimiento");
     $volver = $volver == "modcompras" ? "modcompras.php" : "modproductos.php";
     $numreg = ObtenerNumeroProductosPorReferencia($this->getReferencia());
     $readonlyUM = "readonly";
     $readonly = "readonly";
     $um = "";
     $ounidad = "";
     $ometro = "";
     $olitro = "";
     $okilo = "";
     switch ($this->get("UnidadMedida")) {
         case 'und':
             $um = "Unidades";
             $ounidad = "selected";
             break;
         case 'mts':
             $um = "Metros";
             $ometro = "selected";
             break;
         case 'lts':
             $um = "Litros";
             $olitro = "selected";
             break;
         case 'kls':
             $um = "Kilos";
             $okilo = "selected";
             break;
     }
     $osrm = "";
     $ocrm = "";
     $ocrmr = "";
     switch ($this->get("CondicionVenta")) {
         case '0':
             $osrm = "selected";
             break;
         case 'CRM':
             $ocrm = "selected";
             break;
         case 'CRMR':
             $ocrmr = "selected";
             break;
     }
     $txtMoDet = getModeloDetalle2txt();
     $esBTCA = $txtMoDet[0] == "BTCA";
     $hidden = "style='display:none;'";
     $btca = $esBTCA ? false : $hidden;
     $txtref = $txtMoDet[4];
     $ismtposerv = $this->get("Servicio") || $this->get("MetaProducto") ? $hidden : false;
     $isserie = $this->get("Serie") ? $hidden : false;
     $txtalias = $txtMoDet[3];
     $txtModelo = $txtMoDet[1];
     $txtDetalle = $txtMoDet[2];
     $txtTitulo = $esBTCA ? 'Nueva' : 'Nuevo';
     $titulo = _("{$txtTitulo} {$txtModelo} / {$txtDetalle}");
     $cambios = array("tPrecioVenta" => _("Previo Venta"), "vPrecioVenta" => $this->getPrecioVenta(), "vIdTallaje" => $this->get("IdTallaje"), "ListaCombinada" => $ListadoCombinado, "tImprimirCodigoBarras" => _("Imprimir código barras"), "vRefProvHab" => $this->get("RefProvHab"), "tRefProvHab" => $txtref, "vIdMarca" => $this->get("IdMarca"), "tMarca" => _("Marca"), "vMarca" => getIdMarca2Texto($this->get("IdMarca")), "vIdContenedor" => $this->get("IdContenedor"), "tContenedor" => _("Contenedor"), "vContenedor" => getIdContenedor2Texto($this->get("IdContenedor")), "vIdTalla" => $this->get("IdTalla"), "tModelo" => $txtModelo, "vTalla" => getIdTalla2Texto($this->get("IdTalla"), $this->get("IdIdioma")), "vIdColor" => $this->get("IdColor"), "tDetalle" => $txtDetalle, "vColor" => getIdColor2Texto($this->get("IdColor"), $this->get("IdIdioma")), "tCodigoBarras" => _("Código barras"), "vCodigoBarras" => $this->get("CodigoBarras"), "tTitulo" => $titulo, "HIDDENDATA" => Hidden("id", $this->getId()), "action" => "{$action}?modo={$modo}&idBase=", "Referencia" => _("Referencia"), "vReferencia" => $this->getReferencia(), "tCosteSinIVA" => _("Costo Ref."), "vCosteSinIVA" => $this->get("Costo") * 1, "Descripcion" => _("Nombre"), "vDescripcion" => $this->getDescripcion(), "isbtca" => $btca, "ismtposerv" => $ismtposerv, "isserie" => $isserie, "vIdProductoAlias0" => $this->get("IdProductoAlias0"), "tProductoAlias0" => $txtalias, "vProductoAlias0" => getIdProductoAlias2Texto($this->get("IdProductoAlias0"), $this->get("IdIdioma")), "vIdProductoAlias1" => $this->get("IdProductoAlias1"), "tProductoAlias1" => $txtalias, "vProductoAlias1" => getIdProductoAlias2Texto($this->get("IdProductoAlias1"), $this->get("IdIdioma")), "PrecioVenta" => _("Precio venta"), "vPrecioVenta" => $this->getPrecioVenta(), "PrecioOnline" => _("Precio online"), "vPrecioOnline" => $this->getPrecioOnline(), "tVentaMenudeo" => _("Venta al menudeo"), "cVentaMenudeo" => $incluidomd, "vMotivoMd" => $motivomd, "cNumeroSerie" => $incluidons, "cLote" => $incluidolt, "cFechaVencimiento" => $incluidofv, "tUnidadesPorContenedor" => _("Unidades Por Contenedor"), "vUnidadesPorContenedor" => $this->get("UnidadesPorContenedor"), "tUnidadMedida" => _("Unidad Medida"), "vUnidadMedida" => $this->get("UnidadMedida"), "vUM" => $um, "ounidad" => $ounidad, "ometro" => $ometro, "olitro" => $olitro, "okilo" => $okilo, "oSRM" => $osrm, "oCRM" => $ocrm, "oCRMR" => $ocrmr, "vReadOnly" => $readonly, "vReadOnlyUM" => $readonlyUM, "vSerie" => $tieneserie, "vFechaVencimiento" => $tienefechavencimiento, "tFamilia" => _("Familia..."), "tSubFamilia" => _("Sub familia..."), "TipoImpuesto" => _("Impuesto"), "tIdProvHab" => _("Proveedor hab."), "vIdProvHab" => $this->get("IdProvHab"), "vProveedorHab" => getNombreProveedor($this->get("IdProvHab")), "tIdLabHab" => _("Laboratorio hab."), "vIdLabHab" => $this->get("IdLabHab"), "vLaboratorioHab" => getNombreLaboratorio($this->get("IdLabHab")), "vTipoImpuesto" => $this->getTipoImpuesto(), "vIdFamilia" => $this->get("IdFamilia"), "vIdSubFamilia" => $this->get("IdSubFamilia"), "vFamilia" => $this->get("Familia"), "vSubFamilia" => $this->get("SubFamilia"), "vImpuesto" => $this->getImpuesto());
     return $ot->makear($cambios);
 }
Esempio n. 3
0
function getProductosSyncAlmacen($aprod = array(), $IdLocalActivo, $filtro = false, $esSync = false)
{
    $allprod = implode(",", $aprod);
    $igv = getSesionDato("IGV");
    $out = "";
    $esExtra = $filtro ? true : false;
    $filtroProducto = " AND ( ges_almacenes.Unidades >0 OR ( ges_productos.Servicio > 0 " . " OR ges_almacenes.StockIlimitado=1)) ";
    $filtroProducto = $esSync ? '' : $filtroProducto;
    $filtroProducto .= count($aprod) > 0 ? " AND ges_almacenes.IdProducto IN (" . $allprod . ") " : "";
    $filtroProducto = $esExtra ? $filtro : $filtroProducto;
    $sql = "SELECT ges_almacenes.IdProducto, " . "       ges_productos.IdProdBase,  " . "       ges_almacenes.Id, " . "       ges_almacenes.IdLocal, " . "       ges_almacenes.Unidades,  " . "       ges_almacenes.DisponibleUnidades,  " . "       ges_almacenes.Impuesto,  " . "       ges_almacenes.Oferta, " . "       ges_almacenes.OfertaUnidades, " . "       ges_almacenes.PrecioVentaOferta, " . "       ges_almacenes.StockMin, " . "       ges_almacenes.StockIlimitado, " . "       ges_productos.CodigoBarras, " . "       ges_productos.RefProvHab, " . "       ges_productos.Referencia, " . "       ges_productos_idioma.Descripcion, " . "       ges_marcas.Marca, " . "       ges_detalles.Talla, " . "       ges_modelos.Color, " . "       ges_laboratorios.NombreComercial as Laboratorio, " . "       ges_productos.Serie, " . "       ges_productos.Servicio, " . "       ges_productos.Lote, " . "       ges_productos.FechaVencimiento as Vence, " . "       ges_productos.IdProductoAlias0, " . "       ges_productos.IdProductoAlias1, " . "       ges_productos.VentaMenudeo, " . "       ges_productos.UnidadesPorContenedor, " . "       ges_productos.UnidadMedida, " . "       ges_productos.CondicionVenta, " . "       ges_productos.MetaProducto, " . "       ges_contenedores.Contenedor, " . "       ges_almacenes.ResumenKardex, " . "       ges_almacenes.CostoUnitario, " . "       ges_almacenes.PrecioVenta AS PVD," . "       ges_almacenes.PVDDescontado AS PVDD, " . "       ges_almacenes.PrecioVentaCorporativo AS PVC," . "       ges_almacenes.PVCDescontado AS PVCD, " . "       ges_almacenes.Disponible, " . "       ges_productos.Imagen " . "FROM   (((((((ges_almacenes   " . "INNER  JOIN ges_productos        ON " . "       ges_almacenes.IdProducto   = ges_productos.IdProducto) " . "INNER  JOIN ges_productos_idioma ON " . "       ges_productos.IdProdBase   = ges_productos_idioma.IdProdBase) " . "INNER  JOIN ges_marcas           ON " . "       ges_productos.IdMarca      = ges_marcas.IdMarca) " . "INNER  JOIN ges_laboratorios     ON " . "       ges_productos.IdLabHab     = ges_laboratorios.IdLaboratorio) " . "INNER  JOIN ges_detalles           ON " . "       ges_productos.IdTalla      = ges_detalles.IdTalla) " . "INNER  JOIN ges_modelos          ON " . "       ges_productos.IdColor      = ges_modelos.IdColor) " . "INNER  JOIN ges_contenedores     ON " . "       ges_productos.IdContenedor = ges_contenedores.IdContenedor) " . "WHERE  ges_productos_idioma.IdIdioma = '1' " . "       " . $filtroProducto . "AND    ges_productos.Eliminado    = 0 " . "AND    ges_almacenes.IdLocal      = '{$IdLocalActivo}'" . "ORDER  BY ges_productos.IdProdBase ";
    $jsOut = "";
    $jsLex = new jsLextable();
    $jsListar = "";
    $res = query($sql);
    while ($row = Row($res)) {
        //INFO: ProductosLatin1 indica que la tabla productos esta codificado en
        // Latin1, y no en utf8
        $xproducto = $row["IdProducto"];
        $xlocal = $row["IdLocal"];
        $PVD = $row["PVD"];
        $PVDD = $row["PVDD"];
        $PVC = $row["PVC"];
        $PVCD = $row["PVCD"];
        $UnidDisp = $row["DisponibleUnidades"];
        $Oferta = $row["Oferta"];
        $OfertaUnid = $row["OfertaUnidades"];
        $PVO = $row["PrecioVentaOferta"];
        $Disponible = $row["Disponible"];
        $rkdx = $row["ResumenKardex"];
        $Dosis = getfichatecnica2Producto($xproducto);
        $Serie = $row["Serie"] ? getPedidoDet2Kardex('Serie', $rkdx, $xproducto, $xlocal) : "";
        $Lote = $row["Lote"] ? getPedidoDet2Kardex('Lote', $rkdx, $xproducto, $xlocal) : "";
        $Vence = $row["Vence"] ? getPedidoDet2Kardex('Vence', $rkdx, $xproducto, $xlocal) : "";
        $alias1 = getIdProductoAlias2Texto($row["IdProductoAlias0"]);
        $alias2 = getIdProductoAlias2Texto($row["IdProductoAlias1"]);
        $Servicio = $row["Servicio"] > 0 ? getTipoServicio($row["Servicio"]) : 0;
        //Descripcion...
        $lexNombre = $jsLex->add($row["Descripcion"], getParametro("ProductosLatin1"));
        $qmnImagen = $row["Imagen"] ? qminimal($row["Imagen"]) : "0";
        $lexTalla = $jsLex->add($row["Talla"]);
        $lexColor = $jsLex->add($row["Color"]);
        $lexMarca = $jsLex->add($row["Marca"]);
        $lexLab = $jsLex->add($row["Laboratorio"], getParametro("ProductosLatin1"));
        $lexAlias1 = $jsLex->add($alias1, getParametro("ProductosLatin1"));
        $lexAlias2 = $jsLex->add($alias2, getParametro("ProductosLatin1"));
        //Codigos...
        $qmnCB = qminimal($row["CodigoBarras"]);
        $qmnRef = qminimal($row["Referencia"]);
        $qmnRefProv = qminimal($row["RefProvHab"]);
        //Stock...
        $Stock = qminimal($row["Unidades"]);
        $xStock = $UnidDisp > 0 && $Stock >= $UnidDisp ? $UnidDisp : $Stock;
        //Reservado
        $qmnStock = $Disponible ? $xStock : 0;
        //Disponible
        $qmnOfertaUnid = $OfertaUnid;
        $qmnKardex = qminimal($rkdx);
        $qmnIlimitado = qminimal($row["StockIlimitado"]);
        //Precios...
        $qmnPVD = qminimal($PVD * 100);
        $qmnPVDD = qminimal($PVDD);
        $qmnPVC = qminimal($PVC * 100);
        $qmnPVCD = qminimal($PVCD);
        $qmnPVO = qminimal($PVO);
        $qmnCosto = qminimal($row["CostoUnitario"]);
        $qmnImpuesto = qminimal($row["Impuesto"]);
        //Detalles...
        $qmnSerie = qminimal($Serie);
        $qmnLote = qminimal($Lote);
        $qmnOferta = qminimal($Oferta);
        $qmnVence = qminimal($Vence);
        $qmnCondVenta = qminimal($row["CondicionVenta"]);
        $qmnMenudeo = qminimal($row["VentaMenudeo"]);
        $qmnServicio = qminimal($Servicio);
        $qmnMProducto = qminimal($row["MetaProducto"]);
        $qmnUnd = qminimal($row["UnidadMedida"]);
        $qmnCont = qminimal($row["Contenedor"]);
        $qmnUndxCont = qminimal($row["UnidadesPorContenedor"]);
        $qmnID = qminimal($xproducto);
        $qmnDosis = qminimal($Dosis);
        //BTCA...
        $jsOut .= "tA(" . $qmnID . "," . $qmnCB . "," . $lexNombre . "," . $qmnImagen . "," . $qmnRef . "," . $qmnPVD . "," . $qmnPVC . "," . $qmnImpuesto . "," . $lexTalla . "," . $lexColor . "," . $qmnOferta . "," . $qmnOfertaUnid . "," . $qmnPVO . "," . $qmnCondVenta . ",null,null," . $qmnKardex . "," . $lexAlias1 . "," . $lexAlias2 . "," . $qmnRefProv . "," . $qmnStock . "," . $qmnSerie . "," . $lexMarca . "," . $qmnCosto . "," . $qmnMenudeo . "," . $qmnUndxCont . "," . $qmnUnd . "," . $lexLab . "," . $qmnCont . "," . $qmnPVDD . "," . $qmnPVCD . "," . $qmnVence . "," . $qmnLote . "," . $qmnServicio . "," . $qmnMProducto . "," . $qmnIlimitado . "," . $qmnDosis . ");\n";
        if ($esExtra) {
            $jsListar .= "CEEP(" . qminimal($row["CodigoBarras"]) . ");\n";
        }
    }
    $out .= $jsLex->jsDump("L", "xul", false);
    //vamos a defininir en fuera.
    $out .= $jsOut . $jsListar;
    $generadorJSDeProductos = $out;
    return $generadorJSDeProductos;
}