/**
  * Display a listing of the Category.
  *
  * @return Response
  */
 public function index()
 {
     $categories = $this->conceptocategoryRepository->paginate(10);
     // int(2012)
     $conceptosfijos = Concepto::where('esfijo', 'S')->lists('detalle', 'id');
     return view('conceptos.categorias.index', compact('categories', 'conceptosfijos'));
 }
 public function search(Request $request)
 {
     $conceptos = Concepto::where('nombre_concepto', 'like', '%' . $request->nombre . '%')->get();
     return \View::make('Concepto/list_concepto', compact('conceptos'));
 }
 /**
  * @param $mes
  * @param $anio
  * @param $empleado
  */
 public function liquidar_empleado($mes, $anio, $empleado, $tipo)
 {
     //Crea un nuevo recibo
     $recibo = new Recibo();
     //$dias = $this->dias($anio, $mes);
     $dias = 30;
     $recibo->iniciarecibo($mes, $anio, $empleado, $tipo, $this);
     $orden = 0;
     $conceptosenrecibos = collect([]);
     $total_no_porcenta = 0;
     $total_antiguedad = 0;
     if (is_null($tipo) or $tipo == "Normal") {
         $this->actualizar_Antiguedad($mes, $anio, $empleado);
     }
     if ($mes == 13 or $mes == 14) {
         $conceptogeneral = new ConceptoFijo();
         if ($mes == 13) {
             $conceptoSac = Concepto::where('codigo', '296')->first();
         } else {
             $conceptoSac = Concepto::where('codigo', '297')->first();
         }
         $conceptogeneral->concepto_id = $conceptoSac->codigo;
         $conceptogeneral->cantidad = 1;
         $conceptogeneral->concepto->{$conceptoSac};
         $concepto = new ConceptosenRecibos();
         $concepto->inicializa_concepto($recibo->id, $conceptogeneral, $orden);
         $this->liquidar_concepto_fijo($conceptogeneral, $empleado, $recibo, $concepto, $total_antiguedad, $dias);
         $recibo->totales_recibo($concepto);
         $this->agrega_concepto($conceptosenrecibos, $concepto);
         $conceptosFijos = ConceptoFijo::with('Concepto')->DelLegajo($empleado->id)->get();
         $conceptosFijos = $conceptosFijos->filter(function ($item) {
             return $item->Concepto->haberdebe == 'D';
         });
         foreach ($conceptosFijos as $conceptogeneral) {
             $concepto = new ConceptosenRecibos();
             $concepto->inicializa_concepto($recibo->id, $conceptogeneral, $orden);
             $this->liquidar_concepto_fijo($conceptogeneral, $empleado, $recibo, $concepto, $total_antiguedad, $dias);
             $recibo->totales_recibo($concepto);
             $this->agrega_concepto($conceptosenrecibos, $concepto);
         }
     } else {
         $conceptosFijos = ConceptoFijo::with('Concepto')->DelLegajo($empleado->id)->get();
         $conceptosVariables = ConceptoVariable::with('Concepto')->DelPeriodo($mes, $anio)->DelLegajo($empleado->id)->get(array('id', 'concepto_id', 'employees_id', 'importe', 'cantidad'));
         if ($tipo == "antexp") {
             $conceptosFijos = $conceptosFijos->where('Concepto.quefor', 'E');
             $conceptosVariables = $conceptosVariables->where('Concepto.quefor', 'E');
         }
         if (is_null($tipo) or $tipo == "Normal") {
             $conceptosFijos = $conceptosFijos->where('Concepto.quefor', '<>', 'E');
             $conceptosVariables = $conceptosVariables->where('Concepto.quefor', '<>', 'E');
         }
         $conceptoBasicos = $conceptosFijos->where('Concepto.basico', 'S');
         if (!$conceptoBasicos->isEmpty()) {
             $this->liquidar_conceptos($empleado, $conceptoBasicos, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
         $concepto250 = $conceptosVariables->where('Concepto.haberdebe', 'H')->where('Concepto.codigo', 250);
         if (!$concepto250->isEmpty()) {
             $this->liquidar_conceptos($empleado, $concepto250, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
         $conceptoFijosComunes = $conceptosFijos->where('Concepto.basico', 'N')->where('Concepto.haberdebe', 'H')->sortBy('Concepto.codigo');
         if (!$conceptoFijosComunes->isEmpty()) {
             $this->liquidar_conceptos($empleado, $conceptoFijosComunes, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
         $conceptoVariablesC = $conceptosVariables->where('Concepto.haberdebe', 'H')->filter(function ($item) {
             return $item->concepto->codigo != 250;
         })->sortBy('Concepto.codigo');
         if (!$conceptoVariablesC->isEmpty()) {
             $this->liquidar_conceptos($empleado, $conceptoVariablesC, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
         $conceptoDescuentosFijosComunes = $conceptosFijos->where('Concepto.basico', 'N')->where('Concepto.haberdebe', 'D')->sortBy('Concepto.codigo');
         if (!$conceptoDescuentosFijosComunes->isEmpty()) {
             $this->liquidar_conceptos($empleado, $conceptoDescuentosFijosComunes, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
         $conceptoDescuentosVariables = $conceptosVariables->where('Concepto.haberdebe', 'D')->sortBy('Concepto.codigo');
         if (!$conceptoDescuentosVariables->isEmpty()) {
             $this->liquidar_conceptos($empleado, $conceptoDescuentosVariables, $recibo, $dias, $conceptosenrecibos, $orden, $total_antiguedad, $dias);
         }
     }
     $this->guardar_liquidacion($recibo, $conceptosenrecibos);
 }