private void EnregistrerCommandeClientPro() { 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); } //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(); } 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"); } }
private void btn_detailCommande_rendre_articles_selectionnes_Click(object sender, RoutedEventArgs e) { dp.Children.Clear(); //dp.Children.Add(new Accueil()); //dp.Children.Add(new Paiement()); //dp.Children.Clear(); ////Si la commande a déjà été payée je ne pase pas par la page de paiement if (ClasseGlobale._renduCommande.payee == false) { dp.Children.Add(new Paiement()); } else { //Il faut nettoyer le convoyeur et update les articles List <Article> ListeSelectArt = ClasseGlobale._rendreArticlesSelectionnes; 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); } //Mise à jour de la commande comdRendu = CommandeDAO.selectCommandeById(comdRendu.id, true, true, true); bool tousLesArticlesSontIlsRendus = true; //Si j'ai rendu tous les articles de la commande je dois update le champ de la commande foreach (Article art in comdRendu.listArticles) { //Si l'un au moins des articles n'est pas rendu je ne change pas la date rendu de la commande if (art.ifRendu == false) { tousLesArticlesSontIlsRendus = false; break; } } if (tousLesArticlesSontIlsRendus == true) { comdRendu.date_rendu = DateTime.Now; CommandeDAO.updateCommande(comdRendu); } comdRendu = CommandeDAO.selectCommandeById(comdRendu.id, true, true, true); try { RecuPaiement rp = new RecuPaiement(comdRendu); rp.printRecu(); rp.printRecu(); //if (comdRendu.listArticles != null) //{ // TicketVetement ticketVetement = new TicketVetement(comdRendu); // 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(); } } }
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"); } }