Primer commit del sistema avantika sin cambios
This commit is contained in:
834
export/prod-prov.php
Executable file
834
export/prod-prov.php
Executable file
@@ -0,0 +1,834 @@
|
||||
<?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";
|
||||
|
||||
extract($_POST);
|
||||
|
||||
if($_POST['type'] == 'tipoProdProv'){
|
||||
|
||||
$proveedorId = $_POST['idProveedor'];
|
||||
$sucursalId = $_POST['idSucursal'];
|
||||
$mesI = $_POST['mesI'];
|
||||
$anioI = $_POST['anioI'];
|
||||
$mesF = $_POST['mesF'];
|
||||
$anioF = $_POST['anioF'];
|
||||
$codigoBarra = trim($_POST['codigoBarra']);
|
||||
|
||||
if($codigoBarra != ''){
|
||||
$producto->setCodigoBarra($codigoBarra);
|
||||
$productoId = $producto->GetProductIdByCodigo();
|
||||
|
||||
$sql = "SELECT proveedorId FROM producto WHERE productoId = ".$productoId;
|
||||
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
||||
$proveedorId = $util->DBSelect($_SESSION['empresaId'])->GetSingle();
|
||||
}
|
||||
|
||||
//Obtener el Ultimo Reporte Generado
|
||||
|
||||
$sql = "SELECT reporte, fecha FROM `reporteProvBest` WHERE proveedorId = ".$proveedorId;
|
||||
$util->DBSelect($_SESSION['empresaId'])->setQuery($sql);
|
||||
$row = $util->DBSelect($_SESSION['empresaId'])->GetRow();
|
||||
|
||||
$reporte = $row['reporte'];
|
||||
$fechaRep = date('d-m-Y',strtotime($row['fecha']));
|
||||
|
||||
$resSucursales = unserialize(urldecode($reporte));
|
||||
|
||||
//Obtenemos los Periodos
|
||||
|
||||
$strFechaI = strtotime('01-'.$mesI.'-'.$anioI);
|
||||
|
||||
$mI = intval($mesI);
|
||||
$yI = $anioI;
|
||||
|
||||
$mF = intval($mesF);
|
||||
$yF = $anioF;
|
||||
|
||||
$anios = $yF - $yI;
|
||||
|
||||
if($anios == 0){
|
||||
$meses = $mF - $mI;
|
||||
$meses += 1;
|
||||
}else{
|
||||
$meses = (12 - $mI) + 1 + $mF;
|
||||
}
|
||||
|
||||
$fIni = $anioI.'-'.$mesI.'-01';
|
||||
$fFin = $yF.'-'.$mesF.'-31';
|
||||
|
||||
//Meses Actuales
|
||||
|
||||
$aniosX = date('Y') - 2013;
|
||||
$mesesX = (12 - 6) + 1 + $mF;
|
||||
$mK = $mesesX - $meses;
|
||||
|
||||
$periodo = array();
|
||||
for($m=0; $m<$meses; $m++){
|
||||
|
||||
$fecha = date('Y-m-d',strtotime('+'.$m.' month',$strFechaI));
|
||||
|
||||
$mm = date('m',strtotime($fecha));
|
||||
$y = date('Y',strtotime($fecha));
|
||||
|
||||
$mes = $util->GetMMMName($mm);
|
||||
|
||||
$fPerI = $y.'-'.$mm.'-01';
|
||||
$fPerF = $y.'-'.$mm.'-31';
|
||||
|
||||
if($fPerI >= $fIni && $fPerF <= $fFin)
|
||||
$periodo[$mK] = $mes.' '.$y;
|
||||
|
||||
$mK++;
|
||||
|
||||
}//for
|
||||
|
||||
//Sucursales Calculos
|
||||
|
||||
$totIniciales = array();
|
||||
$totEntradas = array();
|
||||
$totSalidas = array();
|
||||
$totEntradasA = array();
|
||||
$totSalidasA = array();
|
||||
$totBloqueados = array();
|
||||
|
||||
$totPzas = 0;
|
||||
$totImporte = 0;
|
||||
$totVtas = 0;
|
||||
$totImporteVtas = 0;
|
||||
|
||||
$sucursales = array();
|
||||
foreach($resSucursales as $res){
|
||||
|
||||
if($sucursalId > 0 && $sucursalId != $res['sucursalId'])
|
||||
continue;
|
||||
|
||||
$productos = array();
|
||||
foreach($res['productos'] as $k1 => $cat){
|
||||
|
||||
$cats = array();
|
||||
foreach($cat as $k2 => $subcat){
|
||||
|
||||
$subcats = array();
|
||||
foreach($subcat as $k3 => $prod){
|
||||
|
||||
//Totales Generales
|
||||
$idProd = $prod['productoId'];
|
||||
|
||||
if($productoId > 0 && $prod['productoId'] != $productoId)
|
||||
continue;
|
||||
|
||||
foreach($periodo as $kP => $per){
|
||||
$totalPzas = $prod['iniciales'][$kP];
|
||||
$totalPzas += $prod['entradas'][$kP];
|
||||
$totalPzas -= $prod['salidas'][$kP];
|
||||
$totalPzas += $prod['entradasA'][$kP];
|
||||
$totalPzas -= $prod['salidasA'][$kP];
|
||||
$totalPzas -= $prod['bloqueados'][$kP];
|
||||
|
||||
$totSubs[$k2][$kP]['inicial'] += $prod['iniciales'][$kP];
|
||||
$totSubs[$k2][$kP]['entradas'] += $prod['entradas'][$kP];
|
||||
$totSubs[$k2][$kP]['salidas'] += $prod['salidas'][$kP];
|
||||
$totSubs[$k2][$kP]['entradasA'] += $prod['entradasA'][$kP];
|
||||
$totSubs[$k2][$kP]['salidasA'] += $prod['salidasA'][$kP];
|
||||
$totSubs[$k2][$kP]['bloqueados'] += $prod['bloqueados'][$kP];
|
||||
|
||||
$totCats[$k1][$kP]['inicial'] += $prod['iniciales'][$kP];
|
||||
$totCats[$k1][$kP]['entradas'] += $prod['entradas'][$kP];
|
||||
$totCats[$k1][$kP]['salidas'] += $prod['salidas'][$kP];
|
||||
$totCats[$k1][$kP]['entradasA'] += $prod['entradasA'][$kP];
|
||||
$totCats[$k1][$kP]['salidasA'] += $prod['salidasA'][$kP];
|
||||
$totCats[$k1][$kP]['bloqueados'] += $prod['bloqueados'][$kP];
|
||||
|
||||
$totIniciales[$kP] += $prod['iniciales'][$kP];
|
||||
$totEntradas[$kP] += $prod['entradas'][$kP];
|
||||
$totSalidas[$kP] += $prod['salidas'][$kP];
|
||||
$totEntradasA[$kP] += $prod['entradasA'][$kP];
|
||||
$totSalidasA[$kP] += $prod['salidasA'][$kP];
|
||||
$totBloqueados[$kP] += $prod['bloqueados'][$kP];
|
||||
|
||||
//Totales Generales
|
||||
$products[$idProd]['iniciales'][$kP] += $prod['iniciales'][$kP];
|
||||
$products[$idProd]['entradas'][$kP] += $prod['entradas'][$kP];
|
||||
$products[$idProd]['salidas'][$kP] += $prod['salidas'][$kP];
|
||||
$products[$idProd]['entradasA'][$kP] += $prod['entradasA'][$kP];
|
||||
$products[$idProd]['salidasA'][$kP] += $prod['salidasA'][$kP];
|
||||
$products[$idProd]['bloqueados'][$kP] += $prod['bloqueados'][$kP];
|
||||
|
||||
$prodTotales['iniciales'][$kP] += $prod['iniciales'][$kP];
|
||||
$prodTotales['entradas'][$kP] += $prod['entradas'][$kP];
|
||||
$prodTotales['salidas'][$kP] += $prod['salidas'][$kP];
|
||||
$prodTotales['entradasA'][$kP] += $prod['entradasA'][$kP];
|
||||
$prodTotales['salidasA'][$kP] += $prod['salidasA'][$kP];
|
||||
$prodTotales['bloqueados'][$kP] += $prod['bloqueados'][$kP];
|
||||
|
||||
}//foreach
|
||||
|
||||
$totalVtas = 0;
|
||||
foreach($periodo as $kP => $per)
|
||||
$totalVtas += $prod['salidasVtas'][$kP];
|
||||
|
||||
$prod['totalPzas'] = $totalPzas;
|
||||
|
||||
$prod['importe'] = $prod['costo'] * $totalPzas;
|
||||
|
||||
$prod['totalVtas'] = $totalVtas;
|
||||
$prod['precioVta'] = $prod['precioVentaIva'];
|
||||
$prod['importeVtas'] = $totalVtas * $prod['precioVentaIva'];
|
||||
|
||||
$subcats[$k3] = $prod;
|
||||
|
||||
//Totales Generales
|
||||
$products[$idProd]['codigoBarra'] = $prod['codigoBarra'];
|
||||
$products[$idProd]['modelo'] = $prod['modelo'];
|
||||
$products[$idProd]['fecha'] = $prod['fecha'];
|
||||
$products[$idProd]['costo'] = $prod['costo'];
|
||||
$products[$idProd]['precioVta'] = $prod['precioVta'];
|
||||
$products[$idProd]['totalPzas'] += $prod['totalPzas'];
|
||||
$products[$idProd]['importe'] += $prod['importe'];
|
||||
$products[$idProd]['totalVtas'] += $prod['totalVtas'];
|
||||
$products[$idProd]['importeVtas'] += $prod['importeVtas'];
|
||||
|
||||
$prodTotales['totalPzas'] += $prod['totalPzas'];
|
||||
$prodTotales['importe'] += $prod['importe'];
|
||||
$prodTotales['totalVtas'] += $prod['totalVtas'];
|
||||
$prodTotales['importeVtas'] += $prod['importeVtas'];
|
||||
|
||||
//Otros Totales
|
||||
|
||||
$totPzas += $prod['totalPzas'];
|
||||
$totImporte += $prod['importe'];
|
||||
$totVtas += $prod['totalVtas'];
|
||||
$totImporteVtas += $prod['importeVtas'];
|
||||
|
||||
//Totales
|
||||
|
||||
$totSubs[$k2]['totalPzas'] += $totalPzas;
|
||||
$totSubs[$k2]['importe'] += $prod['importe'];
|
||||
$totSubs[$k2]['totalVtas'] += $totalVtas;
|
||||
$totSubs[$k2]['importeVtas'] += $prod['importeVtas'];
|
||||
|
||||
$totCats[$k1]['totalPzas'] += $totalPzas;
|
||||
$totCats[$k1]['importe'] += $prod['importe'];
|
||||
$totCats[$k1]['totalVtas'] += $totalVtas;
|
||||
$totCats[$k1]['importeVtas'] += $prod['importeVtas'];
|
||||
|
||||
//Totales Generales
|
||||
|
||||
$totEntradas[$m] += $cantEntrada;
|
||||
$totSalidas[$m] += $cantSalida;
|
||||
$totEntradasA[$m] += $cantEntradaA;
|
||||
$totSalidasA[$m] += $cantSalidaA;
|
||||
|
||||
$productos[] = $prod;
|
||||
|
||||
}//foreach
|
||||
|
||||
}//foreach
|
||||
|
||||
}//foreach
|
||||
$res['productos'] = $productos;
|
||||
$res['totSubs'] = $totSubs;
|
||||
$res['totCats'] = $totCats;
|
||||
|
||||
$totalPzas = ($cantInicial + $cantEntrada - $cantSalida + $cantEntradaA - $cantSalidaA);
|
||||
|
||||
$res['totalPzas'] = $totalPzas;
|
||||
|
||||
$res['totIniciales'] = $totIniciales;
|
||||
$res['totEntradas'] = $totEntradas;
|
||||
$res['totSalidas'] = $totSalidas;
|
||||
$res['totEntradasA'] = $totEntradasA;
|
||||
$res['totSalidasA'] = $totSalidasA;
|
||||
$res['totBloqueados'] = $totBloqueados;
|
||||
|
||||
$res['totPzas'] = $totPzas;
|
||||
$res['totImporte'] = $totImporte;
|
||||
$res['totVtas'] = $totVtas;
|
||||
$res['totImporteVtas'] = $totImporteVtas;
|
||||
|
||||
$sucursales[] = $res;
|
||||
|
||||
}//foreach
|
||||
|
||||
//Other
|
||||
|
||||
$width = 800 + ($meses * 50);
|
||||
|
||||
$perIni = $util->GetMMMName($mesI).' '.$anioI;
|
||||
$perFin = $util->GetMMMName($mesF).' '.$anioF;
|
||||
|
||||
$titulo = 'Periodo: <br>'.$perIni.' a '.$perFin;
|
||||
|
||||
$colspan = 11 + ($meses*2);
|
||||
|
||||
$x = "
|
||||
<table>
|
||||
<th colspan='".$colspan."'>Periodo: ".$perIni." a ".$perFin."
|
||||
<br><br>
|
||||
Los datos no son generados en tiempo real.
|
||||
<br>
|
||||
Ult. Act. del Reporte: ".$fechaRep."
|
||||
</th>
|
||||
</table>
|
||||
<br><br>
|
||||
";
|
||||
|
||||
foreach($sucursales as $suc){
|
||||
|
||||
$x .= "<table border=\"1\">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style=\"background:#CCC;text-align:center\" colspan=\"".$colspan."\">
|
||||
<b>Sucursal: ".utf8_decode(urldecode($suc['nombre']))."</b>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>";
|
||||
|
||||
foreach($periodo as $mes)
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\" colspan='6'><b>".$mes."</b></th>";
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Codigo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Producto</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>No. Prov.</b></th>";
|
||||
|
||||
foreach($periodo as $mes){
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Inicial</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Salida</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Salida</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Bloqueados</b></th>";
|
||||
}
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"><b>Ultima Compra</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Piezas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Costo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total de Inv.</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Ventas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Precio Venta</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total Ventas</b></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>";
|
||||
|
||||
foreach($suc['productos'] as $res){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\">".$res['codigoBarra']."</td>
|
||||
<td style=\"text-align:left;\">".$res['modelo']."</td>
|
||||
<td style=\"text-align:left;\">".$res['proveedorId']."</td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['iniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['bloqueados'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\">".date('d-m-Y',strtotime($res['fecha']))."</td>
|
||||
<td style=\"text-align:center;\">".number_format($res['totalPzas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['costo'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importe'],2)."</td>
|
||||
|
||||
<td style=\"text-align:center;\">".number_format($res['totalVtas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['precioVta'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importeVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//foreach
|
||||
|
||||
if(count($suc['productos']) > 0){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\"></td>
|
||||
<td style=\"text-align:center;\">TOTALES</td>
|
||||
<td style=\"text-align:center;\"></td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totIniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totEntradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totSalidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totEntradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totSalidasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['bloqueados'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\"></td>
|
||||
<td style=\"text-align:center;\">".number_format($suc['totPzas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($suc['totImporte'],2)."</td>
|
||||
<td style=\"text-align:center;\">".number_format($suc['totVtas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($suc['totImporteVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//if
|
||||
|
||||
$x .= "
|
||||
</tbody>
|
||||
</table>";
|
||||
|
||||
}//foreach
|
||||
|
||||
//Totales Generales
|
||||
|
||||
$x .= "<table border=\"1\">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style=\"background:#CCC;text-align:center\" colspan=\"".$colspan."\">
|
||||
<b>TOTALES GENERALES</b>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>";
|
||||
|
||||
foreach($periodo as $mes)
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\" colspan='6'><b>".$mes."</b></th>";
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Codigo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Producto</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>No. Prov.</b></th>";
|
||||
|
||||
foreach($periodo as $mes){
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Inicial</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Salida</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Salida</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Bloqueados</b></th>";
|
||||
}
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"><b>Ultima Compra</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Piezas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Costo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total de Inv.</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Ventas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Precio Venta</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total Ventas</b></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>";
|
||||
|
||||
foreach($products as $res){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\">".$res['codigoBarra']."</td>
|
||||
<td style=\"text-align:left;\">".$res['modelo']."</td>
|
||||
<td style=\"text-align:left;\">".$res['proveedorId']."</td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['iniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['bloqueados'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\">".date('d-m-Y',strtotime($res['fecha']))."</td>
|
||||
<td style=\"text-align:center;\">".number_format($res['totalPzas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['costo'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importe'],2)."</td>
|
||||
|
||||
<td style=\"text-align:center;\">".number_format($res['totalVtas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['precioVta'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importeVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//foreach
|
||||
|
||||
if(count($suc['productos']) > 0){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\"></td>
|
||||
<td style=\"text-align:center;\">TOTALES</td>
|
||||
<td style=\"text-align:center;\"></td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['iniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['entradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['salidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['entradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['salidasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($prodTotales['bloqueados'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\"></td>
|
||||
<td style=\"text-align:center;\">".number_format($prodTotales['totalPzas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($prodTotales['totImporte'],2)."</td>
|
||||
<td style=\"text-align:center;\">".number_format($prodTotales['totalVtas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($prodTotales['importeVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//if
|
||||
|
||||
$x .= "
|
||||
</tbody>
|
||||
</table>";
|
||||
|
||||
}else{
|
||||
|
||||
$proveedorId = $_POST['idProveedor'];
|
||||
$sucursalId = $_POST['idSucursal'];
|
||||
$fechaI = $_POST['fechaI'];
|
||||
$codigoBarra = trim($_POST['codigoBarra']);
|
||||
|
||||
$reportes->setIdSuc($sucursalId);
|
||||
$resSuc = $reportes->EnumSucursales();
|
||||
|
||||
if($codigoBarra != ''){
|
||||
$producto->setCodigoBarra($codigoBarra);
|
||||
$productoId = $producto->GetProductIdByCodigo();
|
||||
|
||||
$producto->setProductoId($productoId);
|
||||
$infP = $producto->Info();
|
||||
$proveedorId = $infP['proveedorId'];
|
||||
}
|
||||
|
||||
$sucursales = array();
|
||||
foreach($resSuc as $suc){
|
||||
|
||||
$sucursalId = $suc['sucursalId'];
|
||||
|
||||
$producto->setProveedorId($proveedorId);
|
||||
$resProds = $producto->EnumByProveedor();
|
||||
|
||||
$proveedor->setProveedorId($proveedorId);
|
||||
$nomProv = $proveedor->GetNameById();
|
||||
|
||||
$strFechaI = $fechaI;
|
||||
|
||||
$totPzas = 0;
|
||||
$totImporte = 0;
|
||||
$totVtas = 0;
|
||||
$totImporteVtas = 0;
|
||||
$totales = array();
|
||||
$totSaldos = array();
|
||||
$productos = array();
|
||||
foreach($resProds as $res){
|
||||
|
||||
if($productoId > 0 && $res['productoId'] != $productoId)
|
||||
continue;
|
||||
|
||||
$producto->setProductoId($res['productoId']);
|
||||
$infP = $producto->Info();
|
||||
|
||||
$producto->setProductoId($res['productoId']);
|
||||
$res['fecha'] = $producto->GetFechaUltCompra();
|
||||
|
||||
if($res['fecha'] == 0)
|
||||
continue;
|
||||
|
||||
$res['modelo'] = utf8_encode($res['modelo']);
|
||||
|
||||
//Obtenemos el Saldo Inicial
|
||||
$fechaII = '2013-06-01';
|
||||
$fechaFF = date('Y-m-d',strtotime($fechaI));
|
||||
|
||||
$producto->setProductoId($res['productoId']);
|
||||
$producto->setFechaIni($fechaII);
|
||||
$producto->setFechaFin($fechaFF);
|
||||
|
||||
$producto->setSucursalId($sucursalId);
|
||||
$cantSalidaI = $producto->GetCantVendido();
|
||||
$cantSalidaI += $producto->GetSalEnvTT();
|
||||
|
||||
$cantEntradaI = $producto->GetCantTotalCompBySuc();
|
||||
$cantEntradaI += $producto->GetEntEnvTT();
|
||||
|
||||
$cantEntradaAI = $producto->GetEntAjusteEnv();
|
||||
$cantSalidaAI = $producto->GetSalAjusteEnv();
|
||||
|
||||
$cantInicial = $cantEntradaI - $cantSalidaI + $cantEntradaAI - $cantSalidaAI;
|
||||
|
||||
$totalVtas = 0;
|
||||
$mostrar = false;
|
||||
$totalPzas = 0;
|
||||
$iniciales = array();
|
||||
$entradas = array();
|
||||
$salidas = array();
|
||||
$m = 0;
|
||||
|
||||
$fechaIni = $fechaFF;
|
||||
$fechaFin = $fechaFF;
|
||||
|
||||
$producto->setProductoId($res['productoId']);
|
||||
$producto->setFechaIni($fechaIni);
|
||||
$producto->setFechaFin($fechaFin);
|
||||
|
||||
$producto->setSucursalId($sucursalId);
|
||||
$cantSalida = $producto->GetCantVendido();
|
||||
$cantSalida += $producto->GetSalEnvTT();
|
||||
|
||||
$cantEntrada = $producto->GetCantTotalCompBySuc();
|
||||
$cantEntrada += $producto->GetEntEnvTT();
|
||||
|
||||
$cantEntradaA = $producto->GetEntAjusteEnv();
|
||||
$cantSalidaA = $producto->GetSalAjusteEnv();
|
||||
|
||||
$totalVtas += $cantSalida;
|
||||
|
||||
$totalPzas = ($cantInicial + $cantEntrada - $cantSalida + $cantEntradaA - $cantSalidaA);
|
||||
|
||||
$totSubs[$prodSubcatId][$m]['inicial'] += $cantInicial;
|
||||
$totSubs[$prodSubcatId][$m]['entradas'] += $cantEntrada;
|
||||
$totSubs[$prodSubcatId][$m]['salidas'] += $cantSalida;
|
||||
$totSubs[$prodSubcatId][$m]['entradasA'] += $cantEntradaA;
|
||||
$totSubs[$prodSubcatId][$m]['salidasA'] += $cantSalidaA;
|
||||
|
||||
$totCats[$prodCatId][$m]['inicial'] += $cantInicial;
|
||||
$totCats[$prodCatId][$m]['entradas'] += $cantEntrada;
|
||||
$totCats[$prodCatId][$m]['salidas'] += $cantSalida;
|
||||
$totCats[$prodCatId][$m]['entradasA'] += $cantEntradaA;
|
||||
$totCats[$prodCatId][$m]['salidasA'] += $cantSalidaA;
|
||||
|
||||
if($cantEntrada > 0 || $cantEntradaA > 0 || $cantInicial > 0)
|
||||
$mostrar = true;
|
||||
|
||||
if($cantSalida > 0 || $cantSalidaA > 0 || $cantInicial > 0)
|
||||
$mostrar = true;
|
||||
|
||||
if($mostrar == true){
|
||||
$iniciales[$m] = $cantInicial;
|
||||
$entradas[$m] = $cantEntrada;
|
||||
$salidas[$m] = $cantSalida;
|
||||
$entradasA[$m] = $cantEntradaA;
|
||||
$salidasA[$m] = $cantSalidaA;
|
||||
|
||||
$totIniciales[$m] += $cantInicial;
|
||||
$totEntradas[$m] += $cantEntrada;
|
||||
$totSalidas[$m] += $cantSalida;
|
||||
$totEntradasA[$m] += $cantEntradaA;
|
||||
$totSalidasA[$m] += $cantSalidaA;
|
||||
}else{
|
||||
$iniciales[$m] = 0;
|
||||
$entradas[$m] = 0;
|
||||
$salidas[$m] = 0;
|
||||
$entradasA[$m] = 0;
|
||||
$salidasA[$m] = 0;
|
||||
}
|
||||
|
||||
$cantInicial = $cantInicial + $cantEntrada - $cantSalida + $cantEntradaA - $cantSalidaA;
|
||||
|
||||
$suc['productos'] = $productos;
|
||||
|
||||
$res['iniciales'] = $iniciales;
|
||||
$res['entradas'] = $entradas;
|
||||
$res['salidas'] = $salidas;
|
||||
$res['entradasA'] = $entradasA;
|
||||
$res['salidasA'] = $salidasA;
|
||||
$res['totalPzas'] = $totalPzas;
|
||||
$res['proveedor'] = $nomProv;
|
||||
|
||||
$res['importe'] = $res['costo'] * $totalPzas;
|
||||
|
||||
$res['totalVtas'] = $totalVtas;
|
||||
$res['precioVta'] = $infP['precioVentaIva'];
|
||||
$res['importeVtas'] = $totalVtas * $infP['precioVentaIva'];
|
||||
|
||||
if($mostrar == true){
|
||||
$totPzas += $totalPzas;
|
||||
$totImporte += $res['importe'];
|
||||
|
||||
$totVtas += $totalVtas;
|
||||
$totImporteVtas += $res['importeVtas'];
|
||||
|
||||
$productos[] = $res;
|
||||
}
|
||||
|
||||
}//foreach
|
||||
|
||||
$suc['productos'] = $productos;
|
||||
|
||||
$suc['totIniciales'] = $totIniciales;
|
||||
$suc['totEntradas'] = $totEntradas;
|
||||
$suc['totSalidas'] = $totSalidas;
|
||||
$suc['totEntradasA'] = $totEntradasA;
|
||||
$suc['totSalidasA'] = $totSalidasA;
|
||||
$suc['totPzas'] = $totPzas;
|
||||
$suc['totImporte'] = $totImporte;
|
||||
$suc['totVtas'] = $totVtas;
|
||||
$suc['totImporteVtas'] = $totImporteVtas;
|
||||
|
||||
$sucursales[] = $suc;
|
||||
|
||||
}//foreach
|
||||
|
||||
$meses = 1;
|
||||
|
||||
$periodo = array();
|
||||
for($m=0; $m<$meses; $m++)
|
||||
$periodo[$m] = $fechaI;
|
||||
|
||||
$colspan = 11 + ($meses*2);
|
||||
|
||||
$x = "
|
||||
<table>
|
||||
<th colspan='".$colspan."'>Periodo: ".$fechaI."</th>
|
||||
</table>
|
||||
<br><br>
|
||||
";
|
||||
|
||||
foreach($sucursales as $suc){
|
||||
|
||||
$x .= "<table border=\"1\">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style=\"background:#CCC;text-align:center\" colspan=\"".$colspan."\">
|
||||
<b>Sucursal: ".utf8_decode(urldecode($suc['nombre']))."</b>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>";
|
||||
|
||||
foreach($periodo as $mes)
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\" colspan='5'><b>".$fechaI."</b></th>";
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Codigo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Producto</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>No. Prov.</b></th>";
|
||||
|
||||
foreach($periodo as $mes){
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Inicial</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Salida</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Entrada</b></th>";
|
||||
$x .= "<th style=\"background:#E0E5E7;text-align:center\"><b>Ajuste Salida</b></th>";
|
||||
}
|
||||
|
||||
$x .= " <th style=\"background:#E0E5E7;text-align:center\"><b>Ultima Compra</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Piezas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Costo</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total de Inv.</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Total Ventas</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Precio Venta</b></th>
|
||||
<th style=\"background:#E0E5E7;text-align:center\"><b>Importe Total Ventas</b></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>";
|
||||
|
||||
foreach($suc['productos'] as $res){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\">".$res['codigoBarra']."</td>
|
||||
<td style=\"text-align:left;\">".$res['modelo']."</td>
|
||||
<td style=\"text-align:left;\">".$res['proveedorId']."</td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['iniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['entradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($res['salidasA'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\">".date('d-m-Y',strtotime($res['fecha']))."</td>
|
||||
<td style=\"text-align:center;\">".number_format($res['totalPzas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['costo'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importe'],2)."</td>
|
||||
|
||||
<td style=\"text-align:center;\">".number_format($res['totalVtas'],0)."</td>
|
||||
<td style=\"text-align:center;\">$".number_format($res['precioVta'],2)."</td>
|
||||
<td style=\"text-align:right;\">$".number_format($res['importeVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//foreach
|
||||
|
||||
if(count($suc['productos']) > 0){
|
||||
|
||||
$x .= "
|
||||
<tr>
|
||||
<td style=\"text-align:center;\"></td>
|
||||
<td style=\"text-align:center;\">TOTALES</td>
|
||||
<td style=\"text-align:center;\"></td>";
|
||||
|
||||
foreach($periodo as $m => $val){
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totIniciales'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totEntradas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totSalidas'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totEntradasA'][$m],0)."</td>";
|
||||
$x .= "<td style=\"text-align:center;\">".number_format($suc['totSalidasA'][$m],0)."</td>";
|
||||
}
|
||||
|
||||
$x .= "<td style=\"text-align:right;\"></td>
|
||||
<td style=\"text-align:center;\">".number_format($suc['totPzas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($suc['totImporte'],2)."</td>
|
||||
<td style=\"text-align:center;\">".number_format($suc['totVtas'],0)."</td>
|
||||
<td></td>
|
||||
<td style=\"text-align:right;\">$".number_format($suc['totImporteVtas'],2)."</td>
|
||||
</tr>";
|
||||
|
||||
}//if
|
||||
|
||||
$x .= "
|
||||
</tbody>
|
||||
</table>";
|
||||
|
||||
}//foreach
|
||||
|
||||
}//else if($_POST['type'] == 'tipoProdProv')
|
||||
|
||||
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;
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user