public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { if (wm.Instance.IsRunningUnvaluation) { LoadOldEntityOnBeforeApplyChanges = false; } base.BeforeApplyChanges(dbHelper, entity); if (wm.Instance.IsRunningUnvaluation) { return; } if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify)) { var ghabzOrHavale = dbHelper.FetchSingleByID("wm.GhabzOrHavale", entity.GetFieldValue <Guid>("GhabzOrHavale"), null); var ghabzOrHavaleTypeEntity = wm.Instance.GetGhabzOrHavaleTypeEntity(ghabzOrHavale.GetFieldValue <Guid>("GhabzOrHavaleType")); var warehouseDocName = OptionSetHelper.GetOptionSetItemName(ghabzOrHavaleTypeEntity.GetFieldValue <Guid>("WarehouseDocType")); var stuffLocationID = ghabzOrHavale.GetFieldValue <Guid?>("StuffLocation"); var stuffLocation = dbHelper.FetchSingleByID("cmn.StuffLocation", (Guid)stuffLocationID, null); var stuff = dbHelper.FetchSingleByID("cmn.Stuff", entity.GetFieldValue <Guid>("Stuff"), null); if (entity.FieldExists("Stuff_Entity")) { entity.RemoveField("Stuff_Entity"); } if (entity.GetFieldValue <int>("Quantity") < 0) { throw new AfwException("تعداد کالای وارد شده در سطر {0} مجاز نمی باشد.", entity.GetFieldValue <int>("RowNumber")); } else if (entity.GetFieldValue <int>("Quantity") == 0) { //تنها در رسید و حواله تغییر ارزش تعداد 0 مجاز است و در این حالت هم نباید شماره بچ و وضعیت وارد شود if (!string.IsNullOrEmpty(entity.GetFieldValue <string>("BatchNumber")) || entity.GetFieldValue <Guid?>("StuffStatus") != null) { throw new AfwException("تعداد کالای وارد شده در سطر {0} مجاز نمی باشد.", entity.GetFieldValue <int>("RowNumber")); } } if (!dbHelper.EntityExists("cmn.StuffPossibleLocation", string.Format("StuffDef = '{0}' and StuffLocation = '{1}'", stuff.GetFieldValue <Guid>("StuffDef"), stuffLocationID))) { throw new AfwException("در تعریف کالای سطر {0}، {1} بعنوان انبار مجاز انتخاب نشده است.", entity.GetFieldValue <int>("RowNumber"), stuffLocation.GetFieldValue <string>("Name")); } new GhabzOrHavaleItemBL().ValidateBatchNumbers(entity); } }
public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.AfterApplyChanges(dbHelper, entity); if (entity.ChangeStatus == EntityChangeTypes.Delete) { return; } var relatedReserveItem = entity.GetFieldValue <Guid>("ID"); var relatedReserveEntity = entity; if (entity.GetFieldValue <Guid?>("Unreserve_RelatedReserveItem") != null) { relatedReserveItem = entity.GetFieldValue <Guid>("Unreserve_RelatedReserveItem"); relatedReserveEntity = dbHelper.FetchSingleByID("wm.WarehouseInventoryReserveListItem", relatedReserveItem, null); } var unreserve_RelatedItems = dbHelper.FetchMultiple("wm.WarehouseInventoryReserveListItem", string.Format("Unreserve_RelatedReserveItem = '{0}'", relatedReserveItem), null, null, null, null); var quantitySum = 0; for (int i = 0; i < unreserve_RelatedItems.Entities.Count; i++) { quantitySum += unreserve_RelatedItems.Entities[i].GetFieldValue <int>("Quantity"); } if (quantitySum > relatedReserveEntity.GetFieldValue <int>("Quantity")) { throw new AfwException("تعداد کل کالاهای برگشتی این رزرو بیشتر از تعداد اولیه رزرو است"); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify)) { if (entity.GetFieldValue <Guid?>("FinancialGroup") == null) { throw new AfwException("FinancialGroup is not set.(Check in OrgzanizationUnitSetting)"); } ValidateOpDate(entity); } if (entity.ChangeStatus != EntityChangeTypes.None) { Guid financialDocTypeID = Guid.Empty; if (entity.FieldExists("FinancialDocType")) { financialDocTypeID = entity.GetFieldValue <Guid>("FinancialDocType"); } else if (entity.FieldExists("FinancialGroup")) { financialDocTypeID = dbHelper.FetchSingleByID("cmn.FinancialGroup", entity.GetFieldValue <Guid>("FinancialGroup"), null) .GetFieldValue <Guid>("FinancialDocType"); } acc.Instance.CheckFinalDocExistsAtDates(entity.GetFieldValue <Guid>("FinancialYear"), financialDocTypeID, entity.GetFieldValue <DateTime>(GetOpDateFieldName()), (_OldEntity != null ? _OldEntity.GetFieldValue <DateTime>(GetOpDateFieldName()) : null as DateTime?)); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify)) { if (String.IsNullOrEmpty(entity.GetFieldValue <string>("SerialNumber"))) { throw new AfwException("هیچ شماره سریالی وارد نشده است."); } var redundantExists = dbHelper.EntityExists("wm.StuffSerialNumber", string.Format("GhabzOrHavaleItem = '{0}' and SerialNumber = '{1}' and ID <> '{2}'", entity.GetFieldValue <Guid>("GhabzOrHavaleItem"), entity.GetFieldValue <string>("SerialNumber"), entity.GetFieldValue <Guid>("ID"))); if (redundantExists) { var rowNumber = dbHelper.FetchSingleByID("wm.GhabzOrHavaleItem", entity.GetFieldValue <Guid>("GhabzOrHavaleItem"), null).GetFieldValue <int>("RowNumber"); throw new AfwException("برای کالا در سطر {0} شماره سریال {1} تکراری ثبت شده است.", rowNumber, entity.GetFieldValue <string>("SerialNumber")); } } }
private void SetReturnFromBuyNumber(EntityDbHelper dbHelper, Entity entity) { var id = entity.GetFieldValue <Guid>("ID"); var financialGroupID = entity.GetFieldValue <Guid>("FinancialGroup"); var organizationUnit = entity.GetFieldValue <Guid>("OrganizationUnit"); var financialYearID = entity.GetFieldValue <Guid>("FinancialYear"); int?returnFromBuyNumber = cmn.Instance.GetFieldMaxIntValue("ReturnFromBuyNumber", "ps_ReturnFromBuys", string.Format(@" OrganizationUnit = '{0}' and FinancialGroup = '{1}' and FinancialYear = '{2}'", organizationUnit, financialGroupID, financialYearID)); if (returnFromBuyNumber != 0) { returnFromBuyNumber += 1; } else { var financialGroupEntity = dbHelper.FetchSingleByID("cmn.FinancialGroup", financialGroupID, null); var returnFromBuyStartNumber = financialGroupEntity.GetFieldValue <int?>("ReturnFromBuyStartNumber"); returnFromBuyNumber = (returnFromBuyStartNumber == null) ? 1 : (int)returnFromBuyStartNumber; } entity.SetFieldValue("ReturnFromBuyNumber", returnFromBuyNumber); entity.SetFieldValue("InternalNumber1", returnFromBuyNumber); }
public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.AfterApplyChanges(dbHelper, entity); //DebugHelper.Break(); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify)) { CreateGhabzOrHavale(entity, "Havale", entity.ChangeStatus); CreateGhabzOrHavale(entity, "Ghabz", entity.ChangeStatus); } if (entity.ChangeStatus != EntityChangeTypes.Delete) { if (entity.FieldExists("StuffStatusChangeAndTransferItems") && entity.GetFieldValue <EntityList>("StuffStatusChangeAndTransferItems") != null) { dbHelper.ApplyChanges(entity.GetFieldValue <EntityList>("StuffStatusChangeAndTransferItems")); } var stuffStatusChangeAndTransferType = dbHelper.FetchSingleByID("wm.StuffStatusChangeAndTransferType", entity.GetFieldValue <Guid>("StuffStatusChangeAndTransferType"), null); if (stuffStatusChangeAndTransferType.GetFieldValue <bool>("AccDocIssuing")) { CreateStuffStatusChangeAndTransferAccDoc(entity); } } if (entity.ChangeStatus == EntityChangeTypes.Delete) { //acc.Instance.DeleteAccDocMaster(entity.GetFieldValue<Guid?>("AccDoc"), "wm.StuffStatusChangeAndTransfer", invoiceID); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify, EntityChangeTypes.None)) { if (entity.GetFieldValue <Guid>("FinancialOpKind") == Guid.Parse("00000000-0000-0000-0000-000000000000")) { entity.SetFieldValue("FinancialOpKind", null); } var innerEntity = entity.GetFieldValue <Entity>("InnerItem"); innerEntity.ChangeStatus = entity.ChangeStatus == EntityChangeTypes.None ? EntityChangeTypes.Modify : entity.ChangeStatus; dbHelper.ApplyChanges(innerEntity); if (entity.ChangeStatus == EntityChangeTypes.Add && entity.GetFieldValue <Guid?>("FinancialItem_Cheque") != null) { var payReceipt = dbHelper.FetchSingleByID("rp.PayReceipt", entity.GetFieldValue <Guid>("PayReceipt"), null); new PaidChequeBL().CreateChequeStatusChange(innerEntity, payReceipt); } entity.FieldValues.Remove("InnerItem"); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add)) { if (dbHelper.EntityExists("rp.Tankhah", string.Format("TankhahNo = {0} and FinancialYear = '{1}' and ID <> '{2}'", entity.GetFieldValue <int>("TankhahNo"), entity.GetFieldValue <Guid>("FinancialYear"), entity.GetFieldValue <Guid>("ID")))) { throw new AfwException("شماره تنخواه تکراری است."); } } if (entity.ChangeStatus.IsIn(EntityChangeTypes.Modify, EntityChangeTypes.Delete)) { var oldTankhah = dbHelper.FetchSingleByID("rp.Tankhah", entity.GetFieldValue <Guid>("ID"), null); if (oldTankhah.GetFieldValue <Guid?>("AccDoc") != null && entity.GetFieldValue <Guid?>("AccDoc") != null /*except when deleting Doc that sets AccDoc field to null*/) { throw new AfwException("امکان تغییر یا حذف این آیتم بدلیل صدور سند حسابداری وجود ندارد."); } } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus == EntityChangeTypes.Modify) { var oldEntity = dbHelper.FetchSingleByID("ps.StuffRequest", entity.GetFieldValue <Guid>("ID"), null); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); var id = entity.GetFieldValue <Guid>("ID"); if (entity.ChangeStatus == EntityChangeTypes.Modify) { _OldConnectedPersonID = dbHelper.FetchSingleByID("cmn.PersonConnectedPerson", id, null).GetFieldValue <Guid>("ConnectedPerson"); } }
public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.AfterApplyChanges(dbHelper, entity); if (wm.Instance.IsRunningUnvaluation) { return; } var ghabzOrHavale = dbHelper.FetchSingleByID("wm.GhabzOrHavale", entity.GetFieldValue <Guid>("GhabzOrHavale"), null); var ghabzOrHavaleTypeEntity = wm.Instance.GetGhabzOrHavaleTypeEntity(ghabzOrHavale.GetFieldValue <Guid>("GhabzOrHavaleType")); var warehouseDocName = OptionSetHelper.GetOptionSetItemName(ghabzOrHavaleTypeEntity.GetFieldValue <Guid>("WarehouseDocType")); var stuffLocationID = ghabzOrHavale.GetFieldValue <Guid>("StuffLocation"); if (entity.ChangeStatus == EntityChangeTypes.Delete) { if (entity.GetFieldValue <Guid>("GhabzOrHavale") != wm.Instance.DeletingGhabzOrHavaleID) { wm.Instance.CompareRefDocItemsWithGhabzOrHavaleItems(ghabzOrHavale); } } else { if (warehouseDocName == "Havale" && ghabzOrHavaleTypeEntity.GetFieldValue <bool>("Havale_CheckStuffStock")) { CheckStuffStock(entity, stuffLocationID, ghabzOrHavale.GetFieldValue <DateTime>("IssueDate"), null, null); } //bool? isValuationActivity = null; //if (entity.ChangeStatus == EntityChangeTypes.Modify) //{ // if (wm.Instance.IsRunningValuation || wm.Instance.IsRunningUnvaluation || wm.Instance.IsEvaluatingDocsForValuation) // isValuationActivity = true; // else // { // var changedFieldNames = cmn.Instance.GetChangedFieldsName(_OldEntity, entity, null); // if (changedFieldNames.Any(o => !o.IsIn("LastModifyTime", "LastModifierUser", "RialiAmount"))) // isValuationActivity = true; // else // isValuationActivity = false; // } //} //else // isValuationActivity = false; if (!wm.Instance.InventoryValuationBL.IsInValuationOperation) { ApplyItemSerialNumbersChanges(ghabzOrHavale, entity); } } }
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 BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); var onTheWayStuffInfoID = entity.GetFieldValue <Guid>("OnTheWayStuffInfo"); Entity onTheWayStuffInfoEntity = dbHelper.FetchSingleByID("wm.OnTheWayStuffInfo", onTheWayStuffInfoID, null); int notReceivedNumber = new OnTheWayStuffInfoBL().GetNotReceivedStuffNumber(onTheWayStuffInfoEntity); if (notReceivedNumber < entity.GetFieldValue <int>("CurrentPartyReceivedQuantity")) { throw new AfwException("تعداد رسیده در این دریافت بیشتر از تعداد دریافت نشده در اطلاعات کالا در راه است "); } }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Modify, EntityChangeTypes.Delete)) { var tankhah = dbHelper.FetchSingleByID("rp.Tankhah", entity.GetFieldValue <Guid>("Tankhah"), null); if (tankhah.GetFieldValue <Guid?>("AccDoc") != null) { throw new AfwException("امکان تغییر یا حذف این آیتم بدلیل صدور سند حسابداری وجود ندارد."); } } }
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); } }
public virtual void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { _OldEntity = null; if (entity.EntityDefID == null) throw new AfwException("entity.EntityDefID is not set."); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Modify, EntityChangeTypes.Delete)) { if (LoadOldEntityOnBeforeApplyChanges) _OldEntity = dbHelper.FetchSingleByID((Guid)entity.EntityDefID, entity.GetFieldValue<Guid>("ID"), null); } if (entity.FieldExists("IssueDate") && entity.FieldExists("FinancialYear")) CheckIssueDateAndFinancialYearConsistency(entity); }
public override void AfterApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.AfterApplyChanges(dbHelper, entity); var salesCase = dbHelper.FetchSingleByID("crm.SalesCase", entity.GetFieldValue <Guid>("SalesCase"), null); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add)) { var salesCaseStatus_LostID = OptionSetHelper.GetOptionSetItemID("crm.SalesCaseStatuses", "Lost"); salesCase.FieldValues["Status"] = salesCaseStatus_LostID; } salesCase.FieldValues["LastActionTime"] = CoreComponent.Instance.GetServerDateTime(); salesCase.ChangeStatus = EntityChangeTypes.Modify; dbHelper.ApplyChanges(salesCase); }
public void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); using (var tranManager = new DbTransactionManager(dbHelper)) { if (entity.ChangeStatus == EntityChangeTypes.Modify) { var leadEntity = dbHelper.FetchSingleByID("crm.Lead", entity.GetFieldValue <Guid>("ID"), null); var workflowStage = leadEntity.GetFieldValue <Guid?>("WorkflowStage"); var newWorkflowStage = entity.GetFieldValue <Guid?>("WorkflowStage"); if (workflowStage != newWorkflowStage) { var workflowStageEntity = dbHelper.FetchSingle("cmn.WorkflowStage", string.Format("ID = '{0}'", workflowStage.ToString()), null); var workflowDef = dbHelper.FetchSingle("cmn.WorkflowDef", string.Format("ID = '{0}'", workflowStageEntity.GetFieldValue <Guid>("WorkflowDef").ToString()), null); var systemAction = workflowStageEntity.GetFieldValue <Guid?>("SystemAction"); if (systemAction != null) { //DebugHelper.Break(); var systemActionEntity = dbHelper.FetchSingle("cmn.WorkfolwSystemAction", string.Format("ID = '{0}'", systemAction), null); var stages = dbHelper.FetchMultiple("cmn.WorkflowStage", string.Format("WorkflowDef = '{0}'", workflowDef.GetFieldValue <Guid>("ID")), "StageOrder", null, null, null); for (int i = 0; i < stages.Entities.Count(); i++) { if (stages.Entities[i].GetFieldValue <Guid>("ID") == workflowStage) { if (stages.Entities[i + 1].GetFieldValue <Guid>("ID") == newWorkflowStage) { var systemActionName = systemActionEntity.GetFieldValue <string>("Name"); if (systemActionName == "CreateSalesCase") { ValidateLeadForQualify(entity); DoQualifyLead(entity); } } } } } } } tranManager.Commit(); } }
private void SetReturnFromSalesNumber(EntityDbHelper dbHelper, Entity entity) { var id = entity.GetFieldValue <Guid>("ID"); var financialGroupID = entity.GetFieldValue <Guid>("FinancialGroup"); var financialDocTypeID = entity.GetFieldValue <Guid>("FinancialDocType"); var organizationUnit = entity.GetFieldValue <Guid>("OrganizationUnit"); var financialYearID = entity.GetFieldValue <Guid>("FinancialYear"); var isAmani = entity.GetFieldValue <bool>("IsAmani"); int?returnFromSalesNumber = cmn.Instance.GetFieldMaxIntValue("ReturnFromSalesNumber", "ps_ReturnFromSales", string.Format(@" OrganizationUnit = '{0}' and FinancialDocType = '{1}' and FinancialYear = '{2}' and IsAmani = {3}", organizationUnit, financialDocTypeID, financialYearID, isAmani == true ? 1 : 0)); if (returnFromSalesNumber != 0) { returnFromSalesNumber += 1; } else { var financialGroupEntity = dbHelper.FetchSingleByID("cmn.FinancialGroup", financialGroupID, null); var returnFromSalesStartNumber = financialGroupEntity.GetFieldValue <int?>("ReturnFromSalesStartNumber"); var amaniReturnFromSalesStartNumber = financialGroupEntity.GetFieldValue <int?>("AmaniReturnFromSalesStartNumber"); if (isAmani) { returnFromSalesNumber = (amaniReturnFromSalesStartNumber == null) ? 1 : (int)amaniReturnFromSalesStartNumber; } else { returnFromSalesNumber = (returnFromSalesStartNumber == null) ? 1 : (int)returnFromSalesStartNumber; } } entity.SetFieldValue("ReturnFromSalesNumber", returnFromSalesNumber); entity.SetFieldValue("InternalNumber1", returnFromSalesNumber); }
public override void BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { base.BeforeApplyChanges(dbHelper, entity); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Add, EntityChangeTypes.Modify)) { var redundantExists = dbHelper.EntityExists("cmn.FinancialYear", string.Format("YearNo = '{0}' and ID <> '{1}'", entity.GetFieldValue <string>("YearNo"), entity.GetFieldValue <Guid>("ID"))); if (redundantExists) { throw new AfwException("این سال مالی قبلا ثبت شده است."); } } if (entity.ChangeStatus == EntityChangeTypes.Modify) { if (dbHelper.GetCount("acc.AccDoc", string.Format("FinancialYear = '{0}'", entity.GetFieldValue <Guid>("ID"))) != 0) { var oldFinancialYear = dbHelper.FetchSingleByID("cmn.FinancialYear", entity.GetFieldValue <Guid>("ID"), null); if (oldFinancialYear.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhatei") != entity.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhatei") || oldFinancialYear.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhateiePishnevis") != entity.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhateiePishnevis") || oldFinancialYear.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeMovaghateAsli") != entity.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeMovaghateAsli") || oldFinancialYear.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhateieAsli") != entity.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeGhateieAsli") || oldFinancialYear.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeMovaghatePishnevis") != entity.GetFieldValue <int?>("AccSetting_ShomareShorooeAsnadeMovaghatePishnevis") || oldFinancialYear.GetFieldValue <bool>("AccSetting_ShomareDehieMojazaBeAsnadeGhateieAsli") != entity.GetFieldValue <bool>("AccSetting_ShomareDehieMojazaBeAsnadeGhateieAsli")) { throw new AfwException("بدلیل وجود سند حسابداری امکان تغییر تنظیمات سال مالی وجود ندارد."); } } } }
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); var oldAccDocEntity = dbHelper.FetchSingleByID("acc.AccDoc", entity.GetFieldValue <Guid>("AccDoc"), null); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Delete, EntityChangeTypes.Modify)) { if (oldAccDocEntity.GetFieldValue <Guid>("DocStatus") == OptionSetHelper.GetOptionSetItemID("acc.DocStatus", "Final")) { throw new AfwException("امکان تغییر یا حذف آیتم سند قطعی شده وجود ندارد."); } } var exists = dbHelper.EntityExists("acc.Account", string.Format("ID = '{0}' and FinancialYear = '{1}'", entity.GetFieldValue <Guid>("Account"), oldAccDocEntity.GetFieldValue <Guid>("FinancialYear"))); if (!exists) { throw new AfwException("کدینگ انتخاب شده با سال مالی جاری تطابق ندارد."); } var debtorAmount = entity.GetFieldValue <decimal>("DebtorAmount"); var creditorAmount = entity.GetFieldValue <decimal>("CreditorAmount"); if (debtorAmount - Math.Truncate(debtorAmount) > 0) { throw new AfwException("مبلغ بدهکار در ردیف {0} سند {1} دارای اعشار است.{2}", entity.GetFieldValue <int>("RowNo"), oldAccDocEntity.GetFieldValue <int>("DocNo"), debtorAmount); } if (creditorAmount - Math.Truncate(creditorAmount) > 0) { throw new AfwException("مبلغ بستانکار در ردیف {0} سند {1} دارای اعشار است.{2}", entity.GetFieldValue <int>("RowNo"), oldAccDocEntity.GetFieldValue <int>("DocNo"), creditorAmount); } }
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 BeforeApplyChanges(EntityDbHelper dbHelper, Entity entity) { if (wm.Instance.IsRunningUnvaluation) { LoadOldEntityOnBeforeApplyChanges = false; } base.BeforeApplyChanges(dbHelper, entity); if (wm.Instance.IsRunningUnvaluation) { return; } var vazeyatRialiNashodeID = OptionSetHelper.GetOptionSetItemID("wm.VaziyatRialiAsnadAnbar", "RialiNashode"); var vazeyatRialiSanadShodeID = OptionSetHelper.GetOptionSetItemID("wm.VaziyatRialiAsnadAnbar", "SanadShode"); var oldGhabzOrHavaleEntity = dbHelper.FetchSingleByID("wm.GhabzOrHavale", entity.GetFieldValue <Guid>("ID"), null); if (entity.ChangeStatus.IsIn(EntityChangeTypes.Delete, EntityChangeTypes.Modify)) { if (oldGhabzOrHavaleEntity.GetFieldValue <Guid>("VazeyatRialiShodan") != vazeyatRialiNashodeID) { wm.Instance.InventoryValuationBL.CheckValuationPermission(); if (entity.GetFieldValue <Guid>("VazeyatRialiShodan") == vazeyatRialiSanadShodeID && oldGhabzOrHavaleEntity.GetFieldValue <Guid>("VazeyatRialiShodan") != vazeyatRialiSanadShodeID && oldGhabzOrHavaleEntity.GetFieldValue <Guid?>("AccDoc") == null) { if (entity.GetFieldValue <Guid?>("AccDoc") == null) { throw new AfwException("AccDoc Is not set but VazeyatRialiShodan is set to 'SanadShode'"); } } else if (entity.GetFieldValue <Guid>("VazeyatRialiShodan") != vazeyatRialiNashodeID) { throw new AfwException("برای تغییر سند انبار ابتدا آن را از حالت ریالی خارج نمایید."); } } } else if (entity.ChangeStatus == EntityChangeTypes.Add) { entity.SetFieldValue("VazeyatRialiShodan", vazeyatRialiNashodeID); } var ghabzOrHavaleTypeEntity = dbHelper.FetchSingleByID("wm.GhabzOrHavaleType", entity.GetFieldValue <Guid>("GhabzOrHavaleType"), null); var warehouseDocName = OptionSetHelper.GetOptionSetItemName(ghabzOrHavaleTypeEntity.GetFieldValue <Guid>("WarehouseDocType")); var stuffLocationID = entity.GetFieldValue <Guid?>("StuffLocation"); if (entity.ChangeStatus != EntityChangeTypes.Delete) { CompareRefDocItemsWithGhabzOrHavaleItems(entity); } if (entity.ChangeStatus == EntityChangeTypes.Delete) { string masterOpName; Guid? masterOpId; GetMasterOpInfo(entity, out masterOpName, out masterOpId); if (masterOpId != null && masterOpId != wm.Instance.DeletingOpID) { var referenceDocTypeEntity = dbHelper.FetchSingleByID("wm.ReferenceDocType", entity.GetFieldValue <Guid>("ReferenceDocType"), null); throw new AfwException("امکان حذف و ویرایش رسید/حواله مربوط به '{0}' وجود ندارد.", referenceDocTypeEntity.GetFieldValue <string>("Title")); } var dependedGhabzOrHavaleEntities = dbHelper.FetchMultiple("wm.GhabzOrHavale", string.Format("WareHouseDocRialiReference = '{0}'", entity.GetFieldValue <Guid>("ID")), null, null, null, null).Entities; if (dependedGhabzOrHavaleEntities.Count > 0) { string ghabzOrHavaleNumbers = dependedGhabzOrHavaleEntities[0].GetFieldValue <int>("GhabzOrHavaleNumber").ToString(); for (int i = 1; i < dependedGhabzOrHavaleEntities.Count; i++) { ghabzOrHavaleNumbers += ", " + dependedGhabzOrHavaleEntities[i].GetFieldValue <int>("GhabzOrHavaleNumber"); } throw new AfwException("امکان حذف به دلیل رفرنس ریالی بودن رسید/ حواله انتخاب شده وجود ندارد.\r\nابتدا رسید / حواله به {0} : {1} را حذف نمایید.", dependedGhabzOrHavaleEntities.Count > 1 ? "شماره های" : "شماره", ghabzOrHavaleNumbers); } } }
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" + " ابتدا رسید /حواله های بعد از این سند انبار را به وضعیت ریالی نشده منتقل کنید."); } } }