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); }
/** * @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); }