Al parecer en el foro solo permiten privilegios de administradores para poder postear comentarios, pero por que no mejor utilizamos Skype para organizar y empezar a trabajar ?
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>
#include <sys/time.h>
#include "include/components.cpp"
#include "include/ventanas.c"
#include "include/struct_clientes.h"
#include "include/def_cv.h"
#include "include/suma.cpp"
//estructura para manejar datos clientes
void seccion_de_botones(int);
void presentar_fecha();
void save_array(int,int,char);
void save_disk();
float calculaPrest();
void dato_prestamo(int, int);
int getPos(char *);
void getPosFich(int, FILE *);
int mntPagoClt(char *);
char buscarCedula[TAM], cedulaPg[TAM];
int contPrestamo=0, pagos=0, verdad=DISABLE, cant=0, cuota=0, contCheckbox=0, posFich=0,
mntPago[TAM], mntCount=0, permit=ENABLE;
unsigned int sumaPagada=0, pagoActual=0, pagoSumado=0;
struct user{
char nombre[TAM],
apellido[TAM],
cedula[TAM],
fecha[TAM],
prestms[TAM],
prestamoPorCuota[TAM],
numeroPagos[TAM],
fFinal[TAM],
deuda[TAM];
int prest[TAM], numPagos[TAM];
}usuario;
typedef struct mesDia{
int mes, dia;
};
int main(int argc, char *argv[])
{
vent ventana[3];
check checkbox;
int color=AZUL, sig_boton, sig_y_boton, sig_tex, sig_y_tex;
int done = 0, bit_fecha=0, evento_keyboard=DISABLE,
active_texbox, checked=0, xsig, ysig;
char *texto_texbox="", fecha2[10], *texbox_texto=""/*accion*/;
crear_pantalla(600, 400, CARGA_PANT, "FIXCOM");
//inicializamos checkbox a DISABLE
checkbox.select=0;
// texto checkbox
inicializarTextoCheckbox[1]="2-C";
inicializarTextoCheckbox[2]="4-C";
inicializarTextoCheckbox[3]="6-C";
inicializarTextoCheckbox[4]="8-C";
//desactivamos ventanas
ventana[MENU].select=ENABLE; //dejamos menu porque es pantalla inicial
ventana[ADD_USERS].select=DISABLE;
ventana[LIST_USERS].select=DISABLE;
ventana[HACER_PAGOS].select=DISABLE;
//elementos ventanas
elementos_ventana();
//bucle o loop de aplicacion
while(done == DISABLE)
{
//esperamos eventos en cola
SDL_WaitEvent(&event);
//consultamos eventos en cola
if (event.type == SDL_QUIT)
{
done = 1;
}
//cambiamos apariencia a botones
create_button(sig_boton, sig_y_boton, texto_texbox, 10, color);
if(event.type==SDL_MOUSEBUTTONDOWN&CLICKPRESIONADO)
{fprintf(stdout, "X=%i, Y=%i\n", event.button.x, event.button.y);}
if(bit_texbox==ENABLE)
{
create_imagen(sig_tex,sig_y_tex,"images/tapa_label.jpg");
create_label(sig_tex,sig_y_tex,texbox_texto,15,AZUL);
}
bit_texbox=DISABLE;
color=AZUL;
checked=0;
//eventos botones ventana menu
if(ventana[MENU].select==ENABLE)
{
//boton agregar users
if((EVENTOX>=151&EVENTOX<=258)&&(EVENTOY>=84&EVENTOY<=113))
{
sig_boton=150;
sig_y_boton=80;
texto_texbox="Agregar Users";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(150, 80);
SDL_Delay(50);
create_button(150, 80, texto_texbox, 10, AZUL);
//codigo boton
ventana[MENU].select=DISABLE;
ventana[ADD_USERS].select=ENABLE;
//llama a ventana
sig_boton=-150,sig_y_boton=-150;
checkbox.select=DISABLE;
checked=DISABLE;
create_imagen(0,0,"images/imagen.jpg");
v(ADD_USERS);
//ejecutamos botones de ventanas
seccion_de_botones(ADD_USERS);
//fin codigo boton agregar users
}
}
//boton listar users
else if((EVENTOX>=148&EVENTOX<=260)&(EVENTOY>=155&EVENTOY<=185))
{
sig_boton=150;
sig_y_boton=150;
texto_texbox="Buscar Users";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(150, 150);
SDL_Delay(50);
create_button(150, 150, texto_texbox, 10, AZUL);
//codigo boton
//desactivamos ventana menu
ventana[MENU].select=DISABLE;
ventana[LIST_USERS].select=ENABLE; //activamos ventana listar users
create_imagen(0,0,"images/imagen.jpg");
sig_boton=-150,sig_y_boton=-150;
v(LIST_USERS);
seccion_de_botones(LIST_USERS);
//fin codigo boton listar_users
}
}
//boton hacer pagos
else if((EVENTOX>=151&EVENTOX<=258)&&(EVENTOY>=220&EVENTOY<=255))
{
sig_boton=151;
sig_y_boton=220;
texto_texbox="Hacer Pagos";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(150, 220);
SDL_Delay(50);
create_button(150, 220, texto_texbox, 10, AZUL);
//codigo boton
ventana[MENU].select=DISABLE;
ventana[HACER_PAGOS].select=ENABLE;
//llama a ventana
sig_boton=-150,sig_y_boton=-150;
create_imagen(0,0,"images/imagen.jpg");
v(HACER_PAGOS);
//ejecutamos botones de ventanas
seccion_de_botones(HACER_PAGOS);
//fin codigo boton agregar users
}
}
//fin eventos botones ventana menu
}
//sección botones add_users
if(ventana[ADD_USERS].select==ENABLE)
{
//eventos botones
//boton ir a menu
if(bit_fecha==0)
{
presentar_fecha();
bit_fecha=1;
}
if((EVENTOX>=349&EVENTOX<=463)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=350;
sig_y_boton=350;
texto_texbox="Ir a Menu";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(350, 350);
SDL_Delay(50);
create_button(350, 350, texto_texbox, 10, AZUL);
//codigo boton
//desactivamos ventana menu
ventana[ADD_USERS].select=DISABLE;
ventana[MENU].select=ENABLE;
create_imagen(0,0,"images/imagen.jpg");
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
bit_fecha=0;
pagos=0;
contPrestamo=0;
cant=0;
limpiarArray(usuario.apellido,TAM);
limpiarArray(usuario.nombre,TAM);
limpiarArray(usuario.cedula,TAM);
limpiarArray(usuario.deuda,TAM);
limpiarArray(usuario.fecha,TAM);
limpiarArray(usuario.fFinal,TAM);
limpiarArray(usuario.numeroPagos,TAM);
limpiarArray(usuario.prestamoPorCuota,7);
limpiarArray(usuario.prestms,TAM);
limpiarArray(buscarCedula,TAM);
limpiarArrayEntero(usuario.prest,3);
limpiarArrayEntero(usuario.numPagos,3);
elementos_ventana();
//fin codigo boton add_users
}
}
//boton limpiar
if((EVENTOX>=49&EVENTOX<=159)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=50;
sig_y_boton=350;
texto_texbox="Limpiar";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(50, 350);
SDL_Delay(50);
create_button(50, 350, texto_texbox, 10, AZUL);
//codigo boton
//desactivamos ventana menu
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
pagos=0;
contPrestamo=0;
cant=0;
//limpiamos cuadros de textos erroneos
clear_error(400, 150);
clear_error(400, 10);
create_imagen(5, 300, "images/tapa_error.jpg");
create_imagen(5, 315, "images/tapa_error.jpg");
limpiarArray(usuario.apellido,TAM);
limpiarArray(usuario.nombre,TAM);
limpiarArray(usuario.cedula,TAM);
limpiarArray(usuario.deuda,TAM);
limpiarArray(usuario.fecha,TAM);
limpiarArray(usuario.fFinal,TAM);
limpiarArray(usuario.numeroPagos,TAM);
limpiarArray(usuario.prestamoPorCuota,7);
limpiarArray(usuario.prestms,TAM);
limpiarArray(buscarCedula,TAM);
limpiarArrayEntero(usuario.prest,3);
limpiarArrayEntero(usuario.numPagos,3);
//fin codigo boton add_users
}
}
//evento boton agregar
if((EVENTOX>=194&EVENTOX<=312)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=200;
sig_y_boton=350;
texto_texbox="Agregar";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(200, 350);
SDL_Delay(50);
create_button(200, 350, texto_texbox, 10, AZUL);
//codigo boton
active_texbox=SAVE_DISK;
if(pagos==0)
{
/*mensaje de error*/mod_error(400, 10, "Seleccione Pago", 10);
permit=DISABLE;
}
if(pagos!=0)
{
clear_error(400,10);
}
if(usuario.nombre[0]=='\0'||usuario.cedula[0]=='\0'||usuario.prestms[0]=='\0')
{/*mensaje de error*/
create_imagen(5, 300, "images/tapa_error.JPG");
create_label(5, 300, "ES OBLIGATORIO: Nombre, Cedula y Prestms", 10, ROJO);
//desactivamos los que nos permite guardar
permit=DISABLE;
}
if(usuario.nombre[0]!='\0'&usuario.cedula[0]!='\0'&usuario.prestms[0]!='\0')
{/*mensaje de error*/
create_imagen(5, 300, "images/tapa_error.JPG");
}
if(strlen(usuario.cedula)<=10)
{
clear_error(400,150);
mod_error(400, 150, "Cedula debe tener 11 Digitos", 10);
permit=DISABLE;
}
if(strlen(usuario.cedula)>=11)
{
clear_error(400,150);
}
if(permit==ENABLE)
{
clear_error(400,10);
save_disk();
create_imagen(5, 315, "images/tapa_error.jpg");
create_label(5, 315, "Datos guardados exitosamente", 10, AZUL);
}
evento_keyboard=DISABLE;
//fin codigo boton add_users
}
}
//checkbox 2 pagos
if((EVENTOX>=64&EVENTOX<=74)&&(EVENTOY>=178&EVENTOY<=188))
{
xsig=65, ysig=180;
if(EVENTOCLICK==1&CLICKPRESIONADO)
{
checkbox.select++;
if(checkbox.select==1)
{
checkbox_select(xsig,ysig);
//asignamos numero de pago
pagos=2;
permit=ENABLE;
}
if(checkbox.select==2)
{
create_checkbox(xsig,ysig);
checkbox.select=0;
pagos=0;
permit=DISABLE;
}
}
}
//checkbox 4 pagos
if((EVENTOX>=65&EVENTOX<=73)&&(EVENTOY>=200&EVENTOY<=208))
{
xsig=65, ysig=200;
if(EVENTOCLICK==1&CLICKPRESIONADO)
{
checkbox.select++;
if(checkbox.select==1)
{
checkbox_select(xsig,ysig);
//asignamos numero de pago
pagos=4;
permit=ENABLE;
}
if(checkbox.select==2)
{
create_checkbox(xsig,ysig);
checkbox.select=0;
pagos=0;
permit=DISABLE;
}
}
}
//checkbox 6 pagos
if((EVENTOX>=65&EVENTOX<=73)&&(EVENTOY>=220&EVENTOY<=228))
{
xsig=65, ysig=220;
if(EVENTOCLICK==1&CLICKPRESIONADO)
{
checkbox.select++;
if(checkbox.select==1)
{
checkbox_select(xsig,ysig);
//asignamos numero de pago
pagos=6;
permit=ENABLE;
}
if(checkbox.select==2)
{
create_checkbox(xsig,ysig);
checkbox.select=0;
pagos=0;
permit=DISABLE;
}
}
}
//checkbox 8 pagos
if((EVENTOX>=65&EVENTOX<=73)&&(EVENTOY>=240&EVENTOY<=248))
{
xsig=65, ysig=240;
if(EVENTOCLICK==1&CLICKPRESIONADO)
{
checkbox.select++;
if(checkbox.select==1)
{
checkbox_select(xsig,ysig);
//asignamos numero de pago
pagos=8;
permit=ENABLE;
}
if(checkbox.select==2)
{
create_checkbox(xsig,ysig);
checkbox.select=0;
pagos=0;
permit=DISABLE;
}
}
}
//revisamos si se llego al final de texbox
if(sig>=280)
{evento_keyboard=DISABLE;}
//eventos texbox
//texbox nombre
if((EVENTOX>=69&EVENTOX<=290)&(EVENTOY>=9&EVENTOY<=30))
{
bit_texbox=ENABLE;
texbox_texto="Nombre";
sig_tex=5,sig_y_tex=10;
active_texbox=NOMBRE;
create_label(sig_tex,sig_y_tex,"Nombre", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=71,sig_y=18;
evento_keyboard=ENABLE;
}
}
//texbox apellido
if((EVENTOX>=69&EVENTOX<=290)&(EVENTOY>=39&EVENTOY<=60))
{
bit_texbox=ENABLE;
texbox_texto="Apellido";
sig_tex=5,sig_y_tex=40;
active_texbox=APELLIDO;
create_label(sig_tex,sig_y_tex,"Apellido", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=71,sig_y=48;
evento_keyboard=ENABLE;
}
}
//texbox cedula
if((EVENTOX>=69&EVENTOX<=290)&(EVENTOY>=68&EVENTOY<=91))
{
bit_texbox=ENABLE;
texbox_texto="Cedula";
sig_tex=5,sig_y_tex=70;
active_texbox=CEDULA;
create_label(sig_tex,sig_y_tex,"Cedula", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=71,sig_y=78;
evento_keyboard=ENABLE;
}
}
//texbox prestamo
if((EVENTOX>=69&EVENTOX<=290)&(EVENTOY>=129&EVENTOY<=151))
{
bit_texbox=ENABLE;
texbox_texto="Prestms";
sig_tex=5,sig_y_tex=130;
active_texbox=PRESTMS;
create_label(sig_tex,sig_y_tex,"Prestms", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=71,sig_y=138;
evento_keyboard=ENABLE;
}
}
//terminar sección ventana agregar user
}
//sección de botones listar users
if(ventana[LIST_USERS].select==ENABLE)
{
//eventos botones
//boton ir a menu
if((EVENTOX>=349&EVENTOX<=463)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=350;
sig_y_boton=350;
texto_texbox="Ir a Menu";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(350, 350);
SDL_Delay(50);
create_button(350, 350, texto_texbox, 10, AZUL);
//codigo boton
verdad=DISABLE;
//limpiamos todos los arrays de la estructura usuario
limpiarArray(usuario.apellido,TAM);
limpiarArray(usuario.nombre,TAM);
limpiarArray(usuario.cedula,TAM);
limpiarArray(usuario.deuda,TAM);
limpiarArray(usuario.fecha,TAM);
limpiarArray(usuario.fFinal,TAM);
limpiarArray(usuario.numeroPagos,TAM);
limpiarArray(usuario.prestamoPorCuota,TAM);
limpiarArray(usuario.prestms,TAM);
limpiarArray(buscarCedula,TAM);
limpiarArrayEntero(usuario.prest,3);
limpiarArrayEntero(usuario.numPagos,3);
//desactivamos ventana menu
ventana[LIST_USERS].select=DISABLE;
ventana[MENU].select=ENABLE;
create_imagen(0,0,"images/imagen.jpg");
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
elementos_ventana();
//fin codigo boton listar_users
}
}
//parar eventos texbox
if(sig>=565&&active_texbox==BUSCAR_C)
{evento_keyboard=DISABLE;}
//evento boton buscar
if((EVENTOX>=349&EVENTOX<=463)&(EVENTOY>=114&EVENTOY<=145))
{
sig_boton=350;
sig_y_boton=110;
texto_texbox="Buscar";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
fdiskR=fopen("fixcom.fix","rb");
create_button_efecto(350, 110);
SDL_Delay(50);
create_button(350, 110, texto_texbox, 10, AZUL);
//codigo boton
//comprobamo si cedula contiene 13 digitos
if(strlen(buscarCedula)<=10)
{
clear_error(400, 200);
mod_error(400, 200, "Cedula debe tener 11 digitos", 10);
}
while(fread(&usuario,sizeof(struct user),1,fdiskR)!=0)
{
if(strcmp(buscarCedula,usuario.cedula)==0)
{
SDL_printf(73,18,usuario.nombre,10,AZUL);
SDL_printf(73,48,usuario.apellido,10,AZUL);
SDL_printf(73,108,usuario.prestms,10,AZUL);
SDL_printf(73,78,usuario.fecha,10,AZUL);
SDL_printf(73,198,usuario.prestamoPorCuota,10,AZUL);
SDL_printf(73,228,usuario.numeroPagos,10,AZUL);
SDL_printf(73,168,usuario.fFinal,10,AZUL);
SDL_printf(73,138,usuario.deuda,10,AZUL);
verdad=ENABLE;
}
}
if(verdad==DISABLE)
{
create_imagen(10, 285, "images/tapa_error.jpg");
create_label(10, 285, "ERROR: No existe cliente !", 10, ROJO);
}
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
//fin codigo boton listar_users
}
}
//evento boton limpiar
if((EVENTOX>=192&EVENTOX<=313)&(EVENTOY>=350&EVENTOY<=383))
{
sig_boton=200;
sig_y_boton=350;
texto_texbox="Limpiar";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
create_button_efecto(200, 350);
SDL_Delay(50);
create_button(200, 350, texto_texbox, 10, AZUL);
//codigo boton
//limpiamos errores comprobacion users y digitos cedula
clear_error(400, 200);
create_imagen(10, 285, "images/tapa_error.jpg");
//limpiamos arrays de estructuras
cant=0;
verdad=DISABLE;
limpiarArray(usuario.apellido,TAM);
limpiarArray(usuario.nombre,TAM);
limpiarArray(usuario.cedula,TAM);
limpiarArray(usuario.deuda,TAM);
limpiarArray(usuario.fecha,TAM);
limpiarArray(usuario.fFinal,TAM);
limpiarArray(usuario.numeroPagos,TAM);
limpiarArray(usuario.prestamoPorCuota,TAM);
limpiarArray(usuario.prestms,TAM);
limpiarArray(buscarCedula,TAM);
limpiarArrayEntero(usuario.prest,3);
limpiarArrayEntero(usuario.numPagos,3);
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
//fin codigo boton listar_users
}
}
//eventos texbox
//texbox buscar cedula
if((EVENTOX>=348&EVENTOX<=570)&(EVENTOY>=68&EVENTOY<=89))
{
bit_texbox=ENABLE;
texbox_texto="Buscar C.";
sig_tex=350,sig_y_tex=50;
active_texbox=BUSCAR_C;
create_label(sig_tex,sig_y_tex,"Buscar C.", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=351,sig_y=78;
evento_keyboard=ENABLE;
}
}
//fin de eventos texbox listar users
}
//sección ventana hacer pagos
if(ventana[HACER_PAGOS].select==ENABLE)
{
//eventos botones
//boton ir a menu
modifFichero=fopen("fixcom.fix","rb+");
if((EVENTOX>=349&EVENTOX<=463)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=350;
sig_y_boton=350;
texto_texbox="Ir a Menu";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(350, 350);
SDL_Delay(50);
create_button(350, 350, texto_texbox, 10, AZUL);
//codigo boton
//limpiamos todos los arrays de la estructura usuario
limpiarArray(usuario.apellido,TAM);
limpiarArray(usuario.nombre,TAM);
limpiarArray(usuario.cedula,TAM);
limpiarArray(usuario.deuda,TAM);
limpiarArray(usuario.fecha,TAM);
limpiarArray(usuario.fFinal,TAM);
limpiarArray(usuario.numeroPagos,TAM);
limpiarArray(usuario.prestamoPorCuota,TAM);
limpiarArray(usuario.prestms,TAM);
limpiarArrayEntero(usuario.prest,3);
limpiarArrayEntero(usuario.numPagos,3);
//desactivamos ventana menu
ventana[MENU].select=ENABLE;
ventana[HACER_PAGOS].select=DISABLE;
create_imagen(0,0,"images/imagen.jpg");
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
elementos_ventana();
//fin codigo boton listar_users
}
}
//boton realizar
if((EVENTOX>=50&EVENTOX<=159)&(EVENTOY>=355&EVENTOY<=382))
{
sig_boton=50;
sig_y_boton=350;
texto_texbox="Realizar";
color=BOTON_ILUM;
//click
if(EVENTOCLICK==1&CLICKLIBERADO)
{
//efecto boton
create_button_efecto(50, 350);
SDL_Delay(50);
create_button(50, 350, texto_texbox, 10, AZUL);
//codigo boton
posFich=getPos(cedulaPg);
getPosFich(posFich-1, modifFichero);
pagoActual=mntPagoClt(cedulaPg);
sumaPagada=sumar(mntPago, mntCount);
//suma de pago
pagoSumado=pagoActual-sumaPagada;
sprintf(usuario.deuda, "%i", pagoSumado);
//guardamos estructura de datos en fichero
fwrite(&usuario, sizeof(struct user), 1, modifFichero);
//cerramos fichero
fclose(modifFichero);
//limpiamos arrays de elementos
limpiarArray(cedulaPg, TAM);
limpiarArrayEntero(mntPago, TAM);
//volvemos variables a su valor 0
sumaPagada=0;
pagoActual=0;
pagoSumado=0;
mntCount=0;
cant=0;
posFich=0;
//desactivamos ventana menu
ventana[MENU].select=DISABLE;
//activamos la ventana actual
ventana[HACER_PAGOS].select=ENABLE;
sig_boton=-150,sig_y_boton=-150;
sig_tex=-71,sig_y_tex=-18;
evento_keyboard=DISABLE;
//fin codigo boton hacer pagos
}
}
//fin acciones boton hacer pagos
//eventos texbox
//Cedula Cliente
if((EVENTOX>=261&EVENTOX<=480)&(EVENTOY>=70&EVENTOY<=90))
{
bit_texbox=ENABLE;
texbox_texto="Cedula C.";
sig_tex=260,sig_y_tex=50;
active_texbox=BUSCACEDULA;
create_label(sig_tex,sig_y_tex,"Cedula C.", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=261,sig_y=78;
evento_keyboard=ENABLE;
}
}
//Monto
if((EVENTOX>=261&EVENTOX<=480)&(EVENTOY>=118&EVENTOY<=142))
{
bit_texbox=ENABLE;
texbox_texto="Monto";
sig_tex=260,sig_y_tex=100;
active_texbox=MONTOPAGO;
create_label(sig_tex,sig_y_tex,"Monto", 15, ROJO);
if(EVENTOCLICK==1&&CLICKPRESIONADO)
{
cant=0;
sig=261,sig_y=128;
evento_keyboard=ENABLE;
}
}
//limite de eventos teclado en caso de
if(sig>=480)
{evento_keyboard=DISABLE;}
//fin eventos texbox
}
//inicio gestion eventos
if(evento_keyboard==ENABLE)
{
if(event.key.keysym.sym==SDLK_a&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "a", 10, ROJO);
save_array(active_texbox,cant,'a');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_b&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "b", 10, ROJO);
save_array(active_texbox,cant,'b');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_c&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "c", 10, ROJO);
save_array(active_texbox,cant,'c');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_d&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "d", 10, ROJO);
save_array(active_texbox,cant,'d');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_e&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "e", 10, ROJO);
save_array(active_texbox,cant,'e');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_f&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "f", 10, ROJO);
save_array(active_texbox,cant,'f');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_g&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "g", 10, ROJO);
save_array(active_texbox,cant,'g');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_h&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "h", 10, ROJO);
save_array(active_texbox,cant,'h');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_i&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "i", 10, ROJO);
save_array(active_texbox,cant,'i');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_j&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "j", 10, ROJO);
save_array(active_texbox,cant,'j');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_k&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "k", 10, ROJO);
save_array(active_texbox,cant,'k');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_l&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "l", 10, ROJO);
save_array(active_texbox,cant,'l');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_m&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "m", 10, ROJO);
save_array(active_texbox,cant,'m');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_n&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "n", 10, ROJO);
save_array(active_texbox,cant,'n');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_o&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "o", 10, ROJO);
save_array(active_texbox,cant,'o');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_p&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "p", 10, ROJO);
save_array(active_texbox,cant,'p');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_q&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "q", 10, ROJO);
save_array(active_texbox,cant,'q');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_r&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "r", 10, ROJO);
save_array(active_texbox,cant,'r');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_s&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "s", 10, ROJO);
save_array(active_texbox,cant,'s');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_t&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "t", 10, ROJO);
save_array(active_texbox,cant,'t');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_u&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "u", 10, ROJO);
save_array(active_texbox,cant,'u');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_v&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "v", 10, ROJO);
save_array(active_texbox,cant,'v');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_w&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "w", 10, ROJO);
save_array(active_texbox,cant,'w');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_x&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "x", 10, ROJO);
save_array(active_texbox,cant,'x');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_y&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "y", 10, ROJO);
save_array(active_texbox,cant,'y');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_z&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "z", 10, ROJO);
save_array(active_texbox,cant,'z');
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP0&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "0", 10, ROJO);
save_array(active_texbox,cant,'0');
dato_prestamo(active_texbox,0);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP1&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "1", 10, ROJO);
save_array(active_texbox,cant,'1');
dato_prestamo(active_texbox,1);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP2&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "2", 10, ROJO);
save_array(active_texbox,cant,'2');
dato_prestamo(active_texbox,2);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP3&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "3", 10, ROJO);
save_array(active_texbox,cant,'3');
dato_prestamo(active_texbox,3);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP4&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "4", 10, ROJO);
save_array(active_texbox,cant,'4');
dato_prestamo(active_texbox,4);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP5&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "5", 10, ROJO);
save_array(active_texbox,cant,'5');
dato_prestamo(active_texbox,5);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP6&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "6", 10, ROJO);
save_array(active_texbox,cant,'6');
dato_prestamo(active_texbox,6);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP7&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "7", 10, ROJO);
save_array(active_texbox,cant,'7');
dato_prestamo(active_texbox,7);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP8&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "8", 10, ROJO);
save_array(active_texbox,cant,'8');
dato_prestamo(active_texbox, 8);
cant++;
sig+=10;
}
else if(event.key.keysym.sym==SDLK_KP9&EVENTOCLICK)
{
SDL_printf(sig, sig_y, "9", 10, ROJO);
save_array(active_texbox,cant,'9');
dato_prestamo(active_texbox, 9);
cant++;
sig+=10;
}
}
//fin gestion
}
}
//funcion aloja datos a array !!
void save_array(int active_texbox, int cant, char byte)
{
if(active_texbox==NOMBRE)
{
usuario.nombre[cant]=byte;
}
if(active_texbox==APELLIDO)
{
usuario.apellido[cant]=byte;
}
if(active_texbox==CEDULA)
{
usuario.cedula[cant]=byte;
}
if(active_texbox==PRESTMS)
{
usuario.prestms[cant]=byte;
contPrestamo++;
}
if(active_texbox==BUSCAR_C)
{
buscarCedula[cant]=byte;
}
if(active_texbox==BUSCACEDULA)
{
cedulaPg[cant]=byte;
}
}
//calculo de fecha final
float calculaPrest()
{
int prestamoTomado=0;
float media_prestamo=0.0, itbis=0.0, itSumado=0.0;
prestamoTomado=sumar(usuario.prest, contPrestamo+1);
media_prestamo=prestamoTomado/pagos;
itbis=media_prestamo*0.05;
itSumado=media_prestamo+itbis;
if(prestamoTomado>=10000&prestamoTomado<=20000)
{
itbis=media_prestamo*0.15;
itSumado=media_prestamo+itbis;
}
if(prestamoTomado>=20000&prestamoTomado<=30000)
{
itbis=media_prestamo*0.25;
itSumado=media_prestamo+itbis;
}
return itSumado;
}
//calculo fecha final
void fechaFinal()
{
int dia=0, mes=0, ano=0, totalF=0, obj=0, objDia=0;
totalF=15*pagos;
mes=fecha->tm_mon+1;
dia=fecha->tm_mday;
ano=fecha->tm_year+1900;
while(obj<totalF)
{
if(objDia>=30)
{
mes=mes+1;
dia=objDia;
objDia=0;
if(mes>=12)
{
mes=1;
ano=ano+1;
}
}
objDia++;
obj++;
}
limpiarArray(usuario.fFinal,TAM);
sprintf(usuario.fFinal, "%i/%i/%i", dia, mes, ano);
}
//escribir en disco
void save_disk()
{
time_t tiempo; //variable para el tiempo
time(&tiempo);//inicilizamos tiempo
fecha=localtime(&tiempo);//sacamos valores actuales de tiempo
sprintf(usuario.fecha,"%i/%i/%i",fecha->tm_mday,fecha->tm_mon+1,fecha->tm_year+1900);
float prestamoCalc=calculaPrest();
cuota=atoll(usuario.prestms);
sprintf(usuario.prestamoPorCuota,"%f",prestamoCalc);
sprintf(usuario.numeroPagos,"%i", pagos);
limpiarArray(usuario.fFinal, 7);
fechaFinal();
limpiarArray(usuario.deuda, TAM);
sprintf(usuario.deuda,"%i", cuota);
fdiskW=fopen("fixcom.fix","a");
fwrite(&usuario, sizeof(struct user), 1, fdiskW);
//limpiamos variables
cuota=0;
prestamoCalc=0.0;
cant=0;
contPrestamo=0;
//cerramos fichero
fclose(fdiskW);
}
void presentar_fecha()
{
time_t tiempo; //variable para el tiempo
time(&tiempo);//inicilizamos tiempo
struct tm *f=localtime(&tiempo);//sacamos valores actuales de tiempo
char fech[10];
sprintf(fech,"%i/%i/%i",f->tm_mday,f->tm_mon+1,f->tm_year+1900);
SDL_printf(73,108,fech,10,AZUL);
}
void dato_prestamo(int texbox, int dato)
{
if(texbox==PRESTMS)
{
usuario.prest[contPrestamo]=dato;
}
if(texbox==MONTOPAGO)
{
mntPago[mntCount]=dato;
mntCount++;
}
}
int getPos(char *cedulaPago)
{
FILE *dato = fopen("fixcom.fix", "rb");
int pos=0;
//fseek(dato, 0L, SEEK_SET);
verificarFichero(dato,"dato");
while(fread(&usuario, sizeof(struct user), 1, dato)!=0)
{
pos++;
if(strcmp(cedulaPago, usuario.cedula)==0)
{
fclose(dato);
return pos;
}
}
}
void getPosFich(int pos, FILE *filePtr)
{
fseek(filePtr, pos*sizeof(struct user), SEEK_SET);
}
int mntPagoClt(char *cedula)
{
int prestamoD=0;
FILE *fichLeer=fopen("fixcom.fix", "rb");
while(fread(&usuario, sizeof(struct user), 1, fichLeer)!=0)
{
if(strcmp(cedula, usuario.cedula)==0)
{
fclose(fichLeer);
return prestamoD=atoll(usuario.deuda);
}
}
}
Fichero dato: No error
Fichero dato: No error
Fichero dato: No error
Fichero dato: Too many open files
void verificarFichero(FILE *fil, char *nameFich)
{
if(fil==NULL)
{
fprintf(stdout, "Error de fichero %s", nameFich);
}
}
//codigo boton
posFich=getPos(cedulaPg);
getPosFich(posFich-1, modifFichero);
pagoActual=mntPagoClt(cedulaPg);
sumaPagada=sumar(mntPago, mntCount);
//suma de pago
pagoSumado=pagoActual-sumaPagada;
sprintf(usuario.deuda, "%i", pagoSumado);
//guardamos estructura de datos en fichero
fwrite(&usuario, sizeof(struct user), 1, modifFichero);
//cerramos fichero
fclose(modifFichero);
int getPos(char *cedulaPago)
{
FILE *dato = fopen("fixcom.fix", "rb");
int pos=0;
//fseek(dato, 0L, SEEK_SET);
verificarFichero(dato,"dato");
while(fread(&usuario, sizeof(struct user), 1, dato)!=0)
{
pos++;
if(strcmp(cedulaPago, usuario.cedula)==0)
{
fclose(dato);
return pos;
}
}
}
int mntPagoClt(char *cedula)
{
int prestamoD=0;
FILE *fichLeer=fopen("fixcom.fix", "rb");
while(fread(&usuario, sizeof(struct user), 1, fichLeer)!=0)
{
if(strcmp(cedula, usuario.cedula)==0)
{
fclose(fichLeer);
return prestamoD=atoll(usuario.deuda);
}
}
}
modifFichero=fopen("fixcom.fix","rb+");//lectura binaria y para actualizar descriptor
fdiskR=fopen("fixcom.fix","rb");//leer el fichero completo hasta encontrar lo buscado con strcmp()
fdiskW=fopen("fixcom.fix","a"); //para guardar siempre en la ultima linea del fichero
void getPosFich(int pos, FILE *filePtr)
{
fseek(filePtr, pos*sizeof(struct user), SEEK_SET);
}