Files
ventas_php/ajax/reportes-prod-prov2.php

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&oacute;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
?>