Closed DamageESP closed 11 years ago
Función:
function solicitar($id_user){
$user_datos=mysql_fetch_array(mysql_query("SELECT ingresos FROM usuarios WHERE nick='".$_SESSION['nick']."'"));
$user_prestamista=mysql_fetch_array(mysql_query("SELECT prestamo, prestamo_percent, id FROM usuarios WHERE id=$id_user"));
if(empty($user_prestamista['id'])) return "ERROR";
$solicitar="";
$necesario = (($user_prestamista['prestamo'] * (1 + ($user_prestamista['prestamo_percent']/100)))/7);
// Ejemplo: 10.000.000 € al 40 %.
// 1. Recoge la cantidad (10.000.000 €) del prestamo que se va a solicitar en "prestamo".
// 2. Divide la cantidad de intereses "prestamo_percent" entre 100, de forma que quede un decimal, 0.4.
// 3. Se le suma 1 a la cantidad obtenida en la anterior operación, para obtener un multiplicador
// que nos diga la cantidad total que se debe pagar, 1.4 por la cantidad 10.000.000 es igual a 14.000.000.
// 4. Sabiendo el total, lo dividimos en 7 plazos, de modo que se obtiene la cuota diaria.
if (($user_datos['ingresos']/2) >= $necesario)
// 5. Si la mitad de los ingresos del solicitante es mayor o igual a la cantidad diaria, lo puede obtener.
// Necesitas 2.000.000 € de ingresos para obtener el préstamo. (14.000.000 / 7)
{
$solicitar = $solicitar."<a href='banqueros.action.php?id=$id_user'>Solicitar</a>";
return $solicitar;
}
else{$solicitar = $solicitar."No puedes permitirtelo"; return $solicitar;}
}
Creo que estáan mal los paréntesis:
(($user_prestamista['prestamo'] * (1 + ($user_prestamista['prestamo_percent']/100)))/7)
Arreglados los paréntesis.
Préstamos listos para ser solicitados, solo necesito que Nuno cree el campo "beneficios", y ahi se sumara o restara los beneficios o la cuota diaria.
if (isset($_GET['id']))
{
$_GET['id'] = mysql_real_escape_string($_GET['id']);
if ($_GET['id'] == $user_datos['id']) {echo "<script>alert('No puedes solicitar tu propio crédito.'); document.location=('banqueros.php');</script>";}else{
$comprobar = mysql_query("SELECT id, prestamo, prestamo_percent, prestamo_plazo FROM usuarios WHERE id='$_GET[id]'");
if($row = mysql_fetch_array($comprobar))
{
$cant_diaria = (($row['prestamo'] * (1 + ($row['prestamo_percent']/100)))/$row['prestamo_plazo']);
if (($user_datos['ingresos']/2) >= $cant_diaria && $user_datos['prestamo'] == 0){
$texto_prestamista= "Han solicitado su prestamo";
$texto_solicitante= "Has solicitado un prestamo";
mysql_query("UPDATE usuarios SET beneficios = beneficios + '$cant_diaria' WHERE id='$row[id]'");
mysql_query("UPDATE usuarios SET beneficios = beneficios - '$cant_diaria' WHERE id='$user_datos[id]'");
mysql_query("UPDATE usuarios SET dinero = dinero + '$row[prestamo]' WHERE id='$user_datos[id]'");
mysql_query("INSERT INTO mensajes (para_quien,fecha, tipo, mensaje) VALUES ('$row[id]','".time()."', 3, '$texto_prestamista')");
mysql_query("INSERT INTO mensajes (para_quien,fecha, tipo, mensaje) VALUES ('$user_datos[id]','".time()."', 3, '$texto_solicitante')");
mysql_query("UPDATE usuarios SET prestamo = 0 WHERE id='$row[id]'");
mysql_query("UPDATE usuarios SET prestamo_percent = 0 WHERE id='$row[id]'");
echo "<script>alert('Préstamo solicitado. Ahora deberá pagar las cuotas diariamente.'); document.location=('banqueros.php');</script>";
}
else {echo "<script>alert('No ganas lo suficiente como para pagar este crédito o tienes un crédito a la espera de ser solicitado.'); document.location=('banqueros.php');</script>";}
}
else {echo "<script>alert('Crédito o usuario inexistente.'); document.location=('banqueros.php');</script>";}
}
}
Algo que me haya olvidado? Los requisitos para préstamos los debatimos en el issue que le corresponde.
También hay que hacer que se registre la fecha de solicitud y se almacene durante una semana, y yo no sé hacerlo xD.
PD: aconsejo reemplazar 7 por una constante, que represente el plazo, así en el futuro se podrían poner prestamos con distintos plazos, más fácilmente.
Listo, ahora añadire los inputs para seleccionar el plazo y se almacenará en la BD.
Tengo pensado reorganizar la BD, Nuno tiene razón, he hecho demasiados campos en la tabla usuarios.
Puede que un dia me ponga y haga una tabla para cada sección, más que nada es cuestión de organización.
Por cierto, creo que una forma de hacer lo de los préstamos es ir restandole 1 al campo prestamo_plazo hasta que sea 0, aunque no es demasiado eficiente, ya que la hora no se almacenaría.
Ya nos meteremos con lo de los plazos de los préstamos, de momento con que lo dejes preparado creo que sobra...
Lo de meterlo como constante es eso, simplemente para clarificar el código, si se pone un 7 y no se dice por qué luego es un rollo mirar a ver por qué...
PD: sin tener ni puta idea de mysql, tener todo en la misma tabla, no es mejor a la hora de tener que borrar un usuario?
Los plazos estan listos.
Sí, pero por ejemplo digamos que estas creando la seccion prestamos y quieres tener todos los datos de prestamos de un usuario. Si lo tuviesemos todo en la misma tabla y seleccionaramos todo lo que hay en esa tabla, el array que nos resulte de la consulta sería gigantesco, a no ser que en la consulta pongamos los campos que queremos seleccionar..
Ej:
// Si esta todo en la misma tabla.
mysql_query("SELECT id, nick, prestamo, prestamo_percent, prestamo_plazo FROM usuarios WHERE id='id_del_usuario' ");
// Si esta cada apartado en su tabla.
mysql_query("SELECT * FROM prestamos WHERE id='id_del_usuario' ");
Sí es cierto que a la hora de borrar el usuario con una sola consulta estaría terminado. No sé, sería cuestión de hablarlo. La principal ventaja es que queda todo mucho más organizado.
Pues sí casi mejor que la segunda opción...
Sep, yo también había pensado eso xDD
Necesito que estén disponibles los impuestos y los beneficios para que se puedan asignar los beneficios diarios.
Issue: #10
Supongo que con lo de los impuestos esto se da por acabado.
Los beneficios no son calculados nunca, además que no sirven para nada xD Reabro para que te cobre y te de dinero una vez abierto el prestamo
Además, si los beneficios esos funcionaran, serían para siempre
Lo de los préstamos se podría hacer registrando el día en que se solicita en la BD + 7, y cada minuto se va comprobando si coincide la fecha. Ejemplo:
// Se solicita el préstamo el día 11/11/2012 a las 15:06.
// Llamemos a la fecha actual $fechaactual.
mysql_query("INSERT INTO prestamos (fecha_expiracion) VALUES ('$fechaactual' + $_POST['plazo']) WHERE id = $user_datos['id']");
// Ahora en el cron de minutos se comprobarian los prestamos.
if($fechalimite = mysql_fetch_array(mysql_query("SELECT * FROM prestamos WHERE fecha_expiracion = NOW()"))){
mysql_query("INSERT INTO mensajes etc etc");
mysql_query("UPDATE usuarios SET beneficios = etc etc");
mysql_query("DELETE FROM prestamos WHERE id = $fechalimite['id']");
}
Corrigiendo
// Se solicita el préstamo el día 11/11/2012 a las 15:06.
// Llamemos a la fecha actual time()
// hay que mirar si el post plazo esta entre los limites
$plazo=$_POST['plazo']*60*60*24;
mysql_query("INSERT INTO prestamos (fecha_expiracion) VALUES ('".time() ."+$plazo') WHERE id = $user_datos[id]");
// Ahora en el cron de minutos se comprobarian los prestamos.
$queryprestamos=mysql_query("SELECT * FROM prestamos WHERE fecha_expiracion <= ".time());
while($fechalimite = mysql_fetch_array($queryprestamos)){
mysql_query("INSERT INTO mensajes etc etc");
mysql_query("UPDATE usuarios SET beneficios = etc etc");
mysql_query("DELETE FROM prestamos WHERE id = $fechalimite['id']");
}
Pues eso xD
Parece que ya están terminados. Si lo están completamente cerramos
Listo, he puesto una cosilla que faltaba.
Cierro.
Estoy terminando la sección de banqueros, para comprobar si el solicitante puede o no solicitar el préstamo y asignar los beneficios.
@Manuestaire @NiciusB