GetMMMName(intval($mesI)); $perIni = $nomMes.' '.$anioI; $nomMes = $util->GetMMMName(intval($mesF)); $perFin = $nomMes.' '.$anioF; $mI = intval($mesI); $mF = intval($mesF); $yI = $anioI; $yF = $anioF; $anios = $yF - $yI; if($anios == 0){ $meses = $mF - $mI; $meses += 1; }else{ $meses = (12 - $mI) + 1 + $mF; } $strFechaI = strtotime('01-'.$mesI.'-'.$anioI); $sql = 'SELECT proveedor.proveedorId, reporteProvBest.fecha FROM proveedor LEFT JOIN reporteProvBest ON proveedor.proveedorId = reporteProvBest.proveedorId ORDER BY reporteProvBest.fechaTemp ASC LIMIT 160,100'; $util->DBSelect($_SESSION['empresaId'])->setQuery($sql); $proveedores = $util->DBSelect($_SESSION['empresaId'])->GetResult(); foreach($proveedores as $prov){ if(!isset($_SESSION)) session_start(); $_SESSION['empresaId'] = 15; $proveedorId = $prov['proveedorId']; $proveedor->setProveedorId($proveedorId); $nomProv = $proveedor->GetNameById(); $reportes->setIdSuc(0); $resSuc = $reportes->EnumSucursales(); $sql = "SELECT p.productoId, p.precioVentaIva, p.prodCatId, p.prodSubcatId, p.modelo, p.codigoBarra, p.costo, p.proveedorId, ( SELECT ped.fechaOrdenCompIng FROM pedido AS ped, pedidoProducto AS pp WHERE ped.pedidoId = pp.pedidoId AND pp.productoId = p.productoId ORDER BY ped.fechaOrdenCompIng DESC LIMIT 1 ) AS fecha FROM producto p WHERE p.baja = '0' AND p.proveedorId = '".$proveedorId."' ORDER BY p.descripcion"; $util->DBSelect($_SESSION["empresaId"])->setQuery($sql); $resProds = $util->DBSelect($_SESSION["empresaId"])->GetResult(); $sucursales = array(); foreach($resSuc as $suc){ $sucursalId = $suc['sucursalId']; $totPzas = 0; $totImporte = 0; $totVtas = 0; $totImporteVtas = 0; $totIniciales = array(); $totEntradas = array(); $totSalidas = array(); $productos = array(); $resCategorias = array(); $resSubcats = array(); foreach($resProds as $res){ $prodCatId = $res['prodCatId']; $prodSubcatId = $res['prodSubcatId']; if($productoId > 0 && $res['productoId'] != $productoId) continue; if(!in_array($prodCatId, $resCategorias)) $resCategorias[] = $prodCatId; if(count($resSubcats[$prodCatId]) == 0) $resSubcats[$prodCatId] = array(); $resSub = $resSubcats[$prodCatId]; if(!in_array($prodSubcatId, $resSub)) $resSubcats[$prodCatId][] = $prodSubcatId; if($res['fecha'] == 0) continue; $res['modelo'] = utf8_encode($res['modelo']); //Obtenemos el Saldo Inicial $fechaII = '2013-06-01'; $cantInicial = 0; $totalVtas = 0; $mostrar = false; $totalPzas = 0; $iniciales = array(); $entradas = array(); $salidas = array(); for($m=0; $m<$meses; $m++){ $fechaIni = date('Y-m-01',strtotime('+'.$m.' month',$strFechaI)); $fechaFin = date('Y-m-31',strtotime('+'.$m.' month',$strFechaI)); $producto->setProductoId($res['productoId']); $producto->setFechaIni($fechaIni); $producto->setFechaFin($fechaFin); $producto->setSucursalId($sucursalId); $cantSalida = $producto->GetCantVendido(); $cantSalidaVtas = $cantSalida; $totalVtas += $cantSalida; $cantSalida += $producto->GetSalEnvTT(); $cantEntrada = $producto->GetCantTotalCompBySuc(); $cantEntrada += $producto->GetEntEnvTT(); $cantEntradaA = $producto->GetEntAjusteEnv(); $cantBloqueados = $producto->GetBloqueadosEnv(); $cantSalidaA = $producto->GetSalAjusteEnv(); //$cantEntradaA += $producto->GetEntAjusteExcel(); $totalPzas = ($cantInicial + $cantEntrada - $cantSalida + $cantEntradaA - $cantSalidaA - $cantBloqueados); $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; $totSubs[$prodSubcatId][$m]['bloqueados'] += $cantBloqueados; $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; $totCats[$prodCatId][$m]['bloqueados'] += $cantBloqueados; 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; $bloqueados[$m] = $cantBloqueados; $salidasVtas[$m] = $cantSalidaVtas; $totIniciales[$m] += $cantInicial; $totEntradas[$m] += $cantEntrada; $totSalidas[$m] += $cantSalida; $totEntradasA[$m] += $cantEntradaA; $totSalidasA[$m] += $cantSalidaA; $totBloqueados[$m] += $cantBloqueados; }else{ $iniciales[$m] = 0; $entradas[$m] = 0; $salidas[$m] = 0; $entradasA[$m] = 0; $salidasA[$m] = 0; $bloqueados[$m] = 0; $salidasVtas[$m] = 0; } $cantInicial = $cantInicial + $cantEntrada - $cantSalida + $cantEntradaA - $cantSalidaA - $cantBloqueados; }//for $res['iniciales'] = $iniciales; $res['entradas'] = $entradas; $res['salidas'] = $salidas; $res['salidasVtas'] = $salidasVtas; $res['entradasA'] = $entradasA; $res['salidasA'] = $salidasA; $res['bloqueados'] = $bloqueados; $res['totalPzas'] = $totalPzas; $res['proveedor'] = $nomProv; $res['importe'] = $res['costo'] * $totalPzas; $res['totalVtas'] = $totalVtas; $res['precioVta'] = $infP['precioVentaIva']; $res['importeVtas'] = $totalVtas * $infP['precioVentaIva']; $totSubs[$prodSubcatId]['totalPzas'] += $totalPzas; $totCats[$prodCatId]['totalPzas'] += $totalPzas; $totSubs[$prodSubcatId]['importe'] += $res['importe']; $totCats[$prodCatId]['importe'] += $res['importe']; $totSubs[$prodSubcatId]['totalVtas'] += $totalVtas; $totCats[$prodCatId]['totalVtas'] += $totalVtas; $totSubs[$prodSubcatId]['importeVtas'] += $res['importeVtas']; $totCats[$prodCatId]['importeVtas'] += $res['importeVtas']; $res['prodCatId'] = $infP['prodCatId']; $res['prodSubcatId'] = $infP['prodSubcatId']; if($mostrar == true){ $totPzas += $totalPzas; $totImporte += $res['importe']; $totVtas += $totalVtas; $totImporteVtas += $res['importeVtas']; $productos[$prodCatId][$prodSubcatId][] = $res; } }//foreach $categorias = array(); foreach($resCategorias as $prodCatId){ $card['prodCatId'] = $prodCatId; $prodCat->setProdCatId($prodCatId); $card['nombre'] = utf8_encode($prodCat->GetNameById()); $categorias[] = $card; } $subcategorias = array(); foreach($resSubcats as $prodCatId => $subcats){ $card = array(); $subcats2 = array(); foreach($subcats as $prodSubcatId){ $card['prodSubcatId'] = $prodSubcatId; $prodSubcat->setProdSubcatId($prodSubcatId); $card['nombre'] = utf8_encode($prodSubcat->GetNameById()); $subcats2[] = $card; } $subcategorias[$prodCatId] = $subcats2; } $suc['productos'] = $productos; $suc['categorias'] = $categorias; $suc['subcategorias'] = $subcategorias; $suc['totSubs'] = $totSubs; $suc['totCats'] = $totCats; $suc['totIniciales'] = $totIniciales; $suc['totEntradas'] = $totEntradas; $suc['totSalidas'] = $totSalidas; $suc['totEntradasA'] = $totEntradasA; $suc['totSalidasA'] = $totSalidasA; $suc['totBloqueados'] = $totBloqueados; $suc['totPzas'] = $totPzas; $suc['totImporte'] = $totImporte; $suc['totVtas'] = $totVtas; $suc['totImporteVtas'] = $totImporteVtas; $sucursales[] = $suc; }//foreach //**** $serialize = urlencode(serialize($sucursales)); $sql = "REPLACE INTO `reporteProvBest` ( `proveedorId` , `fecha` , `reporte` , `sucursal` ) VALUES ( '".$proveedorId."', '".date("Y-m-d H:i:s")."', '".$serialize."', '')" ; $util->DBSelect($_SESSION['empresaId'])->setQuery($sql); $util->DBSelect($_SESSION['empresaId'])->InsertData(); }//foreach echo 'Done'; $end = microtime(true); echo "Tiempo de Ejecucion: "; echo $time = number_format(($end - $start), 2); exit; ?>