Files
ventas_php/ajax/inventario-wizard.php

368 lines
9.2 KiB
PHP
Executable File

<?php
include_once('../init.php');
include_once('../config.php');
include_once(DOC_ROOT.'/libraries.php');
session_start();
$Usr = $user->Info();
switch($_POST["type"]){
case 'uploadFile':
if($_POST['sucursalId'] == ''){
$util->setError(30015,'error');
$util->PrintErrors();
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
}elseif($_SESSION['xlsFile'] == ''){
if($_POST['xlsFile'] == ''){
$util->setError(20094,'error');
$util->PrintErrors();
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
}//elseif
}else{
echo 'ok[#]';
}
break;
case 'delXlsFile':
$xlsFile = DOC_ROOT.'/temp/'.$_SESSION['xlsFile'];
@unlink($xlsFile);
$_SESSION['xlsFile'] = '';
$_SESSION['identificador'] = '';
$util->setError(20093,'complete');
$util->PrintErrors();
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
break;
case 'loadProds':
$csvFile = DOC_ROOT.'/temp/'.$_SESSION['xlsFile'];
$identificador = $_SESSION['identificador'];
if(!file_exists($csvFile)){
echo 'fail[#]';
echo 'No se encuentra el archivo '.$csvFile;
exit;
}//if
$file = fopen($csvFile, 'r');
if(!$file){
echo 'fail[#]';
echo 'Error al abrir el archivo';
exit;
}//if
$size = filesize($csvFile);
if(!$size){
echo 'fail[#]';
echo 'El archivo esta vacio, verifique';
exit;
}//if
$db = $util->DBSelect(15);
$lines = 0;
while (( $field = fgetcsv($file,2048,",")) !== false ) { // Mientras hay líneas que leer...
if($lines >= 1){
$codigoBarra = trim($field[0]);
$stock = trim($field[1]);
if($stock > 0){
$sql = 'SELECT productoId FROM producto WHERE codigoBarra = "'.$codigoBarra.'"';
$db->setQuery($sql);
$productoId = $db->GetSingle();
if($productoId){
$sql = 'SELECT proveedorId FROM producto WHERE codigoBarra = "'.$codigoBarra.'"';
$db->setQuery($sql);
$proveedorId = $db->GetSingle();
$sql = 'INSERT INTO
_tablaTemp
(
proveedorId,
codigoBarra,
productoId,
stock,
identificador
)
VALUES
(
"'.$proveedorId.'",
"'.$codigoBarra.'",
"'.$productoId.'",
"'.$stock.'",
"'.$identificador.'"
)';
$db->setQuery($sql);
$db->InsertData();
$found++;
}//if
$regs++;
}//if
}//if
$lines++;
}//while
$sucursalId = $_SESSION['wizSucId'];
$identificador = $_SESSION['identificador'];
//Obtenemos el Sig. No de Pedido
$sql = 'SELECT MAX(noPedido) FROM pedido';
$db->setQuery($sql);
$noPedido = $db->GetSingle();
$noPedido++;
//Guardamos Registro en la tabla InventarioWizard
$sql = 'INSERT INTO inventarioWizard
(
sucursalId,
fecha,
usuarioId
)VALUES(
"'.$sucursalId.'",
"'.date('Y-m-d H:i:s').'",
"'.$Usr['usuarioId'].'"
)';
$db->setQuery($sql);
$invWizardId = $db->InsertData();
//CARGAMOS LOS PRODUCTOS
$sql = 'SELECT * FROM _tablaTemp
WHERE identificador = "'.$identificador.'"
GROUP BY proveedorId';
$db->setQuery($sql);
$result = $db->GetResult();
foreach($result as $res){
$proveedorId = $res['proveedorId'];
$sql = 'INSERT INTO pedido
(
proveedorId,
folioProv,
noPedido,
fecha,
fechaEntrega,
metodoCompra,
resurtido,
usuarioId,
fechaAprobacion,
userIdAprobacion,
fechaDistribucion,
userIdDistribucion,
fechaAutorizacion,
userIdAutorizacion,
fechaOrdenCompEnv,
userIdOrdenCompEnv,
fechaOrdenCompIng,
userIdOrdenCompIng,
status,
wizUserId
)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",
"EnvSuc",
"'.$Usr['usuarioId'].'"
)';
$db->setQuery($sql);
$pedidoId = $db->InsertData();
$sql = 'SELECT productoId FROM _tablaTemp
WHERE proveedorId = '.$proveedorId.'
AND identificador = "'.$identificador.'"
GROUP BY productoId';
$db->setQuery($sql);
$productos = $db->GetResult();
//Checamos los productos
foreach($productos as $val){
$productoId = $val['productoId'];
$sql = 'SELECT SUM(stock) FROM _tablaTemp
WHERE productoId = '.$productoId.'
AND identificador = "'.$identificador.'"';
$db->setQuery($sql);
$cantidad = $db->GetSingle();
$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();
//Guardamos los Productos en la Tabla
$sql = 'INSERT INTO inventarioWizardProd
(
invWizardId,
pedidoId,
productoId,
cantidad
)VALUES(
"'.$invWizardId.'",
"'.$pedidoId.'",
"'.$productoId.'",
"'.$cantidad.'"
)';
$db->setQuery($sql);
$db->InsertData();
}//foreach
//Actualizamos los Totales
$pedido->setPedidoId($pedidoId);
$pedido->UpdateTotalesByPedido();
//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();
foreach($productos as $val){
$productoId = $val['productoId'];
$sql = 'SELECT SUM(stock) FROM _tablaTemp
WHERE productoId = '.$productoId.'
AND identificador = "'.$identificador.'"';
$db->setQuery($sql);
$cantidad = $db->GetSingle();
$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();
}
}
$noPedido++;
$regs++;
}//foreach
//Eliminamos los datos de la tablatemp
$sql = 'DELETE FROM _tablaTemp WHERE identificador = "'.$identificador.'"';
$db->setQuery($sql);
$db->DeleteData();
//Eliminamos Todos
@unlink($csvFile);
$_SESSION['xlsFile'] = '';
$_SESSION['wizSucId'] = '';
$_SESSION['identificador'] = '';
echo 'ok[#]';
break;
}//switch
?>