private void ValidationPaiement() { if (ClasseGlobale.Client != null) { //Récupération des articles de la commande, du client, et du paiement et enregistrement en bdd Client client = ClasseGlobale.Client; //Validation du paiement if (Reste_a_payer == 0) { //Récupère la liste des articles, il y'en a qu'une seule qui soit initialisée. L'autre est nulle ObservableCollection <ArticlesVM> cmdDetail = ClasseGlobale._contentDetailCommande; List <Article> ListeSelectArt = ClasseGlobale._rendreArticlesSelectionnes; //Si je viens de l'écran de nouvelle commande if (cmdDetail != null) { Commande cmd = new Commande(DateTime.Now, true, Txb_paiement_montantRemise, client); CommandeDAO.insertCommande(cmd); cmd = CommandeDAO.selectCommandeById(CommandeDAO.lastCommande().id, false, true, false); //Enregistrement des articles foreach (ArticlesVM artVM in cmdDetail) { Article art = artVM.getArticle(cmd.id); art.date_payee = DateTime.Now; ArticleDAO.insertArticle(art); } //Enregistrement du/des paiement(s) Payement paiement; ICollection <String> liste_des_moyens_de_paiement = listeDeMontantParMoyenPaiement.dico.Keys; foreach (String monMoyenDePaiement in liste_des_moyens_de_paiement) { paiement = new Payement(DateTime.Now, listeDeMontantParMoyenPaiement[monMoyenDePaiement], monMoyenDePaiement, cmd.id); PayementDAO.insertPaiement(paiement); } //Mise à jour de la table convoyeur foreach (PlaceConvoyeur place in ClasseGlobale.PlacesLibres.getList()) { PlaceConvoyeurDAO.updatePlaceConvoyeur(place); } Commande cmdTota = CommandeDAO.selectCommandeById(cmd.id, true, true, true); //MessageBox.Show("La commande " + cmdTota.id + " à été enregistrée avec succès"); try { RecuPaiement rp = new RecuPaiement(cmdTota); rp.printRecu(); rp.printRecu(); if (cmdTota.listArticles != null) { TicketVetement ticketVetement = new TicketVetement(cmdTota); ticketVetement.printAllArticleCmd(); } else { MessageBox.Show("La commande ne contient pas d'articles"); } } catch (Exception) { MessageBox.Show("Impression refusée"); } finally { //initialise tout ClasseGlobale.SET_ALL_NULL(); } //FactureExcel fe = new FactureExcel(CommandeDAO.selectCommandeById(cmd.id, true, true, true)); //fe.printFacture(); } //Si je viens de l'écran de rendu des articles else if (ListeSelectArt != null) { Commande comdRendu = ClasseGlobale._renduCommande; foreach (Article art in ListeSelectArt) { //Mise à jour de la place convoyeur //1 - dans la table convoyeur : on soustrait l'encombrement //2 - dans la table article : id convoyeur devient nul art.convoyeur.encombrement = (float)((decimal)art.convoyeur.encombrement - (decimal)art.type.encombrement); //Si un article est à la même place, il faut modifier sa place convoyeur pour qu'elle corresponde au changement appliqué //Permet la mise à jour correcte de la table convoyeur foreach (Article art2 in ListeSelectArt) { //Si j'ai un autre article au même emplacement convoyeur if (art2.convoyeur.id == art.convoyeur.id && art2.id != art.id) { //Je lui attribut le bon encombrement art2.convoyeur.encombrement = art.convoyeur.encombrement; } } PlaceConvoyeurDAO.updatePlaceConvoyeur(art.convoyeur); Article artAdd = new Article(art.id, art.photo, art.commentaire, true, art.TVA, art.TTC, art.type, null, comdRendu.id); artAdd.date_rendu = DateTime.Now; artAdd.date_payee = DateTime.Now; ArticleDAO.updateArticle(artAdd); } //Enregistrement du/des paiement(s) Payement paiement; ICollection <String> liste_des_moyens_de_paiement = listeDeMontantParMoyenPaiement.dico.Keys; foreach (String monMoyenDePaiement in liste_des_moyens_de_paiement) { paiement = new Payement(DateTime.Now, listeDeMontantParMoyenPaiement[monMoyenDePaiement], monMoyenDePaiement, comdRendu.id); PayementDAO.insertPaiement(paiement); } //Mise à jour de la commande comdRendu = CommandeDAO.selectCommandeById(comdRendu.id, true, true, true); //Vérification du paiement //1 - Je calcule le montant total de la commande //2 - Je calcule le montant payé total decimal prixTotalDeLaCommande = 0; foreach (Article article in comdRendu.listArticles) { prixTotalDeLaCommande += (decimal)article.TTC; } decimal prixPayeTotal = 0; if (comdRendu.listPayements.Count > 0) { foreach (Payement paiementEffectue in comdRendu.listPayements) { prixPayeTotal += (decimal)paiementEffectue.montant; } } decimal resteAPayer = prixTotalDeLaCommande - prixPayeTotal - (decimal)Txb_paiement_montantRemise; if (resteAPayer == 0) { //Mise à jour de la commande, le champ cmd_payee passe à 1 comdRendu.payee = true; comdRendu.date_rendu = DateTime.Now; } else { MessageBox.Show("Un reste à payer de " + resteAPayer); } if (Txb_paiement_montantRemise != 0) { comdRendu.remise = Txb_paiement_montantRemise; } if (Txb_paiement_montantRemise != 0 || resteAPayer == 0) { CommandeDAO.updateCommande(comdRendu); } Commande cmdTota = CommandeDAO.selectCommandeById(comdRendu.id, true, true, true); try { RecuPaiement rp = new RecuPaiement(cmdTota); rp.printRecu(); rp.printRecu(); } catch (Exception) { MessageBox.Show("Impression refusée"); } finally { //initialise tout ClasseGlobale.SET_ALL_NULL(); } } //Si je ne viens pas des pages précedentes //Mes liste sont vides => paiement déjà effectué else { MessageBox.Show("La commande à été correctement enregistrée, cliquez sur le bouton home pour retourner à l'accueil"); } //Accueil page2Obj = new Accueil(); //Create object of Page2 //page2Obj.Show(); //Show page2 //this.Close(); } else { MessageBox.Show("Toute la commande n'a pas été payée. Veuillez s'il vous plait compléter l'intégralité du paiement."); } } else { MessageBox.Show("La commande à été correctement enregistrée, cliquez sur le bouton home pour retourner à l'accueil"); } }
// Insertion de la commande et des articles concernants dans la bdd pour un paiment différé private void paiementDiffere() { if (ClasseGlobale.Client.nom != "") { if (ClasseGlobale._contentDetailCommande == null) { MessageBox.Show("Ajoutez des articles"); } else { Commande cmd = new Commande(DateTime.Now, false, 0, ClasseGlobale.Client); //ObservableCollection<ArticlesVM> listeArticles = ClasseGlobale._contentDetailCommande; if (CommandeDAO.insertCommande(cmd) == 1) { cmd = CommandeDAO.lastCommande(); foreach (ArticlesVM artVM in ClasseGlobale._contentDetailCommande) { ArticleDAO.insertArticle(artVM.getArticle(cmd.id)); } //Mise à jour de la table convoyeur foreach (PlaceConvoyeur place in ClasseGlobale.PlacesLibres.getList()) { PlaceConvoyeurDAO.updatePlaceConvoyeur(place); } MessageBox.Show("La commande " + cmd.id + " à été enregistrée avec succès"); //Clear l'écran et bloque l'utilisation des touches try { cmd = CommandeDAO.selectCommandeById(cmd.id, true, true, true); RecuPaiement rp = new RecuPaiement(cmd); rp.printRecu(); rp.printRecu(); //impression des tickets vetements if (cmd.listArticles != null) { TicketVetement ticketVetement = new TicketVetement(cmd); ticketVetement.printAllArticleCmd(); } else { MessageBox.Show("La commande ne contient pas d'articles"); } } catch (Exception) { MessageBox.Show("Impression refusée"); } finally { ClasseGlobale.SET_ALL_NULL(); commandePayeeEnDiffere = true; } } else { MessageBox.Show("Erreur lors de la création de la commande. Enregistrement de la commande annulé"); } } } else { MessageBox.Show("La comande a déjà été enregistrée. Veuillez cliquer sur HOME"); } }