433 lines
13 KiB
PHP
Executable File
433 lines
13 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
session_start();
|
|
|
|
$sucursalId = $_SESSION['idSuc'];
|
|
|
|
$Usr = $user->Info();
|
|
$smarty->assign('Usr', $Usr);
|
|
|
|
if(isset($_POST['action']))
|
|
$_POST['type'] = $_POST['action'];
|
|
|
|
switch($_POST["type"]){
|
|
|
|
case 'agregarReporte':
|
|
|
|
$inventario->setFecha(date('Y-m-d H:i:s'));
|
|
$inventario->setUsuarioId($Usr['usuarioId']);
|
|
$invFisicoId = $inventario->CrearInvFisico();
|
|
|
|
echo 'ok[#]';
|
|
echo $invFisicoId;
|
|
|
|
break;
|
|
|
|
case 'eliminarReporte':
|
|
|
|
$inventario->setInvFisicoId($_POST['invFisicoId']);
|
|
|
|
if($inventario->DeleteInvFisico()){
|
|
|
|
$resReportes = $inventario->EnumRepInvFis();
|
|
|
|
$items = array();
|
|
foreach($resReportes['items'] as $res){
|
|
|
|
$sucursal->setSucursalId($res['sucursalId']);
|
|
$res['sucursal'] = urldecode($sucursal->GetNameById());
|
|
|
|
$usuario->setUsuarioId($res['usuarioId']);
|
|
$res['usuario'] = urldecode($usuario->GetNameById());
|
|
|
|
|
|
$items[] = $res;
|
|
}
|
|
$resReportes['items'] = $items;
|
|
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
echo "[#]";
|
|
$smarty->assign('resReportes',$resReportes);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/inventario-fisico.tpl');
|
|
|
|
}//if
|
|
|
|
break;
|
|
|
|
case 'updateSucursal':
|
|
|
|
$inventario->setSucursalId($_POST['sucursalId']);
|
|
$inventario->setInvFisicoId($_POST['invFisicoId']);
|
|
$inventario->UpdSucInvFisico();
|
|
|
|
echo 'ok[#]';
|
|
echo 'La sucursal fue actualizada correctamente.';
|
|
|
|
break;
|
|
|
|
case 'agregarProducto':
|
|
|
|
$invFisicoId = $_POST['invFisicoId'];
|
|
$productoId = $_POST['productoId'];
|
|
$cantidad = $_POST['cantidad'];
|
|
|
|
if($productoId == ""){
|
|
echo 'fail[#]';
|
|
echo 'Por favor, seleccione el producto.';
|
|
exit;
|
|
}
|
|
|
|
$inventario->setInvFisicoId($invFisicoId);
|
|
$inventario->setProductoId($productoId);
|
|
if($inventario->ExistProdInvFis()){
|
|
echo 'fail[#]';
|
|
echo 'El producto ya fue agregado anteriormente.';
|
|
exit;
|
|
}
|
|
|
|
if($cantidad == ""){
|
|
echo 'fail[#]';
|
|
echo 'Por favor, ingrese la cantidad física del producto.';
|
|
exit;
|
|
}
|
|
|
|
$inventario->setInvFisicoId($invFisicoId);
|
|
$inventario->setProductoId($productoId);
|
|
$inventario->setCantidad($cantidad);
|
|
$inventario->SaveInvProd();
|
|
|
|
//Obtenemos los Productos
|
|
$inventario->setInvFisicoId($invFisicoId);
|
|
$resProds = $inventario->GetInvFisicoProds();
|
|
|
|
$productos = array();
|
|
foreach($resProds as $res){
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$proveedor->setProveedorId($infP['proveedorId']);
|
|
$res['proveedor'] = utf8_encode($proveedor->GetNameById());
|
|
|
|
$res['codigoBarra'] = $infP['codigoBarra'];
|
|
$res['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$productos[] = $res;
|
|
}
|
|
|
|
echo 'ok[#]';
|
|
echo 'El producto fue agregado correctamente.';
|
|
echo '[#]';
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/inventario-fisico-prods.tpl');
|
|
|
|
break;
|
|
|
|
case 'eliminarProducto':
|
|
|
|
$invFisProdId = $_POST['invFisProdId'];
|
|
|
|
$inventario->setInvFisProdId($invFisProdId);
|
|
$infP = $inventario->InfoInvFisProd();
|
|
|
|
$inventario->DelInvFisProd();
|
|
|
|
//Obtenemos los Productos
|
|
$inventario->setInvFisicoId($infP['invFisicoId']);
|
|
$resProds = $inventario->GetInvFisicoProds();
|
|
|
|
$productos = array();
|
|
foreach($resProds as $res){
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$proveedor->setProveedorId($infP['proveedorId']);
|
|
$res['proveedor'] = utf8_encode($proveedor->GetNameById());
|
|
|
|
$res['codigoBarra'] = $infP['codigoBarra'];
|
|
$res['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$productos[] = $res;
|
|
}
|
|
|
|
echo 'ok[#]';
|
|
echo 'El producto fue eliminado correctamente.';
|
|
|
|
echo '[#]';
|
|
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/inventario-fisico-prods.tpl');
|
|
|
|
break;
|
|
|
|
case 'buscarProducto':
|
|
|
|
$sucursalId = $_POST['sucursalId'];
|
|
$codigoBarra = trim($_POST['codigoBarra']);
|
|
|
|
$producto->setCodigoBarra($codigoBarra);
|
|
$productoId = $producto->GetProductIdByCodigo();
|
|
|
|
if(!$productoId){
|
|
echo 'fail[#]';
|
|
echo 'No se encontró el producto con ese código. Por favor, verifique.';
|
|
exit;
|
|
exit;
|
|
}
|
|
|
|
$producto->setProductoId($productoId);
|
|
$nombre = $producto->GetModeloById();
|
|
|
|
echo 'ok[#]';
|
|
echo ' '.utf8_encode($nombre);
|
|
echo '[#]';
|
|
echo $productoId;
|
|
|
|
break;
|
|
|
|
case 'ajustarInventario':
|
|
|
|
$invFisicoId = $_POST['invFisicoId'];
|
|
|
|
$inventario->setInvFisicoId($invFisicoId);
|
|
$infR = $inventario->InfoInvFisico();
|
|
$sucursalId = $infR['sucursalId'];
|
|
|
|
//Metemos los Productos que estan disponibles y no fueron agregados al reporte
|
|
|
|
$sql = 'SELECT productoId FROM inventario
|
|
WHERE sucursalId = '.$sucursalId.'
|
|
AND status = "Disponible"
|
|
GROUP BY productoId';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$productos = $util->DBSelect($_SESSION['empresaId'])->GetResult();
|
|
|
|
foreach($productos as $res){
|
|
|
|
$sql = 'SELECT invFisProdId FROM inventarioFisicoProd
|
|
WHERE invFisicoId = '.$invFisicoId.'
|
|
AND productoId = '.$res['productoId'];
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$existe = $util->DBSelect($_SESSION['empresaId'])->GetSingle();
|
|
|
|
if(!$existe){
|
|
|
|
$sql = 'INSERT INTO inventarioFisicoProd (invFisicoId, productoId, cantidad, disponible)
|
|
VALUES('.$invFisicoId.', '.$res['productoId'].', 0, 0)';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$util->DBSelect($_SESSION['empresaId'])->InsertData();
|
|
|
|
}//if
|
|
}
|
|
|
|
//Ajustamos los Productos
|
|
|
|
$resProds = $inventario->GetInvFisicoProds();
|
|
|
|
foreach($resProds as $res){
|
|
|
|
$productoId = $res['productoId'];
|
|
|
|
$inventario->setProductoId($productoId);
|
|
$inventario->setSucursalId($sucursalId);
|
|
$disponible = $inventario->GetDispByProd();
|
|
|
|
$cantAjustar = $res['cantidad'];
|
|
|
|
if($disponible > $cantAjustar){
|
|
$cantidad = $disponible - $cantAjustar;
|
|
$modo = 'Eliminar';
|
|
}else{
|
|
$cantidad = $cantAjustar - $disponible;
|
|
$modo = 'Agregar';
|
|
}
|
|
|
|
if($modo == 'Eliminar'){
|
|
|
|
$inventario->setSucursalId($sucursalId);
|
|
$inventario->setProductoId($productoId);
|
|
$inventario->setCantidad($cantidad);
|
|
$inventario->AjustarProductos();
|
|
|
|
}else{
|
|
|
|
$sql = 'SELECT proveedorId FROM producto WHERE productoId = "'.$productoId.'"';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$proveedorId = $util->DBSelect($_SESSION["empresaId"])->GetSingle();
|
|
|
|
//Obtenemos el Sig. No de Pedido
|
|
$sql = 'SELECT MAX(noPedido) FROM pedido';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$noPedido = $util->DBSelect($_SESSION["empresaId"])->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"
|
|
)';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$pedidoId = $util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'SELECT * FROM producto
|
|
WHERE productoId = '.$productoId;
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$infP = $util->DBSelect($_SESSION["empresaId"])->GetRow();
|
|
|
|
$sql = 'INSERT INTO pedidoColor (pedidoId, productoId, colorId, cantidad)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", 2, '.$cantidad.')';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'INSERT INTO pedidoTalla (pedidoId, productoId, tallaId, cantidad)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", 1, 1)';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'INSERT INTO pedidoDistribucion (pedidoId, productoId, sucursalId, cantidad, status)
|
|
VALUES ("'.$pedidoId.'","'.$productoId.'", "'.$sucursalId.'", "'.$cantidad.'", "Enviado")';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->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")';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->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")';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$envioId = $util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'INSERT INTO envioPedido (envioId, pedidoId, noCajas)
|
|
VALUES ("'.$envioId.'", "'.$pedidoId.'", 1)';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'INSERT INTO envioRecibir (envioId, pedidoId, productoId, noPrendas, completo)
|
|
VALUES ("'.$envioId.'", "'.$pedidoId.'", "'.$productoId.'", "'.$cantidad.'", "1")';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
|
|
$sql = 'SELECT * FROM producto
|
|
WHERE productoId = '.$productoId;
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$infP = $util->DBSelect($_SESSION["empresaId"])->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")';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->InsertData();
|
|
}//for
|
|
|
|
}//else
|
|
|
|
//Actualizamos la cantidad por el disponible en caso de
|
|
//que hayan vendido algo en ultimo momento
|
|
$sql = 'UPDATE inventarioFisicoProd SET disponible = "'.$disponible.'"
|
|
WHERE invFisProdId = "'.$res['invFisProdId'].'"';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->UpdateData();
|
|
|
|
}//foreach
|
|
|
|
//Actualizamos el inventario
|
|
$sql = 'UPDATE inventarioFisico SET status = "Procesado", fechaAjuste = "'.date('Y-m-d H:i:s').'"
|
|
WHERE invFisicoId = "'.$invFisicoId.'"';
|
|
$util->DBSelect($_SESSION["empresaId"])->setQuery($sql);
|
|
$util->DBSelect($_SESSION["empresaId"])->UpdateData();
|
|
|
|
//Fin Ajustar
|
|
|
|
//Obtenemos los Productos
|
|
$inventario->setInvFisicoId($invFisicoId);
|
|
$resProds = $inventario->GetInvFisicoProds();
|
|
|
|
$productos = array();
|
|
foreach($resProds as $res){
|
|
|
|
$producto->setProductoId($res['productoId']);
|
|
$infP = $producto->Info();
|
|
|
|
$proveedor->setProveedorId($infP['proveedorId']);
|
|
$res['proveedor'] = utf8_encode($proveedor->GetNameById());
|
|
|
|
$res['codigoBarra'] = $infP['codigoBarra'];
|
|
$res['modelo'] = utf8_encode($infP['modelo']);
|
|
|
|
$productos[] = $res;
|
|
}
|
|
|
|
$util->setError(20139,'complete');
|
|
$util->PrintErrors();
|
|
|
|
echo 'ok[#]';
|
|
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
|
|
echo '[#]';
|
|
$smarty->assign('productos',$productos);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/inventario-fisico-prods.tpl');
|
|
|
|
break;
|
|
|
|
}//switch
|
|
|
|
?>
|