#include <stdio.h>
#include "SAE.h"
#define LEN 100

int chargementClients(int* t1, int* t2, int* t3, int tmax){ //charge les tableaux
	FILE *fe;
	int numClient, points,ptsDepense;
	fe=fopen("Adherents.txt","r");
	if(fe==NULL){
		printf("Probleme ouverture fichier");
	return -1;}
	int i=0;
	fscanf("%d%*c %d%*c %d%*c",&numClient,&points,&ptsDepense);
	while(feof(fe)==0){
		if(i>tmax){
			printf("taille du tableau dépassée \n");
			fclose(fe);
		return-1;}
		t1[i]=numClient;
		t2[i]=points;
		t3[i]=ptsDepense;
		fscanf("%d%*c %d%*c %d%*c",&numClient,&points,&ptsDepense);
		i++;
		}
		fclose(fe);
		return i;
}

int rechercheAdherent(int *t1, int val, int LENlo, int *trouve){//recherche un adherent et affiche sont identifiant
	int i;	
	for (i=0;i<LENlo;i++){
		if (val==t1[i]){
			*trouve=0;
			return i;}
		if (val<t1[i]){
			*trouve=1;
			return i;}
	}	
	return i;
}

void choixAdmin(void){//choix menu admin ou adherent
	char admin;
	printf("Êtes vous administrateur? (O/N)");
	scanf("%c%*c",&admin);
	if(admin=='O')
		Admin;
	if(admin=='N')
		Adherent;
}

void Admin(void){//menu admin
	int choix;
	printf("MENU: \n1)Nouvel adhérent \n2)Créditer une carte \n3)Bloquer une carte \n4)Réactiver une carte \n5)Afficher les données d'un adhérent \n6)Supprimer un adhérent");
	scanf("%d",&choix);
	if(choix==1)
		NouvelAdherent;
	if(choix==2)
		CreditCarte; //en lien avec adherents
	if(choix==3)
		Bloquercarte;
	if(choix==4)
		RectiverCarte;
	if(choix==5)
		DonneesAdherent;//en lien avec adherent
	if(choix==6)
		SupprimeAdherent;	
}

void Adherent(void){//menu adherent
	int choix;
	printf("MENU: \n1)Choix Activité \n2)Afficher les données d'un adhérent \n3)Créditer une carte \n");
	scanf("%d",&choix);
	if(choix==1)
		ChoixActivite;
	if(choix==2)
		DonneesAdherent;//en lien avec admin
	if(choix==3)
		CreditCarte;//en lien avec admin
}

int ChoixActivite(int *t1, int *t2,int *t3){//choix de l'activité
	int activite,trouve,i,id;
	printf("Choisissez une activité: \n1)VolleyBall(30pts) \n2)Natation(15pts) \n3)Randonnée(20pts) \n4)Escalade(35pts) \n");
	scanf("%d",&activite);
	printf("Saisir votre identifiant");
	scanf("%d",&id);
	i=rechercheAdherent(t1,id,LEN, &trouve);
	if(activite==1){
		t2[i]=t2[i]-30;
		t3[i]=t3[i]+30;}
	if(activite==2){
		t2[i]=t2[i]-15;
		t3[i]=t3[i]+15;}
	if(activite==3){
		t2[i]=t2[i]-20;
		t3[i]=t3[i]+20;}
	if(activite==4){
		t2[i]=t2[i]-35;
		t3[i]=t3[i]+35;}		
	if(t2[i]<0){
		printf("Erreur: crédit insuffisant.");
		if(activite==1){
			t2[i]=t2[i]+30;
			t3[i]=t3[i]-30;}
		if(activite==2){
			t2[i]=t2[i]+15;
			t3[i]=t3[i]-15;}
		if(activite==3){
			t2[i]=t2[i]+20;
			t3[i]=t3[i]-20;}
		if(activite==4){
			t2[i]=t2[i]+35;
			t3[i]=t3[i]-35;}
		return -1;
	if (t3[i]>=100){
		printf("Vous avez gagné 10pts bonus.");
		t3[i]=t3[i]-100;
		t2[i]=t2[i]+10;
	}
	}
	return 0;
}

void DonneesAdherent(int *t1, int *t2){
	int id,trouve,rech,points;
	printf("Saisir un identifiant:");
	scanf("%d",&id);
	rech=rechercheAdherent(t1,id,LEN,&trouve);
	points=t2[rech];
	printf("Vous êtes l'adhérent %d, et vous avez %d points.",id,points);
}

void CreditCarte(int *t1, int*t2){
	int pts,i,trouve,id;
	float prix;
	printf("Saisir identifiant");
	scanf("%d",&id);
	i=rechercheAdherent(t1,id,LEN,&trouve);
	printf("Saisir un nombre de points(10pts=5€)");
	scanf("%d",&pts);
	while(pts!=0){
		prix=pts*0.5;
		t2[i]=t2[i]+pts;
		printf("Voulez vous saisir plus de points?(10pts=5€)");
		scanf("%d",&pts);}
	printf("Vous avez acheté %d pts pour %.2f €.",pts,prix);
}

void NouvelAdherent(void){
	int *t1, *t2, *t3, tmax;
	char ouinon;
	printf("Voulez-vous créer un nouvel adhérent ? (o/n) : "); //demande de confirmation
	scanf("%c%*c", &ouinon);
	if (ouinon='o'){
		chargementClients(*t1, *t2, *t3, tmax);
		t1[tmax+1] = t1[tmax] +1;
		t2[tmax+1] = 0;
		printf("un nouvel adhérent de n°%d à été créé");
	}
	Admin;
}

void Bloquercarte(void){
	int *t1, *t2, *t3, tmax, *trouve;
	char ouinon;
	int carte;
	printf("Entrez le numéro de la carte à bloquer : ");
	scanf("%d", &carte);
	chargementClients(*t1, *t2, *t3, tmax);
	rechercheAdherent(*t1, carte, tmax, *trouve);
	if (*trouve=0){printf("erreur, adhérent non trouvé");}
	else(printf)
}














