public static void Checkout(int userId, int paymentTypeID, List <Carts> carts) { HeaderTransactions headerTransaction = TransactionFactory.CreateHeader(userId, paymentTypeID); int headerTransactionId = TransactionRepository.InsertHeaderTransaction(headerTransaction).ID; foreach (var item in carts) { DetailTransactions detailTransaction = TransactionFactory.CreateDetail(headerTransactionId, item); TransactionRepository.InsertDetailTransaction(detailTransaction); } }
public static DetailTransactions CreateDetail(int headerTransactionId, Carts cart) { DetailTransactions detailTransaction = new DetailTransactions() { TransactionID = headerTransactionId, ProductID = cart.Products.ID, Quantity = cart.Quantity }; return(detailTransaction); }
private void btnAjouter_Click_1(object sender, RoutedEventArgs e) { try { System.Windows.Data.CollectionViewSource transactionsViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("transactionsViewSource"))); Transactions Trans = transactionsViewSource.View.CurrentItem as Transactions; Produits pro = rcbProduit.SelectedItem as Produits; DetailTransactions trans = ArticleExistGrid(pro); if (trans != null) { trans.Quantite += (float)rnQuantite.Value; trans.Montant = Convert.ToDecimal(rnPU.Value * trans.Quantite); } else { trans = new DetailTransactions(); trans.Produits = pro; trans.Date = rdpDate.SelectedDate; trans.Quantite = (float)rnQuantite.Value; trans.prix = Convert.ToDecimal(rnPU.Value); trans.Descriptions = pro.Libelle; trans.Montant = Convert.ToDecimal(rnPU.Value * rnQuantite.Value); trans.Etat = "ACTIF"; //trans.idHotel = GlobalData.HotId; } Trans.DetailTransactions.Add(trans); Trans.TotalTTC += Convert.ToDecimal(rnPU.Value * (float)rnQuantite.Value); Trans.TotalReste = Trans.TotalTTC - Trans.TotalPaye; res.TotalPaye = Trans.TotalPaye; res.TotalReste = Trans.TotalReste; res.TotalTTC = Trans.TotalTTC; res.Reduction = Trans.Reduction; if (Trans.TotalReste != 0) { Trans.Etat = "PARTIELLEMENT PAYE"; } ClearArticle(); load(); } catch (Exception) { } }
public static DetailTransactions InsertDetailTransaction(DetailTransactions detailTransaction) { DatabaseEnt db = new DatabaseEnt(); db.DetailTransactions.Add(detailTransaction); db.SaveChanges(); int productId = detailTransaction.ProductID; int quantity = detailTransaction.Quantity; ProductRepository.decreaseStock(productId, quantity); return(detailTransaction); }
private void btnEnregistrer_Click(object sender, RoutedEventArgs e) { try { //if (!GlobalData.VerifyClotureSession()) //{ // var result = MessageBox.Show("Voulez-vous fermer la session précédente ?", "Message", MessageBoxButton.YesNo, MessageBoxImage.Warning); // if (result == MessageBoxResult.Yes) // { // RadDocumentPane radMenu = new RadDocumentPane(); // radMenu.Content = new GESHOTEL.ReservationsModules.Views.Win.ClotureJourneeFrm("Cloture de la session du " + GlobalData.CurrentRegistres.DateDebut.Value.ToShortDateString()); // radMenu.Header = "Cloture de la session du " + GlobalData.CurrentRegistres.DateDebut.Value.ToShortDateString(); // GlobalData.rrvMain.Title = "Cloture de la session du " + GlobalData.CurrentRegistres.DateDebut.Value.ToShortDateString(); // radMenu.FontFamily = new FontFamily("Perpetua Titling MT"); // radMenu.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; // radMenu.VerticalAlignment = System.Windows.VerticalAlignment.Stretch; // if (!GlobalData.VerifyDock("Cloture de la session du " + GlobalData.CurrentRegistres.DateDebut.Value.ToShortDateString())) // { // GlobalData.PaneGroup.AddItem(radMenu, Telerik.Windows.Controls.Docking.DockPosition.Center); // } // else // { // } // } // return; //} Chambres Cham = chambreAutoCompleteBox.SelectedItem as Chambres; if (Cham.EtatOperation == "SALLE") { MessageBox.Show("La chambre est salle veuillez la nettoyée", "Message", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var results = MessageBox.Show("Voulez-vous enregistrer ?", "Message", MessageBoxButton.YesNo, MessageBoxImage.Question); if (results == MessageBoxResult.Yes) { int NbreHr = -rtHD.SelectedTime.Value.Subtract(rtHF.SelectedTime.Value).Hours; if (rnHeure.Value <= 0) { MessageBox.Show("Le nombre d'heure ne peut pa etre egale a 0", "Message", MessageBoxButton.OKCancel, MessageBoxImage.Warning); return; } if (chambreAutoCompleteBox.SelectedItem == null) { MessageBox.Show("Choisissez une chambre svp", "Message", MessageBoxButton.OKCancel, MessageBoxImage.Warning); return; } if (NbreHr <= 0) { MessageBox.Show("Le nombre d'heure ne peut pa etre egale a 0", "Message", MessageBoxButton.OKCancel, MessageBoxImage.Warning); return; } Transactions Trans = new Transactions(); Trans.DateTransaction = DateTime.Now; Trans.TotalPaye = Convert.ToDecimal(rntarif.Value); Trans.TotalTTC = Convert.ToDecimal(rntarif.Value); Trans.TotalHT = Convert.ToDecimal(rntarif.Value); Trans.TVA = 0; Trans.TotalReste = 0; Trans.Etat = "PAYE"; DetailPaiements dtPaie = new DetailPaiements(); dtPaie.Montant = rntarif.Value; dtPaie.DatePaiement = DateTime.Now; dtPaie.MethodePaiements = GlobalData.model.MethodePaiements.Where(c => c.Libelle == "ESPECE").First(); dtPaie.Transactions = Trans; dtPaie.Etat = "ACTIF"; //dtPaie.idHotel = GlobalData.HotId; Trans.DetailPaiements.Add(dtPaie); if (Cham.EtatOperation == "LIBRE" || Cham.EtatOperation == "RESERVER") { Cham.EtatOperation = "OCCUPER"; } DetailTransactions dtTrans = new DetailTransactions(); dtTrans.Date = DateTime.Now; dtTrans.Descriptions = "CHAMBRE " + Cham.TypeChambres.Libelle + " " + Cham.Numero; dtTrans.prix = Convert.ToDecimal(rntarif.Value); dtTrans.Quantite = 1; dtTrans.Montant = Convert.ToDecimal(rntarif.Value); dtTrans.Transactions = Trans; dtTrans.Etat = "ACTIF"; //dtTrans.idHotel = GlobalData.HotId; dtTrans.Produits = GlobalData.model.Produits.Where(c => c.Libelle == "CHAMBRE").First(); Trans.DetailTransactions.Add(dtTrans); ReservationTypes resType = GlobalData.model.ReservationTypes.Where(c => c.ReservationType == "PASSAGE").First(); Reservations Reservations = new Reservations(); Reservations.ReservationDate = DateTime.Now; Reservations.Chambres = Cham; Reservations.Transactions.Add(Trans); Reservations.ReservationTypes = resType; Reservations.NbreNuit = NbreHr; Reservations.Etat = "ACTIF"; Reservations.EtatOperation = "ARRIVEE"; Reservations.TotalPaye = Trans.TotalPaye; Reservations.TotalReste = Trans.TotalReste; Reservations.TotalTTC = Trans.TotalTTC; Reservations.DateDepart = new DateTime(rtHF.SelectedDate.Value.Year, rtHF.SelectedDate.Value.Month, rtHF.SelectedDate.Value.Day, rtHF.SelectedTime.Value.Hours, rtHF.SelectedTime.Value.Minutes, rtHF.SelectedTime.Value.Seconds); Reservations.DateArrive = new DateTime(rtHD.SelectedDate.Value.Year, rtHD.SelectedDate.Value.Month, rtHD.SelectedDate.Value.Day, rtHD.SelectedTime.Value.Hours, rtHD.SelectedTime.Value.Minutes, rtHD.SelectedTime.Value.Seconds); Reservations.TypeOperation = "LOCATION CHAMBRE"; Reservations.DateCheckIn = DateTime.Now; Reservations.isCheckIn = true; //Reservations.idHotel = GlobalData.HotId; Reservations.idRegistre = GlobalData.RegId; //Trans.idHotel = GlobalData.HotId; Trans.idRegistre = GlobalData.RegId; Trans.TypeTransaction = resType.ReservationType; Parametres param = GlobalData.model.Parametres.Where(c => c.IdParametre == 1).First(); Trans.TransactionNumero = GlobalData.GenerateFacture(param.TransNum.ToString(), 6); param.TransNum++; GlobalData.model.Transactions.Add(Trans); GlobalData.model.Reservations.Add(Reservations); GlobalData.model.SaveChanges(); var result = MessageBox.Show("Voulez vous imprimer le recu?", "Vente", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (result == MessageBoxResult.Yes) { try { //RapportWindows frm = new RapportWindows(Reservations.ID, "", "ALL"); //frm.ShowDialog(); //frm.Print(); } catch (Exception ex) { } } //MessageBox.Show("Operation terminée", "Message", MessageBoxButton.OK, MessageBoxImage.None); Clear(); GlobalFO.rpVM.Load(); chambreAutoCompleteBox.Focus(); } } catch (Exception ex) { if (ex.Message == "Échec du fournisseur sous-jacent sur Commit.") { } else { } } }
private void GetCancelFeeFirstLast(Cancelations can) { Transactions Trans = SelectedReservations.Transactions.FirstOrDefault(); List <DetailTransactions> lstDtChambres = Trans.DetailTransactions.Where(c => c.Etat == "ACTIF" && c.Produits.Categories.Libelle == "CHAMBRES").ToList(); List <DetailPaiements> lstDtPaie = Trans.DetailPaiements.Where(c => c.Etat == "ACTIF").ToList(); //Annuler les details transactions concernant la chambre foreach (DetailTransactions item in lstDtChambres) { item.Etat = "ANNULER"; } foreach (DetailPaiements item in lstDtPaie) { item.Etat = "ANNULER"; } double NbreHr = SelectedReservations.DateArrive.Value.Subtract(DateTime.Now).TotalDays; if (NbreHr < can.TimeFrame) { DetailTransactions trans = new DetailTransactions(); trans.Produits = GlobalData.modelRP.Produits.Where(c => c.Libelle == "FRAIS D'ANNULATION DE LA RESERVATION").FirstOrDefault();; trans.Date = DateTime.Now; trans.Quantite = (float)1; if (can.Type == 0) { DetailTransactions dt = lstDtChambres.FirstOrDefault(); trans.prix = Convert.ToDecimal((double)dt.prix * can.PourcentageAfter * 0.01) + can.HandlingFee; } else { trans.prix = Convert.ToDecimal(can.MontantAfter) + can.HandlingFee; } trans.Descriptions = "FRAIS D'ANNULATION DE LA RESERVATION " + SelectedReservations.ID; trans.Montant = Convert.ToDecimal(trans.Quantite * (double)trans.prix); trans.Etat = "ACTIF"; //trans.idHotel = GlobalData.HotId; Trans.DetailTransactions.Add(trans); Trans.TotalTTC = Convert.ToDecimal(trans.Quantite * (double)trans.prix) + can.HandlingFee; Trans.TotalHT = Trans.TotalTTC; Trans.TVA = 0; if ((Trans.TotalPaye - Trans.TotalTTC) < 0) { Trans.TotalReste = 0; DetailPaiements dtPaie = new DetailPaiements(); dtPaie.Montant = (double)Trans.TotalPaye; dtPaie.DatePaiement = DateTime.Now; dtPaie.MethodePaiements = GlobalData.modelRP.MethodePaiements.Where(c => c.Libelle == "ESPECE").FirstOrDefault(); dtPaie.Transactions = Trans; dtPaie.Etat = "ACTIF"; //dtPaie.idHotel = GlobalData.HotId; } else { Trans.TotalReste = 0; Trans.TotalPaye = Trans.TotalTTC; DetailPaiements dtPaie = new DetailPaiements(); dtPaie.Montant = (double)Trans.TotalPaye; dtPaie.DatePaiement = DateTime.Now; dtPaie.MethodePaiements = GlobalData.modelRP.MethodePaiements.Where(c => c.Libelle == "ESPECE").FirstOrDefault(); dtPaie.Transactions = Trans; dtPaie.Etat = "ACTIF"; //dtPaie.idHotel = GlobalData.HotId; } SelectedReservations.TotalPaye = Trans.TotalPaye; SelectedReservations.TotalReste = Trans.TotalReste; SelectedReservations.TotalTTC = Trans.TotalTTC; SelectedReservations.Reduction = Trans.Reduction; Trans.Etat = "PAYE"; SelectedReservations.CancelDate = DateTime.Now; SelectedReservations.Etat = "TERMINER"; SelectedReservations.EtatOperation = "ANNULER"; if (SelectedReservations.Chambres != null) { SelectedReservations.Chambres.EtatOperation = "LIBRE"; } GlobalData.modelRP.SaveChanges(); Load(); MessageBox.Show("Operation terminée", "Message", MessageBoxButton.OK, MessageBoxImage.None); } else if (NbreHr > can.TimeFrame) { DetailTransactions trans = new DetailTransactions(); trans.Produits = GlobalData.modelRP.Produits.Where(c => c.Libelle == "FRAIS D'ANNULATION DE LA RESERVATION").First();; trans.Date = DateTime.Now; trans.Quantite = (float)1; if (can.Type == 0) { DetailTransactions dt = lstDtChambres.FirstOrDefault(); trans.prix = Convert.ToDecimal((double)dt.prix * can.PourcentageBefore * 0.01) + can.HandlingFee; } else { trans.prix = Convert.ToDecimal(can.MonantBefore) + can.HandlingFee; } trans.Descriptions = "FRAIS D'ANNULATION DE LA RESERVATION " + SelectedReservations.ID; trans.Montant = Convert.ToDecimal(trans.Quantite * (double)trans.prix); trans.Etat = "ACTIF"; //trans.idHotel = GlobalData.HotId; Trans.DetailTransactions.Add(trans); Trans.TotalTTC = Convert.ToDecimal(trans.Quantite * (double)trans.prix) + can.HandlingFee; Trans.TotalHT = Trans.TotalTTC; Trans.TVA = 0; if ((Trans.TotalPaye - Trans.TotalTTC) < 0) { Trans.TotalReste = 0; DetailPaiements dtPaie = new DetailPaiements(); dtPaie.Montant = (double)Trans.TotalPaye; dtPaie.DatePaiement = DateTime.Now; dtPaie.MethodePaiements = GlobalData.modelRP.MethodePaiements.Where(c => c.Libelle == "ESPECE").FirstOrDefault(); dtPaie.Transactions = Trans; dtPaie.Etat = "ACTIF"; //dtPaie.idHotel = GlobalData.HotId; } else { Trans.TotalReste = 0; Trans.TotalPaye = Trans.TotalTTC; DetailPaiements dtPaie = new DetailPaiements(); dtPaie.Montant = (double)Trans.TotalPaye; dtPaie.DatePaiement = DateTime.Now; dtPaie.MethodePaiements = GlobalData.modelRP.MethodePaiements.Where(c => c.Libelle == "ESPECE").FirstOrDefault(); dtPaie.Transactions = Trans; dtPaie.Etat = "ACTIF"; //dtPaie.idHotel = GlobalData.HotId; } SelectedReservations.TotalPaye = Trans.TotalPaye; SelectedReservations.TotalReste = Trans.TotalReste; SelectedReservations.TotalTTC = Trans.TotalTTC; SelectedReservations.Reduction = Trans.Reduction; Trans.Etat = "PAYE"; SelectedReservations.CancelDate = DateTime.Now; SelectedReservations.Etat = "TERMINER"; SelectedReservations.EtatOperation = "ANNULER"; SelectedReservations.Chambres.EtatOperation = "LIBRE"; GlobalData.modelRP.SaveChanges(); Load(); MessageBox.Show("Operation terminée", "Message", MessageBoxButton.OK, MessageBoxImage.None); } else { } }
private void btnEnregistrer_Click(object sender, RoutedEventArgs e) { try { Chambres Cham = rcbChambres.SelectedItem as Chambres; int NbreHr = (int)rnHeure.Value; if (rcbChambres.SelectedIndex == -1) { MessageBox.Show("Choisissez une chambre svp", "Message", MessageBoxButton.OKCancel, MessageBoxImage.Warning); return; } if (NbreHr <= 0) { MessageBox.Show("Le nombre d'heure ne peut pas etre égale a 0", "Message", MessageBoxButton.OKCancel, MessageBoxImage.Warning); return; } Transactions Trans = Res.Transactions.FirstOrDefault(); Trans.TotalPaye = Convert.ToDecimal(rntarif.Value); Trans.TotalTTC = Convert.ToDecimal(rntarif.Value); Trans.TotalHT = Convert.ToDecimal(rntarif.Value); Trans.TVA = 0; Trans.TotalReste = 0; //Trans.Etat = "PAYE"; DetailPaiements dtPaie = Trans.DetailPaiements.FirstOrDefault(); dtPaie.Montant = rntarif.Value; DetailTransactions dtTrans = Trans.DetailTransactions.FirstOrDefault(); dtTrans.prix = Convert.ToDecimal(rntarif.Value); dtTrans.Quantite = 1; dtTrans.Montant = Convert.ToDecimal(rntarif.Value); Res.Chambres.EtatOperation = "LIBRE"; Res.Chambres = Cham; Cham.EtatOperation = "OCCUPER"; //Res.Chambres = Cham; Res.NbreNuit = NbreHr; Res.TotalPaye = Trans.TotalPaye; Res.TotalReste = Trans.TotalReste; Res.TotalTTC = Trans.TotalTTC; Res.DateDepart = new DateTime(rtHF.SelectedDate.Value.Year, rtHF.SelectedDate.Value.Month, rtHF.SelectedDate.Value.Day, rtHF.SelectedTime.Value.Hours, rtHF.SelectedTime.Value.Minutes, rtHF.SelectedTime.Value.Seconds); GlobalData.model.SaveChanges(); MessageBox.Show("Operation terminée", "Message", MessageBoxButton.OK, MessageBoxImage.None); this.Close(); } catch (Exception ex) { if (ex.Message == "Échec du fournisseur sous-jacent sur Commit.") { } else { } } }