private PaiementTypeEnum getSelectedARendreValue() { try { var selectedId = ((ComboboxBean)ARendreCombobox.SelectedItem).Id; PaiementTypeEnum typePaiement = PaiementTypeEnumMethods.fromValue(selectedId); return(typePaiement); } catch (NullReferenceException e) { return(PaiementTypeEnum.AVOIR); } }
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); }
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; }