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