Exemple #1
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDatosGeneralesMayoristas()
 {
     return $this->hasMany(DatosGeneralesMayoristas::className(), ['cod_origen' => 'codigo_origen']);
 }
 public function productosMayoristasOrigen($fechaini, $fechafin, $condicion)
 {
     $query = new \yii\db\Query();
     $date = new \DateTime($fechaini);
     $fechaini = $date->format('Y-d-m H:i:s');
     $date = new \DateTime($fechafin);
     $fechafin = $date->format('Y-d-m H:i:s');
     $query->select(['Producto.[producto],cod_producto,Origen.[origen],cod_origen,AVG(precio) as precio'])->from('Datos_generales_mayoristas')->innerJoin('Origen', 'Origen.codigo_origen = Datos_generales_mayoristas.cod_origen')->innerJoin('Localizacion', 'Localizacion.codigo_localizacion = Datos_generales_mayoristas.cod_localizacion')->innerJoin('Producto', 'Producto.codigo_producto = Datos_generales_mayoristas.cod_producto')->where("fecha <= '" . $fechaini . "'")->andWhere("fecha >= '" . $fechafin . "'")->andWhere($condicion)->orderBy('producto')->groupBy('producto,cod_producto,origen,cod_origen');
     $rows = $query->all(DatosGeneralesMayoristas::getDb());
     return $rows;
 }
 public function actionLeersemanas2()
 {
     if (!\Yii::$app->user->isGuest) {
         //Construimos los modelos que vamos a necesitar.
         $productModel = new Producto();
         $datosOrigenModel = new DatosOrigen();
         $localizacionModel = new Localizacion();
         $mayoristasModel = new DatosGeneralesMayoristas();
         $origenModel = new Origen();
         $supermercadosModel = new DatosSupermercados();
         // Leemos el contenido de las tablas.
         $listaOrigenes = $origenModel->leerTodos();
         $listaYears = $mayoristasModel->leerYears();
         $request = yii::$app->request;
         $year = $request->get('year');
         $tipoConsultaSemanas = $request->get('tipoConsultaSemanas');
         if ($tipoConsultaSemanas == 'origen') {
             $listaProductos = $datosOrigenModel->leerProductos();
             $listaSemanas = $datosOrigenModel->leerSemanas($year);
             return $this->render('origen', ['listaProductos' => $listaProductos, 'listaYears' => $listaYears, 'listaSemanas' => $listaSemanas, 'year' => $year]);
         } else {
             if ($tipoConsultaSemanas == 'mayoristas') {
                 $listaProductos = $mayoristasModel->leerProductos();
                 $listaLocalizaciones = $mayoristasModel->leerLocalizaciones();
                 $listaSemanas = $mayoristasModel->leerSemanas($year);
                 return $this->render('mayoristas', ['listaProductos' => $listaProductos, 'listaOrigenes' => $listaOrigenes, 'listaLocalizaciones' => $listaLocalizaciones, 'listaYears' => $listaYears, 'listaSemanas' => $listaSemanas, 'year' => $year]);
             } else {
                 if ($tipoConsultaSemanas == 'supermercados') {
                     $listaProductos = $supermercadosModel->leerProductos();
                     $listaLocalizaciones = $supermercadosModel->leerLocalizaciones();
                     $listaSemanas = $supermercadosModel->leerSemanas($year);
                     $listaPresentaciones = $supermercadosModel->leerPresentaciones();
                     return $this->render('supermercados', ['listaProductos' => $listaProductos, 'listaOrigenes' => $listaOrigenes, 'listaLocalizaciones' => $listaLocalizaciones, 'listaYears' => $listaYears, 'listaSemanas' => $listaSemanas, 'listaPresentaciones' => $listaPresentaciones, 'year' => $year]);
                 }
             }
         }
     } else {
         return $this->goHome();
     }
 }
Exemple #4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDatosGeneralesMayoristas()
 {
     return $this->hasMany(DatosGeneralesMayoristas::className(), ['cod_categoria' => 'cod_categoria']);
 }
 public function actionSandia()
 {
     if (!\Yii::$app->user->isGuest) {
         $origenModel = new DatosOrigen();
         $mayoristasModel = new DatosGeneralesMayoristas();
         $supermercadoModel = new DatosSupermercados();
         $nombreorigenModel = new Origen();
         $request = yii::$app->request;
         if (count($request->get('fecha')) != 0) {
             $fecha = $request->get('fecha');
         } else {
             $fecha = date('Y-m-d');
         }
         $fecha2 = date("Y-m-d", strtotime("-6 day", strtotime($fecha)));
         $semana = date("Y-m-d", strtotime("-7 day", strtotime($fecha)));
         $semana2 = date("Y-m-d", strtotime("-13 day", strtotime($fecha)));
         $year = date("Y-m-d", strtotime("-1 year", strtotime($fecha)));
         $year2 = date("Y-m-d", strtotime("-7 day", strtotime($year)));
         //ORIGEN
         $condicion = "cod_producto=15 or cod_producto=16 or cod_producto=17";
         $origenFecha = $origenModel->productosOrigen($fecha, $fecha2, $condicion);
         $origenSemana = $origenModel->productosOrigen($semana, $semana2, $condicion);
         $origenYear = $origenModel->productosOrigen($year, $year2, $condicion);
         $origenFechaUltima = $origenModel->productosOrigenFecha($fecha, $fecha2, $condicion);
         //MAYORISTA
         $condicionEsp = "(cod_producto=16) and cod_localizacion=24";
         $mayoristasFechaEsp = $mayoristasModel->productosMayoristas($fecha, $fecha2, $condicionEsp);
         $mayoristasSemanaEsp = $mayoristasModel->productosMayoristas($semana, $semana2, $condicionEsp);
         $mayoristasYearEsp = $mayoristasModel->productosMayoristas($year, $year2, $condicionEsp);
         $condicionAle = "(cod_producto=16) and (cod_localizacion=6 or cod_localizacion=20 or cod_localizacion=21 or cod_localizacion=22 or cod_localizacion=23)";
         $mayoristasFechaAle = $mayoristasModel->productosMayoristas($fecha, $fecha2, $condicionAle);
         $mayoristasSemanaAle = $mayoristasModel->productosMayoristas($semana, $semana2, $condicionAle);
         $mayoristasYearAle = $mayoristasModel->productosMayoristas($year, $year2, $condicionAle);
         $condicionFra = "(cod_producto=16) and (cod_localizacion=3 or cod_localizacion=4)";
         $mayoristasFechaFra = $mayoristasModel->productosMayoristas($fecha, $fecha2, $condicionFra);
         $mayoristasSemanaFra = $mayoristasModel->productosMayoristas($semana, $semana2, $condicionFra);
         $mayoristasYearFra = $mayoristasModel->productosMayoristas($year, $year2, $condicionFra);
         $condicionRei = "(cod_producto=16) and cod_localizacion=5";
         $mayoristasFechaRei = $mayoristasModel->productosMayoristas($fecha, $fecha2, $condicionRei);
         $mayoristasSemanaRei = $mayoristasModel->productosMayoristas($semana, $semana2, $condicionRei);
         $mayoristasYearRei = $mayoristasModel->productosMayoristas($year, $year2, $condicionRei);
         //mayorista tabla
         $condicionTabla = "cod_producto=16";
         $mayoristasTabla = $mayoristasModel->productosTablaMayoristas($fecha, $fecha2, $condicionTabla);
         //mayorista origen
         $condicionOrigen = "cod_producto=16";
         $mayoristasFechaOrigen = $mayoristasModel->productosMayoristasOrigen($fecha, $fecha2, $condicionOrigen);
         $mayoristasSemanaOrigen = $mayoristasModel->productosMayoristasOrigen($semana, $semana2, $condicionOrigen);
         $mayoristasYearOrigen = $mayoristasModel->productosMayoristasOrigen($year, $year2, $condicionOrigen);
         //SUPERMERCADOS
         $condicionEspSup = "(cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15) and (cod_localizacion=75 or cod_localizacion=30 or cod_localizacion=11 or cod_localizacion=84 or cod_localizacion=31 or cod_localizacion=32 or cod_localizacion=10)";
         $supermercadoFechaEsp = $supermercadoModel->productosSupermercado($fecha, $fecha2, $condicionEspSup);
         $supermercadoSemanaEsp = $supermercadoModel->productosSupermercado($semana, $semana2, $condicionEspSup);
         $supermercadoYearEsp = $supermercadoModel->productosSupermercado($year, $year2, $condicionEspSup);
         $condicionAleSup = "(cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15) and (cod_localizacion=70 or cod_localizacion=79 or cod_localizacion=49 or cod_localizacion=28 or cod_localizacion=48 or cod_localizacion=45 or cod_localizacion=51 or cod_localizacion=35)";
         $supermercadoFechaAle = $supermercadoModel->productosSupermercado($fecha, $fecha2, $condicionAleSup);
         $supermercadoSemanaAle = $supermercadoModel->productosSupermercado($semana, $semana2, $condicionAleSup);
         $supermercadoYearAle = $supermercadoModel->productosSupermercado($year, $year2, $condicionAleSup);
         $condicionFraSup = "(cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15) and (cod_localizacion=19 or cod_localizacion=16)";
         $supermercadoFechaFra = $supermercadoModel->productosSupermercado($fecha, $fecha2, $condicionFraSup);
         $supermercadoSemanaFra = $supermercadoModel->productosSupermercado($semana, $semana2, $condicionFraSup);
         $supermercadoYearFra = $supermercadoModel->productosSupermercado($year, $year2, $condicionFraSup);
         $condicionReiSup = "(cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15) and (cod_localizacion=9 or cod_localizacion=41 or cod_localizacion=7 or cod_localizacion=8 or cod_localizacion=74)";
         $supermercadoFechaRei = $supermercadoModel->productosSupermercado($fecha, $fecha2, $condicionReiSup);
         $supermercadoSemanaRei = $supermercadoModel->productosSupermercado($semana, $semana2, $condicionReiSup);
         $supermercadoYearRei = $supermercadoModel->productosSupermercado($year, $year2, $condicionReiSup);
         $condicionPolSup = "(cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15) and (cod_localizacion=63 or cod_localizacion=52 or cod_localizacion=57 or cod_localizacion=54 or cod_localizacion=73)";
         $supermercadoFechaPol = $supermercadoModel->productosSupermercado($fecha, $fecha2, $condicionPolSup);
         $supermercadoSemanaPol = $supermercadoModel->productosSupermercado($semana, $semana2, $condicionPolSup);
         $supermercadoYearPol = $supermercadoModel->productosSupermercado($year, $year2, $condicionPolSup);
         //supermercado tabla
         $condicionTablaSup = "cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15";
         $supermercadoTabla = $supermercadoModel->productosTablaSupermercado($fecha, $fecha2, $condicionTablaSup);
         //supermercado origen
         $condicionOrigenSup = "cod_producto=16 or cod_producto=52 or cod_producto=53 or cod_producto=17 or cod_producto=15";
         $supermercadoFechaOrigen = $supermercadoModel->productosSupermercadoOrigen($fecha, $fecha2, $condicionOrigenSup);
         $supermercadoSemanaOrigen = $supermercadoModel->productosSupermercadoOrigen($semana, $semana2, $condicionOrigenSup);
         $supermercadoYearOrigen = $supermercadoModel->productosSupermercadoOrigen($year, $year2, $condicionOrigenSup);
         $date = new \DateTime($fecha);
         $fecha = $date;
         return $this->render('sandia', ['fecha' => $fecha, 'origenfechaultima' => $origenFechaUltima, 'origenfecha' => $origenFecha, 'origensemana' => $origenSemana, 'origenyear' => $origenYear, 'mayoristastabla' => $mayoristasTabla, 'mayoristasfechaesp' => $mayoristasFechaEsp, 'mayoristassemanaesp' => $mayoristasSemanaEsp, 'mayoristasyearesp' => $mayoristasYearEsp, 'mayoristasfechaale' => $mayoristasFechaAle, 'mayoristassemanaale' => $mayoristasSemanaAle, 'mayoristasyearale' => $mayoristasYearAle, 'mayoristasfechafra' => $mayoristasFechaFra, 'mayoristassemanafra' => $mayoristasSemanaFra, 'mayoristasyearfra' => $mayoristasYearFra, 'mayoristasfecharei' => $mayoristasFechaRei, 'mayoristassemanarei' => $mayoristasSemanaRei, 'mayoristasyearrei' => $mayoristasYearRei, 'mayoristasfechaorigen' => $mayoristasFechaOrigen, 'mayoristassemanaorigen' => $mayoristasSemanaOrigen, 'mayoristasyearorigen' => $mayoristasYearOrigen, 'supermercadofechaesp' => $supermercadoFechaEsp, 'supermercadosemanaesp' => $supermercadoSemanaEsp, 'supermercadoyearesp' => $supermercadoYearEsp, 'supermercadofechaale' => $supermercadoFechaAle, 'supermercadosemanaale' => $supermercadoSemanaAle, 'supermercadoyearale' => $supermercadoYearAle, 'supermercadofechafra' => $supermercadoFechaFra, 'supermercadosemanafra' => $supermercadoSemanaFra, 'supermercadoyearfra' => $supermercadoYearFra, 'supermercadofecharei' => $supermercadoFechaRei, 'supermercadosemanarei' => $supermercadoSemanaRei, 'supermercadoyearrei' => $supermercadoYearRei, 'supermercadofechapol' => $supermercadoFechaPol, 'supermercadosemanapol' => $supermercadoSemanaPol, 'supermercadoyearpol' => $supermercadoYearPol, 'supermercadofechaorigen' => $supermercadoFechaOrigen, 'supermercadosemanaorigen' => $supermercadoSemanaOrigen, 'supermercadoyearorigen' => $supermercadoYearOrigen, 'supermercadotabla' => $supermercadoTabla]);
     } else {
         return $this->goHome();
     }
 }
 /**
  * Devuelve una consulta con las medias para distintas semanas 
  * @param string $condiciones
  */
 public function consultarMediasSemanales($condiciones)
 {
     $query = new \yii\db\Query();
     //Cambio de datepart(week,Datos_origen.fecha) por (datepart(DY, datediff(d,0,Datos_origen.fecha)/7*7+3)+6)/7
     $query->select(['producto.producto, Localizacion.Localizacion, origen.origen, Round(avg(precio),2) as preciomedio, (datepart(DY, datediff(d,0,Datos_origen.fecha)/7*7+3)+6)/7 as Semana', 'DATEPART(year, Datos_origen.fecha) as anio'])->from('Datos_origen')->innerJoin('Origen', 'Origen.codigo_origen = Datos_origen.cod_origen')->innerJoin('Localizacion', 'Localizacion.codigo_localizacion = Datos_origen.cod_localizacion')->innerJoin('Producto', 'Producto.codigo_producto = Datos_origen.cod_producto')->where($condiciones)->groupBy(['Producto', 'Localizacion', 'Origen', '(datepart(DY, datediff(d,0,Datos_origen.fecha)/7*7+3)+6)/7', 'DATEPART(year, Datos_origen.fecha)'])->orderBy('anio, Semana, Producto');
     $rows = $query->all(DatosGeneralesMayoristas::getDb());
     return $rows;
 }