Files
ventas_php/ajax/analisis-venta.php

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&oacute;n: ";
echo $time = number_format(($end - $start), 2);
break;
}//switch
?>