Files
ventas_php/ajax/envios-recibir-reporte.php

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