614 lines
16 KiB
PHP
Executable File
614 lines
16 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
switch($_POST["type"]){
|
|
|
|
case "saveProducto":
|
|
|
|
$codigoBarra = trim($_POST['codigoBarra']);
|
|
|
|
$producto->setProveedorId($_POST['proveedorId']);
|
|
$producto->setProdCatId($_POST['prodCatId']);
|
|
$producto->setProdSubcatId($_POST['prodSubcatId']);
|
|
$producto->setModelo($_POST['modelo']);
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$producto->setConTallaId($_POST['conTallaId']);
|
|
$producto->setDescripcion(urldecode($_POST['descripcion']));
|
|
$producto->setTemporadaId($_POST['temporadaId']);
|
|
$producto->setCosto($_POST['costo']);
|
|
$producto->setPrecioVentaIva($_POST['precioVentaIva']);
|
|
$producto->setUtilidad($_POST['utilidad']);
|
|
$producto->setTmpImg($_POST['tmpImg']);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else{
|
|
|
|
//Checamos los materiales
|
|
|
|
if(count($_POST['materialId']) == 0)
|
|
$_POST['materialId'] = array();
|
|
|
|
$totalPorc = 0;
|
|
foreach($_POST['materialId'] as $k => $materialId){
|
|
$porcentaje = $_POST['porcentaje'][$k];
|
|
|
|
$producto->setMaterialId($materialId);
|
|
$producto->setPorcentaje($porcentaje);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
$totalPorc += $porcentaje;
|
|
}
|
|
|
|
//Checamos el porcentaje total de los materiales
|
|
|
|
if($totalPorc > 100){
|
|
|
|
$util->setError(20052, 'error', '', '');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
|
|
}elseif($totalPorc < 100){
|
|
|
|
$util->setError(20053, 'error', '', '');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
|
|
}
|
|
|
|
//Guardamos los Codigos de Barra
|
|
|
|
$codigo = $_POST['codigo'];
|
|
if(count($codigo) == 0)
|
|
$codigo = array();
|
|
|
|
if(count($_POST['tallas']) == 0){
|
|
//$producto->setTallas('');
|
|
$_POST['tallas'] = array();
|
|
}
|
|
|
|
if(count($_POST['colores']) == 0){
|
|
//$producto->setColores('');
|
|
$_POST['colores'] = array();
|
|
}
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
$codigos = array();
|
|
foreach($_POST['tallas'] as $tallaId){
|
|
|
|
$atribVal->setAtribValId($tallaId);
|
|
$nomTalla = $atribVal->GetNameById();
|
|
|
|
foreach($_POST['colores'] as $colorId){
|
|
|
|
$codigoBarra = trim($codigo[$tallaId][$colorId]);
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
|
|
$codigos[] = strtoupper($codigoBarra);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}//if
|
|
|
|
}//foreach
|
|
|
|
}//foreach
|
|
|
|
//Verificamos si existen algun codigo dentro de los productos
|
|
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
if($producto->GetProductIdByCodigo()){
|
|
$util->setError(20061, 'error', '', $code);
|
|
$util->PrintErrors();
|
|
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}//if
|
|
|
|
echo 'ok[#]';
|
|
|
|
}//else
|
|
|
|
break;
|
|
|
|
case "saveEditProducto":
|
|
|
|
$productoId = $_POST['productoId'];
|
|
$codigoBarra = trim($_POST['codigoBarra']);
|
|
|
|
$producto->setProveedorId($_POST['proveedorId']);
|
|
$producto->setProdCatId($_POST['prodCatId']);
|
|
$producto->setProdSubcatId($_POST['prodSubcatId']);
|
|
$producto->setModelo($_POST['modelo']);
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$producto->setConTallaId($_POST['conTallaId']);
|
|
$producto->setTemporadaId($_POST['temporadaId']);
|
|
$producto->setDescripcion(urldecode($_POST['descripcion']));
|
|
$producto->setCosto($_POST['costo']);
|
|
$producto->setPrecioVentaIva($_POST['precioVentaIva']);
|
|
$producto->setUtilidad($_POST['utilidad']);
|
|
|
|
if($productoId > 11236)
|
|
$producto->setTmpImg($_POST['tmpImg']);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else{
|
|
|
|
//Checamos los materiales
|
|
|
|
if(count($_POST['materialId']) == 0)
|
|
$_POST['materialId'] = array();
|
|
|
|
$totalPorc = 0;
|
|
foreach($_POST['materialId'] as $k => $materialId){
|
|
$porcentaje = $_POST['porcentaje'][$k];
|
|
|
|
$producto->setMaterialId($materialId);
|
|
$producto->setPorcentaje($porcentaje);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
$totalPorc += $porcentaje;
|
|
}
|
|
|
|
//Checamos el porcentaje total de los materiales
|
|
|
|
if($totalPorc > 100){
|
|
|
|
$util->setError(20052, 'error', '', '');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
|
|
}
|
|
|
|
//Guardamos los Codigos de Barra
|
|
|
|
$codigo = $_POST['codigo'];
|
|
if(count($codigo) == 0)
|
|
$codigo = array();
|
|
|
|
if(count($_POST['tallas']) == 0){
|
|
//$producto->setTallas('');
|
|
$_POST['tallas'] = array();
|
|
}
|
|
|
|
if(count($_POST['colores']) == 0){
|
|
//$producto->setColores('');
|
|
$_POST['colores'] = array();
|
|
}
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
$codigos = array();
|
|
foreach($_POST['tallas'] as $tallaId){
|
|
|
|
$atribVal->setAtribValId($tallaId);
|
|
$nomTalla = $atribVal->GetNameById();
|
|
|
|
foreach($_POST['colores'] as $colorId){
|
|
|
|
$codigoBarra = trim($codigo[$tallaId][$colorId]);
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
|
|
$codigos[] = strtoupper($codigoBarra);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}//if
|
|
|
|
}//foreach
|
|
|
|
}//foreach
|
|
|
|
//Verificamos si existen algun codigo dentro de los productos
|
|
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$idProd = $producto->GetProductIdByCodigo();
|
|
if($idProd > 0 && $productoId != $idProd){
|
|
$util->setError(20061, 'error', '', $code);
|
|
$util->PrintErrors();
|
|
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}//if
|
|
|
|
|
|
|
|
echo 'ok[#]';
|
|
|
|
}//else
|
|
|
|
break;
|
|
|
|
case "deleteProducto":
|
|
|
|
$producto->setProductoId($_POST['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
if($producto->Baja()){
|
|
|
|
if($infP['imagen'] != '')
|
|
@unlink(DOC_ROOT.'/images/productos/'.$infP['imagen']);
|
|
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
|
|
echo '[#]';
|
|
$productos = $producto->Enumerate();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
|
|
$res['modelo'] = utf8_encode($res['modelo']);
|
|
|
|
$proveedor->setProveedorId($res['proveedorId']);
|
|
$infPv = $proveedor->Info();
|
|
|
|
$res['proveedor'] = utf8_encode($infPv['nombre']);
|
|
$res['noProv'] = $infPv['noProv'];
|
|
|
|
$prodCat->setProdCatId($res['prodCatId']);
|
|
$res['departamento'] = utf8_encode($prodCat->GetNameById());
|
|
|
|
if($res['prodSubcatId']){
|
|
$prodSubcat->setProdSubcatId($res['prodSubcatId']);
|
|
$res['linea'] = utf8_encode($prodSubcat->GetNameById());
|
|
}
|
|
|
|
$items[] = $res;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos', $productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/productos.tpl');
|
|
}
|
|
|
|
break;
|
|
|
|
case 'loadSubcats':
|
|
|
|
$prodSubcat->setProdCatId($_POST['prodCatId']);
|
|
$subcategorias = $prodSubcat->EnumerateAll();
|
|
$subcategorias = $util->EncodeResult($subcategorias);
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('subcategorias', $subcategorias);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/enumProdSubcat.tpl');
|
|
|
|
break;
|
|
|
|
case 'loadTallas':
|
|
|
|
$conTallaId = $_POST['conTallaId'];
|
|
|
|
$conValor->setConTallaId($conTallaId);
|
|
$resTallas = $conValor->EnumerateAll();
|
|
|
|
$tallas = array();
|
|
foreach($resTallas as $res){
|
|
|
|
$atribVal->setAtribValId($res['tallaId']);
|
|
$res['nombre'] = utf8_encode($atribVal->GetNameById());
|
|
|
|
$tallas[] = $res;
|
|
}
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('tallas', $tallas);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/enumTallasProd.tpl');
|
|
|
|
break;
|
|
|
|
case "search":
|
|
|
|
$producto->setNoProveedor($_POST['noProveedor']);
|
|
$producto->setProveedorId($_POST['proveedorId2']);
|
|
$producto->setDescripcion($_POST['word']);
|
|
$producto->setProdCatId($_POST['prodCatId']);
|
|
$producto->setCodigoBarra($_POST['codigoBarra']);
|
|
|
|
$productos = $producto->Search();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
|
|
$proveedor->setProveedorId($res['proveedorId']);
|
|
$infPv = $proveedor->Info();
|
|
|
|
$res['proveedor'] = $infPv['nombre'];
|
|
$res['noProv'] = utf8_encode($infPv['noProv']);
|
|
|
|
$prodCat->setProdCatId($res['prodCatId']);
|
|
$res['departamento'] = utf8_encode($prodCat->GetNameById());
|
|
|
|
if($res['prodSubcatId']){
|
|
$prodSubcat->setProdSubcatId($res['prodSubcatId']);
|
|
$res['linea'] = utf8_encode($prodSubcat->GetNameById());
|
|
}
|
|
|
|
$res['modelo'] = utf8_encode($res['modelo']);
|
|
|
|
$items[] = $res;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos', $productos );
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/productos.tpl');
|
|
|
|
break;
|
|
|
|
case "searchDuplicados":
|
|
|
|
$producto->setNoProveedor($_POST['noProveedor']);
|
|
$producto->setProveedorId($_POST['proveedorId2']);
|
|
$producto->setDescripcion($_POST['word']);
|
|
$producto->setProdCatId($_POST['prodCatId']);
|
|
$producto->setCodigoBarra($_POST['codigoBarra']);
|
|
|
|
$productos = $producto->SearchDuplicados();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
|
|
$proveedor->setProveedorId($res['proveedorId']);
|
|
$infPv = $proveedor->Info();
|
|
|
|
$res['proveedor'] = $infPv['nombre'];
|
|
$res['noProv'] = utf8_encode($infPv['noProv']);
|
|
|
|
$prodCat->setProdCatId($res['prodCatId']);
|
|
$res['departamento'] = utf8_encode($prodCat->GetNameById());
|
|
|
|
if($res['prodSubcatId']){
|
|
$prodSubcat->setProdSubcatId($res['prodSubcatId']);
|
|
$res['linea'] = utf8_encode($prodSubcat->GetNameById());
|
|
}
|
|
|
|
$res['modelo'] = utf8_encode($res['modelo']);
|
|
|
|
$items[] = $res;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos', $productos );
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/productos-duplicados.tpl');
|
|
|
|
break;
|
|
|
|
case 'loadBarCodes':
|
|
|
|
$productoId = $_POST['productoId'];
|
|
$codigoBarra = trim($_POST['codigoBarra']);
|
|
|
|
if(count($_POST['tallas']) == 0)
|
|
$_POST['tallas'] = array();
|
|
|
|
if(count($_POST['colores']) == 0)
|
|
$_POST['colores'] = array();
|
|
|
|
$codigos = array();
|
|
foreach($_POST['tallas'] as $tallaId){
|
|
|
|
$atribVal->setAtribValId($tallaId);
|
|
$nomTalla = $atribVal->GetNameById();
|
|
|
|
foreach($_POST['colores'] as $colorId){
|
|
|
|
$atribVal->setAtribValId($colorId);
|
|
|
|
$card['tallaId'] = $tallaId;
|
|
$card['colorId'] = $colorId;
|
|
$card['nombre'] = utf8_encode($nomTalla.' '.$atribVal->GetNameById());
|
|
|
|
$code = '';
|
|
if($productoId){
|
|
$producto->setProductoId($productoId);
|
|
$producto->setTallaId($tallaId);
|
|
$producto->setColorId($colorId);
|
|
|
|
$code = $producto->GetCodigoBarra();
|
|
}
|
|
|
|
$card['codigo'] = $codigoBarra;
|
|
|
|
$codigos[] = $card;
|
|
|
|
}//foreach
|
|
|
|
}//foreach
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('codigos', $codigos);
|
|
$smarty->assign("DOC_ROOT", DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/productos-codigos.tpl');
|
|
|
|
break;
|
|
|
|
case 'checkMaterials':
|
|
|
|
if(count($_POST['materialId']) == 0)
|
|
$_POST['materialId'] = array();
|
|
|
|
$totalPorc = 0;
|
|
foreach($_POST['materialId'] as $k => $materialId){
|
|
|
|
$porcentaje = $_POST['porcentaje'][$k];
|
|
|
|
$producto->setMaterialId($materialId);
|
|
$producto->setPorcentaje($porcentaje);
|
|
|
|
if(!$producto->SaveTemp()){
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
$totalPorc += $porcentaje;
|
|
}
|
|
|
|
//Checamos el porcentaje total de los materiales
|
|
|
|
if($totalPorc > 100){
|
|
|
|
$util->setError(20052, 'error', '', '');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
|
|
}elseif($totalPorc < 100){
|
|
|
|
$util->setError(20053, 'error', '', '');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'loadAtributos':
|
|
|
|
$prodSubcat->setProdSubcatId($_POST['prodSubcatId']);
|
|
$resAtributos = $prodSubcat->EnumAtributos();
|
|
|
|
$atributos = array();
|
|
foreach($resAtributos as $res){
|
|
$card = $res;
|
|
|
|
$atributo->setAtributoId($res['atributoId']);
|
|
$card['nombre'] = utf8_encode($atributo->GetNameById());
|
|
|
|
$atribVal->setAtributoId($res['atributoId']);
|
|
$valores = $atribVal->EnumerateAll();
|
|
$card['valores'] = $util->EncodeResult($valores);
|
|
|
|
$atributos[] = $card;
|
|
}
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('atributos', $atributos);
|
|
$smarty->assign("DOC_ROOT", DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/enumAtributos.tpl');
|
|
|
|
break;
|
|
|
|
case 'calcUtilidad':
|
|
|
|
$precioVenta = $_POST['precioVenta'];
|
|
$costo = $_POST['costo'];
|
|
|
|
$utilidad = $precioVenta - $costo;
|
|
|
|
$porcUtilidad = ($utilidad * 100) / $costo;
|
|
|
|
echo 'ok[#]';
|
|
echo number_format($utilidad,2,'.','');
|
|
echo '[#]';
|
|
echo number_format($porcUtilidad,2,'.',',');
|
|
|
|
break;
|
|
|
|
case 'calcPrecioSinIva':
|
|
|
|
$precioVentaIva = $_POST['precioVentaIva'];
|
|
|
|
$precioVenta = 0;
|
|
if($precioVentaIva != ''){
|
|
$precioVenta = $precioVentaIva / 1.16;
|
|
$precioVenta = number_format($precioVenta,2,'.','');
|
|
}
|
|
|
|
echo 'ok[#]';
|
|
echo $precioVenta;
|
|
|
|
break;
|
|
|
|
case 'fillInfoProd':
|
|
|
|
$producto->setProductoId($_POST['productoId']);
|
|
$info = $producto->Info();
|
|
|
|
echo 'ok[#]';
|
|
echo $info['productoId'];
|
|
echo '[#]';
|
|
echo utf8_encode($info['modelo']);
|
|
|
|
break;
|
|
|
|
case 'fillInfoProdFact':
|
|
|
|
$producto->setProdItemId($_POST['prodItemId']);
|
|
$info = $producto->GetInfoItemById();
|
|
|
|
$producto->setProductoId($info['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$atribVal->setAtribValId($info['tallaId']);
|
|
$res['talla'] = $atribVal->GetNameById();
|
|
|
|
$atribVal->setAtribValId($info['colorId']);
|
|
$res['color'] = $atribVal->GetNameById();
|
|
|
|
$descripcion = $infP['modelo'].' '.$res['talla'].' '.$res['color'];
|
|
|
|
echo 'ok[#]';
|
|
echo $info['codigoBarra'];
|
|
echo '[#]';
|
|
echo 'Pieza';
|
|
echo '[#]';
|
|
echo $infP['precioVentaIva'];
|
|
echo '[#]';
|
|
echo utf8_encode($descripcion);
|
|
|
|
break;
|
|
|
|
}//switch
|
|
|
|
?>
|