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); } } }
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); } } }
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" + " ابتدا رسید /حواله های بعد از این سند انبار را به وضعیت ریالی نشده منتقل کنید."); } } }