public ObservableCollection <TableRemise> calculateMontantRemiseFromTableRemise(ObservableCollection <TableRemise> RemiseCollection, ObservableCollection <TableProduct> ProductsCollection, ObservableCollection <TableAvoir> AvoirCollection, ObservableCollection <TableEchangeDirect> EchangeDirectCollection) { CalculResultBean resultBean = getResultBeanWithoutRemises(AvoirCollection, EchangeDirectCollection, ProductsCollection); decimal totalAfterAvoirAndEchangeDirect = resultBean.totalProduits - (resultBean.totalEchangeAndAvoir + resultBean.totalEchangeDirect); foreach (var remise in RemiseCollection) { if (remise.Type == RemiseType.POURCENTAGE.ToString()) { decimal valeurRemiseDecimal = decimal.Parse(remise.Valeur); decimal calculatedRemiseValue = valeurRemiseDecimal * totalAfterAvoirAndEchangeDirect / 100; totalAfterAvoirAndEchangeDirect -= calculatedRemiseValue; remise.Montant = string.Format("{0:0.00}", totalAfterAvoirAndEchangeDirect); } else if (remise.Type == RemiseType.VALEUR.ToString()) { remise.Montant = remise.Valeur; } } return(RemiseCollection); }
private void ARendreCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.aRendreESP = 0; this.aRendreAVOIR = 0; string selectedItem = ((ComboboxBean)ARendreCombobox.SelectedItem).Value; CalculResultBean calculBean = TransactionManager.getFinalCalculResultBean(RemiseCollection, AvoirCollection, EchangeDirectCollection, ProduitsCollection, this.monnaiePayeeESP, this.monnaiePayeeCB, this.monnaiePayeeCHEQUE, this.aRendreAVOIR, this.aRendreESP, getSelectedARendreValue()); if (selectedItem == "AVOIR") { ARendreEspScreen.Text = "0"; ARendreAvoirScreen.Text = calculBean.ARendreAvoir.ToString(); ARendreAvoirScreen.IsEnabled = false; ARendreEspScreen.IsEnabled = false; } else if (selectedItem == "ESP") { ARendreAvoirScreen.Text = "0"; ARendreEspScreen.Text = calculBean.ARendreESP.ToString(); ARendreAvoirScreen.IsEnabled = false; ARendreEspScreen.IsEnabled = false; } else if (selectedItem == "LES DEUX") { ARendreAvoirScreen.IsEnabled = true; ARendreEspScreen.IsEnabled = true; } }
private void calculateOnUi(Boolean refreshAPayerScreen, Boolean fromMultipay, Boolean updateProduct, Boolean updateEchangeDirect, Boolean updateAvoir, Boolean updateRemise) { //We reset all user entries before reculating if... if (updateProduct || updateEchangeDirect || updateAvoir || updateRemise) { resetUserMoneyEntries(); } CalculResultBean calculBean = TransactionManager.getFinalCalculResultBean(RemiseCollection, AvoirCollection, EchangeDirectCollection, ProduitsCollection, this.monnaiePayeeESP, this.monnaiePayeeCB, this.monnaiePayeeCHEQUE, this.aRendreAVOIR, this.aRendreESP, getSelectedARendreValue()); MontantAvoirScreen.Text = calculBean.totalAvoir.ToString(); EchangeDirectScreen.Text = calculBean.totalEchangeDirect.ToString(); RemiseScreen.Text = calculBean.totalRemise.ToString(); ARendreScreen.Text = calculBean.ARendre.ToString(); if (calculBean.totalReductions > calculBean.totalProduits) { TypePaiementScreen.IsEnabled = false; ARendreCombobox.IsEnabled = true; ResteAPayerScreen.Text = "0"; ARendreScreen.Text = "0"; ARendreAvoirScreen.Text = (calculBean.totalReductions - calculBean.totalProduits).ToString(); } else if (calculBean.totalReductions == calculBean.totalProduits) { ARendreCombobox.IsEnabled = false; TypePaiementScreen.IsEnabled = false; ARendreCombobox.IsEnabled = false; ARendreAvoirScreen.IsEnabled = false; ARendreEspScreen.IsEnabled = false; ARendreAvoirScreen.Text = "0"; ARendreEspScreen.Text = "0"; ResteAPayerScreen.Text = "0"; ARendreScreen.Text = "0"; } else { if (refreshAPayerScreen) { ResteAPayerScreen.Text = calculBean.resteAPayer.ToString(); } ARendreAvoirScreen.Text = "0"; ARendreEspScreen.Text = "0"; ARendreCombobox.IsEnabled = false; TypePaiementScreen.IsEnabled = true; ARendreAvoirScreen.IsEnabled = false; ARendreEspScreen.IsEnabled = false; } if (fromMultipay) { ResteAPayerScreen.Text = "0"; } TotalAPayerScreen.Text = "A PAYER : " + calculBean.totalAPayer.ToString() + " €"; }
public Transaction registerTransaction(CalculResultBean calculBean, TransactionTypeEnum transactionType) { using (var context = new bourseContainer()) { decimal giftCouponValue = calculBean.totalBonCadeau; decimal couponValue = calculBean.totalAvoir; decimal usedCouponExchangeValue = calculBean.totalEchangeAndAvoirUtil; decimal exchangeValue = calculBean.totalEchange; decimal convertedCouponExchangeValue = calculBean.avoirEchangeConverti; decimal discountOfferValue = calculBean.totalRemise; decimal payCardValue = calculBean.monnaiePayeeCB; decimal cashValue = calculBean.monnaiePayeeESP; decimal realCashValue = calculBean.monnaiePayeeReelESP; decimal emittedCouponValue = calculBean.ARendreAvoir; decimal emittedCashValue = calculBean.ARendreESP; decimal realEmittedCashValue = calculBean.ARendreReelESP; decimal totalSalesValue = calculBean.totalProduits; decimal totalBuyValue = calculBean.totalEchange; int productCount = calculBean.productCount; string store = ""; //TODO Transaction transaction = new Transaction { giftCouponValue = giftCouponValue, couponValue = couponValue, usedCouponExchangeValue = usedCouponExchangeValue, exchangeValue = exchangeValue, convertedCouponExchangeValue = convertedCouponExchangeValue, discountOfferValue = discountOfferValue, paycardValue = payCardValue, cashValue = cashValue, realCashValue = realCashValue, emittedCashValue = emittedCashValue, realEmittedCashValue = realEmittedCashValue, totalSalesValue = totalSalesValue, totalBuyValue = totalBuyValue, productCount = productCount, store = store, datetime = DateTime.Now, transactionType = transactionType.ToString() }; context.Entry(transaction).State = EntityState.Added; context.SaveChanges(); context.Entry(transaction).State = EntityState.Detached; return(transaction); } }
private void ARendreEspScreen_KeyUp(object sender, KeyEventArgs e) { ARendreEspScreen.Text.Replace(".", ","); if (!decimal.TryParse(ARendreEspScreen.Text, out this.aRendreESP)) { return; } else { this.aRendreAVOIR = 0; CalculResultBean calculBean = TransactionManager.getFinalCalculResultBean(RemiseCollection, AvoirCollection, EchangeDirectCollection, ProduitsCollection, this.monnaiePayeeESP, this.monnaiePayeeCB, this.monnaiePayeeCHEQUE, this.aRendreAVOIR, this.aRendreESP, getSelectedARendreValue()); ARendreAvoirScreen.Text = calculBean.ARendreAvoir.ToString(); } }
public void registerEmittedCouponForVente(CalculResultBean calculBean, Transaction transaction, AvoirTypeEnum transactionSpecificity, ProductTypeEnum onlyOn) { using (var context = new bourseContainer()) { EmittedCoupon emittedCoupon = new EmittedCoupon { datetime = DateTime.Now, value = calculBean.ARendreAvoir, Transaction = transaction, onlyOn = onlyOn.ToString(), transactionSpecificity = transactionSpecificity.ToString() }; context.Entry(emittedCoupon).State = EntityState.Added; context.SaveChanges(); context.Entry(emittedCoupon).State = EntityState.Detached; } }
private void ValiderTransactionButton_Click(object sender, RoutedEventArgs e) { CalculResultBean calculBean = TransactionManager.getFinalCalculResultBean(RemiseCollection, AvoirCollection, EchangeDirectCollection, ProduitsCollection, this.monnaiePayeeESP, this.monnaiePayeeCB, this.monnaiePayeeCHEQUE, this.aRendreAVOIR, this.aRendreESP, getSelectedARendreValue()); Transaction transaction = TransactionRegister.registerTransaction(calculBean, TransactionTypeEnum.VENTE); TransactionRegister.registerAvoirs(this.AvoirCollection, transaction); TransactionRegister.registerRemises(this.RemiseCollection, transaction); TransactionRegister.registerEchangeDirects(this.EchangeDirectCollection, transaction); TransactionRegister.registerProduits(this.ProduitsCollection, transaction); //Detecting specificities in the emittedCoupon... if (calculBean.ARendreAvoir > 0) { emittedCouponSpecificitiesPopup = new EmittedCouponSpecificities(); emittedCouponSpecificitiesPopup.transaction = transaction; emittedCouponSpecificitiesPopup.calculBean = calculBean; emittedCouponSpecificitiesPopup.ShowDialog(); } }
private void TypePaiementScreen_SelectionChanged(object sender, SelectionChangedEventArgs e) { string selectedItem = ((ComboboxBean)TypePaiementScreen.SelectedItem).Value; if (selectedItem != "PLUSIEURS") { this.monnaiePayeeCB = 0; this.monnaiePayeeCHEQUE = 0; this.monnaiePayeeESP = 0; } CalculResultBean calculBean = TransactionManager.getFinalCalculResultBean(RemiseCollection, AvoirCollection, EchangeDirectCollection, ProduitsCollection, this.monnaiePayeeESP, this.monnaiePayeeCB, this.monnaiePayeeCHEQUE, this.aRendreAVOIR, this.aRendreESP, getSelectedARendreValue()); if (selectedItem == "PLUSIEURS") { multipayPopup = new Multipay(); multipayPopup.Closing += TypePaiementScreen_Closing; multipayPopup.LoadData(calculBean); multipayPopup.ShowDialog(); } else { MultipayText.Text = ""; } if (selectedItem == "ESP") { ResteAPayerScreen.IsEnabled = true; calculateOnUi(true, false, false, false, false, false); } else if (selectedItem == "PLUSIEURS") { ResteAPayerScreen.IsEnabled = false; calculateOnUi(false, true, false, false, false, false); } else { ResteAPayerScreen.IsEnabled = false; calculateOnUi(true, false, false, false, false, false); } }
public CalculResultBean getResultBeanWithoutRemises(ObservableCollection <TableAvoir> AvoirCollection, ObservableCollection <TableEchangeDirect> EchangeDirectCollection, ObservableCollection <TableProduct> ProductsCollection) { decimal avoirsSum = getAvoirSumFromCollection(AvoirCollection); decimal echangeSum = getEchangeSumFromCollection(AvoirCollection); decimal bonCadeauSum = getBonCadeauSumFromCollection(AvoirCollection); decimal echangeDirectSum = getEchangeDirectSumFromCollection(EchangeDirectCollection); decimal productsSum = getProductsSumFromCollection(ProductsCollection); CalculResultBean result = new CalculResultBean { totalProduits = productsSum, totalAvoir = avoirsSum, totalEchangeDirect = echangeDirectSum, totalEchange = echangeSum, totalEchangeAndAvoir = echangeSum + avoirsSum, totalBonCadeau = bonCadeauSum }; return(result); }
public void LoadData(CalculResultBean _calculBean) { this.calulBean = _calculBean; ValeurAAtteindre.Text = VALEUR_A_ATTEINDRE_PREFIX + _calculBean.resteAPayer; }
public CalculResultBean getFinalCalculResultBean(ObservableCollection <TableRemise> RemiseCollection, ObservableCollection <TableAvoir> AvoirCollection, ObservableCollection <TableEchangeDirect> EchangeDirectCollection, ObservableCollection <TableProduct> ProductsCollection, decimal monnaiePayeeESP, decimal monnaiePayeeCB, decimal monnaiePayeeCHEQUE, decimal aRendreAVOIR, //Valeur entrée manuellement decimal aRendreESP, //Valeur entrée manuellement PaiementTypeEnum aRendreType //Valeur choisie manuellement ) { CalculResultBean calculResultBean = getResultBeanWithoutRemises(AvoirCollection, EchangeDirectCollection, ProductsCollection); //Si une valeur est entrée manuellement dans la case rendreAvoir... if (aRendreAVOIR > 0) { calculResultBean.ARendreAvoir = aRendreAVOIR; } //Si une valeur est entrée manuellement dans la case rendreEsp... else if (aRendreESP > 0) { calculResultBean.ARendreESP = aRendreESP; } //Calcul de la monnaie payée calculResultBean.monnaiePayeeESP = monnaiePayeeESP; calculResultBean.monnaiePayeeCB = monnaiePayeeCB; calculResultBean.monnaiePayeeCHEQUE = monnaiePayeeCHEQUE; calculResultBean.monnaiePayee = monnaiePayeeESP + monnaiePayeeCB + monnaiePayeeCHEQUE; //Calcul de la remise... ObservableCollection <TableRemise> CalculatedRemiseCollection = calculateMontantRemiseFromTableRemise(RemiseCollection, ProductsCollection, AvoirCollection, EchangeDirectCollection); calculResultBean.totalRemise = getRemisesSumFromCollection(CalculatedRemiseCollection); //Calcul total à payer... calculResultBean.totalAPayer = calculResultBean.totalProduits; //Calcul des réductions decimal reductions = (calculResultBean.totalEchangeAndAvoir + calculResultBean.totalRemise + calculResultBean.totalEchangeDirect); //Calcul reste à payer... calculResultBean.resteAPayer = calculResultBean.totalProduits - reductions; if (calculResultBean.resteAPayer <= 0) { calculResultBean.resteAPayer = 0; } else { calculResultBean.resteAPayer = calculResultBean.resteAPayer; } //Calcul monnaie à rendre... calculResultBean.ARendre = calculResultBean.monnaiePayee - calculResultBean.resteAPayer; if (calculResultBean.ARendre <= 0) { calculResultBean.ARendre = 0; } else { calculResultBean.ARendre = calculResultBean.ARendre; } //Calcul des réductions... calculResultBean.totalReductions = calculResultBean.totalEchangeDirect + calculResultBean.totalEchangeAndAvoir + calculResultBean.totalRemise; //Si on a saisi le montant ARendreAvoir à la main... if (calculResultBean.totalReductions - calculResultBean.totalProduits > 0 && calculResultBean.ARendreAvoir > 0) { calculResultBean.ARendreESP = Math.Round(((calculResultBean.totalReductions - (calculResultBean.totalProduits + calculResultBean.ARendreAvoir)) * Convert.ToDecimal(0.7142857)), 2, MidpointRounding.ToEven); } //Si on a saisi le montant ARendreESP à la main... else if (calculResultBean.totalReductions - calculResultBean.totalProduits > 0 && calculResultBean.ARendreESP > 0) { calculResultBean.ARendreAvoir = (calculResultBean.totalReductions - calculResultBean.totalProduits) - (calculResultBean.ARendreESP + (calculResultBean.ARendreESP * 40) / 100); } //Si rien n'a été entré à la main et que AVOIR est choisi, on evalue l'avoir à rendre par défaut. else if (aRendreType == PaiementTypeEnum.AVOIR && calculResultBean.totalReductions - calculResultBean.totalProduits > 0) { calculResultBean.ARendreAvoir = calculResultBean.totalReductions - calculResultBean.totalProduits; calculResultBean.ARendreESP = 0; } else if (aRendreType == PaiementTypeEnum.ESP && calculResultBean.totalReductions - calculResultBean.totalProduits > 0) { calculResultBean.ARendreAvoir = 0; calculResultBean.ARendreESP = Math.Round(((calculResultBean.totalReductions - calculResultBean.totalProduits) * Convert.ToDecimal(0.7142857)), 2, MidpointRounding.ToEven); } //Controle des valeurs qui ne peuvent pas être négatives... if (calculResultBean.ARendreAvoir < 0) { calculResultBean.ARendreAvoir = 0; } if (calculResultBean.ARendreESP < 0) { calculResultBean.ARendreESP = 0; } //Assignation du nombre de produits calculResultBean.productCount = ProductsCollection.Count(); if (calculResultBean.totalReductions - calculResultBean.totalProduits > 0) { decimal totalAvoirEchangeConverti = Math.Round((calculResultBean.ARendreESP + (calculResultBean.ARendreESP * 40) / 100), 2, MidpointRounding.ToEven); calculResultBean.avoirEchangeConverti = totalAvoirEchangeConverti; decimal totalAvoirRendu = Math.Round(calculResultBean.ARendreAvoir + (calculResultBean.ARendreESP + (calculResultBean.ARendreESP * 40) / 100), 2, MidpointRounding.ToEven); calculResultBean.totalEchangeAndAvoirUtil = calculResultBean.totalEchangeAndAvoir - totalAvoirRendu; } else { calculResultBean.totalEchangeAndAvoirUtil = 0; } //Calul ESP Reellement payé (sans la monnaie donnée par le client) calculResultBean.monnaiePayeeReelESP = calculResultBean.monnaiePayeeESP - calculResultBean.ARendreESP; if (calculResultBean.monnaiePayeeReelESP < 0) { calculResultBean.monnaiePayeeReelESP = 0; } //Si les réductions > produits alors on a surement rendu de l'ESP si avoir converti. if (calculResultBean.totalReductions - calculResultBean.totalProduits > 0) { calculResultBean.ARendreReelESP = calculResultBean.ARendreESP; } else { calculResultBean.ARendreReelESP = 0; } return(calculResultBean); }