530 lines
15 KiB
PHP
Executable File
530 lines
15 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
$Usr = $user->Info();
|
|
$smarty->assign('Usr', $Usr);
|
|
|
|
if(isset($_POST['action']))
|
|
$_POST['type'] = $_POST['action'];
|
|
|
|
switch($_POST["type"]){
|
|
|
|
case 'addProducto':
|
|
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/agregar-envio-reporte-popup.tpl');
|
|
|
|
break;
|
|
|
|
case 'saveProducto':
|
|
|
|
$envioId = trim($_POST['envioId']);
|
|
$codigoBarra = trim($_POST['codigoBarra']);
|
|
$tipo = $_POST['tipo'];
|
|
$cantidad = trim($_POST['cantidad']);
|
|
$sucursalId = $Usr['sucursalId'];
|
|
|
|
$envio->setEnvioId($envioId);
|
|
$infE = $envio->Info();
|
|
|
|
$noError = '';
|
|
if($envioId == '')
|
|
$noError = 10053;
|
|
elseif($codigoBarra == '')
|
|
$noError = 20106;
|
|
elseif($cantidad == '')
|
|
$noError = 20130;
|
|
else{
|
|
|
|
if($infE['sucursalId'] != $sucursalId)
|
|
$noError = 20131;
|
|
}
|
|
|
|
if($noError){
|
|
$util->setError($noError,'','');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
//Checamos si existe el producto en el pedido.
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$productoId = $producto->GetProductIdByCodigo2();
|
|
|
|
$envio->setEnvioId($envioId);
|
|
$envio->setProductoId($productoId);
|
|
|
|
if($infE['tipo'] == 'CT')
|
|
$existe = $envio->ExistProductoRec();
|
|
else
|
|
$existe = $envio->ExistProductoRecTT();
|
|
|
|
if(!$existe){
|
|
$util->setError(20132,'','');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
//Checamos si ya se agrego el producto al reporte
|
|
$existe = $envio->ExistProductoRep();
|
|
|
|
if($existe){
|
|
$util->setError(20133,'','');
|
|
$util->PrintErrors();
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
exit;
|
|
}
|
|
|
|
//Obtenemos el total recibido
|
|
$envio->setEnvioId($envioId);
|
|
$envio->setProductoId($productoId);
|
|
|
|
if($infE['tipo'] == 'CT')
|
|
$total = $envio->GetTotalProdsRec();
|
|
else
|
|
$total = $envio->GetTotalProdsRecTT();
|
|
|
|
$envio->setEnvioId($envioId);
|
|
$envio->setSucursalId($sucursalId);
|
|
$envio->setProductoId($productoId);
|
|
$envio->setTotal($total);
|
|
$envio->setTipo($tipo);
|
|
$envio->setCantidad($cantidad);
|
|
$envio->setUsuarioId($_SESSION['loginKey']);
|
|
|
|
if(!$envio->SaveReporteProd())
|
|
{
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else
|
|
{
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
echo '[#]';
|
|
|
|
$envio->setSucursalId($Usr['sucursalId']);
|
|
$productos = $envio->EnumRepProd();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
$card = $res;
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$card['codigoBarra'] = $infP['codigoBarra'];
|
|
$card['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$card['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
if($card['tipo'] == 'Faltante')
|
|
$card['recibido'] = $card['total'] - $card['cantidad'];
|
|
else
|
|
$card['recibido'] = $card['total'] + $card['cantidad'];
|
|
|
|
$items[] = $card;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/envios-productos-recibidos.tpl');
|
|
}
|
|
|
|
break;
|
|
|
|
case 'deleteProducto':
|
|
|
|
$envRepProdId = $_POST['envRepProdId'];
|
|
|
|
$envio->setEnvRepProdId($envRepProdId);
|
|
|
|
if(!$envio->DelEnvRepProd())
|
|
{
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else
|
|
{
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
echo '[#]';
|
|
|
|
$envio->setSucursalId($Usr['sucursalId']);
|
|
$productos = $envio->EnumRepProd();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
$card = $res;
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$card['codigoBarra'] = $infP['codigoBarra'];
|
|
$card['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$card['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
if($card['tipo'] == 'Faltante')
|
|
$card['recibido'] = $card['total'] - $card['cantidad'];
|
|
else
|
|
$card['recibido'] = $card['total'] + $card['cantidad'];
|
|
|
|
$items[] = $card;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/envios-productos-recibidos.tpl');
|
|
}
|
|
|
|
break;
|
|
|
|
case 'autorizarProducto':
|
|
|
|
$envRepProdId = $_POST['envRepProdId'];
|
|
$envio->setEnvRepProdId($envRepProdId);
|
|
|
|
if(!$envio->AutorizarRepProd())
|
|
{
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else{
|
|
|
|
$envio->setEnvRepProdId($envRepProdId);
|
|
$infR = $envio->InfoRepProd();
|
|
|
|
$envio->setEnvioId($infR['envioId']);
|
|
$infE = $envio->Info();
|
|
|
|
//Si es Faltante ajustamos el Inventario eliminando los productos faltantes si la Tienda Origen
|
|
//No es 00 Bodega Lerma
|
|
//Si es envio de T a T se regresan los productos a la sucursal Origen siempre y cuando No sea
|
|
//00 Bodega Lerma
|
|
|
|
//Si Suc. 1 envia 10 Pzas. a Suc 2, y Suc. 2 reporta faltante de 3 piezas
|
|
//esas 3 piezas se regresaa Suc. 1
|
|
|
|
if($infR['tipo'] == 'Faltante'){
|
|
|
|
$envio->setEnvioId($infR['envioId']);
|
|
$envio->setProductoId($infR['productoId']);
|
|
$envio->setCantidad($infR['cantidad']);
|
|
$envio->setSucursalId($infE['sucOrigen']);
|
|
|
|
if($infE['tipo'] == 'CT')
|
|
$envio->AjustarInventario();
|
|
elseif($infE['tipo'] == 'TT' && $infE['sucOrigen'] != 32)
|
|
$envio->AjustarInventarioTT();
|
|
elseif($infE['tipo'] == 'TT' && $infE['sucOrigen'] == 32)
|
|
$envio->AjustarInventario();
|
|
|
|
}elseif($infR['tipo'] == 'Sobrante'){
|
|
|
|
$productoId = $infR['productoId'];
|
|
$sucursalId = $infR['sucursalId'];
|
|
$cantidad = $infR['cantidad'];
|
|
|
|
$db = $util->DBSelect(15);
|
|
|
|
$sql = 'SELECT proveedorId FROM producto WHERE productoId = "'.$productoId.'"';
|
|
$db->setQuery($sql);
|
|
$proveedorId = $db->GetSingle();
|
|
|
|
//Obtenemos el Sig. No de Pedido
|
|
$sql = 'SELECT MAX(noPedido) FROM pedido';
|
|
$db->setQuery($sql);
|
|
$noPedido = $db->GetSingle();
|
|
|
|
$noPedido++;
|
|
|
|
//CARGAMOS LOS PRODUCTOS
|
|
|
|
$sql = 'INSERT INTO pedido
|
|
(
|
|
proveedorId,
|
|
folioProv,
|
|
noPedido,
|
|
fecha,
|
|
fechaEntrega,
|
|
metodoCompra,
|
|
resurtido,
|
|
usuarioId,
|
|
fechaAprobacion,
|
|
userIdAprobacion,
|
|
|
|
fechaDistribucion,
|
|
userIdDistribucion,
|
|
|
|
fechaAutorizacion,
|
|
userIdAutorizacion,
|
|
|
|
fechaOrdenCompEnv,
|
|
userIdOrdenCompEnv,
|
|
|
|
fechaOrdenCompIng,
|
|
userIdOrdenCompIng,
|
|
ajuste,
|
|
status
|
|
)VALUES(
|
|
"'.$proveedorId.'",
|
|
"FOLIO'.$noPedido.'",
|
|
"'.$noPedido.'",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"'.date('Y-m-d').'",
|
|
"conIva",
|
|
"0",
|
|
"2",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"3",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"6",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"3",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"2",
|
|
"'.date('Y-m-d H:i:s').'",
|
|
"4",
|
|
"1",
|
|
"EnvSuc"
|
|
)';
|
|
$db->setQuery($sql);
|
|
$pedidoId = $db->InsertData();
|
|
|
|
$sql = 'SELECT * FROM producto
|
|
WHERE productoId = '.$productoId;
|
|
$db->setQuery($sql);
|
|
$infP = $db->GetRow();
|
|
|
|
$sql = 'INSERT INTO pedidoColor (pedidoId, productoId, colorId, cantidad)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", 2, '.$cantidad.')';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$sql = 'INSERT INTO pedidoTalla (pedidoId, productoId, tallaId, cantidad)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", 1, 1)';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$sql = 'INSERT INTO pedidoDistribucion (pedidoId, productoId, sucursalId, cantidad, status)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", "'.$sucursalId.'", "'.$cantidad.'", "Enviado")';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$sql = 'INSERT INTO pedidoProducto (pedidoId, productoId, prodCatId, prodSubcatId, totalLote,
|
|
cantLotes, cantPrendas, prendasComp, costo, precioVenta, status)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", "'.$infP['prodCatId'].'", "'.$infP['prodSubcatId'].'", "'.$cantidad.'",
|
|
1, "'.$cantidad.'","1","'.$infP['costo'].'", "'.$infP['precioVentaIva'].'" ,"Aprobado")';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
//Envios
|
|
|
|
$sql = 'INSERT INTO envio (sucursalId, fecha, usuarioId, fechaRecibido, userIdRecibido, tipo, status)
|
|
VALUES ("'.$sucursalId.'","'.date('Y-m-d H:i:s').'", 4, "'.date('Y-m-d H:i:s').'", 5, "CT", "Recibido")';
|
|
$db->setQuery($sql);
|
|
$envioId = $db->InsertData();
|
|
|
|
$sql = 'INSERT INTO envioPedido (envioId, pedidoId, noCajas)
|
|
VALUES ("'.$envioId.'", "'.$pedidoId.'", 1)';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$sql = 'INSERT INTO envioRecibir (envioId, pedidoId, productoId, noPrendas, completo)
|
|
VALUES ("'.$envioId.'", "'.$pedidoId.'", "'.$productoId.'", "'.$cantidad.'", "1")';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$sql = 'SELECT * FROM producto
|
|
WHERE productoId = '.$productoId;
|
|
$db->setQuery($sql);
|
|
$infP = $db->GetRow();
|
|
|
|
for($k=0; $k<$cantidad; $k++){
|
|
|
|
$sql = 'INSERT INTO inventario (envioId, pedidoId, sucursalId, productoId, prodItemId, precioVenta, cantidad, status)
|
|
VALUES ("'.$envioId.'", "'.$pedidoId.'", "'.$sucursalId.'", "'.$productoId.'", "'.$productoId.'", "'.$infP['precioVentaIva'].'", "1", "Disponible")';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
}
|
|
|
|
//Guardamos los Datos
|
|
|
|
$sql = 'INSERT INTO ajustes (sucursalId, productoId, disponible, cantidad, fecha, pedidoId, usuarioId,
|
|
tipo, modulo)
|
|
VALUES ("'.$sucursalId.'", "'.$productoId.'", "'.$disponible.'", "'.$cantidad.'",
|
|
"'.date('Y-m-d H:i:s').'", "'.$pedidoId.'", "'.$Usr['usuarioId'].'", "Agregar", "EnvMercFS")';
|
|
$db->setQuery($sql);
|
|
$db->InsertData();
|
|
|
|
$util->setError(20109,'complete');
|
|
$util->PrintErrors();
|
|
|
|
}//if
|
|
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
echo '[#]';
|
|
|
|
$envio->setSucursalId(0);
|
|
$productos = $envio->EnumRepProd();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
$card = $res;
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$card['codigoBarra'] = $infP['codigoBarra'];
|
|
$card['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$card['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
if($card['tipo'] == 'Faltante')
|
|
$card['recibido'] = $card['total'] - $card['cantidad'];
|
|
else
|
|
$card['recibido'] = $card['total'] + $card['cantidad'];
|
|
|
|
$items[] = $card;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/envios-productos-recibidos.tpl');
|
|
}
|
|
|
|
break;
|
|
|
|
case 'rechazarProducto':
|
|
|
|
$envio->setEnvRepProdId($_POST['envRepProdId']);
|
|
|
|
if(!$envio->RechazarRepProd())
|
|
{
|
|
echo 'fail[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
|
|
}else{
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
echo '[#]';
|
|
|
|
$productos = $envio->EnumRepProd();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
$card = $res;
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$card['codigoBarra'] = $infP['codigoBarra'];
|
|
$card['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$card['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
if($card['tipo'] == 'Faltante')
|
|
$card['recibido'] = $card['total'] - $card['cantidad'];
|
|
else
|
|
$card['recibido'] = $card['total'] + $card['cantidad'];
|
|
|
|
$items[] = $card;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/envios-productos-recibidos.tpl');
|
|
}
|
|
|
|
break;
|
|
|
|
case 'loadInfoProd':
|
|
|
|
$envioId = $_POST['envioId'];
|
|
$codigoBarra = $_POST['codigoBarra'];
|
|
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$productoId = $producto->GetProductIdByCodigo2();
|
|
|
|
$producto->setProductoId($productoId);
|
|
$infP = $producto->Info();
|
|
|
|
$envio->setEnvioId($envioId);
|
|
$infE = $envio->Info();
|
|
|
|
$envio->setEnvioId($envioId);
|
|
$envio->setProductoId($productoId);
|
|
|
|
if($infE['tipo'] == 'CT')
|
|
$total = $envio->GetTotalProdsRec();
|
|
else
|
|
$total = $envio->GetTotalProdsRecTT();
|
|
|
|
echo 'ok[#]';
|
|
echo utf8_encode($infP['modelo']);
|
|
echo '[#]';
|
|
echo number_format($total,0,'.',',');
|
|
|
|
break;
|
|
|
|
case 'search':
|
|
|
|
$codigoBarra = trim($_POST['codigoBarra2']);
|
|
|
|
if($codigoBarra){
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$productoId = $producto->GetProductIdByCodigo();
|
|
}
|
|
|
|
$envio->setEnvioId(trim($_POST['envioId2']));
|
|
$envio->setSucursalId($_POST['sucursalId2']);
|
|
$envio->setProductoId($productoId);
|
|
$envio->setStatus($_POST['status2']);
|
|
$productos = $envio->SearchRepProd();
|
|
|
|
$items = array();
|
|
foreach($productos['items'] as $res){
|
|
$card = $res;
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$card['codigoBarra'] = $infP['codigoBarra'];
|
|
$card['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$card['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
if($card['tipo'] == 'Faltante')
|
|
$card['recibido'] = $card['total'] - $card['cantidad'];
|
|
else
|
|
$card['recibido'] = $card['total'] + $card['cantidad'];
|
|
|
|
$items[] = $card;
|
|
}
|
|
$productos['items'] = $items;
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/envios-productos-recibidos.tpl');
|
|
|
|
break;
|
|
|
|
}//switch
|
|
|
|
?>
|