public bool CodeRuleDefinifionEditingDateTimeData_PreTransitionCRUD(string transition)
        {
            switch (transition)
            {
            case "Save":
            {
                try
                {
                    //Get CodeRuleDataType
                    Guid codeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());

                    //Get CodeRuleDataFormat
                    Guid codeRuleDataFormatId = Guid.Parse(cbCodeRuleDataFormat.SelectedItem.Value.ToString());

                    codeRuleDefinitionBO.Update(session, CodeRuleDefinitionId, codeRuleDataTypeId);

                    CodeRuleData codeRuleData = codeRuleDataBO.Update(session, CodeRuleDefinitionId, codeRuleDataFormatId);

                    CodeRuleDataId = codeRuleData.CodeRuleDataId;

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }

            default:
                break;
            }
            return(true);
        }
        public bool CodeRuleDefinitionEditing_UpdateGUI()
        {
            ClearForm();
            CodeRuleData codeRuleData =
                codeRuleDataBO.GetCodeRuleData(session, CodeRuleDefinitionId);

            cbCodeRuleDataType.Value =
                codeRuleData.CodeRuleDefinitionId.CodeRuleDataTypeId.CodeRuleDataTypeId.ToString();
            popupCodeRuleDefinitionEditingForm.ShowOnPageLoad = true;
            return(true);
        }
        private void SetCodeRuleDataFormat()
        {
            Guid         selectedCodeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());
            CodeRuleData codeRuleData =
                codeRuleDataBO.GetCodeRuleData(session, CodeRuleDefinitionId, selectedCodeRuleDataTypeId);

            if (codeRuleData == null)
            {
                cbCodeRuleDataFormat.SelectedIndex = 0;
            }
        }
        public bool CodeRuleDefinifionCreatingNumberData_PreTransitionCRUD(string transition)
        {
            switch (transition)
            {
            case "Save":
            {
                try
                {
                    ArtifactCodeRuleEditingForm artifactCodeRuleEditingForm = (ArtifactCodeRuleEditingForm)Parent;

                    //Get CodeRuleDataType
                    Guid codeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());

                    //Get CodeRuleDataFormat
                    Guid codeRuleDataFormatId = Guid.Parse(cbCodeRuleDataFormat.SelectedItem.Value.ToString());

                    Guid ruleRepeaterTypeId = Guid.Parse(cbRuleRepeaterType.SelectedItem.Value.ToString());

                    CodeRuleDefinition codeRuleDefinition = codeRuleDefinitionBO.Insert(session,
                                                                                        artifactCodeRuleEditingForm.ArtifactCodeRuleId,
                                                                                        codeRuleDataTypeId,
                                                                                        ParentCodeRuleDefinitionId);

                    int beginNum = (int)spinBeginNumberValue.Number;
                    int step     = (int)spinStep.Number;
                    int endNum   = (int)spinEndNumberValue.Number;

                    CodeRuleData codeRuleData = codeRuleNumberDataBO.Insert(session,
                                                                            codeRuleDefinition.CodeRuleDefinitionId,
                                                                            codeRuleDataFormatId,
                                                                            beginNum,
                                                                            step,
                                                                            endNum,
                                                                            ruleRepeaterTypeId);

                    CodeRuleDefinitionId = codeRuleDefinition.CodeRuleDefinitionId;

                    CodeRuleDataId = codeRuleData.CodeRuleDataId;

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }

            default:
                break;
            }
            return(true);
        }
        public bool CodeRuleDefinifionCreatingStringData_PreTransitionCRUD(string transition)
        {
            switch (transition)
            {
            case "Save":
            {
                try
                {
                    ArtifactCodeRuleEditingForm artifactCodeRuleEditingForm = (ArtifactCodeRuleEditingForm)Parent;

                    //Get CodeRuleDataType
                    Guid codeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());

                    //Get CodeRuleDataFormat
                    Guid codeRuleDataFormatId = Guid.Parse(cbCodeRuleDataFormat.SelectedItem.Value.ToString());

                    CodeRuleDefinition codeRuleDefinition = codeRuleDefinitionBO.Insert(session,
                                                                                        artifactCodeRuleEditingForm.ArtifactCodeRuleId,
                                                                                        codeRuleDataTypeId,
                                                                                        ParentCodeRuleDefinitionId);

                    CodeRuleData codeRuleData = codeRuleStringDataBO.Insert(session,
                                                                            codeRuleDefinition.CodeRuleDefinitionId,
                                                                            codeRuleDataFormatId,
                                                                            txtStringValue.Text);

                    CodeRuleDefinitionId = codeRuleDefinition.CodeRuleDefinitionId;

                    CodeRuleDataId = codeRuleData.CodeRuleDataId;

                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }

            default:
                break;
            }
            return(true);
        }
        protected void cpnCodeRuleDefinitionEditingForm_Callback(object sender, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
        {
            string transition = null;
            bool   isSuccess  = false;

            try
            {
                string[] args = e.Parameter.Split('|');
                transition = args[0];

                if (transition.Equals("Edit"))
                {
                    if (args.Length > 1)
                    {
                        CodeRuleDefinitionId       = Guid.Parse(args[1]);
                        ParentCodeRuleDefinitionId = Guid.Empty;
                    }
                    else
                    {
                        throw new Exception();
                    }

                    GUIContext.State =
                        new ERPSystem.ArtifactCode.State.CodeRuleDefinitionForm.CodeRuleDefinitionEditing(this);
                    CodeRuleData codeRuleData =
                        codeRuleDataBO.GetCodeRuleData(session, CodeRuleDefinitionId);

                    CodeRuleDataId = codeRuleData.CodeRuleDataId;

                    transition =
                        GetTransitionByDataTypeCode(codeRuleData.CodeRuleDefinitionId.CodeRuleDataTypeId.Code);
                    //Request change state
                    GUIContext.Request(transition, this);
                }
                else if (transition.Equals("Create"))
                {
                    if (args.Length > 1)
                    {
                        CodeRuleDefinitionId = Guid.Empty;
                        Guid temp;
                        if (!Guid.TryParse(args[1], out temp))
                        {
                            temp = Guid.Empty;
                        }
                        ParentCodeRuleDefinitionId = temp;
                    }
                    else
                    {
                        throw new Exception();
                    }

                    GUIContext.State =
                        new ERPSystem.ArtifactCode.State.CodeRuleDefinitionForm.CodeRuleDefinitionCreating(this);

                    cbCodeRuleDataType.SelectedIndex = 0;
                    Guid             selectedCodeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());
                    CodeRuleDataType codeRuleDataType           =
                        session.GetObjectByKey <CodeRuleDataType>(selectedCodeRuleDataTypeId);
                    transition =
                        GetTransitionByDataTypeCode(codeRuleDataType.Code);
                    //Request change state
                    GUIContext.Request(transition, this);
                }
                else if (transition.Equals("ChangeDataType"))
                {
                    Guid             selectedCodeRuleDataTypeId = Guid.Parse(cbCodeRuleDataType.SelectedItem.Value.ToString());
                    CodeRuleDataType codeRuleDataType           =
                        session.GetObjectByKey <CodeRuleDataType>(selectedCodeRuleDataTypeId);
                    transition =
                        GetTransitionByDataTypeCode(codeRuleDataType.Code);
                    //Request change state
                    GUIContext.Request(transition, this);
                }
                else
                {
                    //Request change state
                    GUIContext.Request(transition, this);
                }

                isSuccess = true;
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                if (transition != null)
                {
                    cpnCodeRuleDefinitionEditingForm.JSProperties.Add("cpCallbackArgs",
                                                                      String.Format("{{ \"transition\": \"{0}\", \"success\": {1} }}",
                                                                                    transition, isSuccess.ToString().ToLower()));
                }
            }
        }
Exemplo n.º 7
0
        public List <CodeRuleDefinitionView> GetCodeRuleDefinitionView(Guid artifactCodeRuleId)
        {
            List <CodeRuleDefinitionView> ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                ArtifactCodeRule artifactCodeRule = session.GetObjectByKey <ArtifactCodeRule>(artifactCodeRuleId);

                XPQuery <CodeRuleData>       codeRuleDataQuery       = session.Query <CodeRuleData>();
                XPQuery <CodeRuleDefinition> codeRuleDefinitionQuery = session.Query <CodeRuleDefinition>();

                List <CodeRuleData> codeRuleDataList = (from da in codeRuleDataQuery
                                                        join de in codeRuleDefinitionQuery
                                                        on da.CodeRuleDefinitionId equals de
                                                        where de.ArtifactCodeRuleId == artifactCodeRule &&
                                                        de.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE &&
                                                        da.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE
                                                        select da).ToList();

                if (codeRuleDataList != null)
                {
                    ret = new List <CodeRuleDefinitionView>();
                    foreach (CodeRuleData item in codeRuleDataList)
                    {
                        CodeRuleDefinitionView codeRuleDefinitionView;
                        if (item is CodeRuleStringData)
                        {
                            CodeRuleStringData actualCodeRuleData = (CodeRuleStringData)item;
                            Guid parentCodeRuleDefinitionId       = Guid.Empty;
                            if (actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId != null)
                            {
                                parentCodeRuleDefinitionId =
                                    actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId.CodeRuleDefinitionId;
                            }
                            codeRuleDefinitionView = new CodeRuleDefinitionView()
                            {
                                CodeRuleDefinitionId       = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDefinitionId,
                                ParentCodeRuleDefinitionId = parentCodeRuleDefinitionId,
                                DataFormat = actualCodeRuleData.CodeRuleDataFormatId.Name,
                                DataType   = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDataTypeId.Name,
                                DataValue  = actualCodeRuleData.StringValue
                            };
                        }
                        else if (item is CodeRuleNumberData)
                        {
                            CodeRuleNumberData actualCodeRuleData = (CodeRuleNumberData)item;
                            Guid parentCodeRuleDefinitionId       = Guid.Empty;
                            if (actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId != null)
                            {
                                parentCodeRuleDefinitionId =
                                    actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId.CodeRuleDefinitionId;
                            }
                            codeRuleDefinitionView = new CodeRuleDefinitionView()
                            {
                                CodeRuleDefinitionId       = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDefinitionId,
                                ParentCodeRuleDefinitionId = parentCodeRuleDefinitionId,
                                DataFormat = actualCodeRuleData.CodeRuleDataFormatId.Name,
                                DataType   = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDataTypeId.Name,
                                DataValue  = actualCodeRuleData.BeginNumberValue.ToString()
                            };
                        }
                        else
                        {
                            CodeRuleData actualCodeRuleData         = item;
                            Guid         parentCodeRuleDefinitionId = Guid.Empty;
                            if (actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId != null)
                            {
                                parentCodeRuleDefinitionId =
                                    actualCodeRuleData.CodeRuleDefinitionId.ParentCodeRuleDefinitionId.CodeRuleDefinitionId;
                            }
                            codeRuleDefinitionView = new CodeRuleDefinitionView()
                            {
                                CodeRuleDefinitionId       = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDefinitionId,
                                ParentCodeRuleDefinitionId = parentCodeRuleDefinitionId,
                                DataFormat = actualCodeRuleData.CodeRuleDataFormatId.Name,
                                DataType   = actualCodeRuleData.CodeRuleDefinitionId.CodeRuleDataTypeId.Name,
                                DataValue  = String.Empty
                            };
                        }
                        ret.Add(codeRuleDefinitionView);
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                return(null);
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
Exemplo n.º 8
0
        public string GetCodeDefinition(Session session, CodeRuleDefinition codeRuleDefinition, bool isUpdateLastestWhenIsNumber)
        {
            string codeDefinition = String.Empty;

            ArtifactCodeFormater.CodeRuleData         data     = null;
            ArtifactCodeFormater.CodeRuleDataFormater formater = null;
            int beginNum   = 0;
            int step       = 0;
            int endNum     = 0;
            int lastestNum = 0;
            int currentNum = 0;

            //2.1. Get data type

            //2.2. Get format type
            CodeRuleData codeRuleData =
                codeRuleDefinition.CodeRuleData.FirstOrDefault(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE);

            //Get format code
            string dataFormat = codeRuleData.CodeRuleDataFormatId.Code;

            //2.3. Determine the data type
            //2.3.1. When is STRING
            #region STRING
            if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("STRING"))
            {
                CodeRuleStringData _codeRuleStringData = (CodeRuleStringData)codeRuleData;
                data = new ArtifactCodeFormater.CodeRuleData();
                switch (dataFormat)
                {
                case "NORMAL":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterString();
                    break;

                case "LOWERCASE":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringLowerCase();
                    break;

                case "UPPERCASE":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringUpperCase();
                    break;

                case "ACSII":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI();
                    break;

                case "UPPERCASE_ACSII":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI(
                        new ArtifactCodeFormater.CodeRuleDataFormaterStringUpperCase()
                        );
                    break;

                case "LOWERCASE_ACSII":
                    formater = new ArtifactCodeFormater.CodeRuleDataFormaterStringACSI(
                        new ArtifactCodeFormater.CodeRuleDataFormaterStringLowerCase()
                        );
                    break;

                default:
                    break;
                }

                data.Value        = _codeRuleStringData.StringValue;
                data.FormatString = _codeRuleStringData.CodeRuleDataFormatId.FormatString;
            }
            #endregion
            //2.3.2. When is NUMBER
            #region NUMBER
            else if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("NUMBER"))
            {
                CodeRuleNumberData _codeRuleNumberData = (CodeRuleNumberData)codeRuleData;
                //2.3.2.1. Get begin number
                beginNum = _codeRuleNumberData.BeginNumberValue;
                //2.3.2.2. Get step
                step = _codeRuleNumberData.Step;
                //2.3.2.3. Get end number
                endNum = _codeRuleNumberData.EndNumberValue;
                //2.3.2.4. Get lastest number
                lastestNum = _codeRuleNumberData.LastNumber;
                //check can get more code
                if (isUpdateLastestWhenIsNumber)
                {
                    if (step > 0)
                    {
                        if ((step + lastestNum) > endNum)
                        {
                            throw new Exception("Definition is invalid");
                        }
                    }
                    else if (step < 0)
                    {
                        if ((step + lastestNum) < endNum)
                        {
                            throw new Exception("Definition is invalid");
                        }
                    }
                    currentNum = lastestNum + step;
                }
                else
                {
                    currentNum = beginNum;
                }
                formater          = new ArtifactCodeFormater.CodeRuleDataFormaterNumber();
                data              = new ArtifactCodeFormater.CodeRuleData();
                data.Value        = currentNum;
                data.FormatString = _codeRuleNumberData.CodeRuleDataFormatId.FormatString;

                if (isUpdateLastestWhenIsNumber)
                {
                    _codeRuleNumberData.LastNumber = currentNum;
                    _codeRuleNumberData.Save();
                }
            }
            #endregion
            //2.3.3. When is DATETIME
            #region DATETIME
            //Get system datetime
            else if (codeRuleDefinition.CodeRuleDataTypeId.Code.Equals("DATETIME"))
            {
                formater          = new ArtifactCodeFormater.CodeRuleDataFormaterDateTime();
                data              = new ArtifactCodeFormater.CodeRuleData();
                data.Value        = DateTime.Now;
                data.FormatString = codeRuleData.CodeRuleDataFormatId.FormatString;
            }
            #endregion

            data.UseFormater(formater);
            codeDefinition = data.GetFormatedValue();

            int countChild = codeRuleDefinition.CodeRuleDefinitions.Where(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE).Count();
            if (countChild == 0)
            {
                return(codeDefinition);
            }
            else
            {
                CodeRuleDefinition childCodeRuleDefinition =
                    codeRuleDefinition.CodeRuleDefinitions
                    .Where(r => r.RowStatus == Utility.Constant.ROWSTATUS_ACTIVE)
                    .First();
                return(codeDefinition += GetCodeDefinition(session, childCodeRuleDefinition, isUpdateLastestWhenIsNumber));
            }
        }