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(); } }
/// <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; } }
/// <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) { } }