public function GenerarLiquidacion($legajos, $anio, $mes, $user_id, $tipo = null)
 {
     DB::transaction(function () use($legajos, $mes, $anio, $user_id, $tipo) {
         if (!is_null($tipo)) {
             Liquidacion::where('mes', $mes)->where('año', $anio)->where('tipo', $tipo)->delete();
         } else {
             Liquidacion::where('mes', $mes)->where('año', $anio)->delete();
         }
         $this->IniciarLiquidacion($mes, $anio, $user_id, $tipo);
         $empleados = Employees::DelLegajo($legajos)->get();
         if ($empleados->isEmpty()) {
             Flash::error('employees not found');
             return redirect(route('employees.index'));
         }
         $reciboDel = Recibo::DelPeriodo($mes, $anio)->DelLegajo($legajos)->DelTipo($tipo)->get();
         if (!$reciboDel->isEmpty()) {
             foreach ($reciboDel as $recibo) {
                 foreach ($recibo->conceptos as $concepto) {
                     ConceptosenRecibos::find($concepto->id)->delete();
                 }
                 Recibo::find($recibo->id)->delete();
             }
         }
         foreach ($empleados as $empleado) {
             $this->liquidar_empleado($mes, $anio, $empleado, $tipo);
         }
         $this->CerrarLiquidacion($legajos, $mes, $anio, $empleados);
     });
 }
 /**
  * Display a listing of the resource.
  *
  * @return \Illuminate\Http\Response
  */
 public function index()
 {
     $user = \Auth::user();
     $userRole = $user->hasRole('user');
     $editorRole = $user->hasRole('editor');
     $adminRole = $user->hasRole('administrator');
     if ($userRole) {
         $access = 'User';
     } elseif ($editorRole) {
         $access = 'Editor';
     } elseif ($adminRole) {
         $access = 'Administrator';
     }
     $today = Carbon::today();
     $año = $today->year;
     // int(2012)
     $mes = $today->month;
     $Activos = Employees::Activos()->count();
     $Bajas = EstadosRevista::BajasDelMes($año, $mes)->count();
     $AltasNuevas = Employees::Activos()->get()->sortBy('Fecha_Ingreso')->forPage(1, 8);
     $Liquidaciones = Liquidacion::where('año', $año)->where('mes', '<=', 12)->whereNull('deleted_at')->orderBy('mes')->get();
     $UltimaLiquidacion = Liquidacion::where('año', $año)->where('mes', '<=', 12)->whereNull('deleted_at')->orderBy('mes', 'desc')->first();
     $AnteUltimaLiquidacion = Liquidacion::where('año', $año)->where('mes', '<=', $UltimaLiquidacion->mes)->whereNull('deleted_at')->orderBy('mes', 'desc')->first();
     $Meses = $Liquidaciones->sortByDesc('mes')->lists('mes');
     $Reten = $Liquidaciones->sortByDesc('mes')->lists('total_retenciones')->toArray();
     $Debes = $Liquidaciones->sortByDesc('mes')->lists('total_debes')->toArray();
     setlocale(LC_TIME, 'Spanish');
     $MesesEsp = [];
     foreach ($Meses as $MesEsp) {
         $MesesEsp = array_prepend($MesesEsp, '"' . Carbon::createFromDate($año, $MesEsp, 1)->formatLocalized('%B') . '"');
     }
     return view('admin.pages.user-home', compact('Activos', 'Bajas', 'AltasNuevas', 'Liquidaciones', 'UltimaLiquidacion', 'AnteUltimaLiquidacion', 'MesesEsp', 'Debes', 'Reten'))->withUser($user)->withAccess($access);
 }