#include "fleur.h"

float saisirFleur(){
	int choix;
	FLEUR f;
	printf("Choisissez une fleur dans la liste :\n"); //On demande à l'utilisateur de faire un choix parmis la liste de fleurs suivante
	printf("1 : Rose\n");
	printf("2 : Lys\n");
	printf("3 : Germini\n");
	printf("4 : Oeillet\n");
	printf("5 : Alstroemeria\n");
	printf("6 : Tulipe\n");
	printf("7 : Glaieul\n");
	scanf("%d", &choix); //On récupère le choix de l'utilisateur
	switch(choix){ //Suivant le choix de l'utilisateur on récupère la valeur dans l'énumération
		case 1:
			f = Rose;
			break;
		case 2:
			f = Lys;
			break;
		case 3:
			f = Germini;
			break;
		case 4:
			f = Oeillet;
			break;
		case 5:
			f = Alstroemeria;
			break;
		case 6:
			f = Tulipe;
			break;
		case 7:
			f = Glaieul;
			break;
	}
	return f/10.f; //On divise l'énumération par 10 (définis en valeur entière dans l'énumuration);
}

float saisirCouleur(){ //Même chose pour la fonction saisirCouleur
	int choix;
	COULEUR c;
	printf("Choisissez une couleur dans la liste :\n");
	printf("1 : Rouge\n");
	printf("2 : Blanc\n");
	printf("3 : Rosee\n");
	printf("4 : Jaune\n");
	printf("5 : Orange\n");
	printf("6 : Violet\n");
	printf("7 : Bleu\n");
	scanf("%d", &choix);
	switch(choix){
		case 1:
			c = Rouge;
			break;
		case 2:
			c = Blanc;
			break;
		case 3:
			c = Rosee;
			break;
		case 4:
			c = Jaune;
			break;
		case 5:
			c = Orange;
			break;
		case 6:
			c = Violet;
			break;
		case 7:
			c = Bleu;
			break;
	}
	return c/100.f;
}

void afficherFleur(FLEUR f){ //On affiche le valeur associée à la fleur (voir énumération)
	printf("%.2f euro\n", f/10.f);
}

void afficherCouleur(COULEUR c){ //Même chose pour les couleurs
	printf("%.2f euro\n", c/100.f);
}

void afficherCommande(int _commande[7][7]){
	int i, j;
	char *fleur[] = {"Rose", "Lys", "Germini", "Oeillet", "Alstroemeria", "Tulipe", "Glaieul"}; //On crée des tableaux qui vont être mis en parallèle avec le tableaux de commande
	char *couleur[] = {"Rouge", "Blanc", "Rosee", "Jaune", "Orange", "Violet", "Bleu"};
	for(i = 0; i < 7; i++){
		for(j = 0; j < 7; j++){
			if(_commande[i][j] != 0){
				printf(fleur[i]); //On affiche la fleur choisie par l'utilisateur
				printf(" ");
				printf(couleur[j]); //La couleur choisie par l'utilisateur
				printf(" : ");
				printf("%d\n", _commande[i][j]); //Et la quantité
			}
		}
	}
}

void saisirCommande(int _commande[7][7]){
	int continuer = 1;
	int choix, i, j, quantite;
	while(continuer == 1){
		printf("Choisissez une fleur dans la liste :\n"); //On demande à l'utilisateur de faire un choix parmis la liste de fleurs suivante
		printf("1 : Rose\n");
		printf("2 : Lys\n");
		printf("3 : Germini\n");
		printf("4 : Oeillet\n");
		printf("5 : Alstroemeria\n");
		printf("6 : Tulipe\n");
		printf("7 : Glaieul\n");
		scanf("%d", &i); //On récupère le choix de l'utilisateur
		printf("Choisissez une couleur dans la liste :\n"); //Pareil pour les fleurs
		printf("1 : Rouge\n");
		printf("2 : Blanc\n");
		printf("3 : Rosee\n");
		printf("4 : Jaune\n");
		printf("5 : Orange\n");
		printf("6 : Violet\n");
		printf("7 : Bleu\n");
		scanf("%d", &j);
		printf("Combien en voulez vous ?\n"); //On récupère la quantité désirée
		scanf("%d", &quantite);
		_commande[i-1][j-1] = quantite; //On place la quantité dans le tableau de commande
		printf("Voulez vous continuer ?\n"); //On demande à l'utilisateur si il veut commander de nouvelles fleurs
		printf("1: Oui\n");
		printf("2: Non\n");
		scanf("%d", &choix);
		switch(choix){
			case 1:
				continuer = 1;
				break;
			case 2:
				continuer = 0;
				break;
		}
	}
}

void enregistrerFacture(int _commande[7][7]){
	char *fleur[] = {"Rose", "Lys", "Germini", "Oeillet", "Alstroemeria", "Tulipe", "Glaieul"}; //On crée des tableaux qui vont être mis en parallèle avec le tableaux de commande
	char *couleur[] = {"Rouge", "Blanc", "Rosee", "Jaune", "Orange", "Violet", "Bleu"};
	float prixFleur[7] = {9.f, 11.f, 8.f, 7.f, 1.f, 6.f, 12.f};
	float prixCouleur[7] = {0.f, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f};
	int i;
	int j;
	float prix = 0;
	float prixTotal = 0;
	char tmp[20];
	FILE* facture = NULL;
	facture = fopen("facture.txt", "w+");
	if(facture != NULL){ //Si l'ouverture de la facture à réussie
		fputs("---------------------------------\n", facture);
		fputs("             FACTURE             \n", facture);
		fputs("---------------------------------\n\n", facture);
		for(i = 0; i<7; i++){
			for(j = 0; j<7; j++){
				if(_commande[i][j] != 0){
					fputs(fleur[i], facture); //On affiche la fleur choisie par l'utilisateur
					fputs(" ", facture);
					fputs(couleur[j], facture); //La couleur choisie par l'utilisateur
					fputs(" : ", facture);
					prix = (prixFleur[i]/10)+(prixCouleur[j]/100); //On calcule le prix unitaire
					sprintf(tmp, "%.2f", prix); //On converti le prix unitaire en char
					fputs(tmp, facture);
					fputs(" x ", facture);
					sprintf(tmp, "%d", _commande[i][j]); //On converti la quantité en char
					fputs(tmp, facture);
					fputs(" = ", facture);
					prix = _commande[i][j] * prix; //On calcul le prix de la ligne
					prixTotal = prixTotal + prix; //Et le prix total
					sprintf(tmp, "%.2f", prix); //On converti le prix de la ligne en char
					fputs(tmp, facture);
					fputs(" euros", facture);
					fputs("\n", facture);
				}
			}
		}
		fputs("\n", facture);
		fputs("      Montant totale = ", facture);
		sprintf(tmp, "%.2f", prixTotal); //On converti le prix total en char
		fputs(tmp, facture);
		fputs(" euros\n\n", facture);
		fputs("---------------------------------", facture);
		fclose(facture);
	}
	else{ //Sinon on averti l'utilisateur
		printf("Impossible d'ouvrir la facture");
	}
}
