Skip to content

Commit

Permalink
Clonar Encuestas de Beneficios
Browse files Browse the repository at this point in the history
  • Loading branch information
elyambay committed Mar 17, 2019
1 parent 35498e0 commit edb59c3
Show file tree
Hide file tree
Showing 24 changed files with 790 additions and 126 deletions.
2 changes: 2 additions & 0 deletions app/Exceptions/Handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Database\QueryException;

class Handler extends ExceptionHandler
{
Expand Down Expand Up @@ -32,6 +33,7 @@ class Handler extends ExceptionHandler
*/
public function report(Exception $exception)
{

parent::report($exception);
}

Expand Down
57 changes: 51 additions & 6 deletions app/Http/Controllers/BeneficiosController.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,12 @@ public function create()
//
}

public function clonePoll($id){
$dbData = beneficios_cabecera_encuesta::find($id);

return view('beneficios.create')->with('dbData', $dbData);
}

/**
* Store a newly created resource in storage.
*
Expand All @@ -52,7 +58,35 @@ public function create()
*/
public function store(Request $request)
{
//
$periodo = $request->periodo;
$id = $request->encuesta_id;
$empresa = $request->empresa_id;
$dbOriginal = beneficios_cabecera_encuesta::find($id);
$dbNuevo = new beneficios_cabecera_encuesta();
$dbNuevo->empresa_id = $empresa;
$dbNuevo->rubro_id = $dbOriginal->rubro_id;
$dbNuevo->sub_rubro_id = $dbOriginal->sub_rubro_id;
$dbNuevo->cantidad_empleados = $dbOriginal->cantidad_empleados;
$dbNuevo->cantidad_sucursales = $dbOriginal->cantidad_sucursales;
$dbNuevo->periodo = $periodo;
$dbNuevo->finalizada = 'N';
$dbNuevo->save();

$nuevoId = $dbNuevo->id;

$oldDetalle = beneficios_respuesta::where('beneficios_cabecera_encuesta_id', $id)->get();

foreach($oldDetalle as $detalle){
$dbDetalle = new beneficios_respuesta();
$dbDetalle->beneficios_cabecera_encuesta_id = $nuevoId;
$dbDetalle->beneficios_pregunta_id = $detalle->beneficios_pregunta_id;
$dbDetalle->beneficios_opcion_id = $detalle->beneficios_opcion_id;
$dbDetalle->abierta = $detalle->abierta;
$dbDetalle->save();
}

return redirect()->route('beneficios_admin.index');

}

/**
Expand Down Expand Up @@ -118,7 +152,7 @@ public function edit($id)
$marca = $dbData->detalleBeneficio->where('beneficios_pregunta_id', 66)->first()->beneficios_opcion_id;

}else{
$marca = 1;
$marca = 1;

}

Expand Down Expand Up @@ -250,14 +284,22 @@ public function report(Request $request){
$dbEmpresa = Auth::user()->empresa;
// Rubro de la empresa
$rubro = $dbEmpresa->rubro_id;
// recuperamos la penultima encuesta
$encuesta = beneficios_cabecera_encuesta::where('empresa_id', $dbEmpresa->id)
->orderBy('id', 'DESC')
->skip(1)
->first();
// recuperamos el item para encontrar la pregunta
$id = $request->item_id;
$item = beneficios_item::find($id);
// recuperamos la pregunta
$pregunta = $item->pregunta;

// Encuestas del rubro
$encuestas = beneficios_cabecera_encuesta::where('rubro_id', $rubro)->pluck('id');
$encuestas = beneficios_cabecera_encuesta::where('rubro_id', $rubro)
->where('periodo', $encuesta->periodo)
->pluck('id');

// Si la pregunta es cerrada verificamos la cantidad de "no aplica" que tiene
if($pregunta->cerrada == 'S'){
if(!$pregunta->beneficios_pregunta_id){
Expand All @@ -268,9 +310,10 @@ public function report(Request $request){

//dd($encuestas, $aplicables);

//dd($aplicables);
$aplicables = $aplicables->reject(function($item){
if(!$item->beneficiosOpcion){
dd($item);
return false;
}
if($item->beneficiosOpcion->opcion_no_aplica){
return $item;
Expand Down Expand Up @@ -305,10 +348,12 @@ public function getChartData(Request $request){
$rubro = $empresa->rubro_id;

// Ultima encuesta de la empresa
$encuesta = beneficios_cabecera_encuesta::where("empresa_id", $empresa->id)->orderBy('id', 'DESC')->first();
$encuesta = beneficios_cabecera_encuesta::where("empresa_id", $empresa->id)->orderBy('id', 'DESC')->skip(1)->first();

// Encuestas del rubro
$encuestas = beneficios_cabecera_encuesta::where('rubro_id', $rubro)->pluck('id');
$encuestas = beneficios_cabecera_encuesta::where('rubro_id', $rubro)
->where('periodo', $encuesta->periodo)
->pluck('id');
// Recuperamos el id de la Pregunta del cuestionario
$id = $request->pregunta;
$pregunta = beneficios_pregunta::find($id);
Expand Down
89 changes: 89 additions & 0 deletions app/Http/Controllers/BeneficiosPeriodosController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\beneficio_cabecera_encuesta;
use App\Rubro;
use App\beneficios_periodo;
use App\Traits\PeriodosBeneficiosTrait;
use Carbon\Carbon;
use flash;
use DB;

class BeneficiosPeriodosController extends Controller
{
use PeriodosBeneficiosTrait;

public function index(){
$dbData = Beneficios_periodo::get();
return view('beneficios_periodos.list')->with('dbData', $dbData);
}

public function create(){
$rubro = Rubro::first()->id;
$periodos = $this->getPeriodos($rubro);
$rubros = $this->getRubros();
return view('beneficios_periodos.create')->with('periodos', $periodos)
->with('rubros', $rubros);
}

public function store(Request $request){
$dbData = new Beneficios_periodo($request->all());
$dbData->activo = 0;
$dbData->save();
return redirect()->route('periodos_activos.index');
}

public function show($id)
{
//
}

public function edit($id){
$dbData = Beneficios_periodo::find($id);
$rubro = Rubro::find($dbData->rubro_id);
$periodos = $this->getPeriodos($rubro->id);
$rubros = $this->getRubros();
//dd($periodos, $dbData);
return view('beneficios_periodos.edit')->with('dbData', $dbData)
->with('periodos', $periodos)
->with('rubros', $rubros);
}

public function update(Request $request, $id){

if($request->activo){
$activo = 1;
$beneficios_periodos = Beneficios_periodo::where('rubro_id', $request->rubro_id)->get();
foreach($beneficios_periodos as $ficha){
$ficha->activo = 0;
$ficha->save();
}
}else{
$activo = 0;
}
$dbData = Beneficios_periodo::find($id);
$dbData->fill($request->all());
$dbData->activo = $activo;
$dbData->save();
return redirect()->route('periodos_activos.index');
}

public function destroy($id){
$dbData = Cargo::find($id);
$dbData->delete();

return redirect()->route('cargos.index');
}

public function getDetalle(Request $request){
$cargo = Cargo::find($request->id);
return $cargo->detalle;
}

public function getPeriodosAjax(Request $request){
$periodos = $this->getPeriodos($request->rubro_id);
return $periodos;
}
}
34 changes: 33 additions & 1 deletion app/Http/Controllers/EmpresasController.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
use App\Sub_rubro;
use Auth;
use flash;
use Exception;
use DB;

class EmpresasController extends Controller
{
Expand Down Expand Up @@ -115,6 +117,36 @@ public function update(Request $request, $id)
*/
public function destroy($id)
{
//
$dbData = Empresa::find($id);
DB::beginTransaction();
try{
$dbData->delete();
DB::commit();
flash::elsoftMessage(2011, true);
}catch(Exception $exception){
DB::rollback();
if ($exception instanceof \Illuminate\Database\QueryException) {
switch ($exception->errorInfo[1]) {
case 1048:
Flash::elsoftMessage(4001, true);
break;
case 1062:
Flash::elsoftMessage(4002, true);
break;
case 1451:
Flash::elsoftMessage(4003, true);
default:
Flash::elsoftMessage(4000, true);
break;
}
}else{
Flash::elsoftMessage(3012, true);
}
return redirect()->back();
}

return redirect()->route('empresas.index');
}


}
40 changes: 31 additions & 9 deletions app/Http/Controllers/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,32 @@ public function __construct()
*/
public function index()
{
if(Auth::user()->is_admin){
$user = Auth::user();

if($user->id == 176 ){
$ficha = Ficha_dato::find(2);
$dbEmpresa = $user->empresa;
session()->put('periodo', $ficha->periodo);
$dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id)
->where('periodo', $ficha->periodo)
->first();

$dbEncuestas = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id)
->orderBy('id', 'DESC')
->get();
$dbEncuestaAnt = $dbEncuestas->get(1);

$club = $this->club($dbEmpresa->rubro_id);
return view('clientes.home')->with('dbEmpresa', $dbEmpresa)
->with('club', $club)
->with('dbEncuesta', $dbEncuesta)
->with('dbEncuestaAnt' , $dbEncuestaAnt);
}
if($user->is_admin){
return view('home');
}else{
if(Auth::user()->is_benefit){
$dbEmpresa = Auth::user()->empresa;
if($user->is_benefit){
$dbEmpresa = $user->empresa;
$dbEncuestas = beneficios_cabecera_encuesta::where('empresa_id', $dbEmpresa->id)->orderBy('id', 'DESC')->get();
if($dbEncuestas->count() > 0){
$dbEncuesta = $dbEncuestas->first();
Expand All @@ -45,8 +66,9 @@ public function index()
->with('dbEmpresa', $dbEmpresa);

}else{
$dbEmpresa = Auth::user()->empresa;
$dbEmpresa = $user->empresa;
$ficha = Ficha_dato::where('rubro_id', $dbEmpresa->rubro_id)->activa()->first();

if($ficha){
$dbEncuesta = Cabecera_encuesta::where('empresa_id', $dbEmpresa->id)
->where('periodo', $ficha->periodo)
Expand All @@ -61,12 +83,12 @@ public function index()


$dbEncuestaAnt = $dbEncuestas->get(1);
//dd($dbEncuesta, $dbEncuestaAnt);
//dd($dbEmpresa->rubro_id);
$club = $this->club($dbEmpresa->rubro_id);
return view('clientes.home')->with('dbEmpresa', $dbEmpresa)
->with('club', $club)
->with('dbEncuesta', $dbEncuesta)
->with('dbEncuestaAnt' , $dbEncuestaAnt);
return view('clientes.home')->with('dbEmpresa', $dbEmpresa)
->with('club', $club)
->with('dbEncuesta', $dbEncuesta)
->with('dbEncuestaAnt' , $dbEncuestaAnt);

}
}
Expand Down
Loading

0 comments on commit edb59c3

Please sign in to comment.