/// <summary> /// Méthode reliée au bouton "Se connecter" côté client qui vérifie si l'identifiant et le mdp rentrés par l'utilisateur correspondent à un couple identifiant/mdp dans la database /// </summary> /// <param name="sender">Bouton "Se connecter"</param> /// <param name="e">Evenement Click</param> private void Button_Click_connect_client(object sender, RoutedEventArgs e) { // Récupération des input string id = ID_client.Text; string mdp = MDP_client.Password; // sécurité sur le mdp pour éviter le caractère retournant une erreur MySQL (fonction Caractere_interdit ne fonctionne pas sur les passwordBox) if (mdp.Contains('"')) { error_label.Content = "Guillemets (\") interdits"; } else { // query pour rechercher si le couple identifiant/mdp rentré par l'utilisateur correspondant à un couple dans la database string query = $"Select count(*) from cooking.client where Identifiant=\"{id}\" and Mot_de_passe=\"{mdp}\";"; List <List <string> > liste = Commandes_SQL.Select_Requete(query); if (liste[0][0] == "1") // si on trouve une occurence de ce couple alors le client existe { // on navigue vers la page client en conservant l'id Page_Client page_client = new Page_Client(id); this.NavigationService.Navigate(page_client); } else { error_label.Content = "Erreur client non reconnu"; } } }
/// <summary> /// Méthode reliée au bouton "Client" ramenant sur la page_Client /// </summary> /// <param name="sender">Bouton "Client"</param> /// <param name="e">Evenement Click</param> private void Client_Click(object sender, RoutedEventArgs e) { Page_Client page_client = new Page_Client(this.id_client); this.NavigationService.Navigate(page_client); }
/// <summary> /// Méthode reliée au bouton "Valider" permettant de Valider le paiement. /// Si le contenu du bouton est "Payer le reste par CB", aucune action n'est effectuée et le client est envoyé sur la page Page_Payer_CB /// Si le contenu du bouton est "Confirmer", on effectue les actions suivantes : /// - Décrémenter le nb de crédit du client /// - Créer une instance de Commande /// --> Pour chaque recette commandée /// * Rémunérer le/les CdR /// * Augmenter le compteur des recettes utilisées de la quantité prise /// * Augmenter le prix de vente /// * Augmenter la rémunération de la recette /// * Créer ses instances de Recette_Commande /// * Diminuer les produits /// </summary> /// <param name="sender">Bouton "Valider"</param> /// <param name="e">Evenement Click</param> private void Valider_Click(object sender, RoutedEventArgs e) { if (Valider.Content.ToString() == "Confirmer") { // Décrémenter le nb de crédit du client int nouveau_solde = Convert.ToInt32(Nv_Solde.Content); string query = $"Update cooking.client set Credit_Cook = {nouveau_solde} where Identifiant = \"{this.id_client}\" ;"; string ex = Commandes_SQL.Insert_Requete(query); // Créer une instance de Commande string date = $"{DateTime.Now.Year}/{DateTime.Now.Month}/{DateTime.Now.Day}"; query = $"Insert into cooking.commande (Date, prix, Identifiant) VALUES(\"{date}\",{Total.Content},\"{this.id_client}\");"; ex = Commandes_SQL.Insert_Requete(query); // Actions pour chacune des recettes for (int i = 0; i < this.liste_panier.Count; i++) { // Rémunérer le/les CdR string nom_recette = this.liste_panier[i][0]; int qt = Convert.ToInt32(this.liste_panier[i][1]); query = $"Select Identifiant, Remuneration, compteur, Prix_Vente from cooking.recette where Nom_Recette = \"{nom_recette}\";"; List <List <string> > info_recette = Commandes_SQL.Select_Requete(query); string identifiant_CdR = info_recette[0][0]; int remuneration = Convert.ToInt32(info_recette[0][1]); int ajout_credit = remuneration * qt; query = $"Select Credit_Cook from cooking.client where Identifiant = \"{identifiant_CdR}\";"; List <List <string> > Credit_CdR = Commandes_SQL.Select_Requete(query); int nvCredit_CdR = Convert.ToInt32(Credit_CdR[0][0]) + ajout_credit; query = $"Update cooking.client set Credit_Cook = {nvCredit_CdR} where Identifiant = \"{identifiant_CdR}\"; "; ex = Commandes_SQL.Insert_Requete(query); // Augmenter le compteur des recettes utilisées de la quantité prise int nvcompteur = Convert.ToInt32(info_recette[0][2]) + qt; query = $"Update cooking.recette set compteur = {nvcompteur} where Nom_Recette = \"{nom_recette}\";"; ex = Commandes_SQL.Insert_Requete(query); // Augmenter le prix de vente // Augmenter la rémunération de la recette if (nvcompteur > 10 && Convert.ToInt32(info_recette[0][2]) <= 10) //nv compteur >10 et ancien <=10 { int nv_prix = 2 + Convert.ToInt32(info_recette[0][3]); int remuneration_CdR = 2; if (nvcompteur > 50 && Convert.ToInt32(info_recette[0][2]) <= 50)//nv compteur >50 et ancien <=50 { nv_prix = 5 + Convert.ToInt32(info_recette[0][3]); remuneration_CdR = 4; } query = $"Update cooking.recette set Prix_Vente = {nv_prix}, Remuneration = {remuneration_CdR} where Nom_Recette = \"{nom_recette}\";"; ex = Commandes_SQL.Insert_Requete(query); } // Créer ses instances de Recette_Commande query = $"select count(*) from cooking.commande"; //notre commande est la dernière, donc Ref_Commande = count(*) //En effet ref_commande est un autoincrement List <List <string> > List_Ref_Commande = Commandes_SQL.Select_Requete(query); query = $"Insert into cooking.composition_commande VALUES (\"{nom_recette}\",{List_Ref_Commande[0][0]}, {qt} );"; ex = Commandes_SQL.Insert_Requete(query); //Diminuer les produits query = $"select Nom_Produit, Quantite_Produit from cooking.composition_recette where Nom_Recette = \"{nom_recette}\";"; List <List <string> > List_Produit_QT_dans_recette = Commandes_SQL.Select_Requete(query); for (int j = 0; j < List_Produit_QT_dans_recette.Count; j++) { int diminution = qt * Convert.ToInt32(List_Produit_QT_dans_recette[j][1]); query = $"select Stock from cooking.produit where Nom_Produit = \"{List_Produit_QT_dans_recette[j][0]}\";"; List <List <string> > List_Stock = Commandes_SQL.Select_Requete(query); int nv_Stock = Convert.ToInt32(List_Stock[0][0]) - diminution; query = $"Update cooking.produit set Stock = \"{nv_Stock}\" where Nom_Produit = \"{List_Produit_QT_dans_recette[j][0]}\" ;"; Commandes_SQL.Insert_Requete(query); } } Page_Client page_Client = new Page_Client(this.id_client); this.NavigationService.Navigate(page_Client); } else { Page_Payer_CB page_payer_cb = new Page_Payer_CB(); this.NavigationService.Navigate(page_payer_cb); } }