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 ?>