// displays accounts private void BuildAccountControls() { if (this.Accounts != null) { bool firstAccount = true; foreach (var account in this.Accounts) { HtmlGenericControl formGroup = new HtmlGenericControl("div"); formGroup.AddCssClass("form-group"); phAccounts.Controls.Add(formGroup); CurrencyBox tb = new CurrencyBox(); tb.ID = "tbAccount_" + account.Key; tb.Attributes.Add("name", tb.ID); tb.Attributes.Add("type", "number"); tb.CssClass = "input-account"; if (firstAccount) { tb.CssClass = "input-account active"; firstAccount = false; } Label label = new Label(); label.AssociatedControlID = tb.ID; label.ID = "labelFund_" + account.Key; label.Text = account.Value; formGroup.Controls.Add(label); formGroup.Controls.Add(tb); } } }
/// <summary> /// Gets the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="controls">The controls.</param> /// <returns></returns> public override string GetSelection(Type entityType, Control[] controls) { DropDownList ddlCompare = controls[0] as DropDownList; CurrencyBox currencyBox = controls[1] as CurrencyBox; return(string.Format("{0}|{1}", ddlCompare.SelectedValue, currencyBox.Text)); }
/// <summary> /// Renders the controls. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="filterControl">The filter control.</param> /// <param name="writer">The writer.</param> /// <param name="controls">The controls.</param> public override void RenderControls(Type entityType, FilterField filterControl, HtmlTextWriter writer, Control[] controls) { DropDownList ddlCompare = controls[0] as DropDownList; CurrencyBox currencyBox = controls[1] as CurrencyBox; writer.AddAttribute("class", "row form-row field-criteria"); writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.AddAttribute("class", "col-md-4"); writer.RenderBeginTag(HtmlTextWriterTag.Div); ddlCompare.RenderControl(writer); writer.RenderEndTag(); ComparisonType comparisonType = (ComparisonType)(ddlCompare.SelectedValue.AsInteger()); currencyBox.Style[HtmlTextWriterStyle.Display] = (comparisonType == ComparisonType.IsBlank || comparisonType == ComparisonType.IsNotBlank) ? "none" : string.Empty; writer.AddAttribute("class", "col-md-8"); writer.RenderBeginTag(HtmlTextWriterTag.Div); currencyBox.RenderControl(writer); writer.RenderEndTag(); writer.RenderEndTag(); // row RegisterFilterCompareChangeScript(filterControl); }
/// <summary> /// Sets the account amount minus fee coverage textbox text. /// </summary> /// <param name="tbAccountAmount">The tb account amount.</param> /// <param name="transactionDetail">The transaction detail.</param> private void SetAccountAmountMinusFeeCoverageTextboxText(CurrencyBox tbAccountAmountMinusFeeCoverageAmount, FinancialScheduledTransactionDetail transactionDetail) { /* 2021-01-28 MDP * * FinancialScheduledTransactionDetail.Amount includes the FeeCoverageAmount. * For example, if a person scheduled to gave $100.00 but elected to pay $1.80 to cover the fee. * FinancialScheduledTransactionDetail.Amount would be stored as $101.80 and * FinancialScheduledTransactionDetail.FeeCoverageAmount would be stored as $1.80. * * However, when the FinancialScheduledTransactionDetail.Amount is used in this EditBox, * don't include the FinanciaFinancialScheduledTransactionDetaillTransactionDetail.FeeCoverageAmount. * So in the above example, the Textbox would say $100.00 * */ var feeCoverageAmount = transactionDetail.FeeCoverageAmount; var accountAmount = transactionDetail.Amount; tbAccountAmountMinusFeeCoverageAmount.CurrencyCodeDefinedValueId = ForeignCurrencyDefinedValueId ?? 0; if (feeCoverageAmount.HasValue) { tbAccountAmountMinusFeeCoverageAmount.Value = (accountAmount - feeCoverageAmount.Value); } else { tbAccountAmountMinusFeeCoverageAmount.Value = accountAmount; } }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls(System.Web.UI.Control parentControl) { var comparisonControl = ComparisonHelper.ComparisonControl(ComparisonType.LessThan | ComparisonType.GreaterThanOrEqualTo | ComparisonType.EqualTo); comparisonControl.ID = parentControl.ID + "_0"; parentControl.Controls.Add(comparisonControl); var globalAttributes = GlobalAttributesCache.Get(); CurrencyBox numberBoxAmount = new CurrencyBox(); numberBoxAmount.ID = parentControl.ID + "_1"; numberBoxAmount.Label = "Amount"; parentControl.Controls.Add(numberBoxAmount); AccountPicker accountPicker = new AccountPicker(); accountPicker.AllowMultiSelect = true; accountPicker.ID = parentControl.ID + "_accountPicker"; accountPicker.AddCssClass("js-account-picker"); accountPicker.Label = "Accounts"; parentControl.Controls.Add(accountPicker); SlidingDateRangePicker slidingDateRangePicker = new SlidingDateRangePicker(); slidingDateRangePicker.ID = parentControl.ID + "_slidingDateRangePicker"; slidingDateRangePicker.AddCssClass("js-sliding-date-range"); slidingDateRangePicker.Label = "Date Range"; slidingDateRangePicker.Help = "The date range of the transactions using the transaction date of each transaction"; slidingDateRangePicker.Required = true; parentControl.Controls.Add(slidingDateRangePicker); RockCheckBox cbCombineGiving = new RockCheckBox(); cbCombineGiving.ID = parentControl.ID + "_cbCombineGiving"; cbCombineGiving.Label = "Combine Giving"; cbCombineGiving.CssClass = "js-combine-giving"; cbCombineGiving.Help = "Combine individuals in the same giving group when calculating totals and reporting the list of individuals."; parentControl.Controls.Add(cbCombineGiving); RockCheckBox cbUseAnalytics = new RockCheckBox(); cbUseAnalytics.ID = parentControl.ID + "_cbUseAnalytics"; cbUseAnalytics.Label = "Use Analytics Models"; cbUseAnalytics.CssClass = "js-use-analytics"; cbUseAnalytics.Help = "Using Analytics Data is MUCH faster than querying real-time data, but it may not include data that has been added or updated in the last 24 hours."; parentControl.Controls.Add(cbUseAnalytics); var controls = new Control[6] { comparisonControl, numberBoxAmount, accountPicker, slidingDateRangePicker, cbCombineGiving, cbUseAnalytics }; SetSelection(controls, $"{ComparisonType.GreaterThanOrEqualTo.ConvertToInt().ToString()}|||||||"); return(controls); }
private void CraftButton_Click(object sender, RoutedEventArgs e) { BigBox.Text = ""; object c = CurrencyBox.GetSelected(); if (c == null) { BigBox.Text = "No currency selected"; return; } string res; if (c is PoEEssenceData) { res = Bench.ApplyEssence(c as PoEEssenceData); if (res != null) { BigBox.Text = res; } } else if (c is PoECurrencyData) { res = Bench.ApplyCurrency(c as PoECurrencyData); if (res != null) { BigBox.Text = res; } } else { IEnumerable <PoEFossilData> collection = ((System.Collections.IList)c).Cast <PoEFossilData>(); if (collection != null && collection.Count() > 0) { res = Bench.ApplyFossils(collection.ToList()); if (res != null) { BigBox.Text = res; } } else { BigBox.Text = "No fossil selected"; return; } } if (res == null) { ItemSlot.UpdateData(Bench.BenchItem); CollectionViewSource.GetDefaultView(Bench.CurrencySpent).Refresh(); ModPreview.UpdatePreviews(); } }
/// <summary> /// Sets the selection. /// </summary> /// <param name="entityType">Type of the entity.</param> /// <param name="controls">The controls.</param> /// <param name="selection">The selection.</param> public override void SetSelection(Type entityType, Control[] controls, string selection) { var values = selection.Split('|'); DropDownList ddlCompare = controls[0] as DropDownList; CurrencyBox currencyBox = controls[1] as CurrencyBox; if (values.Length == 2) { ddlCompare.SelectedValue = values[0]; currencyBox.Text = values[1]; } }
protected void lbAccountEntryNext_Click(object sender, EventArgs e) { // save account amounts decimal totalAmount = 0; this.Amounts = new Dictionary <int, decimal>(); bool accountFieldsValid = true; foreach (var account in this.Accounts) { CurrencyBox cb = phAccounts.FindControl("tbAccount_" + account.Key.ToString()) as CurrencyBox; if (cb != null) { decimal fundAmount = 0; if (!decimal.TryParse(cb.Text.Trim(), out fundAmount)) { if (!string.IsNullOrEmpty(cb.Text)) { accountFieldsValid = false; } fundAmount = 0; } fundAmount = Math.Round(fundAmount, 2); if (fundAmount >= 0) { this.Amounts.Add(account.Key, fundAmount); totalAmount += fundAmount; } } } if (!accountFieldsValid) { nbAccountEntry.Text = "Please enter valid amounts in all fields."; } else if (totalAmount <= 0) { nbAccountEntry.Text = "Please enter a valid amount for one or more accounts."; } else { nbAccountEntry.Text = string.Empty; HidePanels(); pnlSwipe.Visible = true; } }
public MainWindow() { Icons.LoadImages(); InitializeComponent(); //must be done first so mod templates are translated as they're loaded StatTranslator.LoadStatLocalization(@"Data\stat_translations.min.json"); CraftingDatabase.LoadPseudoStats(@"Data\pseudo_stats.json", @"user_pseudo_stats.json"); CraftingDatabase.LoadMods(@"Data\mods.min.json", @"Data\mod_types.min.json"); CraftingDatabase.LoadBaseItems(@"Data\base_items.min.json", @"Data\item_classes.min.json"); CraftingDatabase.LoadBenchOptions(@"Data\crafting_bench_options.min.json"); CraftingDatabase.LoadEssences(@"Data\essences.min.json"); CraftingDatabase.LoadFossils(@"Data\fossils.min.json"); CraftingDatabase.LoadPrices("pricedata.json"); CraftingDatabase.LoadSpecialMods(@"Data\delve_droponly_mods.json", @"Data\incursion_droponly_mods.json"); CurrencyBox.LoadEssences(CraftingDatabase.Essences.Values); CurrencyBox.LoadFossils(CraftingDatabase.Fossils.Values); CurrencyBox.LoadCurrencies(CraftingDatabase.Currencies.Values); Bench = new CraftingBench(); ModPreview.Bench = Bench; ModPreview.Currency = CurrencyBox; CurrencyTally.ItemsSource = Bench.CurrencySpent; PostCraftButton.Content = new Image() { Source = Icons.Plus }; SearchButton.Content = new Image() { Source = Icons.Search }; BigBox.Text = ""; BigBox.FontWeight = FontWeights.Bold; BigBox.Foreground = Brushes.Red; RepeatCountBox.Max = Properties.Settings.Default.BulkCraftLimit; RepeatCountBox.TextChanged += CheckRepeatCount; RepeatCountBox.Text = "10000"; }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls(Type entityType, FilterField filterControl) { var controls = new List <Control>(); var ddlIntegerCompare = ComparisonHelper.ComparisonControl(ComparisonHelper.NumericFilterComparisonTypes); ddlIntegerCompare.ID = string.Format("{0}_{1}", filterControl.ID, controls.Count()); ddlIntegerCompare.AddCssClass("js-filter-compare"); filterControl.Controls.Add(ddlIntegerCompare); controls.Add(ddlIntegerCompare); var currencyBox = new CurrencyBox(); currencyBox.ID = string.Format("{0}_{1}", filterControl.ID, controls.Count()); currencyBox.AddCssClass("js-filter-control"); filterControl.Controls.Add(currencyBox); controls.Add(currencyBox); return(controls.ToArray()); }
private void AddBtn_Click(object sender, RoutedEventArgs e) { string ItemName = ItemBox.Text; string DateOfSale = DateBox.Text; string Country = CountryBox.Text; string Currency = CurrencyBox.Text; if (!float.TryParse(PriceBox.Text, out float NetPrice) & float.TryParse(VATbox.Text, out float VAT)) { MessageBox.Show("Net Price and VAT fields can only contain numbers!"); } con.InsertSales(ItemName, Country, Currency, DateOfSale, NetPrice, VAT); MessageBox.Show("Sale has been added."); ItemBox.Clear(); DateBox.Clear(); CountryBox.Clear(); CurrencyBox.Clear(); PriceBox.Clear(); VATbox.Clear(); }
private void Repeat_Click(object sender, RoutedEventArgs e) { BigBox.Text = ""; object c = CurrencyBox.GetSelected(); if (c == null) { BigBox.Text = "No currency selected"; return; } if (!RepeatCountBox.Valid || !int.TryParse(RepeatCountBox.Text, out int n)) { BigBox.Text = "Error parsing try count"; return; } string res; if (c is PoEEssenceData) { res = Bench.ApplyEssence(c as PoEEssenceData, n); if (res != null) { BigBox.Text = res; } } else if (c is PoECurrencyData) { res = Bench.ApplyCurrency(c as PoECurrencyData, n); if (res != null) { BigBox.Text = res; } } else { IEnumerable <PoEFossilData> collection = ((System.Collections.IList)c).Cast <PoEFossilData>(); if (collection != null && collection.Count() > 0) { res = Bench.ApplyFossils(collection.ToList(), n); if (res != null) { BigBox.Text = res; } } else { BigBox.Text = "No fossil selected"; return; } } if (res == null) { if (c is PoECurrencyData data) { RepeatResults.CurrenciesUsed = new List <PoECurrencyData>() { data } } ; else { //Resonators aren't implemented as actual currencies so just tack their names on to be counted for costs List <PoECurrencyData> fossils = ((System.Collections.IList)c).Cast <PoECurrencyData>().ToList(); if (fossils.Count == 1) { if (Bench.BenchItem.Rarity == ItemRarity.Normal) { fossils.Add(new PoECurrencyData() { name = "Primitive Alchemical Resonator" }); } else { fossils.Add(new PoECurrencyData() { name = "Primitive Chaotic Resonator" }); } } else if (fossils.Count == 2) { if (Bench.BenchItem.Rarity == ItemRarity.Normal) { fossils.Add(new PoECurrencyData() { name = "Potent Alchemical Resonator" }); } else { fossils.Add(new PoECurrencyData() { name = "Potent Chaotic Resonator" }); } } else if (fossils.Count == 3) { if (Bench.BenchItem.Rarity == ItemRarity.Normal) { fossils.Add(new PoECurrencyData() { name = "Powerful Alchemical Resonator" }); } else { fossils.Add(new PoECurrencyData() { name = "Powerful Chaotic Resonator" }); } } else { if (Bench.BenchItem.Rarity == ItemRarity.Normal) { fossils.Add(new PoECurrencyData() { name = "Prime Alchemical Resonator" }); } else { fossils.Add(new PoECurrencyData() { name = "Prime Chaotic Resonator" }); } } RepeatResults.CurrenciesUsed = fossils; } RepeatResults.SortBy = null; RepeatResults.Items = Bench.MassResults; } }
/// <summary> /// Creates the child controls. /// </summary> /// <returns></returns> public override Control[] CreateChildControls(Type entityType, FilterField filterControl) { var comparisonControl = ComparisonHelper.ComparisonControl(ComparisonType.LessThan | ComparisonType.GreaterThanOrEqualTo | ComparisonType.EqualTo); comparisonControl.ID = filterControl.ID + "_comparisonControl"; filterControl.Controls.Add(comparisonControl); var globalAttributes = GlobalAttributesCache.Get(); CurrencyBox numberBoxAmount = new CurrencyBox(); numberBoxAmount.ID = filterControl.ID + "_numberBoxAmount"; numberBoxAmount.Label = "Amount"; filterControl.Controls.Add(numberBoxAmount); AccountPicker accountPicker = new AccountPicker(); accountPicker.AllowMultiSelect = true; accountPicker.ID = filterControl.ID + "_accountPicker"; accountPicker.AddCssClass("js-account-picker"); accountPicker.Label = "Accounts"; filterControl.Controls.Add(accountPicker); RockCheckBox cbIncludeChildAccounts = new RockCheckBox(); cbIncludeChildAccounts.ID = filterControl.ID + "_cbIncludeChildAccounts"; cbIncludeChildAccounts.Text = "Include Child Accounts"; cbIncludeChildAccounts.CssClass = "js-include-child-accounts"; filterControl.Controls.Add(cbIncludeChildAccounts); RockCheckBox cbIgnoreInactiveAccounts = new RockCheckBox(); cbIgnoreInactiveAccounts.ID = filterControl.ID + "_cbIgnoreInactiveAccounts"; cbIgnoreInactiveAccounts.Text = "Ignore Inactive Accounts"; cbIgnoreInactiveAccounts.CssClass = "js-ignore-inactive-accounts"; filterControl.Controls.Add(cbIgnoreInactiveAccounts); SlidingDateRangePicker slidingDateRangePicker = new SlidingDateRangePicker(); slidingDateRangePicker.ID = filterControl.ID + "_slidingDateRangePicker"; slidingDateRangePicker.AddCssClass("js-sliding-date-range"); slidingDateRangePicker.Label = "Date Range"; slidingDateRangePicker.Help = "The date range of the transactions using the transaction date of each transaction"; slidingDateRangePicker.Required = true; filterControl.Controls.Add(slidingDateRangePicker); RockCheckBox cbCombineGiving = new RockCheckBox(); cbCombineGiving.ID = filterControl.ID + "_cbCombineGiving"; cbCombineGiving.Label = "Combine Giving"; cbCombineGiving.CssClass = "js-combine-giving"; cbCombineGiving.Help = "Combine individuals in the same giving group when calculating totals and reporting the list of individuals."; filterControl.Controls.Add(cbCombineGiving); RockCheckBox cbUseAnalytics = new RockCheckBox(); cbUseAnalytics.ID = filterControl.ID + "_cbUseAnalytics"; cbUseAnalytics.Label = "Use Analytics Models"; cbUseAnalytics.CssClass = "js-use-analytics"; cbUseAnalytics.Help = "Using Analytics Data might be faster than querying real-time data, but it may not include data that has been added or updated in the last 24 hours."; filterControl.Controls.Add(cbUseAnalytics); var controls = new Control[8] { comparisonControl, numberBoxAmount, accountPicker, cbIncludeChildAccounts, cbIgnoreInactiveAccounts, slidingDateRangePicker, cbCombineGiving, cbUseAnalytics }; // set an initial config for the selection var selectionConfig = new SelectionConfig { ComparisonType = ComparisonType.GreaterThanOrEqualTo }; SetSelection(entityType, controls, selectionConfig.ToJson()); return(controls); }
/// <summary> /// Sets the account fee coverage amount textbox text. /// </summary> /// <param name="tbAccountFeeCoverageAmount">The tb account fee coverage amount.</param> /// <param name="transactionDetail">The transaction detail.</param> private void SetAccountFeeCoverageAmountTextboxText(CurrencyBox tbAccountFeeCoverageAmount, FinancialScheduledTransactionDetail transactionDetail) { tbAccountFeeCoverageAmount.CurrencyCodeDefinedValueId = ForeignCurrencyDefinedValueId ?? 0; tbAccountFeeCoverageAmount.Value = transactionDetail.FeeCoverageAmount; tbAccountFeeCoverageAmount.Visible = transactionDetail.FeeCoverageAmount.HasValue; }