コード例 #1
0
 public function reporteSoloSector($request, $filtros)
 {
     //Castear fechas
     $fecha = $request->fechaInicio . " 00:00:00";
     $fechaInf = Carbon::createFromFormat("d/m/Y H:i:s", $fecha);
     $fecha = $request->fechaFin . " 23:59:59";
     $fechaSup = Carbon::createFromFormat("d/m/Y H:i:s", $fecha);
     $sectores = null;
     if ($request->sector == "") {
         $sectores = Sector::select('id', 'nombre')->orderBy('nombre', 'asc')->get();
     } else {
         $sectores = Sector::select('id', 'nombre')->where('id', $request->sector)->get();
     }
     /*Un arreglo para almacenar resultado de busqueda de cada filtro*/
     $arrayPreparaciones = null;
     $arraySiembras = null;
     $arrayFertilizaciones = null;
     $arrayRiegos = null;
     $arrayMantenimientos = null;
     $arrayCosechas = null;
     ///////////////////////////////Preparaciones////////////////////////////////////////////////////
     if ($filtros['preparaciones']) {
         $arrayPreparaciones[0]['Sector'] = "";
         $arrayPreparaciones[0]['Maquinaria'] = "";
         $arrayPreparaciones[0]['Número de pasadas'] = 0;
         $arrayPreparaciones[0]['Fecha'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $preparaciones = $sector->preparaciones()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($preparaciones as $preparacion) {
                 $maquinaria = maquinaria::findOrFail($preparacion->id_maquinaria);
                 $arrayPreparaciones[$i]['Sector'] = $sector->nombre;
                 $arrayPreparaciones[$i]['Maquinaria'] = $maquinaria->nombre;
                 $arrayPreparaciones[$i]['Número de pasadas'] = $preparacion->numPasadas;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $preparacion->fecha);
                 $preparacion->fecha = $fecha->format('d/m/Y');
                 $arrayPreparaciones[$i]['Fecha'] = $preparacion->fecha;
                 $i++;
             }
         }
     }
     ///////////////////////////////Siembras////////////////////////////////////////////////////
     if ($filtros['siembras']) {
         $arraySiembras[0]['Sector'] = "";
         $arraySiembras[0]['Cultivo'] = "";
         $arraySiembras[0]['Variedad'] = "";
         $arraySiembras[0]['Tipo de siembra'] = "";
         $arraySiembras[0]['Temporada'] = "";
         $arraySiembras[0]['Fecha de siembra'] = "";
         $arraySiembras[0]['Status'] = "";
         $arraySiembras[0]['Fecha de terminación'] = "";
         $arraySiembras[0]['Comentario'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $siembras = $sector->siembras()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($siembras as $siembra) {
                 $cultivo = cultivo::find($siembra->id_cultivo);
                 $arraySiembras[$i]['Sector'] = $sector->nombre;
                 if ($cultivo != null) {
                     $arraySiembras[$i]['Cultivo'] = $cultivo->nombre;
                 } else {
                     $arraySiembras[$i]['Cultivo'] = "";
                 }
                 $arraySiembras[$i]['Variedad'] = $siembra->variedad;
                 $arraySiembras[$i]['Tipo de siembra'] = $siembra->tipo;
                 $arraySiembras[$i]['Temporada'] = $siembra->temporada;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fecha);
                 $siembra->fecha = $fecha->format('d/m/Y');
                 $arraySiembras[$i]['Fecha de siembra'] = $siembra->fecha;
                 $arraySiembras[$i]['Status'] = $siembra->status;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fechaTerminacion);
                 $siembra->fechaTerminacion = $fecha->format('d/m/Y');
                 $arraySiembras[$i]['Fecha de terminación'] = $siembra->fechaTerminacion;
                 $arraySiembras[$i]['Comentario'] = $siembra->comentario;
                 $i++;
             }
         }
     }
     //////////////////////////////////////Fertilizaciones///////////////////////////////////////////////////
     if ($filtros['fertilizaciones']) {
         $arrayFertilizaciones[0]['Sector'] = "";
         $arrayFertilizaciones[0]['Siembra'] = "";
         $arrayFertilizaciones[0]['Tipo'] = "";
         $arrayFertilizaciones[0]['Fuente'] = "";
         $arrayFertilizaciones[0]['Cantidad'] = "";
         $arrayFertilizaciones[0]['Programa NPK'] = "";
         $arrayFertilizaciones[0]['Fecha'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $fertilizaciones = $sector->fertilizaciones()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($fertilizaciones as $fertilizacion) {
                 $siembra = siembraSector::find($fertilizacion->id_siembra);
                 $arrayFertilizaciones[$i]['Sector'] = $sector->nombre;
                 if ($siembra != null) {
                     $cultivo = cultivo::find($siembra->id_cultivo);
                     $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fecha);
                     $siembra->fecha = $fecha->format('d/m/Y');
                     if ($cultivo != null) {
                         $arrayFertilizaciones[$i]['Siembra'] = $cultivo->nombre . ' ' . $siembra->variedad . ' ' . $siembra->fecha;
                     } else {
                         $arrayFertilizaciones[$i]['Siembra'] = $siembra->variedad . ' ' . $siembra->fecha;
                     }
                 } else {
                     $arrayFertilizaciones[$i]['Siembra'] = "";
                 }
                 $arrayFertilizaciones[$i]['Tipo'] = $fertilizacion->tipo;
                 $arrayFertilizaciones[$i]['Fuente'] = $fertilizacion->fuente;
                 $arrayFertilizaciones[$i]['Cantidad'] = $fertilizacion->cantidad;
                 $arrayFertilizaciones[$i]['Programa NPK'] = $fertilizacion->programaNPK;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $fertilizacion->fecha);
                 $fertilizacion->fecha = $fecha->format('d/m/Y');
                 $arrayFertilizaciones[$i]['Fecha'] = $fertilizacion->fecha;
                 $i++;
             }
         }
     }
     //////////////////////////////////////Riegos///////////////////////////////////////////////////
     if ($filtros['riegos']) {
         $arrayRiegos[0]['Sector'] = "";
         $arrayRiegos[0]['Siembra'] = "";
         $arrayRiegos[0]['Tiempo'] = "";
         $arrayRiegos[0]['Distancia entre líneas'] = "";
         $arrayRiegos[0]['Litros/Hectárea'] = "";
         $arrayRiegos[0]['Lámina'] = "";
         $arrayRiegos[0]['Fecha'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $riegos = $sector->riegos()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($riegos as $riego) {
                 $siembra = siembraSector::find($riego->id_siembra);
                 $arrayRiegos[$i]['Sector'] = $sector->nombre;
                 if ($siembra != null) {
                     $cultivo = cultivo::find($siembra->id_cultivo);
                     $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fecha);
                     $siembra->fecha = $fecha->format('d/m/Y');
                     if ($cultivo != null) {
                         $arrayRiegos[$i]['Siembra'] = $cultivo->nombre . ' ' . $siembra->variedad . ' ' . $siembra->fecha;
                     } else {
                         $arrayRiegos[$i]['Siembra'] = $siembra->variedad . ' ' . $siembra->fecha;
                     }
                 } else {
                     $arrayRiegos[$i]['Siembra'] = "";
                 }
                 $arrayRiegos[$i]['Tiempo'] = $riego->tiempo;
                 $arrayRiegos[$i]['Distancia entre líneas'] = $riego->distanciaLineas;
                 $arrayRiegos[$i]['Litros/Hectárea'] = $riego->litrosHectarea;
                 $arrayRiegos[$i]['Lámina'] = $riego->lamina;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $riego->fecha);
                 $riego->fecha = $fecha->format('d/m/Y');
                 $arrayRiegos[$i]['Fecha'] = $riego->fecha;
                 $i++;
             }
         }
     }
     //////////////////////////////////////Mantenimiento///////////////////////////////////////////////////
     if ($filtros['mantenimientos']) {
         $arrayMantenimientos[0]['Sector'] = "";
         $arrayMantenimientos[0]['Siembra'] = "";
         $arrayMantenimientos[0]['Actividad'] = "";
         $arrayMantenimientos[0]['Tipo de aplicación'] = "";
         $arrayMantenimientos[0]['Producto'] = "";
         $arrayMantenimientos[0]['Cantidad'] = "";
         $arrayMantenimientos[0]['Fecha'] = "";
         $arrayMantenimientos[0]['Comentario'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $mantenimientos = $sector->mantenimientos()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($mantenimientos as $mantenimiento) {
                 $siembra = siembraSector::find($mantenimiento->id_siembra);
                 $arrayMantenimientos[$i]['Sector'] = $sector->nombre;
                 if ($siembra != null) {
                     $cultivo = cultivo::find($siembra->id_cultivo);
                     $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fecha);
                     $siembra->fecha = $fecha->format('d/m/Y');
                     if ($cultivo != null) {
                         $arrayMantenimientos[$i]['Siembra'] = $cultivo->nombre . ' ' . $siembra->variedad . ' ' . $siembra->fecha;
                     } else {
                         $arrayMantenimientos[$i]['Siembra'] = $siembra->variedad . ' ' . $siembra->fecha;
                     }
                 } else {
                     $arrayMantenimientos[$i]['Siembra'] = "";
                 }
                 $arrayMantenimientos[$i]['Actividad'] = $mantenimiento->actividad;
                 $arrayMantenimientos[$i]['Tipo de aplicación'] = $mantenimiento->tipoAplicacion;
                 $arrayMantenimientos[$i]['Producto'] = $mantenimiento->producto;
                 $arrayMantenimientos[$i]['Cantidad'] = $mantenimiento->cantidad;
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $mantenimiento->fecha);
                 $mantenimiento->fecha = $fecha->format('d/m/Y');
                 $arrayMantenimientos[$i]['Fecha'] = $mantenimiento->fecha;
                 $arrayMantenimientos[$i]['Comentario'] = $mantenimiento->comentario;
                 $i++;
             }
         }
     }
     ///////////////////////////////Cosecha////////////////////////////////////////////////////
     if ($filtros['cosechas']) {
         $arrayCosechas[0]['Sector'] = "";
         $arrayCosechas[0]['Siembra'] = "";
         $arrayCosechas[0]['Fecha'] = "";
         $arrayCosechas[0]['Descripción'] = "";
         $i = 0;
         foreach ($sectores as $sector) {
             $cosechas = $sector->cosechas()->whereBetween('fecha', array($fechaInf, $fechaSup))->orderBy('fecha', 'asc')->get();
             foreach ($cosechas as $cosecha) {
                 $siembra = siembraSector::find($cosecha->id_siembra);
                 $arrayCosechas[$i]['Sector'] = $sector->nombre;
                 if ($siembra != null) {
                     $cultivo = cultivo::find($siembra->id_cultivo);
                     $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $siembra->fecha);
                     $siembra->fecha = $fecha->format('d/m/Y');
                     if ($cultivo != null) {
                         $arrayCosechas[$i]['Siembra'] = $cultivo->nombre . ' ' . $siembra->variedad . ' ' . $siembra->fecha;
                     } else {
                         $arrayCosechas[$i]['Siembra'] = $siembra->variedad . ' ' . $siembra->fecha;
                     }
                 } else {
                     $arrayCosechas[$i]['Siembra'] = "";
                 }
                 $fecha = Carbon::createFromFormat('Y-m-d H:i:s', $cosecha->fecha);
                 $cosecha->fecha = $fecha->format('d/m/Y');
                 $arrayCosechas[$i]['Fecha'] = $cosecha->fecha;
                 $arrayCosechas[$i]['Descripción'] = $cosecha->descripcion;
                 $i++;
             }
         }
     }
     /*
      * Almacena cada resultado en un array, cada fila de este nuevo array tiene lo siguiente:
      * Posicion [x][0] los resultados de busqueda de ese filtro
      * Posicion [x][1] el titulo de esa busqueda, dicho titulo se usara para imprimirse como titulo de la hoja de excel
      */
     $arrays[0][0] = $arrayPreparaciones;
     $arrays[0][1] = "Preparaciones";
     $arrays[1][0] = $arraySiembras;
     $arrays[1][1] = "Siembras";
     $arrays[2][0] = $arrayFertilizaciones;
     $arrays[2][1] = "Fertilizaciones";
     $arrays[3][0] = $arrayRiegos;
     $arrays[3][1] = "Riegos";
     $arrays[4][0] = $arrayMantenimientos;
     $arrays[4][1] = "Mantenimientos";
     $arrays[5][0] = $arrayCosechas;
     $arrays[5][1] = "Cosechas";
     $arrays[6][0] = null;
     $arrays[6][1]['fechaInf'] = $request->fechaInicio;
     $arrays[7][0] = null;
     $arrays[7][1]['fechaSup'] = $request->fechaFin;
     $string = str_random(40);
     $request->session()->put($string, $arrays);
     return $string;
     // $this->exportarExcel($request->fechaInicio,$request->fechaFin,$arrays);
 }