Esempio n. 1
0
        private void grvPaymentAccount_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (colAccountDefault == e.Column)
            {
                BL.GLX.PaymentAccount currentRow = (BL.GLX.PaymentAccount)grvPaymentAccount.GetFocusedRow();

                //If there is now account selected you cant set it to the Default account
                if (currentRow.AccountId == 0)
                {
                    currentRow.AccountDefault = false;
                    return;
                }
                //If you are unticking the Default account it will be undone
                else if (!((List <BL.GLX.PaymentAccount>)BindingSourcePaymentAccounts.DataSource).Any(n => n.AccountDefault))
                {
                    currentRow.AccountDefault = true;
                }
                else
                {
                    Parallel.ForEach((List <BL.GLX.PaymentAccount>)BindingSourcePaymentAccounts.DataSource, account =>
                                     //foreach (Essential.UTL.PaymentAccount account in (List<CDS.Client.Desktop.Essential.UTL.PaymentAccount>)BindingSourcePaymentAccounts.DataSource)
                    {
                        account.AccountDefault = false;
                    }
                                     );
                    currentRow.AccountDefault = true;
                }

                grdPaymentAccount.RefreshDataSource();
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Stop user from de selecting the last receiving account. Must always have at least one account selected!
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks>Created: Theo Crous 23/08/2012</remarks>
        private void chkAccount_ItemChecking(object sender, DevExpress.XtraEditors.Controls.ItemCheckingEventArgs e)
        {
            if (e.NewValue == CheckState.Unchecked && chkAccount.CheckedItems.Count == 1)
            {
                e.Cancel = true;
            }

            BL.GLX.PaymentAccount account = ((List <BL.GLX.PaymentAccount>)BindingSourceAccounts.DataSource)[e.Index];
            long?taxTypeEntityId          = DataContext.EntityAccountingContext.GLX_Tax.Where(n => n.Id == account.TaxId).Select(n => n.EntityId).FirstOrDefault();

            if (e.NewValue == CheckState.Checked && (taxTypeEntityId == null || taxTypeEntityId == 0))
            {
                Essential.BaseAlert.ShowAlert("No TAX Account", "Tax type for selected account has no tax account please assign one before trying to use this account again", Essential.BaseAlert.Buttons.Ok, Essential.BaseAlert.Icons.Error);
                ReadOnly = true;
                e.Cancel = true;
                return;
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Add or remove an account to the payment reciept area.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <remarks>Created: Theo Crous 23/08/2012</remarks>
        private void chkAccount_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
        {
            try
            {
                BL.GLX.PaymentAccount account = ((List <BL.GLX.PaymentAccount>)BindingSourceAccounts.DataSource)[e.Index];

                string colname = "colReceived" + account.AccountId;

                if (account.AccountDefault || String.IsNullOrEmpty(defaultPaymentAccountColumn))
                {
                    defaultPaymentAccountColumn = colname;
                }

                //If default payment account is unchecked
                if (account.AccountDefault && e.State == CheckState.Unchecked)
                {
                    DB.GLX_Account defaultPaymentAccount = DataContext.EntityAccountingContext.GLX_Account.Where(n => ((List <BL.GLX.PaymentAccount>)BindingSourceAccounts.DataSource).Select(s => s.AccountId).Contains(n.Id) && !n.Id.Equals(account.AccountId)).FirstOrDefault();
                    if (defaultPaymentAccount == null)
                    {
                        chkAccount.SetItemChecked(e.Index, true);
                    }
                    else
                    {
                        bool found = false;

                        foreach (BL.GLX.PaymentAccount item in chkAccount.CheckedItems)
                        {
                            if (item.AccountId.Equals(defaultPaymentAccount.Id))
                            {
                                (((List <BL.GLX.PaymentAccount>)BindingSourceAccounts.DataSource)[e.Index]).AccountDefault = false;
                                ((List <BL.GLX.PaymentAccount>)BindingSourceAccounts.DataSource).Where(n => n.AccountId.Equals(defaultPaymentAccount.Id)).FirstOrDefault().AccountDefault = true;

                                defaultPaymentAccountColumn = "colReceived" + defaultPaymentAccount.Id;
                                found = true;

                                //Remove the old default payment colu
                                accountsColumns.Remove(account.AccountId);
                                grvOpenItem.Columns.Remove(grvOpenItem.Columns[colname]);
                                grvOpenItem.Bands["gbAccounts"].Columns.Remove(grvOpenItem.Columns[colname]);
                                entriesDataSource.Columns.Remove(entriesDataSource.Columns[colname]);

                                break;
                            }
                        }

                        if (!found)
                        {
                            chkAccount.SetItemChecked(e.Index, true);
                        }
                    }
                }
                else if (e.State == CheckState.Checked)
                {
                    //Iff account already in Accounts Column then ignore
                    if (accountsColumns.Select(n => n.Key).Contains(account.AccountId))
                    {
                        return;
                    }

                    accountsColumns.Add(account.AccountId, colname);

                    if (entriesDataSource != null)
                    {
                        entriesDataSource.Columns.Add(colname, typeof(decimal));
                    }

                    DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn added = null;
                    added = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
                    {
                        Name = colname, FieldName = colname, Caption = account.AccountShortName, RowIndex = 1, Tag = account, MaxWidth = 80, MinWidth = 80, Width = 80, Visible = true
                    };
                    //added.DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
                    //added.DisplayFormat.FormatString = "# ### ### ##0.00
                    added.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                    added.DisplayFormat.FormatString = "# ### ### ##0.00 DR; # ### ### ##0.00 CR; 0.00";
                    added.ColumnEdit = repCalcEdit;
                    added.OptionsColumn.AllowGroup             = DevExpress.Utils.DefaultBoolean.False;
                    added.OptionsColumn.AllowIncrementalSearch = false;
                    added.OptionsColumn.AllowMove     = false;
                    added.OptionsColumn.AllowShowHide = false;
                    added.OptionsFilter.AllowFilter   = false;

                    grvOpenItem.Columns.Add(added);
                    grvOpenItem.Bands["gbAccounts"].Columns.Add(added);
                    //added.Summary.Add(new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, colname, "{0:# ### ### ##0.00}"));
                    added.Summary.Add(new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, colname, "{0:# ### ### ##0.00 DR; # ### ### ##0.00 CR; 0.00}"));
                }
                else
                {
                    accountsColumns.Remove(account.AccountId);
                    grvOpenItem.Columns.Remove(grvOpenItem.Columns[colname]);
                    grvOpenItem.Bands["gbAccounts"].Columns.Remove(grvOpenItem.Columns[colname]);
                    entriesDataSource.Columns.Remove(entriesDataSource.Columns[colname]);
                }

                if (grvOpenItem.Columns["colTotal"] != null)
                {
                    grvOpenItem.Columns.Remove(grvOpenItem.Columns["colTotal"]);
                    grvOpenItem.Bands["gbAccounts"].Columns.Remove(grvOpenItem.Columns["colTotal"]);
                    entriesDataSource.Columns.Remove(entriesDataSource.Columns["colTotal"]);
                }

                if (entriesDataSource != null)
                {
                    entriesDataSource.Columns.Add("colTotal", typeof(decimal));
                }

                DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn total = null;
                total = new DevExpress.XtraGrid.Views.BandedGrid.BandedGridColumn()
                {
                    Name = "colTotal", FieldName = "colTotal", Caption = "Total", RowIndex = 1, Tag = "colTotal", MaxWidth = 120, MinWidth = 120, Width = 120, Visible = true
                };
                total.DisplayFormat.FormatType   = DevExpress.Utils.FormatType.Numeric;
                total.DisplayFormat.FormatString = "# ### ### ##0.00 DR; # ### ### ##0.00 CR; 0.00";
                total.ColumnEdit = repCalcEdit;
                total.OptionsColumn.AllowGroup             = DevExpress.Utils.DefaultBoolean.False;
                total.OptionsColumn.AllowIncrementalSearch = false;
                total.OptionsColumn.AllowMove     = false;
                total.OptionsColumn.AllowShowHide = false;
                total.OptionsFilter.AllowFilter   = false;
                total.OptionsColumn.AllowEdit     = false;

                grvOpenItem.Columns.Add(total);
                grvOpenItem.Bands["gbAccounts"].Columns.Add(total);
                total.Summary.Add(new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, "colTotal", "{0:# ### ### ##0.00 DR; # ### ### ##0.00 CR; 0.00}"));

                foreach (var pair in accountsColumns)
                {
                    this.grvOpenItem.Columns[pair.Value].MinWidth = 240 / accountsColumns.Count;
                }
                grvOpenItem.Bands["gbAccounts"].Width = 240;

                PopulateTotals();
            }
            catch (Exception ex)
            {
            }
        }