Primer commit del sistema avantika sin cambios
This commit is contained in:
433
ajax/inventario-fisico.php
Executable file
433
ajax/inventario-fisico.php
Executable file
@@ -0,0 +1,433 @@
|
||||
<?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
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user