public static function obtenerDescuentoPorAdeudo($id = null) { $query = Descuentos::join('adeudos', 'adeudos.id', '=', 'descuentos.adeudos_id')->join('sub_conceptos', 'adeudos.sub_concepto_id', '=', 'sub_conceptos.id')->select('descuentos.*'); if (isset($id)) { $query = $query->where('adeudos.id', $id); $res = $query->get(); } else { $res = $query->get(); } return $res; }
public function actionGetDeleteSeleccion() { if (Yii::app()->request->isAjaxRequest) { $model = new Descuentos(); $model2 = new Descuentoslevel1(); $datas = explode(",", $_GET['data']); //print_r($datas); foreach ($datas as $key => $id) { $descuentos = $model->findAll("DescuentosId={$id}"); $descuentoslevel1 = $model2->findAll("DescuentosId={$id}"); echo $descuentos[0]->DescuentosId; echo $descuentoslevel1[0]->DescuentosId; if ($descuentos[0]->DescuentosUso <= 0) { Yii::app()->db->createCommand("DELETE FROM descuentoslevel1 WHERE DescuentosId={$id}")->execute(); Yii::app()->db->createCommand("DELETE FROM descuentos WHERE DescuentosId={$id}")->execute(); } else { $result = Yii::app()->db->createCommand("UPDATE descuentos SET DescuentosFecIni='0000-00-00 00:00:00',DescuentosFecFin='0000-00-00 00:00:00' WHERE DescuentosId={$id}")->execute(); Yii::app()->user->setFlash('error', "Registro elimnado existosamente!!!"); } } } }
public function actionValidarCupon() { if (Yii::app()->request->isAjaxRequest) { $texto = $_GET['texto']; $texto = str_replace(array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç", "Ñ", "ñ", "\\", "¨", "º", "-", "~", "#", "@", "|", "!", "\"", "·", "\$", "%", "&", "/", "(", ")", "?", "'", "¡", "¿", "[", "^", "`", "]", "+", "}", "{", "¨", "´", ">", "<", ";", ",", ":", ".", "_", "=", "*", " "), array("a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C", ""), utf8_decode($texto)); $model = Descuentos::model()->findAll("CuponesCod='{$texto}'", array('limit' => 1)); $validacion = "1"; if (!empty($model)) { $validacion = "0"; } $data = array('validacion' => $validacion, 'texto' => strtoupper($texto)); echo json_encode($data); } }
public static function validarDescuento($boleto) { /* *Esta funcion recibe un boleto listo para vender con numero de evento, funcion, zona, subzona, fila y lugar, ademas de la cantidad de boletos y y el precio *y devuelve a cambio el boleto con precio con descuento y si aplico descuento * boleto=[evento,funcion,zona, subzona, fila, asiento, precio ] */ if ($boleto) { $cupon = Descuentos::model()->findByPk(Yii::app()->session['descuento']['DescuentosId']); $restric = Yii::app()->session['level1']; if ($boleto['EventoId'] == $restric['EventoId']) { // Ha validado que el boleto sea del evento con descuento if ($restric['FuncionesId'] == $boleto['FuncionesId']) { if ($restric['ZonasId'] == $boleto['ZonasId']) { if ($restric['SubzonaId'] == $boleto['SubzonaId']) { if (in_array($boleto['FilasId'], array_keys($restric->arregloFilas))) { if (in_array($boleto['LugaresId'], array_keys($restric->arregloLugares))) { return $cupon['DescuentosExis'] == 0 or $cupon['DescuentosUso'] < $cupon['DescuentosExis']; } elseif ($restric['LugaresId'] > 0) { //return 1;//False; return false; } } elseif ($restric['FilasId'] > 0) { //return 2;//False; return false; } } elseif ($restric['SubzonaId'] > 0) { //return 3;//False; return false; } } elseif ($restric['ZonasId'] > 0) { //return 4;//False; return false; } } elseif ($restric['FuncionesId'] > 0) { //return 22; return False; } return $cupon['DescuentosExis'] == 0 or $cupon['DescuentosUso'] < $cupon['DescuentosExis']; } else { return False; //; } } }
<?php include 'includes/conf.inc.php'; include MODELS_PATH . 'model.Descuentos.php'; include MODELS_PATH . 'model.Tiendas.php'; $descuentos_model = new Descuentos(); $descuentos = $descuentos_model->fetchAll('descuentos'); $tiendas_model = new Tiendas(); ?> <!doctype html> <html lang="es"> <head> <meta charset="UTF-8"> <title><?php echo TITLE; ?> </title> <link rel="stylesheet" href="<?php echo CSS_PATH; ?> styles.css"> <link rel="stylesheet" href="<?php echo CSS_PATH; ?> supersized.css"> <script type="text/javascript" src="<?php echo JS_PATH; ?> modernizr.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
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; }
public function parseAdeudos_addAdeudoInfo($data, $sub_adeudo, $adeudo) { $recargo_total = 0; $descuento = 0; $descuento_recargo = 0; $descuentos = Descuentos::obtenerDescuentoPorAdeudo($sub_adeudo['id']); $descuento_officio = ""; foreach ($descuentos as $key_d => $descuentodata) { $descuento_tmp = $this->calcular_importe_por_tipo($sub_adeudo['importe'], $descuentodata['importe'], $descuentodata['tipo_importe_id']); $descuento_recargo_temp = $this->calcular_importe_por_tipo($sub_adeudo['importe'], $descuentodata['importe_recargo'], $descuentodata['tipo_importe_id']); $descuento_recargo = $descuento_recargo + $descuento_recargo_temp; $descuento = $descuento + $descuento_tmp; $descuento_officio = $descuentodata['no_officio']; } $now = strtotime('now'); // Se obtiene la fecha actual $daynow = date('d', $now); // Dia actual $fecha_limite = strtotime($sub_adeudo['fecha_limite']); $day = date('d', $fecha_limite); if ($daynow > $day) { $sub_adeudo['meses_retraso'] = $sub_adeudo['meses_retraso'] + 1; } //verifica si tiene beca $tiene_beca = Becas::AlumnoBeca_Persona_Periodo(array('id_persona' => $adeudo['id_persona'], 'periodo' => $sub_adeudo['periodo'])); // Consulta beca if ($tiene_beca) { if ($sub_adeudo['aplica_beca'] == 1) { // Verifica si al adeudo le aplica beca //Si aplica beca la calcula, ya que puede ser por pocentaje o importe fijo $beca = $this->calcular_importe_por_tipo($sub_adeudo['importe'], $tiene_beca['importe'], $tiene_beca['tipo_importe_id']); } else { $beca = 0; } } else { $beca = 0; } if ($sub_adeudo['meses_retraso'] <= 0) { // si no se atrazo respeta beca y no genera adeudo $recargo_total = 0; $recargo_total_no_descuento = 0; } if ($sub_adeudo['meses_retraso'] > 0) { // Si se atrazo con un pago genera adeudo y quitara beca if ($sub_adeudo['aplica_recargo'] == 1) { //Si aplica recago lo calcula, ya que puede ser por pocentaje o importe fijo y lo muliplica por No. de meses rerasado $recargo = $this->calcular_importe_por_tipo($sub_adeudo['importe'], $sub_adeudo['recargo'], $sub_adeudo['tipo_recargo']); if ($sub_adeudo['recargo_acumulado'] == 1) { $recargo_total = $recargo * $sub_adeudo['meses_retraso']; } else { $recargo_total = $recargo; } $recargo_total_no_descuento = $recargo_total; $recargo_total = $recargo_total - $descuento_recargo; } else { $recargo_total = 0; } Becas::update_status_beca_alumno(array('id_persona' => $adeudo['id_persona'], 'periodo' => $sub_adeudo['periodo'], 'status' => 0)); // Cancelar Beca en periodo $beca = 0; } $total_adeudo = $sub_adeudo['importe'] + $recargo_total - $descuento - $beca; foreach ($data['periodos'] as $key_p => $periodo) { foreach ($periodo['subconceptos'] as $key_s => $sc) { if (intval($sub_adeudo['periodo']) == intval($periodo['periodo'])) { #echo "<pre>" ;var_dump($sub_adeudo);echo "</pre>";die(); if (intval($sub_adeudo['sub_concepto_id']) == intval($sc['sub_concepto_id'])) { if ($sub_adeudo['status_adeudo'] == 1) { #var_dump(floatval($sub_adeudo['recargo_pago']));die(); $data['periodos'][$key_p]['subconceptos'][$key_s]['adeudo_info'][] = array('clave' => $adeudo['id_persona'], 'matricula' => $adeudo['matricula'], 'nombre' => $adeudo['nom'], 'apellido paterno' => $adeudo['appat'], 'apellido materno' => $adeudo['apmat'], 'fecha_limite' => $sub_adeudo['fecha_limite'], 'fecha_pago' => $sub_adeudo['fecha_pago'], 'carrera' => $adeudo['carrera'], 'importe' => $sub_adeudo['importe'], 'nivel' => $adeudo['nivel'], 'nombre_nivel' => $adeudo['nombre_nivel'], 'recargo' => floatval($sub_adeudo['recargo_pago']), 'beca' => floatval($sub_adeudo['beca_pago']), 'descuento' => floatval($descuento), 'descuento_recargo' => floatval($descuento_recargo), 'total' => floatval($sub_adeudo['importe_pago']), 'descuento_officio' => $descuento_officio, 'concepto' => $sub_adeudo['concepto'], 'descripcion_concepto' => $sub_adeudo['descripcion_concepto']); } else { $data['periodos'][$key_p]['subconceptos'][$key_s]['adeudo_info'][] = array('clave' => $adeudo['id_persona'], 'matricula' => $adeudo['matricula'], 'nombre' => $adeudo['nom'], 'apellido paterno' => $adeudo['appat'], 'apellido materno' => $adeudo['apmat'], 'fecha_limite' => $sub_adeudo['fecha_limite'], 'carrera' => $adeudo['carrera'], 'importe' => floatval($sub_adeudo['importe']), 'nivel' => $adeudo['nivel'], 'nombre_nivel' => $adeudo['nombre_nivel'], 'recargo' => floatval($recargo_total), 'recargo_no_descuento' => floatval($recargo_total_no_descuento), 'beca' => floatval($beca), 'descuento' => floatval($descuento), 'descuento_recargo' => floatval($descuento_recargo), 'total' => floatval($total_adeudo), 'descuento_officio' => $descuento_officio, 'concepto' => $sub_adeudo['concepto'], 'descripcion_concepto' => $sub_adeudo['descripcion_concepto']); } } } } } return $data; }
public static function expediente() { $parametros = Input::get(); $reglas = array('id' => 'integer'); $validator = Validator::make($parametros, $reglas); if (!$validator->fails()) { $res['data'] = Descuentos::obtenerAdeudosDeDescuentos($parametros['id']); $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; }