From 8c7ca541e263fb6ae5d6c46cf82eda5761434b8c Mon Sep 17 00:00:00 2001 From: elyambay Date: Wed, 7 Nov 2018 17:18:19 -0300 Subject: [PATCH] Seleccionar ficha activa para encuestas --- app/Ficha_dato.php | 6 ++- app/Http/Controllers/FichasController.php | 19 ++++++++-- app/Http/Controllers/ReporteController.php | 38 ++++++++++++++----- resources/views/fichas/edit.blade.php | 30 +++++++++++---- .../views/includes/translation.blade.php | 2 +- resources/views/layout.blade.php | 5 ++- resources/views/niveles/create.blade.php | 2 +- resources/views/report/layout.blade.php | 5 ++- 8 files changed, 79 insertions(+), 28 deletions(-) diff --git a/app/Ficha_dato.php b/app/Ficha_dato.php index f497e5c..2a24866 100644 --- a/app/Ficha_dato.php +++ b/app/Ficha_dato.php @@ -8,9 +8,13 @@ class Ficha_dato extends Model { protected $table = 'ficha_datos'; - protected $fillable = ['rubro_id', 'periodo', 'tipo_cambio', 'cargos_emergentes']; + protected $fillable = ['rubro_id', 'periodo', 'tipo_cambio', 'cargos_emergentes', 'activo']; public function rubro(){ return $this->belongsTo('App\Rubro'); } + + public function scopeActiva($query){ + return $query->where('activo', 1); + } } diff --git a/app/Http/Controllers/FichasController.php b/app/Http/Controllers/FichasController.php index 018feed..f056790 100644 --- a/app/Http/Controllers/FichasController.php +++ b/app/Http/Controllers/FichasController.php @@ -29,7 +29,7 @@ public function create(){ public function store(Request $request){ $dbData = new Ficha_dato($request->all()); - + $dbData->activo = 0; $dbData->save(); return redirect()->route('admin_ficha.index'); } @@ -44,15 +44,26 @@ public function edit($id){ $rubro = Rubro::get()->first()->id; $periodos = $this->getPeriodos($rubro); $rubros = $this->getRubros(); - return view('fichas.create')->with('dbData', $dbData) + return view('fichas.edit')->with('dbData', $dbData) ->with('periodos', $periodos) ->with('rubros', $rubros); } public function update(Request $request, $id){ - $dbData = new Ficha_dato($request->all()); - + if($request->activo){ + $activo = 1; + $fichas = Ficha_dato::where('rubro_id', $request->rubro_id)->get(); + foreach($fichas as $ficha){ + $ficha->activo = 0; + $ficha->save(); + } + }else{ + $activo = 0; + } + $dbData = Ficha_dato::find($id); + $dbData->fill($request->all()); + $dbData->activo = $activo; $dbData->save(); return redirect()->route('admin_ficha.index'); } diff --git a/app/Http/Controllers/ReporteController.php b/app/Http/Controllers/ReporteController.php index 30dbfb9..5e9a8fa 100644 --- a/app/Http/Controllers/ReporteController.php +++ b/app/Http/Controllers/ReporteController.php @@ -168,11 +168,18 @@ public function ficha($id){ $per = Session::get('periodo'); $dbEncuesta = Cabecera_encuesta::where('empresa_id', $id)->whereRaw("periodo = '". $per."'")->first(); }else{ - $dbEncuesta = Cabecera_encuesta::where('empresa_id', $id)->whereRaw('id = (select max(id) from cabecera_encuestas where empresa_id = '. $id.')')->first(); + $dbFicha = Ficha_dato::activa()->where('rubro_id', $rubro)->first(); + if($dbFicha){ + $periodo = $dbFicha->periodo; + $dbEncuesta = Cabecera_encuesta::where('empresa_id', $id)->where('periodo', $periodo)->first(); + }else{ + $dbEncuesta = Cabecera_encuesta::where('empresa_id', $id)->whereRaw('id = (select max(id) from cabecera_encuestas where empresa_id = '. $id.')')->first(); + } + } $cargos = Encuestas_cargo::where('cabecera_encuesta_id', $dbEncuesta->id)->get()->count(); $periodo = $dbEncuesta->periodo; - $dbFicha = Ficha_dato::where('rubro_id', $rubro)->where('periodo', $periodo)->first(); + if($dbFicha){ $cargos = $dbFicha->cargos_emergentes; $tipoCambio = $dbFicha = $dbFicha->tipo_cambio; @@ -2522,16 +2529,29 @@ private function cargoReportAll(Request $request, $tipo){ ->first(); //dd($dbEncuesta, $request->periodo); }else{ - if($dbEmpresa->rubro_id == '1'){ - $per = '06/2018'; - $dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id) - ->whereRaw("periodo = '". $per."'") - ->first(); + $ficha = Ficha_dato::activa()->where('rubro_id', $dbEmpresa->rubro_id)->first(); + if($ficha){ + $per = $ficha->periodo; }else{ + $per = null; + } + if($per){ $dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id) - ->whereRaw('id = (select max(id) from cabecera_encuestas where empresa_id = '. $dbEmpresa->id.')') - ->first(); + ->where("periodo",$per) + ->first(); + }else{ + if($dbEmpresa->rubro_id == '1'){ + $per = '06/2018'; + $dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id) + ->whereRaw("periodo = '". $per."'") + ->first(); + }else{ + $dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id) + ->whereRaw('id = (select max(id) from cabecera_encuestas where empresa_id = '. $dbEmpresa->id.')') + ->first(); + } } + } diff --git a/resources/views/fichas/edit.blade.php b/resources/views/fichas/edit.blade.php index c522c83..9f2902a 100644 --- a/resources/views/fichas/edit.blade.php +++ b/resources/views/fichas/edit.blade.php @@ -6,7 +6,7 @@

Editar Cargo

-
+
+
-
+
- + +
+
+
{{ method_field('PUT') }} - +
+ +
+
@@ -58,7 +71,8 @@ @push('scripts') - + + - + +