Files
ventas_php/ajax/productos.php

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
?>