public function create_alumno() { $commond = new Common_functions(); $parametros = array('id_persona' => Input::get('id_persona'), 'idbeca' => Input::get('idbeca'), 'idnivel' => Input::get('idnivel'), 'periodo' => Input::get('periodo'), 'status' => 1); $reglas = array('id_persona' => 'required|array', 'idbeca' => 'required|numeric', 'idnivel' => 'required|integer', 'periodo' => 'required|integer', 'status' => 'required|integer'); $validator = Validator::make($parametros, $reglas); if (!$validator->fails()) { $array_insert = $parametros; unset($array_insert['id_persona']); $data_todos = $array_insert; unset($data_todos['status']); foreach ($parametros['id_persona'] as $key => $value) { $array_insert['id_persona'] = $value; // $array_insert['created_at'] = date('Y-m-d H:i:s'); // $array_insert['updated_at'] = date('Y-m-d H:i:s'); $beca = Becas::AlumnoBeca_Persona_Periodo(array('id_persona' => $value, 'periodo' => $parametros['periodo'])); // Consulta beca if (!$beca) { Becas::create_beca_alumno($array_insert); } } $personasBeca = Becas::obtenerAlumnosBecas($data_todos); $res['data'] = $commond->obtener_alumno_idPersona($personasBeca); $commond->actualiza_status_adeudos($parametros['id_persona'], $parametros['periodo']); $respuesta = json_encode(array('error' => false, 'mensaje' => 'Nuevo registro', 'respuesta' => $res)); } else { $respuesta = json_encode(array('error' => true, 'mensaje' => 'No hay parametros o estan mal.', 'respuesta' => null)); } $final_response = Response::make($respuesta, 200); $final_response->header('Content-Type', "application/json; charset=utf-8"); return $final_response; }
public static function obtener_adeudos_alumno($data) { $commond = new Common_functions(); // Actualiza el status_adeudo si tiene beca del 100% $commond->actualiza_status_adeudos($data['id_persona'], $data['periodo']); #var_dump($data);die(); if (isset($data['id'])) { $query = Adeudos::join('sub_conceptos as sc', 'sc.id', '=', 'adeudos.sub_concepto_id')->orderBy('locker_manager', 'desc')->orderBy('fecha_limite', 'asc')->where("adeudos.id", "=", $data['id'])->select('adeudos.*', DB::raw("period_diff(date_format(now(), '%Y%m'), date_format(`fecha_limite`, '%Y%m')) as meses_retraso"), 'adeudos.aplica_beca', 'sc.sub_concepto')->get(); // Se obtienen los adeudos de una persona en el periodo solicitado $now = strtotime($data['fecha_pago']); // Se obtiene la fecha actual } else { $query = Adeudos::join('sub_conceptos as sc', 'sc.id', '=', 'adeudos.sub_concepto_id')->orderBy('locker_manager', 'desc')->orderBy('fecha_limite', 'asc')->where("adeudos.id_persona", "=", $data['id_persona'])->where("adeudos.periodo", "=", $data['periodo'])->select('adeudos.*', DB::raw("period_diff(date_format(now(), '%Y%m'), date_format(`fecha_limite`, '%Y%m')) as meses_retraso"), 'adeudos.aplica_beca', 'sc.sub_concepto')->get(); // Se obtienen los adeudos de una persona en el periodo solicitado $now = strtotime('now'); // Se obtiene la fecha actual } $tiene_beca = Becas::AlumnoBeca_Persona_Periodo($data); // Consulta beca $daynow = date('d', $now); // Dia actual $sub_cont = array(); // Contador de adeudos $lock = false; foreach ($query as $key => $adeudo) { // Se genera la informacion para el Edo. de cuenta del alumno $query[$key]['tipos_pago'] = Adeudos_tipopago::where('adeudos_id', '=', $adeudo['id'])->get(); $query[$key]['importe_inicial'] = $query[$key]['importe']; if (isset($sub_cont[$adeudo['sub_concepto_id']])) { $sub_cont[$adeudo['sub_concepto_id']] += 1; } else { $sub_cont[$adeudo['sub_concepto_id']] = 0; } $query[$key]['contador'] = $sub_cont[$adeudo['sub_concepto_id']]; $tiene_desceunto = Descuentos::obtenerDescuentoPorAdeudo($adeudo['id']); // Limitando a solo un descuento por adeudo $descuentos_limitado = array(); if (isset($tiene_desceunto[0])) { $descuentos_limitado[0] = $tiene_desceunto[0]; } $fecha_limite = strtotime($adeudo['fecha_limite']); $day = date('d', $fecha_limite); $descuento = 0; $descuento_recargo = 0; $descuento_id = null; $descuento_officio = null; foreach ($descuentos_limitado as $key_d => $descuentodata) { $descuento_tmp = $commond->calcular_importe_por_tipo($adeudo['importe'], $descuentodata['importe'], $descuentodata['tipo_importe_id']); $descuento_recargo_temp = $commond->calcular_importe_por_tipo($adeudo['importe'], $descuentodata['importe_recargo'], $descuentodata['tipo_importe_id']); $query[$key]['tiene_desceunto'] = 1; $descuento_recargo = $descuento_recargo + $descuento_recargo_temp; $descuento = $descuento + $descuento_tmp; $descuento_id = $descuentodata['id']; $descuento_officio = $descuentodata['no_officio']; } $query[$key]['descuento_id'] = $descuento_id; $query[$key]['descuento'] = $descuento; $query[$key]['descuento_recargo'] = $descuento_recargo; $query[$key]['descuento_officio'] = $descuento_officio; if (!$tiene_beca) { $query[$key]['beca'] = 'N/A'; } if ($adeudo['status_adeudo'] == 0) { if ($daynow > $day) { $query[$key]['meses_retraso'] = $adeudo['meses_retraso'] + 1; } if ($query[$key]['meses_retraso'] <= 0) { $query[$key]['recargo_total'] = 0; } if ($query[$key]['meses_retraso'] > 0) { if ($adeudo['locker_manager'] == 1) { $lock = true; } $query[$key]['beca'] = 'N/A'; if ($tiene_beca) { $databeca = array("id_persona" => $data['id_persona'], "periodo" => $data['periodo'], "status" => 0); Becas::update_status_beca_alumno($databeca); $tiene_beca = FALSE; } if ($adeudo['aplica_recargo'] == 1) { $recargo = $commond->calcular_importe_por_tipo($adeudo['importe'], $adeudo['recargo'], $adeudo['tipo_recargo']); } else { $recargo = 0; } if ($adeudo['recargo_acumulado'] == 1) { $recargo *= $query[$key]['meses_retraso']; } $query[$key]['recargo_no_descuento'] = $recargo; $query[$key]['recargo_total'] = $recargo - $descuento_recargo; #$query[$key]['recargo_total'] = $query[$key]['recargo_total'] $query[$key]['importe'] += $query[$key]['recargo_total'] - $descuento; } elseif ($tiene_beca && $adeudo['aplica_beca'] == 1) { $beca = $commond->calcular_importe_por_tipo($adeudo['importe'], $tiene_beca['importe'], $tiene_beca['tipo_importe_id']); $query[$key]['importe'] -= $beca; $query[$key]['importe'] -= $descuento; $query[$key]['beca'] = $beca; } if ($lock == true) { $query[$key]['lock'] = 1; } else { $query[$key]['lock'] = 0; } } else { $pago = strtotime($adeudo['fecha_pago']); $fecha_pago = date('d', $pago); $query[$key]['lock'] = 0; if ($fecha_pago > $day) { $query[$key]['meses_retraso'] = $adeudo['meses_retraso'] + 1; } if ($query[$key]['meses_retraso'] <= 0) { $query[$key]['recargo_total'] = 0; } if ($query[$key]['meses_retraso'] > 0) { $query[$key]['beca'] = 'N/A'; if ($adeudo['aplica_recargo'] == 1) { $recargo = $commond->calcular_importe_por_tipo($adeudo['importe'], $adeudo['recargo'], $adeudo['tipo_recargo']); } else { $recargo = 0; } $query[$key]['recargo_no_descuento'] = null; if ($adeudo['recargo_acumulado'] == 1) { $recargo *= $query[$key]['meses_retraso']; } $query[$key]['recargo_total'] = $adeudo['recargo_pago']; if (intval($adeudo['beca_pago']) == 0) { $query[$key]['beca'] = 'N/A'; } else { $query[$key]['beca'] = $adeudo['beca_pago']; } $query[$key]['importe'] = $adeudo['importe_pago']; } elseif ($tiene_beca && $adeudo['aplica_beca'] == 1) { $beca = $commond->calcular_importe_por_tipo($adeudo['importe'], $tiene_beca['importe'], $tiene_beca['tipo_importe_id']); #$query[$key]['importe']-=$beca; $query[$key]['beca'] = $adeudo['beca_pago']; } } } return $query; }