public function actionPizarraprecios() { if (!\Yii::$app->user->isGuest) { //Construimos los modelos que vamos a necesitar. $pizarraModel = new Preciosdiarios(); // Leemos el contenido de las tablas. $listaProductos = $pizarraModel->leerProductos(); $listaAlhondigas = $pizarraModel->leerAlhondigas(); $request = yii::$app->request; if (count($request->get('fechaPizarra')) != 0) { $today = $request->get('fechaPizarra'); } else { $today = date('Y-m-d'); } //$today = '2015-11-27'; $yesterday = $pizarraModel->leerDiaAnterior($today); $yesterday = $yesterday[0]['fecha']; // Pizarra General. $ultimaPizarra = $this->leerDatosUltima($today); $listaPizarras = $pizarraModel->leerPizarras($today, $listaAlhondigas); // Pizarra Media Global. $mediasGlobales = $pizarraModel->leerMediasGlobales($today); $mediasGlobales = $this->calcularMediasArray($mediasGlobales); $mediasAnteriores = $pizarraModel->leerMediasGlobales($yesterday); $mediasAnteriores = $this->calcularMediasArray($mediasAnteriores); //exit(print_r($mediasAnteriores)); // Pizarra de precio por producto. $listaPizarrasProducto = $listaPizarras; $listaPizarrasAuxiliar = array(); // Media final de pizarra de precio por producto. Para esto hacemos una consulta nueva que nos saque las medias por alhondigas. $filaMedias = $pizarraModel->extraerMediasPorCorte($today); $aux = 0; foreach ($listaPizarrasProducto as $pizarraProducto) { $arrayMedias = 0; $contador = 0; $arrayMediasAnterior = 0; if (is_array($pizarraProducto)) { $pizarraProducto = $this->calcularMediasArray($pizarraProducto); foreach ($pizarraProducto as $media) { $arrayMediasAnterior = $arrayMedias; $arrayMedias += $media['media']; $arrayMedias *= 10000; $arrayMediasAnterior *= 10000; if (intval($arrayMedias) > intval($arrayMediasAnterior)) { $contador++; } else { // } $arrayMedias /= 10000; } $mediaCalculada = $arrayMedias / $contador; $filaMedias[$aux]['media'] = $mediaCalculada; array_push($pizarraProducto, $filaMedias[$aux]); $aux++; } array_push($listaPizarrasAuxiliar, $pizarraProducto); } $date = new \DateTime($today); $today = $date; //exit(print_r($ayer)); //En base a si recibimos parametros GET/POST mandamos unos datos a la vista o mandamos otros. if (count($request->queryParams) > 1) { $fechaInicial = $request->get('fechaInicial'); $fechaFinal = $request->get('fechaFinal'); $productos = $request->get('productos'); $alhondigas = $request->get('alhondigas'); $corteInicial = $request->get('corteInicial'); $corteFinal = $request->get('corteFinal'); $listaProductosCabecera = $pizarraModel->leerProductosCabecera($productos); $listaAlhondigasCabecera = $pizarraModel->leerAlhondigasCabecera($alhondigas); $resultado = $pizarraModel->leerPreciosPorSemana($fechaInicial, $fechaFinal, $productos, $alhondigas, $corteInicial, $corteFinal); $tablaSemana = $this->construirTabla($listaAlhondigasCabecera, $listaProductosCabecera, $resultado); return $this->render('pizarra', ['listaProductos' => $listaProductos, 'listaAlhondigas' => $listaAlhondigas, 'ultimaPizarra' => $ultimaPizarra, 'listaPizarras' => $listaPizarras, 'fecha' => $today, 'mediasGlobales' => $mediasGlobales, 'listaPizarrasProducto' => $listaPizarrasAuxiliar, 'filaMedias' => $filaMedias, 'fechaInicial' => $fechaInicial, 'fechaFinal' => $fechaFinal, 'resultado' => $resultado, 'listaProductosCabecera' => $listaProductosCabecera, 'listaAlhondigasCabecera' => $listaAlhondigasCabecera, 'tablaSemana' => $tablaSemana, 'mediasAnteriores' => $mediasAnteriores]); } else { } return $this->render('pizarra', ['listaProductos' => $listaProductos, 'listaAlhondigas' => $listaAlhondigas, 'ultimaPizarra' => $ultimaPizarra, 'listaPizarras' => $listaPizarras, 'fecha' => $today, 'mediasGlobales' => $mediasGlobales, 'listaPizarrasProducto' => $listaPizarrasAuxiliar, 'filaMedias' => $filaMedias, 'mediasAnteriores' => $mediasAnteriores]); } else { return $this->goHome(); } }