public IActionResult UpdateEMoney([FromBody] EMoney data) { var hasil = new OutputData() { IsSucceed = true }; var datas = (from c in db.GetAllData <EMoney>() where c.Id == data.Id select c).ToList(); if (datas != null && datas.Count() > 0) { var seldata = datas[0]; data.Id = seldata.Id; hasil.IsSucceed = db.InsertData <EMoney>(data); var seluser = db.GetDataById <UserProfile>(data.OwnerId); foreach (var item in seluser.MyWallet) { if (item.Id == data.Id) { item.Balance = data.Balance; item.IsActive = data.IsActive; item.IsDefault = data.IsDefault; } } db.InsertData <UserProfile>(seluser); } else { hasil.IsSucceed = false; hasil.ErrorMessage = "card is not exists"; } return(Ok(hasil)); }
public DBItem GetDBMoney(EMoney moneyType) { DBItem db = null; DictItem.TryGetValue((int)moneyType, out db); return(db); }
public long GetResCount(EMoney type) { if (resMap.ContainsKey(type)) { return(resMap[type]); } return(0); }
/// <summary> /// Default constructor for <see cref="DefaultOrderCalculation"/>. /// </summary> /// <param name="parentOrder">The calculations are based on the <see cref="Order"/> passed with the constructor.</param> public DefaultOrderCalculation(Order.Order parentOrder, bool calculate = false) { _parentOrder = parentOrder; ArticleSummary = new EMoney(0, true); NetArticleSummary = new EMoney(0, false); OrderSummary = new EMoney(0, true); NetOrderSummary = new EMoney(0, false); OrderRebate = new EMoney(0, true); NetShipment = new EMoney(0, false); NetOrderRebate = new EMoney(0, false); TaxValues = new ObservableCollection<Biller.Core.Models.TaxClassMoneyModel>(); parentOrder.OrderedArticles.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(OnOrderedArticleCollectionChanged); parentOrder.OrderRebate.PropertyChanged += article_PropertyChanged; parentOrder.PaymentMethode.PropertyChanged += article_PropertyChanged; parentOrder.OrderShipment.PropertyChanged += article_PropertyChanged; parentOrder.PropertyChanged += parentOrder_PropertyChanged; if (calculate) CalculateValues(); }
public IActionResult AddEMoney([FromBody] EMoney data) { var hasil = new OutputData() { IsSucceed = true }; //verifikasi emoney //... data.Id = db.GetSequence <EMoney>(); hasil.IsSucceed = db.InsertData <EMoney>(data); var seluser = db.GetDataById <UserProfile>(data.OwnerId); if (seluser.MyWallet == null) { seluser.MyWallet = new List <EMoney>(); } seluser.MyWallet.Add(data); db.InsertData <UserProfile>(seluser); return(Ok(hasil)); }
public virtual void CalculateValues() { TaxValues.Clear(); ArticleSummary.Amount = 0; OrderedWeight = 0; // iterate through each article and add its value foreach (var article in _parentOrder.OrderedArticles) { ArticleSummary.Amount += article.RoundedGrossOrderValue.Amount; OrderedWeight += article.ArticleWeight * article.OrderedAmount; // taxclass listing if (TaxValues.Any(x => x.TaxClass.Name == article.TaxClass.Name)) TaxValues.Single(x => x.TaxClass.Name == article.TaxClass.Name).Value += article.ExactVAT; else TaxValues.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(article.ExactVAT), TaxClass = article.TaxClass }); } //NetArticleSummary NetArticleSummary.Amount = ArticleSummary.Amount; foreach (var item in TaxValues) NetArticleSummary.Amount -= item.Value.Amount; OrderSummary.Amount = ArticleSummary.Amount; NetOrderSummary.Amount = NetArticleSummary.Amount; // Discount if (_parentOrder.OrderRebate.Amount > 0) { var temp = OrderSummary.Amount; OrderSummary.Amount = OrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); NetOrderRebate.Amount = NetOrderSummary.Amount - NetOrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); NetOrderSummary.Amount = NetOrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); OrderRebate = new EMoney(temp - OrderSummary.Amount); foreach (var item in TaxValues) item.Value = item.Value * (1 - _parentOrder.OrderRebate.Amount); } else OrderRebate = new EMoney(0); // Shipping if (!String.IsNullOrEmpty(_parentOrder.OrderShipment.Name)) { // Germany: Supplementary needs to have the tax, that is used most on the invoice // Austria: Shipping has reduced taxes // CH: OrderSummary.Amount += _parentOrder.OrderShipment.DefaultPrice.Amount; dynamic keyValueStore = Biller.UI.ViewModel.MainWindowViewModel.GetCurrentMainWindowViewModel().SettingsTabViewModel.KeyValueStore; var UseGermanSupplementaryTaxRegulation = keyValueStore.UseGermanSupplementaryTaxRegulation; if (UseGermanSupplementaryTaxRegulation == null) UseGermanSupplementaryTaxRegulation = false; if (UseGermanSupplementaryTaxRegulation) { var wholetax = 0.0; var wholeShipmentTax = 0.0; foreach (var item in TaxValues) wholetax += item.Value.Amount; List<Biller.Core.Models.TaxClassMoneyModel> temporaryTaxes = new List<Biller.Core.Models.TaxClassMoneyModel>(); var highestTaxClass = TaxValues.FirstOrDefault(); foreach (var taxitem in TaxValues) if (taxitem.Value > highestTaxClass.Value) highestTaxClass = taxitem; var shipment = new OrderedArticle(new Article()); shipment.TaxClass = highestTaxClass.TaxClass; shipment.OrderedAmount = 1; shipment.OrderPrice.Price1 = _parentOrder.OrderShipment.DefaultPrice; var TaxSupplementaryWorkSeparate = keyValueStore.TaxSupplementaryWorkSeperate; if (TaxSupplementaryWorkSeparate == null) TaxSupplementaryWorkSeparate = false; if (TaxSupplementaryWorkSeparate) temporaryTaxes.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(shipment.ExactVAT), TaxClass = highestTaxClass.TaxClass, TaxClassAddition = " auf Nebenleistungen" }); else TaxValues.Where(x=>x.TaxClass.Equals(highestTaxClass.TaxClass)).First().Value += (shipment.ExactVAT); wholeShipmentTax += shipment.ExactVAT; NetShipment.Amount = _parentOrder.OrderShipment.DefaultPrice.Amount - wholeShipmentTax; NetOrderSummary.Amount += NetShipment.Amount; foreach (Biller.Core.Models.TaxClassMoneyModel temporaryTax in temporaryTaxes) TaxValues.Add(temporaryTax); } else { var shipment = new OrderedArticle(new Article()); try { shipment.TaxClass = (TaxClass)keyValueStore.ShipmentTaxClass; shipment.OrderedAmount = 1; shipment.OrderPrice.Price1 = _parentOrder.OrderShipment.DefaultPrice; } catch { Biller.UI.ViewModel.MainWindowViewModel.GetCurrentMainWindowViewModel().NotificationManager.ShowNotification("Fehler bei Berechnung des Betrages", "Es wurde keine Steuerklasse für Nebenleistungen angegeben. Überprüfen Sie die Einstellungen."); return; } TaxValues.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(shipment.ExactVAT), TaxClass = shipment.TaxClass, TaxClassAddition = " auf Nebenleistungen" }); NetShipment.Amount = _parentOrder.OrderShipment.DefaultPrice.Amount - shipment.ExactVAT; NetOrderSummary.Amount += NetShipment.Amount; } } // Skonto if (_parentOrder.PaymentMethode.Discount.Amount > 0) CashBack = new EMoney(_parentOrder.PaymentMethode.Discount.Amount * ArticleSummary.Amount); else CashBack = new EMoney(0); RaiseUpdateManually("ArticleSummary"); RaiseUpdateManually("TaxValues"); RaiseUpdateManually("OrderRebate"); RaiseUpdateManually("CashBack"); RaiseUpdateManually("NetArticleSummary"); RaiseUpdateManually("NetOrderSummary"); RaiseUpdateManually("OrderSummary"); RaiseUpdateManually("NetShipment"); RaiseUpdateManually("NetOrderRebate"); }
public override void CalculateValues() { TaxValues.Clear(); ArticleSummary.Amount = 0; // iterate through each article and add its value foreach (var article in _parentOrder.OrderedArticles) { ArticleSummary.Amount += article.RoundedGrossOrderValue.Amount; // taxclass listing //if (TaxValues.Any(x => x.TaxClass.Name == article.TaxClass.Name)) // TaxValues.Single(x => x.TaxClass.Name == article.TaxClass.Name).Value += article.ExactVAT; //else // TaxValues.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(article.ExactVAT), TaxClass = article.TaxClass }); } //NetArticleSummary //NetArticleSummary.Amount = ArticleSummary.Amount; //foreach (var item in TaxValues) // NetArticleSummary.Amount -= item.Value.Amount; OrderSummary.Amount = ArticleSummary.Amount; //NetOrderSummary.Amount = NetArticleSummary.Amount; // Discount if (_parentOrder.OrderRebate.Amount > 0) { var temp = OrderSummary.Amount; OrderSummary.Amount = OrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); //NetOrderRebate.Amount = NetOrderSummary.Amount - NetOrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); //NetOrderSummary.Amount = NetOrderSummary.Amount * (1 - _parentOrder.OrderRebate.Amount); OrderRebate = new EMoney(temp - OrderSummary.Amount); //foreach (var item in TaxValues) // item.Value = item.Value * (1 - _parentOrder.OrderRebate.Amount); } else OrderRebate = new EMoney(0); // Shipping if (!String.IsNullOrEmpty(_parentOrder.OrderShipment.Name)) { // Just for Germany // We need to split the taxes with the ratio it is before // Austria: Shipping has reduced taxes // CH: OrderSummary.Amount += _parentOrder.OrderShipment.DefaultPrice.Amount; //dynamic keyValueStore = Biller.UI.ViewModel.MainWindowViewModel.GetCurrentMainWindowViewModel().SettingsTabViewModel.KeyValueStore; //var UseGermanSupplementaryTaxRegulation = keyValueStore.UseGermanSupplementaryTaxRegulation; //if (UseGermanSupplementaryTaxRegulation == null) // UseGermanSupplementaryTaxRegulation = false; //if (UseGermanSupplementaryTaxRegulation) //{ // var wholetax = 0.0; // var wholeShipmentTax = 0.0; // foreach (var item in TaxValues) // wholetax += item.Value.Amount; // List<Biller.Core.Models.TaxClassMoneyModel> temporaryTaxes = new List<Biller.Core.Models.TaxClassMoneyModel>(); // foreach (var taxitem in TaxValues) // { // var ratio = 1 / (wholetax / taxitem.Value.Amount); // var shipment = new OrderedArticle(new Article()); // shipment.TaxClass = taxitem.TaxClass; // shipment.OrderedAmount = 1; // shipment.OrderPrice.Price1 = _parentOrder.OrderShipment.DefaultPrice; // var TaxSupplementaryWorkSeparate = keyValueStore.TaxSupplementaryWorkSeperate; // if (TaxSupplementaryWorkSeparate == null) // TaxSupplementaryWorkSeparate = false; // if (TaxSupplementaryWorkSeparate) // temporaryTaxes.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(ratio * shipment.ExactVAT), TaxClass = taxitem.TaxClass, TaxClassAddition = " auf Nebenleistungen" }); // else // taxitem.Value += (ratio * shipment.ExactVAT); // wholeShipmentTax += ratio * shipment.ExactVAT; // } // NetShipment.Amount = _parentOrder.OrderShipment.DefaultPrice.Amount - wholeShipmentTax; // NetOrderSummary.Amount += NetShipment.Amount; // foreach (Biller.Core.Models.TaxClassMoneyModel temporaryTax in temporaryTaxes) // TaxValues.Add(temporaryTax); //} //else //{ //var shipment = new OrderedArticle(new Article()); //try //{ // //shipment.TaxClass = (TaxClass)keyValueStore.ShipmentTaxClass; // shipment.OrderedAmount = 1; // shipment.OrderPrice.Price1 = _parentOrder.OrderShipment.DefaultPrice; //} //catch //{ // Biller.UI.ViewModel.MainWindowViewModel.GetCurrentMainWindowViewModel().NotificationManager.ShowNotification("Fehler bei Berechnung des Betrages", "Es wurde keine Steuerklasse für Nebenleistungen angegeben. Überprüfen Sie die Einstellungen."); // return; //} //TaxValues.Add(new Biller.Core.Models.TaxClassMoneyModel() { Value = new Money(shipment.ExactVAT), TaxClass = shipment.TaxClass, TaxClassAddition = " auf Nebenleistungen" }); NetShipment.Amount = _parentOrder.OrderShipment.DefaultPrice.Amount; //OrderSummary.Amount += NetShipment.Amount; //} } // Skonto if (_parentOrder.PaymentMethode.Discount.Amount > 0) CashBack = new EMoney(_parentOrder.PaymentMethode.Discount.Amount * ArticleSummary.Amount); else CashBack = new EMoney(0); RaiseUpdateManually("ArticleSummary"); RaiseUpdateManually("TaxValues"); RaiseUpdateManually("OrderRebate"); RaiseUpdateManually("CashBack"); RaiseUpdateManually("NetArticleSummary"); RaiseUpdateManually("NetOrderSummary"); RaiseUpdateManually("OrderSummary"); RaiseUpdateManually("NetShipment"); RaiseUpdateManually("NetOrderRebate"); }