337 lines
12 KiB
PHP
Executable File
337 lines
12 KiB
PHP
Executable File
<?php
|
|
|
|
include_once('../init.php');
|
|
include_once('../config.php');
|
|
include_once(DOC_ROOT.'/libraries.php');
|
|
|
|
$Usr = $user->Info();
|
|
|
|
if($Usr['type'] != 'admin' && $Usr['type'] != 'gerente' && $Usr['type'] != 'centralizador'){
|
|
header('Location: '.WEB_ROOT);
|
|
exit;
|
|
}
|
|
|
|
$name = "R_Productos_Proveedor_2";
|
|
|
|
extract($_POST);
|
|
|
|
$proveedorId = $_POST['idProveedor'];
|
|
$sucursalId = $_POST['idSucursal'];
|
|
$orden = $_POST['orden'];
|
|
$fechaI = $_POST['fechaI'];
|
|
$fechaF = $_POST['fechaF'];
|
|
$prodCatId = $_POST['prodCatId'];
|
|
$prodSubcatId = $_POST['prodSubcatId'];
|
|
$codigoBarra = $_POST['codigoBarra'];
|
|
|
|
$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 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';
|
|
*/
|
|
$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;
|
|
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
|
$resProds = $util->DBSelect($_SESSION['empresaId'])->GetResult();
|
|
|
|
$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);
|
|
$prod['cedis'] = $reportes->GetCantProdCedis();
|
|
$prod['porLlegar'] = $reportes->GetCantProdNoCedis();
|
|
|
|
$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'] = $reportes->orderMultiDimensionalArray($productos,'vendidos',$mayormenor);
|
|
|
|
$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);
|
|
|
|
|
|
|
|
foreach($sucursales as $suc){
|
|
|
|
$x.="<table border=\"1\">";
|
|
$x .= "<thead>
|
|
<tr>
|
|
<th style=\"background:#E0E5E7;text-align:center\" colspan=\"12\">
|
|
<b>".utf8_decode(urldecode($suc['nombre']))."</b>
|
|
</th>
|
|
</tr>
|
|
</thead><tbody>";
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Proveedor</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Departamento</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Linea</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Código de Barras</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Producto</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Cant. en Pedido</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Cant. en CEDIS</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Inv. Actual</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\" padding-right:20px\">No. Prods. Vendidos</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Costo</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Precio Venta</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Importe Total</td>
|
|
</tr>";
|
|
|
|
foreach($suc['productos'] as $temp){
|
|
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['proveedor']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['depto']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['linea']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">
|
|
".$temp['codigoBarra']."
|
|
</td>
|
|
<td>".$temp['modelo']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['porLlegar']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['cedis']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['disponible']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['vendidos']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['costo']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['precioVenta']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['total']."</td>
|
|
</tr>";
|
|
|
|
}//foreach
|
|
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center;\"><b>TOTAL</b></td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$suc['porLlegar']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$suc['cedis']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$suc['disponible']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$suc['vendidos']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$suc['importe']."</td>
|
|
</tr>";
|
|
|
|
$x.="</tbody>
|
|
</table>";
|
|
|
|
}//foreach
|
|
|
|
if(count($sucursales) > 1){
|
|
|
|
$x.="<table border=\"1\">";
|
|
$x.="<thead><tr><th style=\"background:#E0E5E7;text-align:center\" colspan=\"12\"><b>TOTALES GLOBALES</b></th></tr>";
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Proveedor</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Departamento</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Linea</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Código de Barras</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Producto</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Cant. en Pedido</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Cant. en CEDIS</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Inv. Actual</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\" padding-right:20px\">No. Prods. Vendidos</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Costo</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Precio Venta</td>
|
|
<td style=\"background:#E0E5E7;text-align:center\">Importe Total</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>";
|
|
|
|
|
|
foreach($global['productos'] as $temp){
|
|
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['proveedor']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['depto']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['linea']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">
|
|
".$temp['codigoBarra']."
|
|
</td>
|
|
<td>".$temp['modelo']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['porLlegar']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['cedis']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['disponible']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['vendidos']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['costo']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['precioVenta']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$temp['total']."</td>
|
|
</tr>";
|
|
|
|
}//foreach
|
|
|
|
|
|
$x .= "
|
|
<tr>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center;\"><b>TOTAL</b></td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$global['porLlegar']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$global['cedis']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$global['disponible']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$global['vendidos']."</td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\"></td>
|
|
<td style=\"text-align:center; padding-right:20px\">".$global['total']."</td>
|
|
</tr>";
|
|
|
|
$x.="</tbody>";
|
|
$x.="</table>";
|
|
|
|
}//if
|
|
|
|
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
|
|
header("Content-type: application/x-msexcel; charset=utf-8");
|
|
header("Content-Disposition: attachment; filename=".$name.".xls");
|
|
header("Pragma: no-cache");
|
|
header("Expires: 0");
|
|
|
|
echo $x;
|
|
|
|
?>
|