// 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);
                }
            }
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
        /// <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;
            }
        }
Esempio n. 9
0
        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";
        }
Esempio n. 10
0
        /// <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());
        }
Esempio n. 11
0
        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();
        }
Esempio n. 12
0
        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;
            }
        }
Esempio n. 13
0
        /// <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);
        }
Esempio n. 14
0
 /// <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;
 }