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(); }
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); }
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; }