Files
ventas_php/ajax/reportes-inventario.php

218 lines
6.3 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);
switch($_POST["type"]){
case 'rInventario':
$proveedorId = $_POST['proveedorId'];
$sucursalId = $_POST['sucursal'];
$prodCatId = $_POST['prodCatId'];
$prodSubcatId = $_POST['prodSubcatId'];
$reportes->setIdSuc($sucursalId);
$resSuc = $reportes->EnumSucursales();
if($proveedorId)
$sqlFilter = ' AND proveedorId = '.$proveedorId;
$sql = 'SELECT proveedorId FROM proveedor WHERE 1 '.$sqlFilter;
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$proveedores = $util->DBSelect($_SESSION['empresaId'])->GetResult();
$dispGral = 0;
$totalGral = 0;
$totalGralPV = 0;
$sucursales = array();
foreach($resSuc as $res){
$sucursalId = $res['sucursalId'];
$dispSuc = 0;
$totalSuc = 0;
$totalSucPV = 0;
$productos = array();
foreach($proveedores as $prov){
$proveedorId = $prov['proveedorId'];
$sql = "SELECT reporte, fecha FROM `reporteInvBest` WHERE proveedorId = ".$proveedorId;
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$row = $util->DBSelect($_SESSION['empresaId'])->GetRow();
if(!$row)
continue;
$reporte = $row['reporte'];
$fechaRep = date('d-m-Y',strtotime($row['fecha']));
$resSucursales = unserialize(urldecode($reporte));
foreach($resSucursales as $res2){
if($sucursalId > 0 && $sucursalId != $res2['sucursalId'])
continue;
foreach($res2['productos'] as $prod){
if($prodCatId > 0 && $prodCatId != $prod['prodCatId'])
continue;
if($prodSubcatId > 0 && $prodSubcatId != $prod['prodSubcatId'])
continue;
$dispSuc += $prod['disponible'];
$totalSuc += $prod['total'];
$totalSucPV += $prod['totalPV'];
$dispGral += $prod['disponible'];
$totalGral += $prod['total'];
$totalGralPV += $prod['totalPV'];
$productos[] = $prod;
}//foreach
}//foreach
}//foreach
$res['disponible'] = $dispSuc;
$res['total'] = $totalSuc;
$res['totalPV'] = $totalSucPV;
$res['productos'] = $productos;
if(count($productos) > 0)
$sucursales[] = $res;
}//foreach
$totales['disponible'] = $dispGral;
$totales['total'] = $totalGral;
$totales['totalPV'] = $totalGralPV;
$smarty->assign('totales', $totales);
$smarty->assign('sucursales', $sucursales);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/reportes-inventario.tpl');
break;
case "_rInventario":
$proveedorId = $_POST['proveedorId'];
$sucursalId = $_POST['sucursal'];
$prodCatId = $_POST['prodCatId'];
$prodSubcatId = $_POST['prodSubcatId'];
$reportes->setIdSuc($sucursalId);
$resSuc = $reportes->EnumSucursales();
$sqlFilter = '';
if($proveedorId)
$sqlFilter = ' AND p.proveedorId = '.$proveedorId;
if($prodCatId)
$sqlFilter .= ' AND p.prodCatId = '.$prodCatId;
if($prodSubcatId)
$sqlFilter .= ' AND p.prodSubcatId = '.$prodSubcatId;
$dispGral = 0;
$totalGral = 0;
$totalGralPV = 0;
$sucursales = array();
foreach($resSuc as $res){
$sql = 'SELECT prov.nombre, p.productoId, p.costo, p.codigoBarra, p.modelo, p.precioVentaIva,
SUM( i.cantidad ) AS disponible, (SUM( i.cantidad ) * p.costo) AS total,
(SUM( i.cantidad ) * p.precioVentaIva) AS totalPV,
prov.nombre AS proveedor
FROM producto p, inventario i, proveedor prov
WHERE p.productoId = i.productoId
AND p.proveedorId = prov.proveedorId
AND i.sucursalId = '.$res['sucursalId'].'
'.$sqlFilter.'
AND i.status = "Disponible"
GROUP BY i.productoId
ORDER BY p.codigoBarra ASC';
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$resProductos = $util->DBSelect($_SESSION['empresaId'])->GetResult();
$totalSinDesc = 0;
$productos = array();
foreach($resProductos as $prod){
$prod['nombre'] = utf8_encode($prod['nombre']);
$prod['modelo'] = utf8_encode($prod['modelo']);
$inventario->setSucursalId($res['sucursalId']);
$inventario->setProductoId($prod['productoId']);
$vtasSinDesc = $inventario->VentasDescontadas();
$totalSinDesc += $vtasSinDesc;
$prod['disponible'] -= $vtasSinDesc;
$productos[] = $prod;
}
$res['productos'] = $productos;
//Obtenemos los Totales
$sql = 'SELECT SUM(i.cantidad) AS disponible, SUM(i.cantidad * p.costo) AS total,
SUM(i.cantidad * p.precioVentaIva) AS totalPV
FROM producto p, inventario i, proveedor prov
WHERE p.productoId = i.productoId
AND p.proveedorId = prov.proveedorId
AND i.sucursalId = '.$res['sucursalId'].'
'.$sqlFilter.'
AND i.status = "Disponible"';
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$row = $util->DBSelect($_SESSION['empresaId'])->GetRow();
$row['disponible'] -= $totalSinDesc;
$res['disponible'] = $row['disponible'];
$res['total'] = $row['total'];
$res['totalPV'] = $row['totalPV'];
$dispGral += $row['disponible'];
$totalGral += $row['total'];
$totalGralPV += $row['totalPV'];
$sucursales[] = $res;
}//foreach
$totales['disponible'] = $dispGral;
$totales['total'] = $totalGral;
$totales['totalPV'] = $totalGralPV;
$smarty->assign('totales', $totales);
$smarty->assign('sucursales', $sucursales);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/reportes-inventario.tpl');
break;
case 'loadSubcats':
$prodSubcat->setProdCatId($_POST['prodCatId']);
$subcategorias = $prodSubcat->EnumerateAll();
$subcategorias = $util->EncodeResult($subcategorias);
echo 'ok[#]';
$smarty->assign('subcategorias', $subcategorias);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/enumProdSubcat2.tpl');
break;
}//switch
?>