Ejemplo n.º 1
0
 public MainGroup(Data.GoodiesGroup mainGroup, List <Data.GoodiesGroup> subGroups)
 {
     ID        = mainGroup.ID;
     name      = mainGroup.CName;
     code      = mainGroup.Code;
     SubGroups = new List <SubGroup>();
     foreach (var item in subGroups)
     {
         SubGroups.Add(new SubGroup()
         {
             name = item.CName, code = item.Code, Id = item.ID
         });
     }
 }
Ejemplo n.º 2
0
        protected void btnRegister_Click(object sender, EventArgs e)
        {
            try
            {
                var goodiesGroupBusiness = Business.GetGoodiesGroupBusiness();

                if (txtMainGroupCode.Text.Trim().Length == 0)
                {
                    throw new Exception(Localize.ex_no_main_group_code);
                }

                if (txtMainGroupTitle.Text.Trim().Length == 0)
                {
                    throw new Exception(Localize.ex_no_main_group_title);
                }

                if (txtSubsidiaryGroupCode.Text.Trim().Length != 0 && txtSubsidiaryGroupTitle.Text.Trim().Length == 0)
                {
                    throw new Exception(Localize.ex_no_subsidiary_group_title);
                }

                if (txtSubsidiaryGroupCode.Text.Trim().Length == 0 && txtSubsidiaryGroupTitle.Text.Trim().Length != 0)
                {
                    throw new Exception(Localize.ex_no_subsidiary_group_code);
                }


                Data.GoodiesGroup mainGroup, subsidiaryGroup = null;

                if (MainGroupId.HasValue && SubsidiaryGroupId.HasValue)
                {
                    subsidiaryGroup = goodiesGroupBusiness.GetById(SubsidiaryGroupId.Value);
                    mainGroup       = goodiesGroupBusiness.GetById(subsidiaryGroup.ParentId.Value);
                }
                else if (MainGroupId.HasValue)
                {
                    mainGroup = goodiesGroupBusiness.GetById(MainGroupId.Value);
                }
                else
                {
                    mainGroup = goodiesGroupBusiness.GetByCode(txtMainGroupCode.Text);
                    if (mainGroup == null)
                    {
                        mainGroup = new Data.GoodiesGroup();
                    }

                    subsidiaryGroup = goodiesGroupBusiness.GetByCode(txtMainGroupCode.Text + txtSubsidiaryGroupCode.Text);
                    if (subsidiaryGroup == null)
                    {
                        subsidiaryGroup = new Data.GoodiesGroup();
                    }
                    else
                    {
                        throw new Exception(Localize.ex_duplicated_subsidiary_group_code);
                    }
                }


                mainGroup.Code        = txtMainGroupCode.Text;
                mainGroup.CName       = txtMainGroupTitle.Text;
                mainGroup.CodeTitleId = Common.Constants.CodeTitle.CommodityMainGroup;


                if (subsidiaryGroup != null)
                {
                    subsidiaryGroup.Code        = txtMainGroupCode.Text + txtSubsidiaryGroupCode.Text;
                    subsidiaryGroup.CName       = txtSubsidiaryGroupTitle.Text;
                    subsidiaryGroup.CodeTitleId = Common.Constants.CodeTitle.CommoditySubsidiaryGroup;
                    if (goodiesGroupBusiness.IsNameExist(subsidiaryGroup))
                    {
                        throw new Exception(Localize.ex_duplicated_subsidiary_group_name);
                    }
                }

                if (goodiesGroupBusiness.IsNameExist(mainGroup))
                {
                    throw new Exception(Localize.ex_duplicated_main_group_name);
                }

                using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
                {
                    IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted,
                    Timeout = new TimeSpan(2, 0, 0)
                }))
                {
                    goodiesGroupBusiness.Save(mainGroup, string.Empty);

                    if (subsidiaryGroup != null && txtSubsidiaryGroupTitle.Text != string.Empty && txtSubsidiaryGroupCode.Text != string.Empty)
                    {
                        subsidiaryGroup.ParentId = mainGroup.ID;
                        goodiesGroupBusiness.Save(subsidiaryGroup, mainGroup.uniquepath);
                    }

                    scope.Complete();
                }

                this.Close();
            }
            catch (Exception ex)
            {
                AccountingKernel.Forms.Base.BaseWindow.ShowError(ex);
            }
        }