Beispiel #1
0
        private void PopulateValidation()
        {
            try
            {
                DevExpress.XtraEditors.DXErrorProvider.ConditionValidationRule ValidationRule = new DevExpress.XtraEditors.DXErrorProvider.ConditionValidationRule();

                ValidationRule.ErrorType = DevExpress.XtraEditors.DXErrorProvider.ErrorType.Critical;
                //base.PopulateValidation();

                foreach (Control item in this.LayoutControl.Controls)
                {
                    if (item.DataBindings.Count != 0)
                    {
                        DB.VW_Validation validationItem =
                            BL.ApplicationDataContext.Instance.ValidationRestrictions.Where(n =>
                                                                                            ((System.Windows.Forms.BindingSource)(item.DataBindings[0].DataSource)).DataSource.ToString().Split('.').Last().StartsWith(n.TableName) &&
                                                                                            n.ColumnName.StartsWith(item.DataBindings[0].BindingMemberInfo.BindingField)).FirstOrDefault();

                        if (validationItem == null)
                        {
                            continue;
                        }
                        //If there is a lenght restriction add validator
                        if ((Int32)validationItem.LengthMax.Value != 0)
                        {
                            if (item is DevExpress.XtraEditors.TextEdit)
                            {
                                (item as DevExpress.XtraEditors.TextEdit).Properties.MaxLength = (Int32)validationItem.LengthMax.Value;
                            }
                        }
                        //If there is a required field restriction add validator
                        if (!validationItem.Nullable.Value)
                        {
                            if (validationItem.ColumnName.Contains("Id"))
                            {
                                //FK IDs not allowed to be Zero
                                ValidationRule.ErrorText         = "Value cannot be blank";
                                ValidationRule.ConditionOperator = DevExpress.XtraEditors.DXErrorProvider.ConditionOperator.NotEquals;
                                ValidationRule.Value1            = 0;
                                ValidationProvider.SetValidationRule(item, ValidationRule);
                            }
                            else
                            {
                                //FK IDs not allowed to be NULL
                                ValidationRule.ErrorText         = "Value cannot be blank";
                                ValidationRule.ConditionOperator = DevExpress.XtraEditors.DXErrorProvider.ConditionOperator.IsNotBlank;
                                ValidationProvider.SetValidationRule(item, ValidationRule);
                            }
                        }
                    }
                }
            }
            catch
            {
            }
        }
Beispiel #2
0
        private void grvEntries_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            bool valid = true;

            DB.VW_Validation validationReference = BL.ApplicationDataContext.Instance.ValidationRestrictions
                                                   .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Reference")).FirstOrDefault();

            if (validationReference != null)
            {
                string reference = (string)((BulkEntry)(e.Row)).Reference;
                if ((reference == null && !validationReference.Nullable.Value) || (reference != null && reference.Length == 0 && !validationReference.Nullable.Value))
                {
                    e.ErrorText = "Value cannot be blank";
                    valid       = false;
                    grvEntries.SetColumnError(colReference, e.ErrorText);
                    grvEntries.FocusedColumn = colReference;
                }
                else
                {
                    e.ErrorText = string.Empty;
                }
            }

            DB.VW_Validation validationDescription = BL.ApplicationDataContext.Instance.ValidationRestrictions
                                                     .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Description")).FirstOrDefault();

            if (validationDescription != null)
            {
                string description = (string)((BulkEntry)(e.Row)).Description;
                if ((description == null && !validationDescription.Nullable.Value) || (description != null && description.Length == 0 && !validationDescription.Nullable.Value))
                {
                    e.ErrorText = "Value cannot be blank";
                    if (valid)
                    {
                        valid = false;
                    }
                    grvEntries.SetColumnError(colDescription, e.ErrorText);
                    grvEntries.FocusedColumn = colDescription;
                    return;
                }
                else
                {
                    e.Valid = true;
                }
            }

            e.Valid = valid;
            grvEntries.ShowEditor();
        }
Beispiel #3
0
        private void grvEntries_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)
        {
            DB.VW_Validation validationReference = BL.ApplicationDataContext.Instance.ValidationRestrictions
                                                   .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Reference")).FirstOrDefault();

            if (validationReference != null && grvEntries.FocusedColumn.Equals(colReference))
            {
                string reference = (string)e.Value;

                if (reference != null && reference.Length > validationReference.LengthMax && !validationReference.Nullable.Value)
                {
                    e.ErrorText = String.Format("Value cannot be longer than {0} characters", validationReference.LengthMax);
                    e.Valid     = false;
                    return;
                }
                else
                {
                    e.ErrorText = string.Empty;
                }
            }

            DB.VW_Validation validationDescription = BL.ApplicationDataContext.Instance.ValidationRestrictions
                                                     .Where(n => n.TableName.Equals("GLX_Header") && n.ColumnName.Equals("Description")).FirstOrDefault();

            if (validationDescription != null && grvEntries.FocusedColumn.Equals(validationDescription))
            {
                string reference = (string)e.Value;

                if (reference != null && reference.Length > validationDescription.LengthMax && !validationDescription.Nullable.Value)
                {
                    e.ErrorText = String.Format("Value cannot be longer than {0} characters", validationDescription.LengthMax);
                    e.Valid     = false;
                    return;
                }
                else
                {
                    e.Valid = true;
                }
            }
        }
Beispiel #4
0
        protected override bool SaveSuccessful()
        {
            try
            {
                using (new CDS.Client.Desktop.Essential.UTL.WaitCursor())
                {
                    this.OnSaveRecord();

                    if (!IsValid)
                    {
                        return(false);
                    }

                    if (glxAccount.CenterId == -1)
                    {
                        glxAccount.CenterId = null;
                    }

                    //TODO: Improve this
                    DB.VW_Validation validationItem =
                        BL.ApplicationDataContext.Instance.ValidationRestrictions.Where(n =>
                                                                                        ((System.Windows.Forms.BindingSource)(txtName.DataBindings[0].DataSource)).DataSource.ToString().Split('.').Last().StartsWith(n.TableName) &&
                                                                                        n.ColumnName.Equals(txtName.DataBindings[0].BindingMemberInfo.BindingField)).FirstOrDefault();

                    ((DB.SYS_Entity)BindingSourceEntity.DataSource).ShortName = ((DB.SYS_Entity)BindingSourceEntity.DataSource).Name.Substring(0, validationItem.LengthMax.Value > txtName.Text.Length ? txtName.Text.Length : (int)validationItem.LengthMax.Value);


                    if (sysEntity.CodeSub != "00000")
                    {
                        DB.GLX_Account glxControlAccount = BL.GLX.GLX_Account.LoadControlAccountByCode(sysEntity.CodeMain, DataContext);
                        glxAccount.AgingAccount    = glxControlAccount.AgingAccount;
                        glxAccount.AccountTypeId   = glxControlAccount.AccountTypeId;
                        glxAccount.MasterControlId = glxControlAccount.EntityId;
                    }
                    else
                    {
                        if (ceSiteAccount.Checked)
                        {
                            glxAccount.SiteId = (long?)ddlSiteSelection.EditValue;
                        }
                    }

                    glxAccount.IsNewAccount = DataContext.EntityAccountingContext.GetEntityState(glxAccount) == System.Data.Entity.EntityState.Detached;
                    glxAccount.SiteAccount  = BindingSourceSiteAccount.DataSource as DB.GLX_SiteAccount;
                    if (glxAccount.SiteAccount != null)
                    {
                        glxAccount.SiteAccount.MakeSiteDefault = makeSiteDefault;
                    }

                    try
                    {
                        using (TransactionScope transaction = DataContext.GetTransactionScope())
                        {
                            BL.EntityController.SaveSYS_Entity(sysEntity, DataContext);
                            //Needs another check, Should only happen for ORG entities and not other accounts ie. Bank account, COS account etc
                            if (sysEntity.ChangeList.Contains("Name") && BL.ApplicationDataContext.Instance.Modules.Any(n => n.Id == (byte)BL.SYS.SYS_Modules.ORG && n.Code == "YES") && BL.ApplicationDataContext.Instance.SystemEntityContext.SYS_Entity.Any(n => n.CodeSub == sysEntity.CodeSub && n.TypeId == 3))
                            {
                                BL.SYS.SYS_Entity.AllignCompanyAccountNames(sysEntity, DataContext);
                            }
                            DataContext.SaveChangesEntitySystemContext();
                            glxAccount.EntityId = sysEntity.Id;
                            //ControlId Represents the Rollup Account
                            //on New Accounts it is its own control
                            glxAccount.ControlId = sysEntity.Id;
                            BL.EntityController.SaveGLX_Account(glxAccount, DataContext);
                            DataContext.SaveChangesEntityAccountingContext();
                            DataContext.SaveChangesEntitySystemContext();
                            DataContext.CompleteTransaction(transaction);
                        }
                        DataContext.EntityAccountingContext.AcceptAllChanges();
                        DataContext.EntitySystemContext.AcceptAllChanges();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        DataContext.EntityAccountingContext.RejectChanges();
                        DataContext.EntitySystemContext.RejectChanges();
                        HasErrors = true;
                        if (CDS.Shared.Exception.UserInterfaceExceptionHandler.HandleException(ref ex))
                        {
                            throw ex;
                        }
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                HasErrors = true; CurrentException = ex;
                if (CDS.Shared.Exception.UserInterfaceExceptionHandler.HandleException(ref ex))
                {
                    throw ex;
                }
                return(false);
            }
        }