Info(); $smarty->assign('Usr', $Usr); switch($_POST["type"]){ case 'tipoProdProv': $proveedorId = $_POST['idProveedor']; $sucursalId = $_POST['idSucursal']; $orden = $_POST['orden']; $fechaI = $_POST['fechaI']; $fechaF = $_POST['fechaF']; $prodCatId = $_POST['prodCatId']; $prodSubcatId = $_POST['prodSubcatId']; $codigoBarra = $_POST['codigoBarra']; $start = microtime(true); $reportes->setFechaI($fechaI); $reportes->setFechaF($fechaF); if($orden=="mayor") { $orderBy = "DESC"; $mayormenor = true; } else { $mayormenor = false; $orderBy = "ASC"; } if($Usr['type']=="admin") $smarty->assign("tipo","admin"); if($Usr['type']=="gerente") $smarty->assign("tipo","gerente"); $reportes->setIdSuc($sucursalId); $resSucursales = $reportes->EnumSucursales(); $global['disponible'] = 0; $global['cedis'] = 0; $global['porLlegar'] = 0; $global['vendidos'] = 0; $global['total'] = 0; $totDispGral = 0; $totProdsGral = 0; $totImpGral = 0; $prodGlobal = array(); foreach($resSucursales as $res){ $sucursalId = $res['sucursalId']; $sqlFilter = ''; if($codigoBarra) $sqlFilter .= ' AND p.codigoBarra = "'.$codigoBarra.'"'; if($proveedorId) $sqlFilter .= ' AND p.proveedorId = '.$proveedorId; if($proveedorId) $sqlFilter .= ' AND p.proveedorId = '.$proveedorId; if($prodCatId) $sqlFilter .= ' AND p.prodCatId = '.$prodCatId; if($prodSubcatId) $sqlFilter .= ' AND p.prodSubcatId = '.$prodSubcatId; $sql = 'SELECT p.productoId, p.imagen, p.modelo, p.codigoBarra, p.precioVentaIva AS precioVenta, p.costo, p.proveedorId, p.prodCatId, p.prodSubcatId, SUM(IF( v.ventaId IS NULL , 0, vp.cantidad)) AS vendidos FROM producto AS p LEFT JOIN ventaProducto vp ON vp.productoId = p.productoId LEFT JOIN venta v ON v.ventaId = vp.ventaId AND v.status <> "Cancelado" AND v.fecha >= "'.date('Y-m-d',strtotime($fechaI)).' 00:00:00" AND v.fecha <= "'.date('Y-m-d',strtotime($fechaF)).' 23:59:59" AND v.sucursalId = "'.$sucursalId.'" WHERE 1 '.$sqlFilter.' GROUP BY p.productoId ORDER BY vendidos '.$orderBy; /* echo $sql = 'SELECT vp.productoId, p.imagen, p.modelo, p.codigoBarra, p.precioVentaIva AS precioVenta, p.costo, p.proveedorId, p.prodCatId, p.prodSubcatId, SUM(vp.cantidad) AS vendidos FROM ventaProducto AS vp, venta AS v, producto p WHERE v.ventaId = vp.ventaId AND vp.productoId = p.productoId AND status <> "Cancelado" AND v.fecha >= "'.date('Y-m-d',strtotime($fechaI)).' 00:00:00" AND v.fecha <= "'.date('Y-m-d',strtotime($fechaF)).' 23:59:59" AND v.sucursalId = "'.$sucursalId.'" '.$sqlFilter.' GROUP BY vp.productoId';*/ $util->DBSelect($_SESSION['empresaId'])->setQuery($sql); $resProds = $util->DBSelect($_SESSION['empresaId'])->GetResult(); //echo count($resProds); $reportes->setIdSuc($sucursalId); $totalDisp = 0; $totalProds = 0; $totalImporte = 0; $totalCedis = 0; $totalPorLlegar = 0; $productos = array(); foreach($resProds as $prod){ $productoId = $prod['productoId']; $reportes->setProductoId($productoId); $vendidos = $prod['vendidos']; $devueltos = $reportes->GetTotalProdDevBySuc(); $totalVendidos = $vendidos - $devueltos; $prod['vendidos'] = $totalVendidos; $importe = $prod['vendidos'] * $prod['precioVenta']; $prod['total'] = $importe; //if($prod['vendidos'] == 0) // continue; $proveedor->setProveedorId($prod['proveedorId']); $prod['proveedor'] = utf8_encode($proveedor->GetNameById()); $prodCat->setProdCatId($prod['prodCatId']); $prod['depto'] = utf8_encode($prodCat->GetNameById()); $prodSubcat->setProdSubcatId($prod['prodSubcatId']); $prod['linea'] = utf8_encode($prodSubcat->GetNameById()); $inventario->setProductoId($productoId); $inventario->setSucursalId($sucursalId); $disponible = $inventario->GetDispByProd(); $prod['disponible'] = $disponible; $reportes->setProductoId($productoId); $reportes->setIdSuc($sucursalId); $prod['cedis'] = $reportes->GetCantProdCedisBySuc(); $prod['porLlegar'] = $reportes->GetCantProdNoCedisBySuc(); $totalDisp += $disponible; $totalProds += $totalVendidos; $totalImporte += $importe; $totalCedis += $prod['cedis']; $totalPorLlegar += $prod['porLlegar']; $productos[] = $prod; //Guardamos los Datos Globales if(array_key_exists($productoId, $prodGlobal)){ $prod2 = $prodGlobal[$productoId]; $prod2['disponible'] += $prod['disponible']; $prod2['porLlegar'] += $prod['porLlegar']; $prod2['cedis'] += $prod['cedis']; $prod2['vendidos'] += $prod['vendidos']; $prod2['total'] += $prod['total']; }else $prod2 = $prod; $global['disponible'] += $prod['disponible']; $global['porLlegar'] += $prod['porLlegar']; $global['cedis'] += $prod['cedis']; $global['vendidos'] += $prod['vendidos']; $global['total'] += $prod['total']; $prodGlobal[$productoId] = $prod2; }//foreach $res['productos'] = $productos; $res['disponible'] = $totalDisp; $res['vendidos'] = $totalProds; $res['importe'] = $totalImporte; $res['cedis'] = $totalCedis; $res['porLlegar'] = $totalPorLlegar; $sucursales[] = $res; }//foreach $global['productos'] = $reportes->orderMultiDimensionalArray($prodGlobal,'vendidos',$mayormenor); $smarty->assign("fi",$fechaI); $smarty->assign("ff",$fechaF); $smarty->assign("orden",$orden); $smarty->assign("type",$Usr); $smarty->assign('global',$global); $smarty->assign('totDispGral',$totDispGral); $smarty->assign('totProdsGral',$totProdsGral); $smarty->assign('totImpGral',$totImpGral); $smarty->assign('sucursales',$sucursales); $smarty->display(DOC_ROOT.'/templates/lists/reportes-proMasVend2.tpl'); $end = microtime(true); echo "Tiempo de Ejecución: "; echo $time = number_format(($end - $start), 2); break; case 'loadProdSubcats': $prodSubcat->setProdCatId($_POST['prodCatId']); $subcategorias = $prodSubcat->EnumerateAll(); $subcategorias = $util->EncodeResult($subcategorias); $smarty->assign('subcategorias',$subcategorias); $smarty->display(DOC_ROOT.'/templates/lists/enumProdSubcat3.tpl'); break; }//switch ?>