Example #1
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            //در صورت تیک خوردن تنظیمات در گروه فرعی، تیک ها در تعریف کالا ها هم زده می شوند.
            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                var stuffDefs = dbHelper.FetchMultiple("cmn.StuffDef", string.Format("SubCategory = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null).Entities;

                foreach (var stuffDef in stuffDefs)
                {
                    if (entity.GetFieldValue <bool>("HideInProforma") == true)
                    {
                        stuffDef.SetFieldValue("HideInProforma", true);
                    }
                    if (entity.GetFieldValue <bool>("HideInInvoice") == true)
                    {
                        stuffDef.SetFieldValue("HideInInvoice", true);
                    }
                    if (entity.GetFieldValue <bool>("HideInStockTransfer") == true)
                    {
                        stuffDef.SetFieldValue("HideInStockTransfer", true);
                    }
                    if (entity.GetFieldValue <bool>("DarayeMaliatBarArzesheAfzudeh") == true)
                    {
                        stuffDef.SetFieldValue("DarayeMaliatBarArzesheAfzudeh", true);
                    }

                    dbHelper.UpdateEntity(stuffDef);
                }
            }
        }
Example #2
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);
            }
        }
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                new SalesCaseBL().UpdateSalesCaseLastActionTime(entity.GetFieldValue <Guid>("SalesCase"));
            }

            var connectedPersonID = entity.GetFieldValue <Guid>("ConnectedPerson");

            if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify))
            {
                //ایجاد یا به روز رسانی اشخاص مرتبط در موجودیت مشتری
                var salesCase = dbHelper.FetchSingleByID("crm.SalesCase", entity.GetFieldValue <Guid>("SalesCase"), null);

                var personConnectedPerson = dbHelper.FetchSingle("cmn.PersonConnectedPerson",
                                                                 string.Format("ParentPerson = '{0}' and ConnectedPerson = '{1}'",
                                                                               salesCase.GetFieldValue <Guid>("Customer"), connectedPersonID), null);

                if (personConnectedPerson != null &&
                    personConnectedPerson.GetFieldValue <Guid?>("ConnectedPersonPost") != entity.GetFieldValue <Guid?>("ConnectedPersonPost"))
                {
                    personConnectedPerson.SetFieldValue("ConnectedPersonPost", entity.GetFieldValue <Guid?>("ConnectedPersonPost"));
                    dbHelper.UpdateEntity(personConnectedPerson);
                }
                else
                {
                    personConnectedPerson = dbHelper.CreateNewEntity("cmn.PersonConnectedPerson");
                    personConnectedPerson.SetFieldValue("ParentPerson", salesCase.GetFieldValue <Guid>("Customer"));
                    personConnectedPerson.SetFieldValue("ConnectedPerson", connectedPersonID);
                    personConnectedPerson.SetFieldValue("ConnectedPersonPost", entity.GetFieldValue <Guid?>("ConnectedPersonPost"));
                    dbHelper.InsertEntity(personConnectedPerson);
                }
            }
        }
Example #4
0
        public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity)
        {
            base.AfterApplyChanges(dbHelper, entity);

            if (wm.Instance.IsRunningUnvaluation)
            {
                return;
            }

            var ghabzOrHavaleTypeEntity   = dbHelper.FetchSingleByID("wm.GhabzOrHavaleType", entity.GetFieldValue <Guid>("GhabzOrHavaleType"), null);
            var vazeyatRiali_SanadShodeID = OptionSetHelper.GetOptionSetItemID("wm.VaziyatRialiAsnadAnbar", "SanadShode");
            var id = entity.GetFieldValue <Guid>("ID");
            var warehouseDocType = ghabzOrHavaleTypeEntity.GetFieldValue <Guid>("WarehouseDocType");

            if (entity.ChangeStatus == EntityChangeTypes.Add)
            {
                if (dbHelper.AdoDbHelper.ExistsRow(string.Format(@"
                    select 1
                    from wm_GhabzOrHavaleha GhabzOrHavaleh
	                    inner join wm_GhabzOrHavaleTypes GhabzOrHavaleType on GhabzOrHavaleType.ID = GhabzOrHavaleh.GhabzOrHavaleType
                    where GhabzOrHavaleType.WarehouseDocType = '{0}' 
	                    and GhabzOrHavaleh.StuffLocation = '{1}'
                        and GhabzOrHavaleh.GhabzOrHavaleNumber = {2}
                        and GhabzOrHavaleh.ID <> '{3}'",
                                                                 warehouseDocType,
                                                                 entity.GetFieldValue <Guid>("StuffLocation"),
                                                                 entity.GetFieldValue <decimal>("GhabzOrHavaleNumber"),
                                                                 id)))
                {
                    throw new AfwException(string.Format("{0} دیگری با این شماره ثبت شده است.",
                                                         OptionSetHelper.GetOptionSetItemTitle(warehouseDocType)));
                }

                if (entity.GetFieldValue <Guid?>("RefDoc_SalesInvoice") != null)
                {
                    var refDoc_SalesInvoiceID = entity.GetFieldValue <Guid>("RefDoc_SalesInvoice");
                    var salesProformaInvoice  = dbHelper.FetchSingleByID("ps.SalesInvoice", refDoc_SalesInvoiceID, null);
                    salesProformaInvoice.SetFieldValue("HavaleIssuingStatus", OptionSetHelper.GetOptionSetItemID("cmn.HavaleIssuingStatus", "HavaleShodeh"));
                    dbHelper.UpdateEntity(salesProformaInvoice);
                }
            }

            if (entity.ChangeStatus == EntityChangeTypes.Delete)
            {
                if (entity.GetFieldValue <Guid?>("RefDoc_SalesInvoice") != null)
                {
                    var proformaID = entity.GetFieldValue <Guid>("RefDoc_SalesInvoice");

                    if (dbHelper.EntityExists("ps.SalesInvoice",
                                              string.Format("IsProforma = 0 and SourceProforma = '{0}'", proformaID)))
                    {
                        throw new AfwException(string.Format("بدلیل صدور فاکتور امکان حذف حواله وجود ندارد."));
                    }

                    var proforma = dbHelper.FetchSingleByID("ps.SalesInvoice", proformaID, null);
                    proforma.SetFieldValue("HavaleIssuingStatus", OptionSetHelper.GetOptionSetItemID("cmn.HavaleIssuingStatus", "HavaleNashodeh"));
                    dbHelper.UpdateEntity(proforma);
                }
            }

            if (entity.ChangeStatus != EntityChangeTypes.Delete)
            {
                if (entity.FieldExists("GhabzOrHavaleItems") && entity.GetFieldValue <EntityList>("GhabzOrHavaleItems") != null)
                {
                    SaveItems(entity, entity.GetFieldValue <EntityList>("GhabzOrHavaleItems"), ghabzOrHavaleTypeEntity);
                }

                if (!HasItem(id))
                {
                    throw new AfwException("سند انبار فاقد آیتم است.");
                }
            }

            if (!wm.Instance.IsEvaluatingDocsForValuation && !wm.Instance.IsRunningValuation && !wm.Instance.IsRunningUnvaluation &&
                entity.GetFieldValue <Guid>("VazeyatRialiShodan") != vazeyatRiali_SanadShodeID)
            {
                if (wm.Instance.InventoryValuationBL.ValuatedDocExistsAfter(
                        entity.GetFieldValue <DateTime>("IssueDate"), entity.GetFieldValue <DateTime>("CreationTime")))
                {
                    throw new AfwException("سند انبار ریالی شده بعد از این سند انبار موجود است.\r\n" +
                                           " ابتدا رسید /حواله های بعد از این سند انبار را به وضعیت ریالی نشده منتقل کنید.");
                }
            }
        }