Пример #1
0
        public void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            //DebugHelper.Break();

            var salesCaseStatus_OpenID = OptionSetHelper.GetOptionSetItemID("crm.SalesCaseStatuses", "Open");
            var salesCaseStatus_WonID  = OptionSetHelper.GetOptionSetItemID("crm.SalesCaseStatuses", "Won");

            if (entity.ChangeStatus == "Delete" ||
                entity.FieldValues["Status"].ToString() == salesCaseStatus_OpenID.ToString() ||
                entity.FieldValues["Status"].ToString() == salesCaseStatus_WonID.ToString())
            {
                var salesCaseLoseInfoEntity = dbHelper.FetchSingle("crm.SalesCaseLoseInfo",
                                                                   string.Format(@"SalesCase = '{0}'", entity.GetFieldValue <Guid>("ID")), null);
                if (salesCaseLoseInfoEntity != null)
                {
                    dbHelper.DeleteEntity(salesCaseLoseInfoEntity);
                }
            }

            if (entity.ChangeStatus == "Delete")
            {
                var salesCaseStageChangeHistoryEntityList = dbHelper.FetchMultiple("crm.SalesCaseStageChangeHistory",
                                                                                   string.Format(@"SalesCase = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null);
                if (salesCaseStageChangeHistoryEntityList.Entities.Count != 0)
                {
                    foreach (Entity salesCaseStageChangeHistoryEntity in salesCaseStageChangeHistoryEntityList.Entities)
                    {
                        dbHelper.DeleteEntity(salesCaseStageChangeHistoryEntity);
                    }
                }

                var salesCaseOwnerUserChangeHistoryEntityList = dbHelper.FetchMultiple("crm.SalesCaseOwnerUserChangeHistory",
                                                                                       string.Format(@"SalesCase = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null);
                if (salesCaseOwnerUserChangeHistoryEntityList.Entities.Count != 0)
                {
                    foreach (Entity salesCaseOwnerUserChangeHistoryEntity in salesCaseOwnerUserChangeHistoryEntityList.Entities)
                    {
                        dbHelper.DeleteEntity(salesCaseOwnerUserChangeHistoryEntity);
                    }
                }

                var salesCaseStatusChangeHistoryEntityList = dbHelper.FetchMultiple("crm.SalesCaseStatusChangeHistory",
                                                                                    string.Format(@"SalesCase = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null);
                if (salesCaseStatusChangeHistoryEntityList.Entities.Count != 0)
                {
                    foreach (Entity salesCaseStatusChangeHistoryEntity in salesCaseStatusChangeHistoryEntityList.Entities)
                    {
                        dbHelper.DeleteEntity(salesCaseStatusChangeHistoryEntity);
                    }
                }
            }
        }
Пример #2
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var workflowDefID            = entity.GetFieldValue <Guid>("ID");
                var workflowStageOrgPostions = dbHelper.FetchMultiple("cmn.WorkflowStageOrgPostion",
                                                                      string.Format("WorkflowDef = '{0}'", workflowDefID.ToString()), null, null, null, null).Entities;

                foreach (Entity workflowStageOrgPostion in workflowStageOrgPostions)
                {
                    dbHelper.DeleteEntity(workflowStageOrgPostion);
                }
            }

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                var workflowFormID = entity.GetFieldValue <Guid>("WorkflowForm");

                if (dbHelper.EntityExists("cmn.WorkflowDef",
                                          string.Format("WorkflowForm = '{0}' and ID <> '{1}'",
                                                        workflowFormID, entity.GetFieldValue <Guid>("ID"))))
                {
                    throw new AfwException("برای این فرم، گردش کار دیگری تعریف شده است.");
                }
            }
        }
Пример #3
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus == EntityChangeTypes.Add)
            {
                var lastOpNumber = cmn.Instance.GetFieldMaxIntValue("OpNumber", "wm_WarehouseHybridOperations", null);
                entity.SetFieldValue("OpNumber", lastOpNumber + 1);
            }

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                foreach (var ghabzOrHavaleItem in entity.GetFieldValue <EntityList>("WarehouseHybridOperationItems").Entities)
                {
                    if (ghabzOrHavaleItem.FieldExists("Stuff_Entity"))
                    {
                        ghabzOrHavaleItem.RemoveField("Stuff_Entity");
                    }
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var ghabzOrHavaleList = dbHelper.FetchMultiple("wm.GhabzOrHavale",
                                                               string.Format("RefDoc_WarehouseHybridOperation = '{0}'", entity.GetFieldValue <Guid>("ID")),
                                                               null, null, null, null);

                foreach (var ghabzOrHavale in ghabzOrHavaleList.Entities)
                {
                    dbHelper.DeleteEntity(ghabzOrHavale);
                }
            }
        }
Пример #4
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            //DebugHelper.Break();

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var personRoleRelations = dbHelper.FetchMultiple("cmn.PersonRoleRelation", string.Format("Person = '{0}'", entity.FieldValues["ID"].ToString()), null, null, null, null);
                foreach (Entity personRoleRelationEntity in personRoleRelations.Entities)
                {
                    dbHelper.DeleteEntity(personRoleRelationEntity);
                }

                var roles = dbHelper.FetchMultiple("cmn.PersonRole", null, null, null, null, null).Entities;
                foreach (var role in roles)
                {
                    var roleName       = role.GetFieldValue <string>("Name");
                    var roleInfoEntity = dbHelper.FetchSingle("cmn.Person_" + roleName + "Info", string.Format("Person = '{0}'", entity.FieldValues["ID"].ToString()), null);

                    if (roleInfoEntity != null)
                    {
                        dbHelper.DeleteEntity(roleInfoEntity);
                    }
                }

                var personGroupRelations = dbHelper.FetchMultiple("cmn.PersonGroupRelation", string.Format("Person = '{0}'", entity.FieldValues["ID"].ToString()), null, null, null, null);
                foreach (Entity personGroupRelationEntity in personGroupRelations.Entities)
                {
                    dbHelper.DeleteEntity(personGroupRelationEntity);
                }
            }
            else
            {
                entity.SetFieldValue("StoredDisplayText", CalculateStoredDisplayText(entity));
            }

            //else if(entity.ChangeStatus == EntityChangeTypes.Add)
            //{
            //    //var entityList = AreExistPersonCodes(dbHelper, entity);
            //    //if (entityList != null)

            //}
        }
Пример #5
0
        private void DeleteFinancialItem(EntityDbHelper dbHelper, Entity itemEntity)
        {
            try
            {
                var receiveTypeName = new ReceiveTypeBL().GetReceiveTypeName(itemEntity.GetFieldValue <Guid>("ReceiveType"));
                var fieldName       = "";
                var entityFullName  = "";
                switch (receiveTypeName)
                {
                case "Cheque":
                    entityFullName = "rp.ReceivedCheque";
                    fieldName      = "FinancialItem_Cheque";
                    break;

                case "Safte":
                    entityFullName = "rp.SafteDaryafti";
                    fieldName      = "FinancialItem_Safte";
                    break;

                case "Havale":
                    entityFullName = "rp.HavaleDaryafti";
                    fieldName      = "FinancialItem_Havale";
                    break;

                case "Naghd":
                    entityFullName = "rp.NaghdeDaryafti";
                    fieldName      = "FinancialItem_Naghd";
                    break;

                case "ChekeZemanat":
                    entityFullName = "rp.ChekeZemanateDaryafti";
                    fieldName      = "FinancialItem_ChekeZemanat";
                    break;

                case "Pos":
                    entityFullName = "rp.ReceivedPos";
                    fieldName      = "FinancialItem_Pos";
                    break;
                }

                var financialItemEntity = dbHelper.FetchSingleByID(entityFullName, itemEntity.GetFieldValue <Guid>(fieldName), null);
                dbHelper.DeleteEntity(financialItemEntity);
            }
            catch (Exception ex)
            {
                throw new Exception("Error in Delete ReceiveReceiptFinancialItem.", ex);
            }
        }
Пример #6
0
        //public bool StuffDefHasTaxAndToll(Guid stuffDefId)
        //{
        //    var dbHelper = CoreComponent.Instance.MainDbHelper;

        //    var stuffDef = dbHelper.FetchSingleByID("cmn.StuffDef", stuffDefId, new string[] { "SubCategory.MainCategory" });

        //    if (stuffDef.GetFieldValue<bool>("DarayeMaliatBarArzesheAfzudeh")
        //        || )
        //}

        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                //فعلا با ایجاد هر تعریف کالا، یک کالا هم ایجاد می کنیم.
                //با حذف تعریف کالا، ابتدا کالا باید حذف شود
                var stuff = dbHelper.FetchSingle("cmn.Stuff", string.Format("StuffDef = '{0}'", entity.GetFieldValue <Guid>("ID")), null);

                if (stuff != null)
                {
                    dbHelper.DeleteEntity(stuff);
                }
            }
        }
Пример #7
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            var receiveReceiptID = entity.GetFieldValue <Guid>("ID");

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                if (dbHelper.EntityExists("rp.ReceiveReceipt",
                                          string.Format("ReceiptNumber = {0} and FinancialYear = '{1}' and ID <> '{2}'",
                                                        entity.GetFieldValue <int>("ReceiptNumber"), entity.GetFieldValue <Guid>("FinancialYear"),
                                                        receiveReceiptID)))
                {
                    throw new AfwException("شماره این رسید قبلا ثبت شده است");
                }

                if (entity.GetFieldValue <int>("ReceiptNumber") < 1)
                {
                    throw new AfwException("شماره رسید نباید منفی باشد");
                }

                CheckPayerChangeEnable(entity);
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                acc.Instance.DeleteAccDocItems(entity.GetFieldValue <Guid?>("AccDoc"), "RefOp_ReceiveReceipt", receiveReceiptID);

                if (!(entity.GetFieldValue <string>("CreatorOpName") == null ||
                      entity.GetFieldValue <string>("CreatorOpName") == ""))
                {
                    if (entity.GetFieldValue <string>("CreatorOpName") == "krf.Registration")
                    {
                        var membershipFileSettlement = dbHelper.FetchSingle("krf.MembershipFileSettlement",
                                                                            string.Format("ReceiveReceipt = '{0}'", receiveReceiptID), null);

                        if (membershipFileSettlement != null)
                        {
                            dbHelper.DeleteEntity(membershipFileSettlement);
                        }
                    }
                }
            }
        }
Пример #8
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            var id = entity.GetFieldValue <Guid>("ID");

            if (entity.ChangeStatus == EntityChangeTypes.Add)
            {
                var afwOrganizationUnit = dbHelper.CreateNewEntity("afw.OrganizationUnit");
                afwOrganizationUnit.SetFieldValue("ID", id);
                afwOrganizationUnit.SetFieldValue("Name", entity.GetFieldValue <string>("Name"));
                afwOrganizationUnit.SetFieldValue("ParentOrganizationUnit", entity.GetFieldValue <Guid>("ParentOrganizationUnit"));

                dbHelper.InsertEntity(afwOrganizationUnit);
            }
            if (entity.ChangeStatus == EntityChangeTypes.Modify)
            {
                var afwOrganizationUnit = dbHelper.FetchSingleByID("afw.OrganizationUnit", id, null);

                if (afwOrganizationUnit == null)
                {
                    throw new AfwException("afwOrganizationUnit not found!");
                }

                afwOrganizationUnit.SetFieldValue("Name", entity.GetFieldValue <string>("Name"));
                afwOrganizationUnit.SetFieldValue("ParentOrganizationUnit", entity.GetFieldValue <Guid>("ParentOrganizationUnit"));

                dbHelper.UpdateEntity(afwOrganizationUnit);
            }
            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var afwOrganizationUnit = dbHelper.FetchSingleByID("afw.OrganizationUnit", id, null);

                if (afwOrganizationUnit == null)
                {
                    throw new AfwException("afwOrganizationUnit not found!");
                }

                dbHelper.DeleteEntity(afwOrganizationUnit);
            }
        }
Пример #9
0
        private void DeleteFinancialItem(EntityDbHelper dbHelper, Entity itemEntity)
        {
            try
            {
                var payTypeName    = new PayTypeBL().GetPayTypeName(itemEntity.GetFieldValue <Guid>("PayType"));
                var fieldName      = "";
                var entityFullName = "";
                switch (payTypeName)
                {
                case "Cheque":
                    entityFullName = "rp.PaidCheque";
                    fieldName      = "FinancialItem_Cheque";
                    break;

                case "Havale":
                    entityFullName = "rp.HavalePardakhti";
                    fieldName      = "FinancialItem_Havale";
                    break;

                case "Naghd":
                    entityFullName = "rp.NaghdePardakhti";
                    fieldName      = "FinancialItem_Naghd";
                    break;

                case "ChekeZemanat":
                    entityFullName = "rp.ChekeZemanatePardakhti";
                    fieldName      = "FinancialItem_ChekeZemanat";
                    break;
                }

                var financialItemEntity = dbHelper.FetchSingleByID(entityFullName, itemEntity.GetFieldValue <Guid>(fieldName), null);
                dbHelper.DeleteEntity(financialItemEntity);
            }
            catch (Exception ex)
            {
                throw new Exception("Error in Delete PayReceiptFinancialItem.", ex);
            }
        }
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus == EntityChangeTypes.Add)
            {
                var lastOpNumber = cmn.Instance.GetFieldMaxIntValue("OpNumber", "wm_StuffStatusChangeAndTransfers", null);
                entity.SetFieldValue("OpNumber", lastOpNumber + 1);
            }

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                foreach (var ghabzOrHavaleItem in entity.GetFieldValue <EntityList>("StuffStatusChangeAndTransferItems").Entities)
                {
                    if (ghabzOrHavaleItem.FieldExists("Stuff_Entity"))
                    {
                        ghabzOrHavaleItem.RemoveField("Stuff_Entity");
                    }
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var ghabzOrHavaleEntityList = dbHelper.FetchMultiple("wm.GhabzOrHavale",
                                                                     string.Format("RefDoc_StuffStatusChangeAndTransfer = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null).Entities;
                foreach (var ghabzOrHavale in ghabzOrHavaleEntityList)
                {
                    dbHelper.DeleteEntity(ghabzOrHavale);
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                //acc.Instance.DeleteAccDocDetail(entity.GetFieldValue<Guid?>("AccDoc"), "RefOp_StuffStatusChangeAndTransfer", invoiceID);
            }
        }
Пример #11
0
        public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.BeforeApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus == EntityChangeTypes.Add)
            {
                var lastOpNumber = cmn.Instance.GetFieldMaxIntValue("OpNumber", "wm_MontageOrDemontages",
                                                                    string.Format("OpType = '{0}'", entity.GetFieldValue <Guid>("OpType")));
                entity.SetFieldValue("OpNumber", lastOpNumber + 1);
            }

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                var stuffComponents = entity.GetFieldValue <EntityList>("StuffComponents").Entities;

                foreach (var stuffComponent in stuffComponents)
                {
                    if (stuffComponent.FieldExists("Stuff_Entity"))
                    {
                        stuffComponent.RemoveField("Stuff_Entity");
                    }
                }

                if (entity.GetFieldValue <Guid>("OpType") == OptionSetHelper.GetOptionSetItemID("wm.MontageOrDemontage", "Demontage"))
                {
                    int valuationPercentSum = 0;
                    foreach (var stuffComponent in stuffComponents)
                    {
                        if (stuffComponent.GetFieldValue <int?>("Demontage_ValuationPercent") == null)
                        {
                            throw new AfwException("درصد ریالی برای سطر {0} وارد نشده است.\r\nدرصد ریالی یا باید برای همه سطر ها وارد شود و یا برای هیچ سطری وارد نشود.", stuffComponent.GetFieldValue <int>("RowNumber"));
                        }

                        valuationPercentSum += stuffComponent.GetFieldValue <int>("Demontage_ValuationPercent");
                    }

                    if (valuationPercentSum != 100)
                    {
                        throw new AfwException("مجموع درصد ریالی اجزاء باید برابر با 100 باشد.");
                    }
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                var ghabzOrHavaleEntities = dbHelper.FetchMultiple("wm.GhabzOrHavale",
                                                                   string.Format("RefDoc_MontageOp = '{0}' or RefDoc_DemontageOp = '{0}'",
                                                                                 entity.GetFieldValue <Guid>("ID")), null, null, null, null).Entities;

                var resid = ghabzOrHavaleEntities.FirstOrDefault(o => o.GetFieldValue <Guid?>("WareHouseDocRialiReference") != null);
                if (resid == null)
                {
                    throw new AfwException("resid of montage or demontage op not found.");
                }
                dbHelper.DeleteEntity(resid);

                var havale = ghabzOrHavaleEntities.FirstOrDefault(o => o.GetFieldValue <Guid?>("WareHouseDocRialiReference") == null);
                if (havale == null)
                {
                    throw new AfwException("havale of montage or demontage op not found.");
                }
                dbHelper.DeleteEntity(havale);
            }
        }