FoxPro/Visual FoxPro - Calcular Fechas

 
Vista:

Calcular Fechas

Publicado por mirian (22 intervenciones) el 16/09/2009 19:32:41
Hola Señores como estan. tengo un incombeniente. Les cuento estoy haciendo un sistema para un gimnacio y cuando le doy un alta a un cliente registro la fecha de inscripcion. Asi que cada mes cuando sea esa fecha quiero que vensa su cuota y no se como hacerlo porque quiero que me pase me havise que ya vencio o cuando vence su cuota.
Podrian ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Calcular Fechas

Publicado por Pablo (Argentina) (433 intervenciones) el 16/09/2009 23:50:11
Hola Miriam, mira fijate en este mismo foro, notas mas abajo o sino usa el buscador, y hay ejemplo de otro usuario que quiere hacer algo similar con los pagos en cuotas de sus clientes, por ahi te sirve.

Suerte!!!!

Pablo - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular Fechas

Publicado por Pablo (Argentina) (433 intervenciones) el 16/09/2009 23:56:16
Hola Miriam, de nuevo, aca abajo te paso un codigo que por ahi lo tenes que modificar un poco para obtener tu resultado, sino proba tambien en el buscador, que una ves tambien un usuario publico codigo para el control de horario de su personal con fecha y hora y diferencia entre si y por ahi tb te puede servir

TxtFec_venta= DATE()+30
nCuota = 1
nMeses = thisform.txtnumcuota.value &&Los meses que quieres desplegar

*- Separo por bloques la fecha
nMes = MONTH(txtFec_venta)
nDia = DAY(txtFec_venta)
nAno = YEAR(txtFec_venta)
nDiaf = DAY(txtFec_venta)

DO WHILE NMeses >= nCuota

*-Armo la fecha
fec_cuo = ctod(PADL(nDia,2,"0")+"/"+PADL(nMes,2,"0")+"/"+PADL(nAno,4,"0"))
?fec_cuo

select cuotatemporal
append blank
rlock()
replace vto with fec_cuo
replace ncuota with ncuota
replace numpagare with npagare
replace importe with totalapagar
replace fec_venta with fecventa
replace numorden with nfactura
flush
unlock all

select ctacte
nCuota = nCuota + 1
if nMes = 12
nMes = 1
else
nMes = MONTH(fec_cuo) + 1
endif

** Calcula ultimo dia del Mes ** flush
unlock all
select ctacte

Tufecha = ctod("01"+"/"+PADL(nMes,2,"0")+"/"+PADL(nAno,4,"0"))

nDiaf = DAY(txtFec_venta)

do case
case nDiaf > 28 and nMes = 2
nDia = 28
case nDiaf > 30 and nMes <> 2
nDia = DAY(gomonth(TuFecha - DAY(TuFecha) + 1, 1 )-1) &&Ultimo Dia
otherwise
nDia = nDiaf
endcase
*- Sumo si fuera otro año
nAno = YEAR(fec_cuo)
nAno = iif(nMes=1,nAno + 1,nAno)
ENDDO

Suerte!!!!

Pablo - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular Fechas

Publicado por Jaime GAttorno (2 intervenciones) el 17/09/2009 02:53:04
Esto es fácil

ldFecha_inscripcion = date(2009,08, 01)
ldFecha_vencimiento = GoMonth(ldFecha_inscripcion, 1) && con esto sabes la proxima fecha de vencimiento

lnHoy = day(getdate())
lnVence = day(ldFecha_inscripcion)

IF lnHoy = lnVence
MESSAGEBOX("Hoy se vence su crédito"
ENDIF

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Calcular Fechas

Publicado por Gabriel (427 intervenciones) el 17/09/2009 18:34:09
Amiga Mirian :

Solo para complementar lo expuesto por los otros colegas, a continuacion te muestro el codigo que hace el filtrado y/o busqueda en la base de datos

ldFechaLimite = GoMonth(DATE(),0) - 3 && 3 DIAS PERMITIDOS

SELECT * FROM Prestado WHERE Fech_Pres < ldFechaLimite ;
.AND. Stat_Pres = "Prestado" .AND. .NOT. DELETED() ;
ORDER BY Pres_Ord, Orden_P Into CURSOR Temp

lnFiles = _TALLY

IF lnFiles > 0
IF 6 = MessageBox(TRANSFORM(lnFiles) + " File(s) Prestado(s) Superaron los 3 Días de Fecha Limite." + CHR(13) + ;
"¿ Desea Usted Ver el Reporte Ahora... ?",4+32,"Aviso del Sistema")

DEFINE WINDOW lw_Report FROM 0,0 TO SROWS(), ;
SCOLS() In SCREEN TITLE "Reporte Fecha Limite" ;
SYSTEM CLOSE NAME oPreview
ZOOM WINDOW lw_Report MAX
KEYBOARD '{CTRL+F10}' PLAIN CLEAR

REPORT FORM C:\CONTROL\APLICACION\Mireport.FRX PREVIEW NOEJECT NOCONSOLE WINDOW lw_Report
DEACTIVATE WINDOWS lw_Report
RELEASE WINDOWS lw_Report

Endif
Endif

Espero haber contribuido un poco mas en aclarar tus dudas...

Saludos,

Gabriel
(Lima-Perú)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar