Foros del Web » Programando para Internet » PHP »

sistema mes/cuotas dentro de bucle.

Estas en el tema de sistema mes/cuotas dentro de bucle. en el foro de PHP en Foros del Web. Hola chicos, estoy tratando de insertar dentro de mysql, un sistema de cuotas.. Lo que recibo es: Nº factura, socio, importe y CUOTAS en mysql ...
  #1 (permalink)  
Antiguo 14/06/2011, 07:47
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
sistema mes/cuotas dentro de bucle.

Hola chicos, estoy tratando de insertar dentro de mysql, un sistema de cuotas..

Lo que recibo es:

Nº factura, socio, importe y CUOTAS

en mysql tengo que insertar.

factura, socio, importe, cuota Nº, cuotas_totales, vencimiento.

con un for logro insertar la cuota Nº y las cuotas totales super facil.

pero el vencimiento es lo complicado...

vamos a un simple ejemplo

2 cuotas..

Código PHP:
for($ii 1$ii <= $cuota$ii++)
     {
        
$mes    =    date('m')    +    $ii;
        if( 
$mes    <=    9    
        {
            
$vencimiento    =    date('Y-')    .    '0'    .    $mes    .date('-d');
        }elseif(    
$mes    ==    13    )
        {
            
$vencimiento    =    date('Y-')    .    '01'    .date('-d');
        }else{
            
$vencimiento    =    date('Y-')    .    $mes    .date('-d');
        }
        
    echo 
$vencimiento
pero si tengo 20 cuotas....

pone:

2011-07-14
2011-08-14
2011-09-14
2011-10-14
2011-11-14
2011-12-14
2011-01-14
2011-14-14
2011-15-14


alguien conoce un metodo? o tiene alguna solucion para este problema.
Gracias
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 14/06/2011, 08:02
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: sistema mes/cuotas dentro de bucle.

te va a convenir hacer la cuenta de meses aparte

Código PHP:
$mes 1// inicias el primer mes
for($ii 1$ii <= $cuota$ii++){
  if(
$mes 12){ //si es mas de 12
    
$mes=1// lo reinicias en 1
  
}
  if(
$mes <= 9){
    
$vencimiento date('Y-').'0'.$mes.date('-d');
  }else{ 
    
$vencimiento date('Y-').$mes.date('-d');
  }
  echo 
$vencimiento;
  
$mes++; // aumentas un mes en cada ciclo

ve si te resulta.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 14/06/2011, 08:11
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: sistema mes/cuotas dentro de bucle.

Cita:
Iniciado por stramin Ver Mensaje
te va a convenir hacer la cuenta de meses aparte

Código PHP:
$mes 1// inicias el primer mes
for($ii 1$ii <= $cuota$ii++){
  if(
$mes 12){ //si es mas de 12
    
$mes=1// lo reinicias en 1
  
}
  if(
$mes <= 9){
    
$vencimiento date('Y-').'0'.$mes.date('-d');
  }else{ 
    
$vencimiento date('Y-').$mes.date('-d');
  }
  echo 
$vencimiento;
  
$mes++; // aumentas un mes en cada ciclo

ve si te resulta.
no esta mal, pero te olvidas que vencimiento, es el mes siguiente a la carga por lo tanto no puede empezar en mes 01.... :(

igual arme este que funciona hasta 2013-12-30 cuotas.

Código PHP:
$messiguiente    =    1    ;
            
$mescontinuo    =    1    ;
            
$añosiguiente    =    date('Y')    +    1    .    '-';
            
$añocontinuo    =    date('Y')    +    2    .    '-';
    for(
$ii 1$ii <= $cuota$ii++)
     {
        
$mes    =    date('m')    +    $ii;
        if( 
$mes    <=    9    
        {
            
$vencimiento    =    date('Y-')    .    '0'    .    $mes    .date('-d');
        }elseif(    
$mes    >=    13    )
        {
            if(
$messiguiente    <=    9)
            {
                
$vencimiento    =    $añosiguiente    .    '0'    .    $messiguiente    .date('-d');
                
$messiguiente++;
            }elseif(
$messiguiente    >=    13)
            {
                
$vencimiento    =    $añocontinuo    .    '0'    .    $mescontinuo    .date('-d');
                
$mescontinuo++;
            }else{
                
$vencimiento    =    $añosiguiente    .    $messiguiente    .date('-d');
                
$messiguiente++;
            }
        }else{
            
$vencimiento    =    date('Y-')    .    $mes    .date('-d');
        }
        
    echo 
$vencimiento."<br>"
__________________
Mono programando!
twitter.com/eguimariano
  #4 (permalink)  
Antiguo 14/06/2011, 08:19
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: sistema mes/cuotas dentro de bucle.

en ese caso hace tambien una variable de año usando la misma lógica, el mes lo inicias tu, no se en cuanto lo quieras iniciar:

Código PHP:
$mes date('m'); $mes++; // inicias el primer mes
$ano date('Y'); // y también el año
for($ii 1$ii <= $cuota$ii++){
  if(
$mes 12){ //si es mas de 12
    
$mes=1// lo reinicias en 1
    
$ano++; // y aumentas también el año :)
  
}
  if(
$mes <= 9){
    
$vencimiento $ano."-".'0'.$mes.date('-d'); // ahora pones el año aquí
  
}else{ 
    
$vencimiento $ano."-".$mes.date('-d'); // y aquí
  
}
  echo 
$vencimiento;
  
$mes++; // aumentas un mes en cada ciclo

si pones tantos espacios tus archivos pesarán mucho.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 14/06/2011, 08:25
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: sistema mes/cuotas dentro de bucle.

excelente stramin es lo que nesitaba...
si tengo que aprender hacer lo mas reducido posible los codigos, para aumentar la velocidad en las consultas.
__________________
Mono programando!
twitter.com/eguimariano
  #6 (permalink)  
Antiguo 14/06/2011, 08:27
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 7 meses
Puntos: 56
Respuesta: sistema mes/cuotas dentro de bucle.

si me permiten, solo se tiene que sumar 1 mes a la fecha para ir obteniendo el siguiente vencimiento:
Código PHP:
$fecha date('Y-m-d');// se reemplaza con la fecha que quieras
$cuotas 20//el número de cuotas es variable
for($i=0;$i<$cuotas;$i++){
  
$vencimiento date('Y-m-d',strtotime("$fecha +1 month") ); 
    
$fecha $vencimiento;
    echo 
"$vencimiento<br/>";

__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #7 (permalink)  
Antiguo 14/06/2011, 08:42
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: sistema mes/cuotas dentro de bucle.

Cita:
Iniciado por jcxnet Ver Mensaje
si me permiten, solo se tiene que sumar 1 mes a la fecha para ir obteniendo el siguiente vencimiento:
Código PHP:
$fecha date('Y-m-d');// se reemplaza con la fecha que quieras
$cuotas 20//el número de cuotas es variable
for($i=0;$i<$cuotas;$i++){
  
$vencimiento date('Y-m-d',strtotime("$fecha +1 month") ); 
    
$fecha $vencimiento;
    echo 
"$vencimiento<br/>";

Wow jcxnet de verdad muchas gracias.
Y como estamos haciendolo cada vez mas simple, lo retoque un poquito
Código PHP:
$fecha date('Y-m-d');// se reemplaza con la fecha que quieras
$cuotas 20//el número de cuotas es variable
for($ii=1;$ii<$cuota;$ii++){
        
$vencimiento date('Y-m-d',strtotime("$fecha +"$ii ." month") ); 
        echo 
"$vencimiento<br/>";} 
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: bucle, sistema
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:40.