From 8b8398077df7971dd1c5a6f74c6e4f334a44e984 Mon Sep 17 00:00:00 2001 From: elyambay Date: Wed, 4 Dec 2019 21:38:27 -0300 Subject: [PATCH] Club Industrial --- app/Http/Controllers/EncuestasController.php | 82 +++++++++++++++++++ app/Http/Controllers/HomeController.php | 6 +- app/Http/Controllers/ReporteController.php | 3 +- app/Traits/ClubsTrait.php | 4 + app/Traits/ReportTrait.php | 15 +++- resources/views/clientes/home.blade.php | 4 +- .../encuestas/clonar_industrial.blade.php | 59 +++++++++++++ resources/views/layout.blade.php | 3 + routes/web.php | 4 + 9 files changed, 171 insertions(+), 9 deletions(-) create mode 100644 resources/views/encuestas/clonar_industrial.blade.php diff --git a/app/Http/Controllers/EncuestasController.php b/app/Http/Controllers/EncuestasController.php index 48a7ab4..38580fe 100644 --- a/app/Http/Controllers/EncuestasController.php +++ b/app/Http/Controllers/EncuestasController.php @@ -387,4 +387,86 @@ public function clonarPuente(Request $request){ return redirect()->route('clonar.puente')->with('toast', $toast); } + + public function cloneIndustrial() + { + return view('encuestas.clonar_industrial')->with('toast', false); + } + + public function clonarIndustrial(Request $request){ + + ini_set('max_execution_time', 0); + ini_set('memory_limit', '500M'); + $periodoOriginal = $request->periodo_original; + $periodoNuevo = $request->periodo_nuevo; + $empresas = [43, 110, 50, 106, 49, 48, 44, 32, 35, 125, 162, 51]; + + $encuestas = Cabecera_encuesta::where('periodo', $periodoOriginal) + ->where('rubro_id', 2) + ->whereIn('empresa_id', $empresas) + ->get(); + + foreach($encuestas as $encuesta){ + $cabecera = $encuesta->replicate(); + $cabecera->rubro_id = 14; + + switch ($cabecera->empresa_id) { + case 43: + $cabecera->empresa_id = 166; + break; + case 110: + $cabecera->empresa_id = 167; + break; + case 50: + $cabecera->empresa_id = 168; + break; + + case 106: + $cabecera->empresa_id = 169; + break; + case 49: + $cabecera->empresa_id = 170; + break; + case 48: + $cabecera->empresa_id = 171; + break; + case 44: + $cabecera->empresa_id = 172; + break; + case 32: + $cabecera->empresa_id = 173; + break; + case 35: + $cabecera->empresa_id = 174; + break; + case 125: + $cabecera->empresa_id = 175; + break; + case 162: + $cabecera->empresa_id = 176; + break; + case 51: + $cabecera->empresa_id = 177; + break; + } + $cabecera->save(); + $encuestaCargo = $encuesta->encuestasCargo; + foreach($encuestaCargo as $cargo){ + $newCargo = $cargo->replicate(); + $newCargo->cabecera_encuesta_id = $cabecera->id; + $newCargo->save(); + $detalle = $cargo->detalleEncuestas; + if($detalle){ + $newDetalle = $detalle->replicate(); + $newDetalle->cabecera_encuesta_id = $cabecera->id; + $newDetalle->encuestas_cargo_id = $newCargo->id; + $newDetalle->save(); + } + } + + } + $toast = true; + + return redirect()->route('clonar.industrial')->with('toast', $toast); + } } diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index ea4a312..237431d 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -99,16 +99,20 @@ public function index() $dbEncuestaOld = $dbEncuestas->get(3); if(!$dbEncuestaOld){ + $dbEncuestas = Cabecera_encuesta::where('empresa_id', 22) ->orderBy('id', 'DESC') ->get(); $dbEncuestaAnt = $dbEncuestas->get(3); + $dbEncuestaOld = $dbEncuestas->get(4); + } }else{ + $dbEncuestaOld = null; } - + //dd($dbEncuestaOld); $club = $this->club($dbEmpresa->rubro_id); return view('clientes.home')->with('dbEmpresa', $dbEmpresa) diff --git a/app/Http/Controllers/ReporteController.php b/app/Http/Controllers/ReporteController.php index 550b318..082b0f8 100644 --- a/app/Http/Controllers/ReporteController.php +++ b/app/Http/Controllers/ReporteController.php @@ -49,7 +49,6 @@ public function show($id) $imagen = "images/ccfc-caratula.PNG"; } - return view('report.home')->with('dbEmpresa', $id) ->with('imagen', $imagen) ->with('club', $club) @@ -270,7 +269,7 @@ public function showCargosClub($id){ $cargos = Cargos_rubro::where('rubro_id', $rubro) ->whereIn('cargo_id', $cargosIds)->get(); - + $cargos = $cargos->map(function($item) use($locale){ if($locale == "es"){ $item['nivel_id'] = $item->cargo->nivel->id; diff --git a/app/Traits/ClubsTrait.php b/app/Traits/ClubsTrait.php index 5c7609b..b6ac9a1 100644 --- a/app/Traits/ClubsTrait.php +++ b/app/Traits/ClubsTrait.php @@ -61,6 +61,10 @@ public function club($rubro, $getImagen = null){ $imagen = "images/caratula-bancos.PNG"; $club = "Club de Empresas de Consumo Masivo"; break; + case 14: + $imagen = "images/caratula-bancos.PNG"; + $club = "Club Industrial Especial"; + break; default: $imagen = "images/caratula-bancos.PNG"; $club = "Club de Bancos"; diff --git a/app/Traits/ReportTrait.php b/app/Traits/ReportTrait.php index b99e066..04b62b9 100644 --- a/app/Traits/ReportTrait.php +++ b/app/Traits/ReportTrait.php @@ -3324,12 +3324,19 @@ public function percentile($percentile, $arr) { } public function getCargosHomologados($rubro, $periodo){ - $empresasId = Empresa::where('rubro_id', $rubro)->pluck('id'); - $encuestasRubro = Cabecera_encuesta::whereIn('empresa_id', $empresasId)->where('periodo', $periodo)->pluck('id'); + $empresasId = Empresa::where('rubro_id', $rubro) + ->pluck('id'); + + $encuestasRubro = Cabecera_encuesta::whereIn('empresa_id', $empresasId) + ->where('periodo', $periodo) + ->get() + ->pluck('id'); + $encuestasCargos = Encuestas_cargo::whereIn('cabecera_encuesta_id', $encuestasRubro) ->whereNotNull('cargo_id') ->where('incluir', 1) ->get(); + $cargosEmpresas = collect(); foreach ($encuestasCargos as $encuestaCargo) { if($encuestaCargo->detalleEncuestas){ @@ -3338,10 +3345,10 @@ public function getCargosHomologados($rubro, $periodo){ } } } - + $groupedCargosEmpresas = $cargosEmpresas->groupBy('cargo'); - // lista de cargos existentes en la encuesta (exlcluyendo los que hay en una sola empresa) + // lista de cargos existentes en la encuesta (excluyendo los que hay en una sola empresa) $cargosIds = $groupedCargosEmpresas->map(function($item, $key){ if($item->groupBy('empresa')->count() > 1){ return $key; diff --git a/resources/views/clientes/home.blade.php b/resources/views/clientes/home.blade.php index 5abb098..7ade196 100644 --- a/resources/views/clientes/home.blade.php +++ b/resources/views/clientes/home.blade.php @@ -87,7 +87,7 @@ {{$dbEncuesta->periodo}} - + @else @@ -118,7 +118,7 @@ {{$dbEncuesta->periodo}} - + @else diff --git a/resources/views/encuestas/clonar_industrial.blade.php b/resources/views/encuestas/clonar_industrial.blade.php new file mode 100644 index 0000000..83c7c2b --- /dev/null +++ b/resources/views/encuestas/clonar_industrial.blade.php @@ -0,0 +1,59 @@ +@extends('layout') +@section('content') +
+
+
+

Clonar Periodo Industrial

+
+
+
+
+
+ + +
+
+ + +
+
+ +
+ +
+
+
+
+
+ @if($toast) +
+ @endif +@stop +@push('scripts') + +@endpush \ No newline at end of file diff --git a/resources/views/layout.blade.php b/resources/views/layout.blade.php index 373b08c..193c047 100644 --- a/resources/views/layout.blade.php +++ b/resources/views/layout.blade.php @@ -191,6 +191,9 @@