154 lines
5.5 KiB
PHP
Executable File
154 lines
5.5 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
$Usr = $user->Info();
|
|
|
|
switch($_POST["type"]){
|
|
|
|
case 'loadAnalisis':
|
|
|
|
$start = microtime(true);
|
|
|
|
$fechaIni = trim($_POST['fechaI']);
|
|
$fechaFin = trim($_POST['fechaF']);
|
|
$sucursalId = $_POST['sucursalId2'];
|
|
|
|
$fechaIni = date('Y-m-d',strtotime($fechaIni));
|
|
$fechaFin = date('Y-m-d',strtotime($fechaFin));
|
|
|
|
$reportes->setIdSuc($sucursalId);
|
|
|
|
if($sucursalId)
|
|
$sqlFilter = ' AND v.sucursalId = "'.$sucursalId.'" ';
|
|
|
|
if($Usr['type'] == 'supervisor')
|
|
$sql = 'SELECT COUNT(v.ventaId) AS cantVtas, s.sucursalId, s.nombre
|
|
FROM venta v, sucursal s, usuarioSuc us
|
|
WHERE v.sucursalId = s.sucursalId
|
|
AND s.sucursalId = us.sucursalId
|
|
AND us.usuarioId = "'.$Usr['usuarioId'].'"
|
|
AND DATE(v.fecha) >= "'.$fechaIni.'"
|
|
AND DATE(v.fecha) <= "'.$fechaFin.'"
|
|
AND ((v.status = "Cancelado" AND v.cancelDev = "1") OR v.status <> "Cancelado")
|
|
AND v.status <> "Descuento"
|
|
'.$sqlFilter.'
|
|
GROUP BY sucursalId
|
|
ORDER BY s.noSuc';
|
|
else
|
|
$sql = 'SELECT COUNT(v.ventaId) AS cantVtas, s.sucursalId, s.nombre
|
|
FROM venta v, sucursal s
|
|
WHERE v.sucursalId = s.sucursalId
|
|
AND DATE(v.fecha) >= "'.$fechaIni.'"
|
|
AND DATE(v.fecha) <= "'.$fechaFin.'"
|
|
AND ((v.status = "Cancelado" AND v.cancelDev = "1") OR v.status <> "Cancelado")
|
|
AND v.status <> "Descuento"
|
|
'.$sqlFilter.'
|
|
GROUP BY sucursalId
|
|
ORDER BY s.noSuc';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$resSucursales = $util->DBSelect($_SESSION['empresaId'])->GetResult();
|
|
|
|
$totales = array();
|
|
$sucursales = array();
|
|
foreach($resSucursales as $res){
|
|
|
|
if($res['cantVtas'] == 0)
|
|
continue;
|
|
|
|
$sql = 'SELECT p.proveedorId , prov.nombre
|
|
FROM venta AS v, ventaProducto AS vp, producto AS p, proveedor AS prov
|
|
WHERE v.ventaId = vp.ventaId
|
|
AND vp.productoId = p.productoId
|
|
AND p.proveedorId = prov.proveedorId
|
|
AND v.sucursalId = "'.$res['sucursalId'].'"
|
|
AND DATE(v.fecha) >= "'.$fechaIni.'"
|
|
AND DATE(v.fecha) <= "'.$fechaFin.'"
|
|
AND ((v.status = "Cancelado" AND v.cancelDev = "1") OR v.status <> "Cancelado")
|
|
AND v.status <> "Descuento"
|
|
GROUP BY p.proveedorId
|
|
ORDER BY prov.nombre ASC';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$resProvs = $util->DBSelect($_SESSION['empresaId'])->GetResult();
|
|
|
|
$proveedores = array();
|
|
foreach($resProvs as $res2){
|
|
|
|
$sql = 'SELECT p.codigoBarra, p.modelo, vp.productoId, SUM(vp.cantidad) AS totProds,
|
|
(SUM(vp.cantidad) * vp.precioUnitario) AS totVtas,
|
|
(SUM(vp.cantidad) * (vp.precioUnitario - p.costo)) AS utilidad,
|
|
(
|
|
SELECT e.fechaRecibido
|
|
FROM envio AS e, envioRecibir AS er
|
|
WHERE e.envioId = er.envioId
|
|
AND er.productoId = vp.productoId
|
|
AND e.sucursalId = v.sucursalId
|
|
ORDER BY e.fechaRecibido DESC
|
|
LIMIT 1
|
|
) AS fechaEnt
|
|
FROM venta AS v, ventaProducto AS vp, producto AS p
|
|
WHERE v.ventaId = vp.ventaId
|
|
AND vp.productoId = p.productoId
|
|
AND v.sucursalId = "'.$res['sucursalId'].'"
|
|
AND p.proveedorId = "'.$res2['proveedorId'].'"
|
|
AND DATE(v.fecha) >= "'.$fechaIni.'"
|
|
AND DATE(v.fecha) <= "'.$fechaFin.'"
|
|
AND ((v.status = "Cancelado" AND v.cancelDev = "1") OR v.status <> "Cancelado")
|
|
AND v.status <> "Descuento"
|
|
GROUP BY vp.productoId';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$res2['productos'] = $util->DBSelect($_SESSION['empresaId'])->GetResult();
|
|
|
|
$sql = 'SELECT SUM(vp.cantidad) AS totProds,
|
|
SUM(vp.cantidad * vp.precioUnitario) AS totVtas,
|
|
SUM(vp.cantidad * vp.precioUnitario - p.costo) AS utilidad
|
|
FROM venta AS v, ventaProducto AS vp, producto AS p
|
|
WHERE v.ventaId = vp.ventaId
|
|
AND vp.productoId = p.productoId
|
|
AND v.sucursalId = "'.$res['sucursalId'].'"
|
|
AND p.proveedorId = "'.$res2['proveedorId'].'"
|
|
AND DATE(v.fecha) >= "'.$fechaIni.'"
|
|
AND DATE(v.fecha) <= "'.$fechaFin.'"
|
|
AND ((v.status = "Cancelado" AND v.cancelDev = "1") OR v.status <> "Cancelado")
|
|
AND v.status <> "Descuento"';
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$row = $util->DBSelect($_SESSION['empresaId'])->GetRow();
|
|
|
|
$res2['prendas'] = $row['totProds'];
|
|
$res2['ventas'] = $row['totVtas'];
|
|
$res2['utilidad'] = $row['utilidad'];
|
|
|
|
$totales['totProds'] += $row['totProds'];
|
|
$totales['totVtas'] += $row['totVtas'];
|
|
$totales['utilidad'] += $row['utilidad'];
|
|
|
|
$proveedores[] = $res2;
|
|
|
|
}//foreach resProvs
|
|
$res['proveedores'] = $proveedores;
|
|
|
|
$res['nombre'] = urldecode($res['nombre']);
|
|
$sucursales[] = $res;
|
|
|
|
}//foreach
|
|
|
|
echo 'ok[#]';
|
|
|
|
$smarty->assign('fechaIni',$fechaIni);
|
|
$smarty->assign('fechaFin',$fechaFin);
|
|
$smarty->assign('totales', $totales);
|
|
$smarty->assign('sucursales', $sucursales);
|
|
$smarty->assign('DOC_ROOT', DOC_ROOT);
|
|
$smarty->display(DOC_ROOT.'/templates/lists/analisis-venta.tpl');
|
|
|
|
$end = microtime(true);
|
|
echo "Tiempo de Ejecución: ";
|
|
echo $time = number_format(($end - $start), 2);
|
|
|
|
break;
|
|
|
|
}//switch
|
|
|
|
?>
|