public function data($mes, $anio, $legajos, $conceptos)
 {
     if ($legajos == 'todos') {
         if ($conceptos == 'todos') {
             $conceptosVariables = ConceptoVariable::with('Concepto')->with('Empleado')->DelPeriodo($mes, $anio)->get(array("id", "concepto_id", "employees_id", "importe", "cantidad", "mes", "anio"));
         } else {
             $conceptosVariables = ConceptoVariable::with('Concepto')->with('Empleado')->DelPeriodo($mes, $anio)->DelConcepto($conceptos)->get(array("id", "concepto_id", "employees_id", "importe", "cantidad", "mes", "anio"));
         }
     } else {
         if ($conceptos == 'todos') {
             $conceptosVariables = ConceptoVariable::with('Concepto')->with('Empleado')->DelPeriodo($mes, $anio)->DelLegajo($legajos)->get(array("id", "concepto_id", "employees_id", "importe", "cantidad", "mes", "anio"));
         } else {
             $conceptosVariables = ConceptoVariable::with('Concepto')->with('Empleado')->DelPeriodo($mes, $anio)->DelLegajo($legajos)->DelConcepto($conceptos)->get(array("id", "concepto_id", "employees_id", "importe", "cantidad", "mes", "anio"));
         }
     }
     //return $conceptos = Concepto::with('EsVariableDe')->where('esfijo', '!=', 'S')
     //    ->where('anio',$year)->get();
     return Datatables::of($conceptosVariables)->add_column('actions', '
         				<div class="btn-group" align="center">
                              <a class="btn btn-primary btn-xs" type="button" data-toggle="modal"
                                id="btnUpdateVariable" data-target="#confirmUpdateConceptoVariable"
                                data-mes="{{$mes}}" data-anio="{{$anio}}" data-concepto_id="{{$concepto_id}}"
                               data-employees_id="{{$employees_id}}"  data-importe="{{$importe}}" data-cantidad="{{$cantidad}}"
                                data-id="{{{ URL::to(\'conceptovariable/\' . $id   ) }}}">
                                 <i class="fa fa-pencil" aria-hidden="true"></i>Editar
                             </a>
                         <a class="btn btn-xs btn-danger" type="button" data-toggle="modal" data-target="#confirmDeletegr"  data-id="{{{ URL::to(\'conceptovariable/\' .$id . \'/delete\' ) }}}" data-title="Delete Type" data-message="Are you sure to delete this Option ?" >
                         <i class="fa fa-trash-o" aria-hidden="true"></i>Delete</a>
                         </div>
                     	')->make(true);
 }
 public function search($input)
 {
     $query = ConceptoVariable::query();
     $columns = Schema::getColumnListing('conceptovariable');
     $attributes = array();
     foreach ($columns as $attribute) {
         if (isset($input[$attribute]) and !empty($input[$attribute])) {
             $query->where($attribute, $input[$attribute]);
             $attributes[$attribute] = $input[$attribute];
         } else {
             $attributes[$attribute] = null;
         }
     }
     return [$query->get(), $attributes];
 }
 /**
  * @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);
 }