222 lines
7.0 KiB
PHP
Executable File
222 lines
7.0 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
$Usr = $user->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
|
|
|
|
?>
|