From f8aaa534d1cd2998ff1f3b677fc0cffea0ff9594 Mon Sep 17 00:00:00 2001 From: Andy Howard Date: Wed, 19 Feb 2025 11:31:33 +0000 Subject: [PATCH] 3.0.1.0 Portal Transactions. --- SaBusMgrStandardBase/Base/App/Sbm-Version.cs | 5 +- SaBusMgrStandardBase/Base/App/SbmInternals.cs | 1 + .../Base/Bus/SbmRequirement.cs | 5 +- .../SbmcAccountMgr_AccountRegistration.cs | 4 +- .../Mgr/Control/SbmcAccountMgr_UserAccount.cs | 4 +- .../Base/Mgr/Control/SbmcInstanceMgr_Owner.cs | 4 +- .../Mgr/Control/SbmcInstanceMgr_Repository.cs | 4 +- .../Base/Mgr/Control/SbmcItemMgr_ItemParam.cs | 6 +- .../Base/Mgr/SbmAccountMgr_Address.cs | 4 +- .../Base/Mgr/SbmAccountMgr_Affiliate.cs | 4 +- .../Base/Mgr/SbmCommodityMgr_ContainerItem.cs | 2 +- .../Base/Mgr/SbmDataItemMgr_ItemBatch.cs | 4 +- .../Base/Mgr/SbmDataItemMgr_ItemLink.cs | 4 +- .../Base/Mgr/SbmPriceMgr-Price.cs | 4 +- .../Base/Mgr/SbmPriceMgr-PriceSet.cs | 4 +- .../Base/Mgr/SbmTransactionMgr_Requirement.cs | 2 +- .../Base/Mgr/SbmTransactionMgr_Transaction.cs | 17 + ...SbmcAccountMgr_Dbas-AccountRegistration.cs | 8 +- .../SbmcAccountMgr_Dbas-UserAccount.cs | 8 +- .../Mgr/Control/SbmcInstanceMgr_Dbas-Owner.cs | 8 +- .../SbmcInstanceMgr_Dbas-Repository.cs | 8 +- .../Mgr/Control/SbmcItemMgr_Dbas-ItemParam.cs | 8 +- .../Dbas/Mgr/SbmAccountMgr_Dbas-Address.cs | 10 +- .../Dbas/Mgr/SbmAccountMgr_Dbas-Affiliate.cs | 8 +- .../Mgr/SbmAccountMgr_Dbas-Association.cs | 8 +- .../Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs | 8 +- .../Mgr/SbmAccountMgr_Dbas-SystemAccount.cs | 8 +- .../SbmAccountMgr_Dbas-SystemAccountUser.cs | 8 +- .../Dbas/Mgr/SbmAccountMgr_Dbas-SystemUser.cs | 8 +- .../Dbas/Mgr/SbmAssetMgr_Dbas-Asset.cs | 8 +- .../Mgr/SbmAssetMgr_Dbas-AssetCategory.cs | 8 +- .../Dbas/Mgr/SbmAssetMgr_Dbas-AssetProcess.cs | 8 +- .../Dbas/Mgr/SbmAssetMgr_Dbas-Vehicle.cs | 8 +- .../Dbas/Mgr/SbmAssetMgr_Dbas-VehicleClass.cs | 8 +- .../Dbas/Mgr/SbmAssetMgr_Dbas-VehicleEvent.cs | 8 +- .../Mgr/SbmAssetMgr_Dbas-VehicleFeature.cs | 10 +- .../Mgr/SbmCommodityMgr_Dbas-Commodity.cs | 10 +- .../SbmCommodityMgr_Dbas-CommodityCustomer.cs | 8 +- .../SbmCommodityMgr_Dbas-CommoditySupplier.cs | 8 +- .../Mgr/SbmCommodityMgr_Dbas-Container.cs | 8 +- .../Mgr/SbmCommodityMgr_Dbas-ContainerItem.cs | 8 +- .../Mgr/SbmCommodityMgr_Dbas-PortfolioItem.cs | 8 +- .../Dbas/Mgr/SbmDataItemMgr_Dbas-ItemBatch.cs | 8 +- .../Dbas/Mgr/SbmDataItemMgr_Dbas-ItemLink.cs | 8 +- .../Dbas/Mgr/SbmPriceMgr_Dbas-Price.cs | 8 +- .../Dbas/Mgr/SbmPriceMgr_Dbas-PriceSet.cs | 8 +- .../Dbas/Mgr/SbmProcessMgr_Dbas-Process.cs | 10 +- .../Dbas/Mgr/SbmStockMgr_Dbas-Location.cs | 8 +- .../Dbas/Mgr/SbmStockMgr_Dbas-Movement.cs | 8 +- .../Dbas/Mgr/SbmStockMgr_Dbas-StockLevel.cs | 8 +- .../Mgr/SbmTransactionMgr_Dbas-Constituent.cs | 8 +- .../Mgr/SbmTransactionMgr_Dbas-Requirement.cs | 18 +- ...bmTransactionMgr_Dbas-Transaction-Utils.cs | 4 +- .../Mgr/SbmTransactionMgr_Dbas-Transaction.cs | 10 +- .../Localisation/SbmPortalProperties.resx | 9 + .../TransactionController-Ajax.cs | 40 +- .../Transactions/TransactionController.cs | 9 +- .../Requirements/Model_Requirement-Config.cs | 520 ++++++++++++++++++ .../Models/Requirements/Model_Requirement.cs | 235 ++++++++ .../Transactions/Model_Transaction-Config.cs | 10 +- .../Models/Transactions/Model_Transaction.cs | 115 ++-- .../SaBusinessMgrCoreWebPortal.csproj | 5 + .../Panel-TransactionDialog.cshtml | 32 +- .../Panel-TransactionMaintain.cshtml | 6 +- .../Panel-TransactionSelect.cshtml | 2 +- .../wwwroot/css/sbm-data.css | 6 +- .../wwwroot/css/sbm-form.css | 2 +- .../wwwroot/css/sbm-main.css | 5 + .../wwwroot/js/sbm-main.js | 7 +- .../wwwroot/js/sbm-trn.js | 52 +- 70 files changed, 1179 insertions(+), 266 deletions(-) create mode 100644 SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement-Config.cs create mode 100644 SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement.cs diff --git a/SaBusMgrStandardBase/Base/App/Sbm-Version.cs b/SaBusMgrStandardBase/Base/App/Sbm-Version.cs index 8fa9a05..28f8868 100644 --- a/SaBusMgrStandardBase/Base/App/Sbm-Version.cs +++ b/SaBusMgrStandardBase/Base/App/Sbm-Version.cs @@ -15,7 +15,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App //------------------------------------------------------------------- public static class Version { - private static String version { get; } = "3.0.0.7"; + private static String version { get; } = "3.0.1.0"; // Retrieve version. public static String GetFullVersion() { return version; } public static String GetAppVersion() @@ -37,6 +37,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App //------------------------------------------------------------------- // Version history. //------------------------------------------------------------------- + // 3.0.1 19-Feb-25 Portal Transactions. + //------------------------------------------------------------------- // 3.0.0 Jul-2021 Initial demo test version. // 02-Feb-25 Initial live deployment. // 3.0.0.1 08-Feb-25 Demo repository registration. @@ -45,6 +47,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App // 3.0.0.4 11-Feb-25 Portal Commodity Sales properties. Control Index population. // 3.0.0.5 12-Feb-25 Portal Security forms tidy. Default Commodity type. Code Types and Codes. // 3.0.0.6 13-Feb-25 Main page layouts. Demo Account registration. + // 3.0.0.7 17-Feb-25 Demo Transaction population. //------------------------------------------------------------------- } //======================================================================= diff --git a/SaBusMgrStandardBase/Base/App/SbmInternals.cs b/SaBusMgrStandardBase/Base/App/SbmInternals.cs index ade8c01..9495b42 100644 --- a/SaBusMgrStandardBase/Base/App/SbmInternals.cs +++ b/SaBusMgrStandardBase/Base/App/SbmInternals.cs @@ -272,6 +272,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App public List AssetTypeCodes { get { return GetSystemCodes(Sbm.SystemCode.AssetType); } } public List VehicleTypeCodes { get { return GetSystemCodes(Sbm.SystemCode.VehicleType); } } public List TransactionTypeCodes { get { return GetSystemCodes(Sbm.SystemCode.TransactionType); } } + public List RequirementTypeCodes { get { return GetSystemCodes(Sbm.SystemCode.RequirementType); } } //------------------------------------------------------------------- // Code types. diff --git a/SaBusMgrStandardBase/Base/Bus/SbmRequirement.cs b/SaBusMgrStandardBase/Base/Bus/SbmRequirement.cs index 3849f34..c7fcb5e 100644 --- a/SaBusMgrStandardBase/Base/Bus/SbmRequirement.cs +++ b/SaBusMgrStandardBase/Base/Bus/SbmRequirement.cs @@ -718,15 +718,16 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus //------------------------------------------------------------------- // Requirement status. - private static readonly List requirementStatuses = new List() + private static readonly HashSet validStatuses = new HashSet() { SaStatus.Required, SaStatus.InProgress, SaStatus.Completed, SaStatus.Cancelled, + SaStatus.Deleted, }; public static SaStatus DefaultStatus { get { return SaStatus.Required; } } - public static List RequirementStatuses { get { return new List(requirementStatuses); } } + public static HashSet ValidStatuses { get { return new HashSet(validStatuses); } } public static DataValue.TriStateType GetStatusTriState(SaStatus status) { switch (status) diff --git a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_AccountRegistration.cs b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_AccountRegistration.cs index 0072b6f..e039bac 100644 --- a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_AccountRegistration.cs +++ b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_AccountRegistration.cs @@ -94,7 +94,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control { // Item properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Name. if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_FirstName))) @@ -177,7 +177,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control public abstract bool UpdateAccountRegistration(SbmcAccountRegistration accountRegistration, DbUpdateInfo dbUpdateInfo); public virtual bool AccountRegistrationCanBeDeleted(SbmcAccountRegistration accountRegistration) { - if (accountRegistration == null) return SetErrorState(Msg_ItemNotSpecified); + if (accountRegistration == null) return SetErrorState(ErrorMessage.InvalidStatus); //ClearErrorState(); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_UserAccount.cs b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_UserAccount.cs index 6df24fc..e6dff13 100644 --- a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_UserAccount.cs +++ b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcAccountMgr_UserAccount.cs @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control { // Item properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Name. if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "title", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Title))) @@ -146,7 +146,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control public abstract bool UpdateUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo); public virtual bool UserAccountCanBeDeleted(SbmcUserAccount userAccount) { - if (userAccount == null) return SetErrorState(Msg_ItemNotSpecified); + if (userAccount == null) return SetErrorState(ErrorMessage.InvalidStatus); //ClearErrorState(); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Owner.cs b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Owner.cs index dd74af2..8b79fd6 100644 --- a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Owner.cs +++ b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Owner.cs @@ -57,7 +57,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control { // Item properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Contact. @@ -115,7 +115,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control public abstract bool UpdateOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo); public virtual bool OwnerCanBeDeleted(SbmcOwner owner) { - if (owner == null) return SetErrorState(Msg_ItemNotSpecified); + if (owner == null) return SetErrorState(ErrorMessage.InvalidStatus); //ClearErrorState(); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Repository.cs b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Repository.cs index 45077b9..bc68e66 100644 --- a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Repository.cs +++ b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcInstanceMgr_Repository.cs @@ -75,7 +75,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control { // Item properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Owner. if (!SysId.IsValid(data.OwnerId)) return SetErrorState("Owner must be specified"); @@ -143,7 +143,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control public abstract bool UpdateRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo); public virtual bool RepositoryCanBeDeleted(SbmcRepository repository) { - if (repository == null) return SetErrorState(Msg_ItemNotSpecified); + if (repository == null) return SetErrorState(ErrorMessage.InvalidStatus); //ClearErrorState(); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcItemMgr_ItemParam.cs b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcItemMgr_ItemParam.cs index 35cdf11..ac475a9 100644 --- a/SaBusMgrStandardBase/Base/Mgr/Control/SbmcItemMgr_ItemParam.cs +++ b/SaBusMgrStandardBase/Base/Mgr/Control/SbmcItemMgr_ItemParam.cs @@ -57,7 +57,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control { // Item properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Item. @@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control if (!ItemId.IsValid(data.ItemId)) { errField.Context = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemIdNotSpecified); + return SetErrorState(ErrorMessage.ItemIdNotSpecified); } if (!SbmcItemParam.ValidItemTypes.Contains((SbmcHierarchyItem.ItemType)data.ItemId.Type)) { @@ -121,7 +121,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control public abstract bool UpdateItemParam(SbmcItemParam itemParam, DbUpdateInfo dbUpdateInfo); public virtual bool ItemParamCanBeDeleted(SbmcItemParam itemParam) { - if (itemParam == null) return SetErrorState(Msg_ItemNotSpecified); + if (itemParam == null) return SetErrorState(ErrorMessage.InvalidStatus); //ClearErrorState(); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Address.cs b/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Address.cs index 0090617..69d336c 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Address.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Address.cs @@ -72,7 +72,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr if ((int)data.ItemType < 1) { errField.ItemType = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemTypeNotSpecified); + return SetErrorState(ErrorMessage.ItemTypeNotSpecified); } } if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore) @@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr if (!SysId.IsValid(data.ItemId)) { errField.ItemId = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemIdNotSpecified); + return SetErrorState(ErrorMessage.ItemIdNotSpecified); } } if (errField.AddressType != SacsHierarchyItem.ValidValue.Ignore) diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Affiliate.cs b/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Affiliate.cs index 58da4ad..4b877a8 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Affiliate.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Affiliate.cs @@ -210,7 +210,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { // Affiliate properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Validate the type: if (errField.Type != SacsHierarchyItem.ValidValue.Ignore && (short)data.AffiliateType < 1) { @@ -395,7 +395,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr public abstract bool UpdateAffiliate(SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo); public virtual bool AffiliateCanBeDeleted(SbmAffiliate affiliate) { - if (affiliate == null) return SetErrorState(Msg_ItemNotSpecified); + if (affiliate == null) return SetErrorState(ErrorMessage.InvalidStatus); if (AffiliateHasChildAffiliates(affiliate.Id)) return SetErrorState("item has child organisations"); if (AffiliateOwnerHasAssociations(affiliate.Id, Sbm.AssociationType.Any, false)) return SetErrorState("item own associations"); if (AffiliateTargetHasAssociations(affiliate.Id, Sbm.AssociationType.Any, false)) return SetErrorState("item is the target of associations"); diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_ContainerItem.cs b/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_ContainerItem.cs index 13cb98e..245ebc0 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_ContainerItem.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_ContainerItem.cs @@ -76,7 +76,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr if ((int)data.ItemType < 1) { errField.ItemType = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemTypeNotSpecified); + return SetErrorState(ErrorMessage.ItemTypeNotSpecified); } } if (!SysId.IsValid(data.ItemId)) diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemBatch.cs b/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemBatch.cs index 168b085..8601b41 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemBatch.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemBatch.cs @@ -91,7 +91,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr if ((int)data.ItemBatchType < 1) { errField.ItemBatchType = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemTypeNotSpecified); + return SetErrorState(ErrorMessage.ItemTypeNotSpecified); } } if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Ref, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Ref), true)) @@ -139,7 +139,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr public virtual bool ItemBatchCanBeDeleted(SbmItemBatch itemBatch) { ClearErrorState(); - if (itemBatch == null) return SetErrorState(Msg_ItemNotSpecified); + if (itemBatch == null) return SetErrorState(ErrorMessage.InvalidStatus); return true; } public abstract bool DeleteItemBatch(SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo); diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemLink.cs b/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemLink.cs index 64f0624..18f93de 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemLink.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmDataItemMgr_ItemLink.cs @@ -68,7 +68,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr if ((int)data.ItemLinkType < 1) { errField.ItemLinkType = SacsHierarchyItem.ValidValue.Invalid; - return SetErrorState(Msg_ItemTypeNotSpecified); + return SetErrorState(ErrorMessage.ItemTypeNotSpecified); } } if (errField.ItemTypeFrom != SacsHierarchyItem.ValidValue.Ignore) @@ -145,7 +145,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr public virtual bool ItemLinkCanBeDeleted(SbmItemLink itemLink) { ClearErrorState(); - if (itemLink == null) return SetErrorState(Msg_ItemNotSpecified); + if (itemLink == null) return SetErrorState(ErrorMessage.InvalidStatus); return true; } public abstract bool DeleteItemLink(SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo); diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-Price.cs b/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-Price.cs index 79e6a0d..a7f5bf0 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-Price.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-Price.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { // Price properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Price set. if (errField.PriceSetId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.PriceSetId)) { @@ -115,7 +115,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr public virtual bool PriceCanBeDeleted(SbmPrice price) { ClearErrorState(); - if (price == null) return SetErrorState(Msg_ItemNotSpecified); + if (price == null) return SetErrorState(ErrorMessage.InvalidStatus); return true; } public abstract bool DeletePrice(SbmPrice price, DbUpdateInfo dbUpdateInfo); diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-PriceSet.cs b/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-PriceSet.cs index 6a57015..2d367d6 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-PriceSet.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmPriceMgr-PriceSet.cs @@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { // PriceSet properties. ClearErrorState(); - if (data == null) return SetErrorState(Msg_ItemNotSpecified); + if (data == null) return SetErrorState(ErrorMessage.InvalidStatus); // Validate the type. if (errField.PriceType != SacsHierarchyItem.ValidValue.Ignore) { @@ -129,7 +129,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr public virtual bool PriceSetCanBeDeleted(SbmPriceSet priceSet) { ClearErrorState(); - if (priceSet == null) return SetErrorState(Msg_ItemNotSpecified); + if (priceSet == null) return SetErrorState(ErrorMessage.InvalidStatus); if (PriceMgr.PriceSetHasPrices(priceSet.Id)) return SetErrorState("item has prices"); return true; } diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Requirement.cs b/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Requirement.cs index a518022..9bd9307 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Requirement.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Requirement.cs @@ -203,7 +203,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } - if (!SbmRequirement.RequirementStatuses.Contains(data.Status)) + if (!SbmRequirement.ValidStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); diff --git a/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Transaction.cs b/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Transaction.cs index 5865c0b..3079095 100644 --- a/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Transaction.cs +++ b/SaBusMgrStandardBase/Base/Mgr/SbmTransactionMgr_Transaction.cs @@ -353,15 +353,32 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr } // Populate and validate dates. SbmTransaction.StatusCat transactionStatusCat = SbmTransaction.GetCategoryForStatus(data.Status); + if (!DateUtil.IsValid(data.Raised)) + data.Raised = DateTime.Today; + if (errField.Raised != SacsHierarchyItem.ValidValue.Ignore && data.Raised > DateTime.Today) + { + errField.Raised = SacsHierarchyItem.ValidValue.Invalid; + return SetErrorState(ErrorMessage.InvalidDate); + } if (transactionStatusCat == SbmTransaction.StatusCat.Open || transactionStatusCat == SbmTransaction.StatusCat.Closed) { if (!DateUtil.IsValid(data.InProgress)) data.InProgress = DateTime.Today; + if (errField.InProgress != SacsHierarchyItem.ValidValue.Ignore && (data.InProgress > DateTime.Today || data.InProgress < data.Raised)) + { + errField.InProgress = SacsHierarchyItem.ValidValue.Invalid; + return SetErrorState(ErrorMessage.InvalidDate); + } } if (transactionStatusCat == SbmTransaction.StatusCat.Closed) { if (!DateUtil.IsValid(data.Closed)) data.Closed = DateTime.Today; + if (errField.Closed != SacsHierarchyItem.ValidValue.Ignore && (data.Closed > DateTime.Today || data.Closed < data.InProgress)) + { + errField.Closed = SacsHierarchyItem.ValidValue.Invalid; + return SetErrorState(ErrorMessage.InvalidDate); + } } return true; } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-AccountRegistration.cs b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-AccountRegistration.cs index 543cc4f..4176af9 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-AccountRegistration.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-AccountRegistration.cs @@ -61,7 +61,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmcAccountRegistration accountRegistration = null; @@ -78,7 +78,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -100,7 +100,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAccountRegistration(accountRegistration)) return false; - if (SysId.IsValid(accountRegistration.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(accountRegistration.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -506,7 +506,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-UserAccount.cs b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-UserAccount.cs index 89df392..fd75b1b 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-UserAccount.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcAccountMgr_Dbas-UserAccount.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmcUserAccount userAccount = null; @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -99,7 +99,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidUserAccount(userAccount)) return false; - if (SysId.IsValid(userAccount.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(userAccount.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -518,7 +518,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Owner.cs b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Owner.cs index cb352d1..a234468 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Owner.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Owner.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmcOwner owner = null; @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -99,7 +99,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidOwner(owner)) return false; - if (SysId.IsValid(owner.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(owner.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -459,7 +459,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Repository.cs b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Repository.cs index 39af636..4d4000b 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Repository.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcInstanceMgr_Dbas-Repository.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmcRepository repository = null; @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -99,7 +99,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidRepository(repository)) return false; - if (SysId.IsValid(repository.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(repository.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -495,7 +495,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcItemMgr_Dbas-ItemParam.cs b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcItemMgr_Dbas-ItemParam.cs index c9ae324..efbd35c 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcItemMgr_Dbas-ItemParam.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/Control/SbmcItemMgr_Dbas-ItemParam.cs @@ -62,7 +62,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmcItemParam itemParam = null; @@ -79,7 +79,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -101,7 +101,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidItemParam(itemParam)) return false; - if (SysId.IsValid(itemParam.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(itemParam.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = db.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -488,7 +488,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Address.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Address.cs index 6f907a6..8a2cb74 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Address.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Address.cs @@ -41,7 +41,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { // Check that this is the only primary address for the item. ClearErrorState(); - if (addressPrimary == null) return SetErrorState(Msg_ItemNotSpecified); + if (addressPrimary == null) return SetErrorState(ErrorMessage.InvalidStatus); if (!SysId.IsValid(addressPrimary.Id)) return SetErrorState("invalid item id"); if (!addressPrimary.IsPrimary) return SetErrorState("address is not primary"); if (Database == null) return SetErrorState("database not available"); @@ -158,7 +158,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAddress address = null; @@ -175,7 +175,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -197,7 +197,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAddress(address)) return false; - if (SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(address.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -750,7 +750,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Affiliate.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Affiliate.cs index 5eb0db7..1dff48a 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Affiliate.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Affiliate.cs @@ -181,7 +181,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAffiliate affiliate = null; @@ -198,7 +198,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -295,7 +295,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAffiliate(affiliate)) return false; - if (SysId.IsValid(affiliate.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(affiliate.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -1048,7 +1048,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Association.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Association.cs index 74eea32..dd8d869 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Association.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-Association.cs @@ -49,7 +49,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAssociation association = null; @@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -148,7 +148,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAssociation(association)) return false; - if (SysId.IsValid(association.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(association.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -1772,7 +1772,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs index fea0e11..552e9f1 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SysParam.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmSysParam sysParam = null; @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -99,7 +99,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidSysParam(sysparam)) return false; - if (SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(sysparam.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -455,7 +455,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccount.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccount.cs index 7810e51..9b572b0 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccount.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccount.cs @@ -83,7 +83,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmSystemAccount systemAccount = null; @@ -100,7 +100,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -122,7 +122,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidSystemAccount(systemAccount)) return false; - if (SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(systemAccount.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -504,7 +504,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccountUser.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccountUser.cs index 2dc69eb..7ebafa2 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccountUser.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemAccountUser.cs @@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmSystemAccountUser SystemAccountUser = null; @@ -77,7 +77,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -99,7 +99,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidSystemAccountUser(systemAccountUser)) return false; - if (SysId.IsValid(systemAccountUser.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(systemAccountUser.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -475,7 +475,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemUser.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemUser.cs index d02b42a..193123d 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemUser.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAccountMgr_Dbas-SystemUser.cs @@ -63,7 +63,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmSystemUser SystemUser = null; @@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -102,7 +102,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidSystemUser(systemUser)) return false; - if (SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(systemUser.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -485,7 +485,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Asset.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Asset.cs index 5ad64cc..d7c1ac7 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Asset.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Asset.cs @@ -226,7 +226,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAsset asset = null; @@ -243,7 +243,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -284,7 +284,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAsset(asset)) return false; - if (SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(asset.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -798,7 +798,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetCategory.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetCategory.cs index b9fcc6c..1034a4c 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetCategory.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetCategory.cs @@ -112,7 +112,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAssetCategory assetCategory = null; @@ -129,7 +129,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -211,7 +211,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAssetCategory(assetCategory)) return false; - if (SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(assetCategory.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -596,7 +596,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetProcess.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetProcess.cs index ce62326..0770e94 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetProcess.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-AssetProcess.cs @@ -49,7 +49,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmAssetProcess assetProcess = null; @@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -107,7 +107,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidAssetProcess(assetProcess)) return false; - if (SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(assetProcess.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -428,7 +428,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Vehicle.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Vehicle.cs index e9519d0..ab53e0d 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Vehicle.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-Vehicle.cs @@ -230,7 +230,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmVehicle vehicle = null; @@ -247,7 +247,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -285,7 +285,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidVehicle(vehicle)) return false; - if (SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(vehicle.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -827,7 +827,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleClass.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleClass.cs index 4971000..5b19f64 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleClass.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleClass.cs @@ -192,7 +192,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmVehicleClass vehicleClass = null; @@ -209,7 +209,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -259,7 +259,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidVehicleClass(vehicleClass)) return false; - if (SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(vehicleClass.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -712,7 +712,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleEvent.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleEvent.cs index 161fbb9..392cc48 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleEvent.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleEvent.cs @@ -49,7 +49,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmVehicleEvent vehicleEvent = null; @@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -107,7 +107,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidVehicleEvent(vehicleEvent)) return false; - if (SysId.IsValid(vehicleEvent.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(vehicleEvent.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -499,7 +499,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleFeature.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleFeature.cs index 6782f2e..bbb02ff 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleFeature.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmAssetMgr_Dbas-VehicleFeature.cs @@ -35,7 +35,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool StoreVehicleFeature(SbmVehicleFeature.Data vehicleFeatureData, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); - if (Database == null) return SetErrorState(Msg_DatabaseNotAvailable); + if (Database == null) return SetErrorState(ErrorMessage.DatabaseNotAvailable); if (!Database.TableExists(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaVehicleFeature))) return SetErrorState("vehicle features not supported"); if (vehicleFeatureData == null) SetErrorState("vehicle feature data not supplied"); @@ -143,7 +143,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmVehicleFeature vehicleFeature = null; @@ -160,7 +160,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -203,7 +203,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidVehicleFeature(vehicleFeature)) return false; - if (SysId.IsValid(vehicleFeature.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(vehicleFeature.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -548,7 +548,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Commodity.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Commodity.cs index 2f4cc1a..6c38645 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Commodity.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Commodity.cs @@ -139,7 +139,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool UpdateReferencesToSalesTemplate(SbmCommodity commodity) { ClearErrorState(); - if (commodity == null) return SetErrorState(Msg_ItemNotSpecified); + if (commodity == null) return SetErrorState(ErrorMessage.InvalidStatus); // Build update query to refresh all commodities that refer to this template. List filters = new List(); @@ -575,7 +575,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmCommodity commodity = null; @@ -592,7 +592,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -628,7 +628,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidCommodity(commodity)) return false; - if (SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -2691,7 +2691,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommodityCustomer.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommodityCustomer.cs index 5a27172..c7ae3ba 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommodityCustomer.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommodityCustomer.cs @@ -159,7 +159,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmCommodityCustomer prmCommodityCustomer = null; @@ -176,7 +176,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -212,7 +212,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidCommodityCustomer(commodityCustomer)) return false; - if (SysId.IsValid(commodityCustomer.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(commodityCustomer.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -614,7 +614,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommoditySupplier.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommoditySupplier.cs index 2dfaa9d..2a42ee6 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommoditySupplier.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-CommoditySupplier.cs @@ -52,7 +52,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmCommoditySupplier commoditySupplier = null; @@ -69,7 +69,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -127,7 +127,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidCommoditySupplier(commoditySupplier)) return false; - if (SysId.IsValid(commoditySupplier.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(commoditySupplier.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -515,7 +515,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Container.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Container.cs index 5891173..655813c 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Container.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-Container.cs @@ -91,7 +91,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmContainer container = null; @@ -108,7 +108,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -144,7 +144,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidContainer(container)) return false; - if (SysId.IsValid(container.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(container.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -602,7 +602,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-ContainerItem.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-ContainerItem.cs index c97fbb0..bf5b549 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-ContainerItem.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-ContainerItem.cs @@ -84,7 +84,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmContainerItem containerItem = null; @@ -101,7 +101,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -137,7 +137,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidContainerItem(containerItem)) return false; - if (SysId.IsValid(containerItem.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(containerItem.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -684,7 +684,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-PortfolioItem.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-PortfolioItem.cs index 7e37309..4d700a7 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-PortfolioItem.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmCommodityMgr_Dbas-PortfolioItem.cs @@ -325,7 +325,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmPortfolioItem portfolioItem = null; @@ -342,7 +342,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -364,7 +364,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidPortfolioItem(portfolioItem)) return false; - if (SysId.IsValid(portfolioItem.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(portfolioItem.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -984,7 +984,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemBatch.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemBatch.cs index 25a5b9e..51c210f 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemBatch.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemBatch.cs @@ -46,7 +46,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmItemBatch itemBatch = null; @@ -63,7 +63,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -104,7 +104,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidItemBatch(itemBatch)) return false; - if (SysId.IsValid(itemBatch.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(itemBatch.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -443,7 +443,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemLink.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemLink.cs index 3b86bb5..79aae08 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemLink.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmDataItemMgr_Dbas-ItemLink.cs @@ -34,7 +34,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmItemLink itemLink = null; @@ -51,7 +51,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -108,7 +108,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidItemLink(itemLink)) return false; - if (SysId.IsValid(itemLink.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(itemLink.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -567,7 +567,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-Price.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-Price.cs index 0994396..98dbb55 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-Price.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-Price.cs @@ -46,7 +46,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmPrice price = null; @@ -63,7 +63,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -100,7 +100,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidPrice(price)) return false; - if (SysId.IsValid(price.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(price.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -505,7 +505,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-PriceSet.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-PriceSet.cs index ccea53e..e58b935 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-PriceSet.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmPriceMgr_Dbas-PriceSet.cs @@ -63,7 +63,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmPriceSet priceSet = null; @@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -117,7 +117,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidPriceSet(priceSet)) return false; - if (SysId.IsValid(priceSet.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(priceSet.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -477,7 +477,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmProcessMgr_Dbas-Process.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmProcessMgr_Dbas-Process.cs index 36e1d57..178a989 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmProcessMgr_Dbas-Process.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmProcessMgr_Dbas-Process.cs @@ -160,7 +160,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool ClearProcessAssociatedData(SbmProcess process, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); - if (process == null || !SysId.IsValid(process.Id)) return SetErrorState(Msg_ItemNotSpecified); + if (process == null || !SysId.IsValid(process.Id)) return SetErrorState(ErrorMessage.InvalidStatus); // Clear Item data records. if (!ItemDataConsole.ClearItemData(process.GetItemId(), dbUpdateInfo)) SetErrorState(ItemDataConsole.ErrorStateMessage); @@ -222,7 +222,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmProcess prmProcess = null; @@ -239,7 +239,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -287,7 +287,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidProcess(process)) return false; - if (SysId.IsValid(process.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(process.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -641,7 +641,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Location.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Location.cs index 6fb00c0..a2f5893 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Location.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Location.cs @@ -76,7 +76,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmLocation location = null; @@ -93,7 +93,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -129,7 +129,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidLocation(location)) return false; - if (SysId.IsValid(location.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(location.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -498,7 +498,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Movement.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Movement.cs index 6f0957b..dd70906 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Movement.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-Movement.cs @@ -139,7 +139,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmMovement movement = null; @@ -156,7 +156,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -192,7 +192,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidMovement(movement)) return false; - if (SysId.IsValid(movement.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(movement.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -833,7 +833,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-StockLevel.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-StockLevel.cs index 1e59f26..f676024 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-StockLevel.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmStockMgr_Dbas-StockLevel.cs @@ -47,7 +47,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmStockLevel stockLevel = null; @@ -64,7 +64,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -100,7 +100,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidStockLevel(stockLevel)) return false; - if (SysId.IsValid(stockLevel.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(stockLevel.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -564,7 +564,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Constituent.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Constituent.cs index 69edd9a..a05544a 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Constituent.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Constituent.cs @@ -322,7 +322,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmConstituent prmituent = null; @@ -339,7 +339,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -380,7 +380,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidConstituent(constituent)) return false; - if (SysId.IsValid(constituent.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(constituent.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -963,7 +963,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Requirement.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Requirement.cs index 5457555..d646168 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Requirement.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Requirement.cs @@ -171,7 +171,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool RequirementHasAssociatedRequirements(SysId requirementId) { ClearErrorState(); - if (!SysId.IsValid(requirementId)) return SetErrorState(Msg_InvalidItemSpecified); + if (!SysId.IsValid(requirementId)) return SetErrorState(ErrorMessage.InvalidItemSpecified); String filter = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource) + "=" + SysId.ToString(requirementId); long rowCount = Database.GetRowCount(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Requirement), filter); SetErrorState(Database.ErrorStateMessage); @@ -203,7 +203,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool ClearRequirementDependentData(SbmRequirement requirement, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); - if (requirement == null || !SysId.IsValid(requirement.Id)) return SetErrorState(Msg_InvalidItemSpecified); + if (requirement == null || !SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.InvalidItemSpecified); // Clear any references to this requirement from other requirements. if (!HasErrorState()) ClearRequirementAssociatedRequirements(requirement, dbUpdateInfo); @@ -244,7 +244,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { // Clear ReqntIdSource for any requirements that reference this one. ClearErrorState(); - if (requirement == null || !SysId.IsValid(requirement.Id)) return SetErrorState(Msg_InvalidItemSpecified); + if (requirement == null || !SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.InvalidItemSpecified); String filter = $"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource)}={SysId.ToLong(requirement.Id)}"; List values = new List(); SacsDatabase.AddValuePair(values, SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Requirement_ReqntIdSource), "0", false); @@ -258,7 +258,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool CalculateTotal(SbmRequirement requirement) { ClearErrorState(); - if (requirement == null) return SetErrorState(Msg_ItemNotSpecified); + if (requirement == null) return SetErrorState(ErrorMessage.InvalidStatus); int decimalsCurrency = 2; // Calculate intermediate amounts. @@ -472,7 +472,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool SetTaxCode(SbmRequirement requirement, DateTime effective) { ClearErrorState(); - if (requirement == null) return SetErrorState(Msg_ItemNotSpecified); + if (requirement == null) return SetErrorState(ErrorMessage.InvalidStatus); if (!effective.IsValid()) return SetErrorState("invalid effective date specified"); // Locate the specified tax code in the list: @@ -518,7 +518,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmRequirement prmRequirement = null; @@ -535,7 +535,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -590,7 +590,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidRequirement(requirement)) return false; - if (SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.ValidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { @@ -2322,7 +2322,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction-Utils.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction-Utils.cs index 9afcaf3..99847c3 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction-Utils.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction-Utils.cs @@ -73,7 +73,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr public override bool RefreshTransactionTotals(SbmTransaction transaction, IEnumerable requirements) { ClearErrorState(); - if (transaction == null) return SetErrorState(Msg_ItemNotSpecified); + if (transaction == null) return SetErrorState(ErrorMessage.InvalidStatus); if (requirements == null) requirements = new List(); // Total weight. @@ -164,7 +164,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr String errorStatePrefix = "Failed to change transaction's association - "; // Database connection. - if (!HasErrorState() && Database == null) SetErrorState(errorStatePrefix + Msg_DatabaseNotAvailable); + if (!HasErrorState() && Database == null) SetErrorState(errorStatePrefix + ErrorMessage.DatabaseNotAvailable); // Validate the transaction. if (!HasErrorState() && (transaction == null || !SysId.IsValid(transaction.Id))) diff --git a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction.cs b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction.cs index 6ba6a7d..d895d47 100644 --- a/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction.cs +++ b/SaBusMgrStandardDbas/Dbas/Mgr/SbmTransactionMgr_Dbas-Transaction.cs @@ -495,7 +495,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr if (count == 0) return null; if (count != 1) { - SetErrorState(Msg_MultipleItemsFound); + SetErrorState(ErrorMessage.MultipleItemsFound); return null; } SbmTransaction prmTransaction = null; @@ -512,7 +512,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } @@ -586,7 +586,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr { ClearErrorState(); if (!IsValidTransaction(transaction)) return false; - if (SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.ValiditemId); + if (SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.ValidItemId); if (StringUtil.IsBlank(transaction.Ref)) { if (!AssignTransactionReference(transaction)) @@ -685,7 +685,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr ClearErrorState(); if (!base.TransactionCanBeDeleted(transaction)) return false; - if (transaction == null) return SetErrorState(Msg_ItemNotSpecified); + if (transaction == null) return SetErrorState(ErrorMessage.InvalidStatus); // Associated transactions. if (TransactionIsReferencedByOtherTransactions(transaction.Id)) return SetErrorState("linked transactions are present"); @@ -1895,7 +1895,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr } catch (Exception exc) { - SetErrorState(Msg_DatabaseQueryException); + SetErrorState(ErrorMessage.DatabaseQueryException); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } diff --git a/SaBusinessMgrCoreWebPortal/Localisation/SbmPortalProperties.resx b/SaBusinessMgrCoreWebPortal/Localisation/SbmPortalProperties.resx index 6f0f136..83ed4b9 100644 --- a/SaBusinessMgrCoreWebPortal/Localisation/SbmPortalProperties.resx +++ b/SaBusinessMgrCoreWebPortal/Localisation/SbmPortalProperties.resx @@ -828,4 +828,13 @@ Raised by + + Requirements + + + Requirement + + + {0} Items + \ No newline at end of file diff --git a/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController-Ajax.cs b/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController-Ajax.cs index 32dda06..1e0f322 100644 --- a/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController-Ajax.cs +++ b/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController-Ajax.cs @@ -1,5 +1,4 @@ -using DocumentFormat.OpenXml.EMMA; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; using Sarand.BusinessMgr.Web.Portal.Components; @@ -13,6 +12,7 @@ using Sarand.Net.Standard.Base.Security; using Sarand.Net.Standard.Base.Utils; using System; using System.Collections.Generic; +using System.Linq; namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions { @@ -150,7 +150,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions responseData.Data.TransactionTypes.Add(new AjaxResponse_Data.ItemCodeDesc(transactionType.Code, transactionType.Desc)); // Reference data - statuses. - foreach (SaStatus status in SbmTransaction.ValidStatuses().FindAll(item => item != SaStatus.Deleted)) + foreach (SaStatus status in SbmTransaction.ValidStatusesByType(model.GetFilterTransactionType()).Where(item => item != SaStatus.Deleted)) responseData.Data.Statuses.Add(new AjaxResponse_Data.ItemCodeDesc(SacsSystem.GetStatusCode(status), Localiser.GetStatusCaption(status))); responseData.Data.DefaultStatusCode = SacsSystem.GetStatusCode(SbmTransaction.DefaultStatus); } @@ -218,7 +218,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions else prmTransaction.StatusCat = SbmTransaction.StatusCat.NotDeleted; if (model.GetFilterTransactionType() <= 0) prmTransaction.SortColumns.Add(TransactionMgr.GetTransactionColumnDfn(SbmTransaction.Column.Type_Desc)); - prmTransaction.SortColumns.Add(TransactionMgr.GetTransactionColumnDfn(SbmTransaction.Column.Ref)); + prmTransaction.SortColumns.Add(TransactionMgr.GetTransactionColumnDfn(SbmTransaction.Column.RaisedOn).SetSortDescending()); model.Paging.ItemTotal = (ulong)TransactionMgr.GetTransactionCount(prmTransaction); model.PopulatePagingTo(prmTransaction.ResultsPaging); @@ -407,6 +407,11 @@ namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions return Json(responseData.SetGoHome(messageTitle, Localiser["msg.error.system"])); } transaction = TransactionMgr.CreateTransaction(associationId, model.GetTransactionType()); + if (transaction == null) + { + SaLogger.Warn($"{SysUtil.Fn} Failed to create Transaction. {TransactionMgr.ErrorStateMessage.TrimEnd('.')}."); + return Json(responseData.SetGoHome(messageTitle, Localiser["msg.error.system"])); + } } // Populate item properties. @@ -416,11 +421,34 @@ namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions transaction.RefExt = model.Transaction.ReferenceExt; if (model.Transaction.DescBrief != null) transaction.DescBrief = model.Transaction.DescBrief; + if (model.Transaction.RaisedBy != null) + transaction.RaisedBy = model.Transaction.RaisedBy; + if (model.Transaction.ContactName != null) + transaction.ContactName = model.Transaction.ContactName; + + // Status & dates. + if (model.Transaction.StatusCode != null) + transaction.Status = model.GetTransactionStatus(); + // Raised date. + if (model.Transaction.Raised != null) + transaction.Raised = model.ParseDateFromForm(model.Transaction.Raised); + if (transaction.TransactionStatusCat == SbmTransaction.StatusCat.Pending) + transaction.InProgress = DateTime.MinValue; + else + { + // In Progress date. + if (model.Transaction.InProgress != null) + transaction.InProgress = model.ParseDateFromForm(model.Transaction.InProgress); + // Closed date. + if (transaction.TransactionStatusCat == SbmTransaction.StatusCat.Closed) + transaction.Closed = DateTime.MinValue; + else if (model.Transaction.Closed != null) + transaction.Closed = model.ParseDateFromForm(model.Transaction.Closed); + } + // Common properties. if (model.Transaction.Notes != null) transaction.Notes = model.Transaction.Notes; - if (model.Transaction.StatusCode != null) - transaction.Status = model.GetTransactionStatus(); // Store item. if (!SysId.IsValid(transaction.Id)) diff --git a/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController.cs b/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController.cs index cfd5d33..57072db 100644 --- a/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController.cs +++ b/SaBusinessMgrCoreWebPortal/Portal/Controllers/Transactions/TransactionController.cs @@ -17,6 +17,7 @@ using System.Threading.Tasks; using Sarand.BusinessMgr.Web.Portal.Models.Transactions; using Sarand.BusinessMgr.Web.Portal.Components; using Sarand.Net.Standard.Base.Core; +using System.Transactions; namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions { @@ -55,7 +56,13 @@ namespace Sarand.BusinessMgr.Web.Portal.Controllers.Transactions // Transaction page. Model_Transaction model = new Model_Transaction(Localiser); RefreshModel(model); - model.Filter.TransactionType = transactionTypes.GetCodeForType(transactionType); + model.Filter.Type = transactionTypes.GetCodeForType(transactionType); + if (StringUtil.IsBlank(model.Filter.Type)) + { + SaLogger.Warn($"{SysUtil.Fn} Transaction View invoked without Transaction Type specified."); + return RedirectToAction("", ""); + } + model.Filter.StatusCat = Internals.GetSystemCodes(Sbm.SystemCode.TransactionStatusCat).GetCodeForType(SbmTransaction.StatusCat.Open); model.Paging.PageNo = SessionData_Portal.Profile.Transaction.Filter.PageNo; model.Paging.PageLength = SessionData_Portal.Profile.Transaction.Filter.PageLength; model.PopulateListConfig(); diff --git a/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement-Config.cs b/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement-Config.cs new file mode 100644 index 0000000..ce0bcdd --- /dev/null +++ b/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement-Config.cs @@ -0,0 +1,520 @@ +using Sarand.BusinessMgr.Net.Standard.Base.App; +using Sarand.BusinessMgr.Net.Standard.Base.Bus; +using Sarand.Net.Standard.Base.Bus; +using Sarand.Net.Standard.Base.Utils; +using System; +using System.Collections.Generic; +using System.Drawing; + +namespace Sarand.BusinessMgr.Web.Portal.Models.Requirements +{ + //======================================================================= + // Requirement model - Configuration. + //======================================================================= + partial class Model_Requirement + { + //------------------------------------------------------------------- + // Requirement fields. + //------------------------------------------------------------------- + + /// Prefix for field names. + public const String FieldNamePrefix = "Reqnt"; + + //------------------------------------------------------------------- + /// Item fields. + public enum ItemField + { + // Identity. + Pos, + Id, + TransactionId, + AssociationName, + AssociationId, + Type, + Sequence, + JobNumber, + // Source requirement. + SourceReqntId, + SourceReqntTransRef, + SourceReqntTransRefExt, + SourceReqntJobNumber, + // Status dates. + Required, RequiredFmt, + Started, StartedFmt, + Completed, CompletedFmt, + // Details. + AssociationIdSubContract, + DescBrief, + DescIntro, + DescOutline, + DescDetail, + PromotionCode, + PromotionCaption, + NominalCode, + RandDIndicator, + // Commodity. + CommodityId, + ProductCode, + DrawingIssue, + AssetId, + Quantity, + QuantityProd, + UomId, + MaterialSourceCode, + LocationIdStock, + AllocationIndicator, + // Amounts. + AmountUnit, + AmountAct, + AmountDisc, + AmountNet, + TaxCodeId, + TaxRate, + AmountTax, + AmountTot, + TimeEst, + TimeAct, + TimeTot, + // Costs. + CostLabourHours, + CostLabourRateHour, + CostLabour, + CostCommodity, + CostPurchase, + CostProcess, + CostAdditional, + CostTotal, + CostCalculated, + CostPercentMargin, + // Common. + Notes, + Status, + OnHold, + CreatedOn, + UpdatedOn, + Actions, + //--------------------------------------------------------------- + } + + /// + /// Identifier used by form fields to show control specific messages generated by model validation etc. + /// - Both page and model should use this method to consistently generate the field name. + /// + public static String GetFieldName(ItemField field) + { + return $"{FieldNamePrefix}{field}"; + } + + //------------------------------------------------------------------- + + // List configuration. + public class ListConfigData + { + // List caption. + public String Caption { get; set; } + // Actions. + public class ActionData + { + public class AllowData + { + public bool? Create { get; set; } + public bool? Update { get; set; } + } + public AllowData Allow { get; } = new AllowData(); + } + public ActionData Action { get; } = new ActionData(); + // List columns. + public class ColumnData + { + // Column name prefix. + public String Prefix { get; } = Model_Requirement.FieldNamePrefix; + // Hide column. + public HashSet Hide { get; } = new HashSet(StringComparer.InvariantCultureIgnoreCase); + // Column labels. + public Dictionary Label { get; } = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + } + public ColumnData Column { get; } = new ColumnData(); + } + public ListConfigData ListConfig { get; private set; } + + //------------------------------------------------------------------- + /// + /// Populate Requirement list configuration data in this model - only required on initial page construction. + /// + public void PopulateListConfig() + { + ListConfig = new ListConfigData(); + PopulateListConfig(ListConfig); + } + /// + /// Populate Requirement list configuration data. + /// + public void PopulateListConfig(ListConfigData config) + { + // View properties. + ViewMode viewMode = GetFilterMode(); + bool modeIsSearch = viewMode == ViewMode.Search; + bool modeIsMaintain = viewMode == ViewMode.Maintain; + bool modeIsProductionControl = viewMode == ViewMode.ProductionControl; + bool modeIsCommodityHistory_Maintain = viewMode == ViewMode.CommodityHistory_Maintain; + bool modeIsCommodityHistory_ReadOnly = viewMode == ViewMode.CommodityHistory_ReadOnly; + bool modeIsCommodityHistory = modeIsCommodityHistory_Maintain || modeIsCommodityHistory_ReadOnly; + bool modeIsAssetOrders_Maintain = viewMode == ViewMode.AssetOrders_Maintain; + bool modeIsAssetOrders_ReadOnly = viewMode == ViewMode.AssetOrders_ReadOnly; + bool modeIsAssetOrders = modeIsAssetOrders_Maintain || modeIsAssetOrders_ReadOnly; + + // Transaction. + Sbm.TransactionType transactionType = GetFilterTransactionType(); + SbmTransaction.StatusCat transactionStatusCat = GetFilterTransactionStatusCat(); + bool isProject = transactionType == Sbm.TransactionType.Project; + bool isSales = SbmTransaction.IsSalesType(transactionType); + bool isSalesLead = transactionType == Sbm.TransactionType.SalesLead; + bool isSalesQuote = transactionType == Sbm.TransactionType.SalesQuote; + bool isSalesOrder = transactionType == Sbm.TransactionType.SalesOrder || transactionType == Sbm.TransactionType.ProformaSalesOrder; + bool isSalesPO = transactionType == Sbm.TransactionType.SalesPO; + bool isSalesDispatch = transactionType == Sbm.TransactionType.SalesDispatch; + bool isSalesInvoice = transactionType == Sbm.TransactionType.SalesInvoice || transactionType == Sbm.TransactionType.ProformaSalesInvoice; + bool isPurchase = SbmTransaction.IsPurchaseType(transactionType); + bool isPurchaseQuote = transactionType == Sbm.TransactionType.PurchaseQuote; + bool isPurchaseOrder = transactionType == Sbm.TransactionType.PurchaseOrder || transactionType == Sbm.TransactionType.ProformaPurchaseOrder; + bool isPurchaseSO = transactionType == Sbm.TransactionType.PurchaseSO; + bool isPurchaseDelivery = transactionType == Sbm.TransactionType.PurchaseDelivery; + bool isPurchaseInvoice = transactionType == Sbm.TransactionType.PurchaseInvoice || transactionType == Sbm.TransactionType.ProformaPurchaseInvoice; + + // Requirement. + Sbm.RequirementType requirementType = GetFilterRequirementType(); + SbmRequirement.StatusCat requirementStatusCat = GetFilterRequirementStatusCat(); + + // Options. + bool userCanCreateRequirements = SessionData_Portal.SecurityProfile.UserCanCreateItemType(Sbm.ItemType.Requirement); + bool userCanUpdateRequirements = SessionData_Portal.SecurityProfile.UserCanUpdateItemType(Sbm.ItemType.Requirement); + bool allowJobNumber = SessionConsole.AllowOption(Sbm.ConfigOption.SalesOrderItemJobNumber); + bool showDrawingIssue = SessionConsole.DisplayAttribute(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue); + bool showAllocationInd = SessionConsole.GetOwnerOption_ShowColumn(Sbm.OrgOption_ShowColumn.OrderItem_AllocationInd); + SbmStockControlConfig stockControlConfig = Internals.StockControlConfig; + bool allowProductionControl = SessionConsole.AllowOption(Sbm.ConfigOption.ProductionControl); + bool allowTimeRecording = SessionConsole.AllowOption(Sbm.ConfigOption.TimeRecording); + bool allowCommodityPromotions = SessionConsole.AllowOption(Sbm.ConfigOption.CommodityPromotion); + bool allowJobCosting = SessionConsole.GetRequirementCostingConfig().AllowRequirementCosting(transactionType) && TransactionMgr.CostColumnsAreAvailable() && UserCanViewFinancials(); + bool allowSalesOrderItemRandD = SessionConsole.AllowOption(Sbm.ConfigOption.SalesOrderItemRandD); + + //--------------------------------------------------------------- + // List Caption. + config.Caption = StringUtil.OnBlank(GetListCaptionByTransactionType(transactionType), Localiser["label.requirements"]); + + //--------------------------------------------------------------- + // Actions. + + if (userCanCreateRequirements) + config.Action.Allow.Create = true; + if (userCanUpdateRequirements) + config.Action.Allow.Update = true; + + //--------------------------------------------------------------- + // Requirement list columns. + + // Position. + + // Id + if (!SbmSystem.DebugMode) + config.Column.Hide.Add($"{ItemField.Id}"); + + // Sequence - Maintain mode. + if (modeIsMaintain) + { + // Sequence column shown. + } + else config.Column.Hide.Add($"{ItemField.Sequence}"); + + // Job Number - Only Sales Orders and not Search/Production/Asset modes. + if (isSalesOrder && !modeIsSearch && !modeIsProductionControl && !modeIsAssetOrders && allowJobNumber) + { + // Job Number column shown. + } + else config.Column.Hide.Add($"{ItemField.JobNumber}"); + + //--------------------------------------------------------------- + // Source Requirement references - Sales Dispatch/Invoice not in Search/Production/Asset modes. + if ((isSalesDispatch || isSalesInvoice) && !modeIsSearch && !modeIsProductionControl && !modeIsAssetOrders) + { + // Source requirement references shown. + if (!allowJobNumber) + config.Column.Hide.Add($"{ItemField.SourceReqntJobNumber}"); + } + else + { + config.Column.Hide.Add($"{ItemField.SourceReqntTransRef}"); + config.Column.Hide.Add($"{ItemField.SourceReqntTransRefExt}"); + config.Column.Hide.Add($"{ItemField.SourceReqntJobNumber}"); + } + + //--------------------------------------------------------------- + // Product code - not in Commodity/Asset modes. + if (!modeIsCommodityHistory && !modeIsAssetOrders) + { + // Product Code is shown. + } + else config.Column.Hide.Add($"{ItemField.ProductCode}"); + + // Drawing Issue - not Assets modes. + if (showDrawingIssue && !modeIsAssetOrders) + { + // Drawing Issue is shown. + } + else config.Column.Hide.Add($"{ItemField.DrawingIssue}"); + + // Description - always shown. + + // Required - Sales Quote/Order, Purchase Order. + if (isSalesQuote || isSalesOrder || isPurchaseOrder) + { + // Required is shown. + } + else + { + config.Column.Hide.Add($"{ItemField.Required}"); + config.Column.Hide.Add($"{ItemField.RequiredFmt}"); + } + + //--------------------------------------------------------------- + // Quantity - always shown. + + // Production Quantity - Sales Quote/Order not in Assets mode. + if (allowProductionControl && (isSalesQuote || isSalesOrder) && !modeIsAssetOrders) + { + // Production Quantity is shown. + } + else config.Column.Hide.Add($"{ItemField.QuantityProd}"); + + // Allocation Indicator - Sales/Purchase Order not in Assets mode. + if (stockControlConfig.AllowStockControl() && showAllocationInd && (isSalesOrder || isPurchaseOrder) && transactionStatusCat != SbmTransaction.StatusCat.Pending && !modeIsAssetOrders) + { + // Allocation Indicator is shown. + } + else config.Column.Hide.Add($"{ItemField.AllocationIndicator}"); + + //--------------------------------------------------------------- + // Financials. + + // Unit Amount. + if (UserCanViewFinancials()) + { + // Unit Amount is shown. + } + else config.Column.Hide.Add($"{ItemField.AmountUnit}"); + + // Net Amount - Maintain mode only. + if (UserCanViewFinancials() && modeIsMaintain) + { + // Unit Amount is shown. + } + else config.Column.Hide.Add($"{ItemField.AmountNet}"); + + // Tax Amount - Maintain mode only. + if (UserCanViewFinancials() && isSalesInvoice && modeIsMaintain) + { + // Tax Amount is shown. + } + else config.Column.Hide.Add($"{ItemField.AmountTax}"); + + // Total Amount - Maintain mode only. + if (UserCanViewFinancials() && !isSalesDispatch && !isPurchaseQuote && !isPurchaseOrder && modeIsMaintain) + { + // Total Amount is shown. + } + else config.Column.Hide.Add($"{ItemField.AmountTot}"); + + //--------------------------------------------------------------- + + // Research & Development Indicator. + if (isSalesOrder && allowSalesOrderItemRandD && modeIsMaintain) + { + // R&D Indicator is shown. + } + else config.Column.Hide.Add($"{ItemField.RandDIndicator}"); + + // Time columns. + + // Estimated Time. + if ((isProject || isSalesQuote || isSalesOrder) && allowProductionControl && modeIsMaintain) + { + // Estimated Time is shown. + } + else config.Column.Hide.Add($"{ItemField.TimeEst}"); + + // Actual time. + if (isSalesOrder && allowProductionControl && modeIsMaintain) + { + // Actual Time is shown. + } + else config.Column.Hide.Add($"{ItemField.TimeAct}"); + + // Total time. + if ((isProject || isSalesOrder) && allowTimeRecording && modeIsMaintain) + { + // Total Time is shown. + } + else config.Column.Hide.Add($"{ItemField.TimeTot}"); + + // Job Costing. + if (allowJobCosting && modeIsMaintain) + { + } + else + { + config.Column.Hide.Add($"{ItemField.CostTotal}"); + config.Column.Hide.Add($"{ItemField.CostPercentMargin}"); + } + + // Promotions. + if (allowCommodityPromotions && modeIsMaintain) + { + // Promotion is shown. + } + else + { + config.Column.Hide.Add($"{ItemField.PromotionCode}"); + config.Column.Hide.Add($"{ItemField.PromotionCaption}"); + } + + //--------------------------------------------------------------- + // Common. + + // Status. + if (!isSalesDispatch && !isSalesInvoice && !isPurchaseInvoice && modeIsMaintain) + { + // Status is shown. + } + else config.Column.Hide.Add($"{ItemField.Status}"); + + // Actions. + if (modeIsMaintain) + { + // Actions are shown. + } + else config.Column.Hide.Add($"{ItemField.Actions}"); + } + + //------------------------------------------------------------------- + private String GetListCaptionByTransactionType(Sbm.TransactionType transactionType) + { + String transactionTypeCaption = GetTransactionTypeCaption(transactionType); + if (!StringUtil.IsBlank(transactionTypeCaption)) + return Localiser.GetText("caption.item.requirements", new object[] { transactionTypeCaption }); + return Localiser["label.requirements"]; + } + private String GetTransactionTypeCaption(Sbm.TransactionType transactionType) + { + switch (transactionType) + { + case Sbm.TransactionType.Project: return Localiser["caption.projects"]; + case Sbm.TransactionType.SalesLead: return Localiser["caption.sales.leads"]; + case Sbm.TransactionType.SalesQuote: return Localiser["caption.sales.quotes"]; + case Sbm.TransactionType.ProformaSalesOrder: return Localiser["caption.proforma.sales.orders"]; + case Sbm.TransactionType.SalesPO: return Localiser["caption.sales.purchase.orders"]; + case Sbm.TransactionType.SalesOrder: return Localiser["caption.sales.orders"]; + case Sbm.TransactionType.SalesDispatch: return Localiser["caption.sales.dispatches"]; + case Sbm.TransactionType.ProformaSalesInvoice: return Localiser["caption.proforma.sales.invoices"]; + case Sbm.TransactionType.SalesInvoice: return Localiser["caption.sales.invoices"]; + case Sbm.TransactionType.PurchaseQuote: return Localiser["caption.purchase.quotes"]; + case Sbm.TransactionType.ProformaPurchaseOrder: return Localiser["caption.proforma.purchase.orders"]; + case Sbm.TransactionType.PurchaseSO: return Localiser["caption.purchase.sales.orders"]; + case Sbm.TransactionType.PurchaseOrder: return Localiser["caption.purchase.orders"]; + case Sbm.TransactionType.PurchaseDelivery: return Localiser["caption.purchase.deliveries"]; + case Sbm.TransactionType.ProformaPurchaseInvoice: return Localiser["caption.proforma.purchase.invoices"]; + case Sbm.TransactionType.PurchaseInvoice: return Localiser["caption.purchase.invoices"]; + } + return ""; + } + + //------------------------------------------------------------------- + // Item configuration. + //------------------------------------------------------------------- + + // Contact item configuration. + public class ItemConfigData + { + // Item type. + public bool? IsOrganisation { get; set; } + public bool? IsIndividual { get; set; } + public bool? IsGroup { get; set; } + // Item fields. + public class FieldData + { + // Field name prefix. + public String Prefix { get; } = Model_Requirement.FieldNamePrefix; + // Hide field. + public HashSet Hide { get; } = new HashSet(StringComparer.InvariantCultureIgnoreCase); + // Read-only field. + public HashSet Readonly { get; } = new HashSet(StringComparer.InvariantCultureIgnoreCase); + // Field labels. + public Dictionary Label { get; } = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + } + public FieldData Field { get; } = new FieldData(); + } + + //------------------------------------------------------------------- + /// + /// Populate item configuration for existing requirement. + /// + public void PopulateItemConfig(ItemConfigData config, SbmTransaction transaction, SbmRequirement requirement) + { + PopulateItemConfig(config, requirement.GetItemId(), transaction.TransactionType, requirement.RequirementType); + } + + /// + /// Populate item configuration for new or existing requirement. + /// + public void PopulateItemConfig(ItemConfigData config, ItemId requirementItemId, Sbm.TransactionType transactionType, Sbm.RequirementType requirementType) + { + // Item type. + bool isSales = SbmTransaction.IsSalesType(transactionType); + bool isPurchase = SbmTransaction.IsPurchaseType(transactionType); + + // Configuration options. + bool importedFromAccounts = Internals.AccountsConsole.ItemIsImportedFromAccounts(requirementItemId); + bool managedByAccounts = Internals.AccountsConsole.IsItemTypeManagedByAccounts(Sbm.ItemType.Requirement); + bool showDrawingIssue = SessionConsole.DisplayAttribute(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue); + bool showNotes = true; + + //--------------------------------------------------------------- + // Requirement. + + // Id. + if (SbmSystem.DebugMode) + config.Field.Readonly.Add($"{ItemField.Id}"); + else + config.Field.Hide.Add($"{ItemField.Id}"); + + // Job Number. + if (transactionType != Sbm.TransactionType.SalesOrder || !SessionConsole.AllowOption(Sbm.ConfigOption.SalesOrderItemJobNumber)) + config.Field.Hide.Add($"{ItemField.JobNumber}"); + + // Narrative. + config.Field.Label.Add($"{ItemField.DescBrief}", SessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Requirement_DescBrief, Localiser["label.narrative"])); + if (managedByAccounts) + config.Field.Readonly.Add($"{ItemField.DescBrief}"); + + //--------------------------------------------------------------- + // Sales order. + + //--------------------------------------------------------------- + // Purchase order. + + //--------------------------------------------------------------- + // Common. + + // Notes. + if (!showNotes) + config.Field.Hide.Add($"{ItemField.Notes}"); + + // Status. + // Read-only if transaction being superceded. + if (managedByAccounts) + config.Field.Readonly.Add($"{ItemField.Status}"); + + } + + //------------------------------------------------------------------- + } +} diff --git a/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement.cs b/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement.cs new file mode 100644 index 0000000..714c566 --- /dev/null +++ b/SaBusinessMgrCoreWebPortal/Portal/Models/Requirements/Model_Requirement.cs @@ -0,0 +1,235 @@ +using Microsoft.AspNetCore.Mvc.Rendering; +using Sarand.BusinessMgr.Net.Core.Web.App; +using Sarand.BusinessMgr.Net.Standard.Base.App; +using Sarand.BusinessMgr.Net.Standard.Base.Bus; +using Sarand.BusinessMgr.Web.Portal.Components; +using Sarand.Net.Standard.Base.App; +using Sarand.Net.Standard.Base.Bus; +using Sarand.Net.Standard.Base.Core; +using Sarand.Net.Standard.Base.Utils; +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Sarand.BusinessMgr.Web.Portal.Models.Requirements +{ + //======================================================================= + // Requirement model. + //======================================================================= + /// + /// Requirement model - Filter, Form, validation and configuration. + /// + public partial class Model_Requirement : SbmModel_Portal + { + //------------------------------------------------------------------- + // Definitions. + public enum ViewMode + { + // 'Commit updates' modes - changes are immediately commited to the database. + Maintain, + ProductionControl, + CommodityHistory_Maintain, + AssetOrders_Maintain, + // 'No updates' modes - no changes are allowed. + CommodityHistory_ReadOnly, + AssetOrders_ReadOnly, + Search + } + + //------------------------------------------------------------------- + // Construction. + public Model_Requirement(SbmLocaliser localiser) : + base(localiser) + { + } + + //------------------------------------------------------------------- + // Filter properties. + public class FilterData + { + public String Mode { get; set; } + public String TransactionType { get; set; } + public String Type { get; set; } + public String Search { get; set; } + public String TransactionStatusCat { get; set; } + public String StatusCat { get; set; } + } + public FilterData Filter { get; } = new FilterData(); + public ViewMode GetFilterMode() + { + return EnumUtil.ParseEnum(Filter.Mode, ViewMode.Search); + } + public Sbm.TransactionType GetFilterTransactionType() + { + Sbm.TransactionType transactionType = (Sbm.TransactionType)Internals.TransactionTypeCodes.GetTypeForCode(Filter.Type); + if (transactionType == 0 && !StringUtil.IsBlank(Filter.Type) && StringUtil.IsNumeric(Filter.Type, true)) + transactionType = (Sbm.TransactionType)StringUtil.ToInt(Filter.Type); + return transactionType; + } + public Sbm.RequirementType GetFilterRequirementType() + { + Sbm.RequirementType transactionType = (Sbm.RequirementType)Internals.RequirementTypeCodes.GetTypeForCode(Filter.Type); + if (transactionType == 0 && !StringUtil.IsBlank(Filter.Type) && StringUtil.IsNumeric(Filter.Type, true)) + transactionType = (Sbm.RequirementType)StringUtil.ToInt(Filter.Type); + return transactionType; + } + public SbmTransaction.StatusCat GetFilterTransactionStatusCat() + { + return (SbmTransaction.StatusCat)Internals.GetSystemCodes(Sbm.SystemCode.TransactionStatusCat).GetTypeForCode(Filter.TransactionStatusCat); + } + public SbmRequirement.StatusCat GetFilterRequirementStatusCat() + { + return (SbmRequirement.StatusCat)Internals.GetSystemCodes(Sbm.SystemCode.RequirementStatusCat).GetTypeForCode(Filter.StatusCat); + } + + //------------------------------------------------------------------- + // Requirement properties. + public class RequirementData + { + public String Exists { get; set; } + public String Id { get; set; } + public String TransactionId { get; set; } + public String RequirementIdSource { get; set; } + public String Type { get; set; } + public String Sequence { get; set; } + public String JobNumber { get; set; } + // Status dates. + public String Required { get; set; } + public String Started { get; set; } + public String Completed { get; set; } + // Details. + public String AssociationIdSubContract { get; set; } + public String DescBrief { get; set; } + public String DescIntro { get; set; } + public String DescOutline { get; set; } + public String DescDetail { get; set; } + public String PromotionCode { get; set; } + public String NominalCode { get; set; } + // Commodity. + public String CommodityId { get; set; } + public String ProductCode { get; set; } + public String AssetId { get; set; } + public String Quantity { get; set; } + public String QuantityProd { get; set; } + public String UomId { get; set; } + public String Weight { get; set; } + public String UomIdWeight { get; set; } + public String MaterialSourceCode { get; set; } + public String LocationIdStock { get; set; } + // Amounts. + public String AmountUnit { get; set; } + public String AmountAct { get; set; } + public String AmountDisc { get; set; } + public String AmountNet { get; set; } + public String TaxCodeId { get; set; } + public String TaxRate { get; set; } + public String AmountTax { get; set; } + public String AmountTot { get; set; } + // Common properties. + public String Notes { get; set; } + public String StatusCode { get; set; } + } + public RequirementData Requirement { get; } = new RequirementData(); + public Sbm.RequirementType GetRequirementType() + { + return (Sbm.RequirementType)Internals.RequirementTypeCodes.GetTypeForCode(Requirement.Type); + } + public SaStatus GetRequirementStatus() + { + return SacsSystem.GetStatusForCode(Requirement.StatusCode); + } + + //------------------------------------------------------------------- + // Validation. + //------------------------------------------------------------------- + // Requirement validation. + public bool ValidateRequirementData(Sacs.Web.Components.SaController.AjaxResponse_Data responseData) + { + + // Narrative. + if (Requirement.DescBrief != null) + { + String controlName = GetFieldName(ItemField.DescBrief); + responseData.SetControlValue(controlName, Requirement.DescBrief); + if (StringUtil.GetLength(Requirement.DescBrief) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescBrief)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescBrief)]); + } + + // Desc Intro. + if (Requirement.DescIntro != null) + { + String controlName = GetFieldName(ItemField.DescIntro); + responseData.SetControlValue(controlName, Requirement.DescIntro); + if (StringUtil.GetLength(Requirement.DescIntro) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescIntro)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescIntro)]); + } + + // Desc Outline. + if (Requirement.DescOutline != null) + { + String controlName = GetFieldName(ItemField.DescOutline); + responseData.SetControlValue(controlName, Requirement.DescOutline); + if (StringUtil.GetLength(Requirement.DescOutline) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescOutline)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescOutline)]); + } + + // Desc Detail. + if (Requirement.DescDetail != null) + { + String controlName = GetFieldName(ItemField.DescDetail); + responseData.SetControlValue(controlName, Requirement.DescDetail); + if (StringUtil.GetLength(Requirement.DescDetail) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescDetail)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_DescDetail)]); + } + + + // Requirement status. + if (Requirement.StatusCode != null) + { + String controlName = GetFieldName(ItemField.Status); + if (Requirement.StatusCode.IsEmpty()) + responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); + else if (!SbmRequirement.ValidStatuses.Contains(GetRequirementStatus())) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Required. + if (Requirement.Required != null) + { + String controlName = GetFieldName(ItemField.Required); + if (!Requirement.Required.IsEmpty() && !DateUtil.IsValid(ParseDateFromForm(Requirement.Required))) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Status dates - Started. + if (Requirement.Started != null) + { + String controlName = GetFieldName(ItemField.Started); + if (!Requirement.Started.IsEmpty() && !DateUtil.IsValid(ParseDateFromForm(Requirement.Started))) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Status dates - Completed. + if (Requirement.Completed != null) + { + String controlName = GetFieldName(ItemField.Completed); + if (!Requirement.Completed.IsEmpty() && !DateUtil.IsValid(ParseDateFromForm(Requirement.Completed))) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Requirement Notes. + if (Requirement.Notes != null) + { + String controlName = GetFieldName(ItemField.Notes); + responseData.SetControlValue(controlName, Requirement.Notes); + if (!Requirement.Notes.IsEmpty() && StringUtil.GetLength(Requirement.Notes) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_Notes)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Requirement_Notes)]); + } + + return !responseData.HasControlErrors(); + } + + //------------------------------------------------------------------- + } + //======================================================================= +} diff --git a/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction-Config.cs b/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction-Config.cs index f54b00e..634ea28 100644 --- a/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction-Config.cs +++ b/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction-Config.cs @@ -233,7 +233,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions //--------------------------------------------------------------- // List Caption. - config.Caption = StringUtil.OnBlank(GetListCaptionByTransactionType(transactionType),Localiser["label.transactions"]); + config.Caption = StringUtil.OnBlank(GetListCaptionByTransactionType(transactionType), Localiser["label.transactions"]); //--------------------------------------------------------------- // Actions. @@ -343,7 +343,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions } // In Progress date. - if (!modeIsDeliveryPlanning && !isSalesLead && !isSalesDispatch && transactionStatusCat != SbmTransaction.StatusCat.Pending) + if (!modeIsDeliveryPlanning && !isSalesLead && !isSalesDispatch && transactionStatusCat == SbmTransaction.StatusCat.Open) { //config.Column.Label.Add($"{ItemField.InProgress}", Localiser["label.in.progress"]); } @@ -367,7 +367,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions } // Closed date. - if (modeIsDeliveryPlanning || transactionStatusCat != SbmTransaction.StatusCat.Open) + if (modeIsDeliveryPlanning || transactionStatusCat == SbmTransaction.StatusCat.Closed) { //config.Column.Label.Add($"{ItemField.Closed}", Localiser["label.closed"]); } @@ -588,7 +588,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions //------------------------------------------------------------------- /// - /// Populate item configuration for existing association. + /// Populate item configuration for existing transaction. /// public void PopulateItemConfig(ItemConfigData config, SbmTransaction transaction) { @@ -596,7 +596,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions } /// - /// Populate item configuration for new or existing association. + /// Populate item configuration for new or existing transaction. /// public void PopulateItemConfig(ItemConfigData config, ItemId transactionItemId, Sbm.TransactionType transactionType) { diff --git a/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction.cs b/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction.cs index 46d8988..b2009c3 100644 --- a/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction.cs +++ b/SaBusinessMgrCoreWebPortal/Portal/Models/Transactions/Model_Transaction.cs @@ -40,7 +40,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions public class FilterData { public String Mode { get; set; } - public String TransactionType { get; set; } + public String Type { get; set; } public String Search { get; set; } public String StatusCat { get; set; } } @@ -51,9 +51,9 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions } public Sbm.TransactionType GetFilterTransactionType() { - Sbm.TransactionType transactionType = (Sbm.TransactionType)Internals.TransactionTypeCodes.GetTypeForCode(Filter.TransactionType); - if (transactionType == 0 && !StringUtil.IsBlank(Filter.TransactionType) && StringUtil.IsNumeric(Filter.TransactionType, true)) - transactionType = (Sbm.TransactionType)StringUtil.ToInt(Filter.TransactionType); + Sbm.TransactionType transactionType = (Sbm.TransactionType)Internals.TransactionTypeCodes.GetTypeForCode(Filter.Type); + if (transactionType == 0 && !StringUtil.IsBlank(Filter.Type) && StringUtil.IsNumeric(Filter.Type, true)) + transactionType = (Sbm.TransactionType)StringUtil.ToInt(Filter.Type); return transactionType; } public String GetFilterAssociationTypeCode() @@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions } public SbmTransaction.StatusCat GetFilterTransactionStatusCat() { - return (SbmTransaction.StatusCat)StringUtil.ToInt(Filter.StatusCat); + return (SbmTransaction.StatusCat)Internals.GetSystemCodes(Sbm.SystemCode.TransactionStatusCat).GetTypeForCode(Filter.StatusCat); } /// Transaction Status Cats for filter dropdown. @@ -100,10 +100,10 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions public String Raised { get; set; } public String Required { get; set; } public String InProgress { get; set; } + public String Closed { get; set; } // Delivery. public String DeliveredEst { get; set; } public String DeliveredAct { get; set; } - public String Closed { get; set; } public String Department { get; set; } public String DescBrief { get; set; } public String DescIntro { get; set; } @@ -168,7 +168,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions Sbm.TransactionType transactionType = GetTransactionType(); if (Transaction.Type != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Type); + String controlName = GetFieldName(ItemField.Type); if (Transaction.Type.IsEmpty() || GetTransactionType() <= 0) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!SessionConsole.AllowTransactionType(transactionType)) @@ -178,7 +178,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Association. if (Transaction.AssociationId != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.AssociationName); + String controlName = GetFieldName(ItemField.AssociationName); SysId associationId = SysId.ToSysId(Transaction.AssociationId); if (!SysId.IsValid(associationId)) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); @@ -187,7 +187,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Reference. if (Transaction.Reference != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Reference); + String controlName = GetFieldName(ItemField.Reference); responseData.SetControlValue(controlName, Transaction.Reference); if (StringUtil.GetLength(Transaction.Reference) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Ref)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Ref)]); @@ -196,7 +196,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Ext Reference. if (Transaction.ReferenceExt != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ReferenceExt); + String controlName = GetFieldName(ItemField.ReferenceExt); responseData.SetControlValue(controlName, Transaction.ReferenceExt); if (StringUtil.GetLength(Transaction.ReferenceExt) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_RefExt)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_RefExt)]); @@ -205,7 +205,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Narrative. if (Transaction.DescBrief != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DescBrief); + String controlName = GetFieldName(ItemField.DescBrief); responseData.SetControlValue(controlName, Transaction.DescBrief); if (StringUtil.GetLength(Transaction.DescBrief) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescBrief)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescBrief)]); @@ -214,7 +214,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Contact Name. if (Transaction.ContactName != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ContactName); + String controlName = GetFieldName(ItemField.ContactName); responseData.SetControlValue(controlName, Transaction.ContactName); if (StringUtil.GetLength(Transaction.ContactName) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ContactName)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ContactName)]); @@ -223,7 +223,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Likelihood. if (Transaction.Likelihood != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Likelihood); + String controlName = GetFieldName(ItemField.Likelihood); responseData.SetControlValue(controlName, Transaction.Likelihood); if (StringUtil.GetLength(Transaction.Likelihood) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Likelihood)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Likelihood)]); @@ -232,7 +232,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Referral code. if (Transaction.ReferCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ReferCode); + String controlName = GetFieldName(ItemField.ReferCode); responseData.SetControlValue(controlName, Transaction.ReferCode); if (StringUtil.GetLength(Transaction.ReferCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ReferCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ReferCode)]); @@ -241,7 +241,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Refer source. if (Transaction.ReferSource != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ReferSource); + String controlName = GetFieldName(ItemField.ReferSource); responseData.SetControlValue(controlName, Transaction.ReferSource); if (StringUtil.GetLength(Transaction.ReferSource) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ReferSource)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ReferSource)]); @@ -250,7 +250,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Department. if (Transaction.Department != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Department); + String controlName = GetFieldName(ItemField.Department); responseData.SetControlValue(controlName, Transaction.Department); if (StringUtil.GetLength(Transaction.Department) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Department)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Department)]); @@ -259,7 +259,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Desc Intro. if (Transaction.DescIntro != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DescIntro); + String controlName = GetFieldName(ItemField.DescIntro); responseData.SetControlValue(controlName, Transaction.DescIntro); if (StringUtil.GetLength(Transaction.DescIntro) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescIntro)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescIntro)]); @@ -268,7 +268,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Desc Outline. if (Transaction.DescOutline != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DescOutline); + String controlName = GetFieldName(ItemField.DescOutline); responseData.SetControlValue(controlName, Transaction.DescOutline); if (StringUtil.GetLength(Transaction.DescOutline) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescOutline)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescOutline)]); @@ -277,7 +277,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Desc Detail. if (Transaction.DescDetail != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DescDetail); + String controlName = GetFieldName(ItemField.DescDetail); responseData.SetControlValue(controlName, Transaction.DescDetail); if (StringUtil.GetLength(Transaction.DescDetail) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescDetail)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DescDetail)]); @@ -286,7 +286,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Contact Area code. if (Transaction.ContactAreaCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ContactAreaCode); + String controlName = GetFieldName(ItemField.ContactAreaCode); responseData.SetControlValue(controlName, Transaction.ContactAreaCode); if (StringUtil.GetLength(Transaction.ContactAreaCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ContactAreaCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ContactAreaCode)]); @@ -295,7 +295,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Response code. if (Transaction.ResponseCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.ResponseCode); + String controlName = GetFieldName(ItemField.ResponseCode); responseData.SetControlValue(controlName, Transaction.ResponseCode); if (StringUtil.GetLength(Transaction.ResponseCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ResponseCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_ResponseCode)]); @@ -304,7 +304,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Box Count. if (Transaction.BoxCount != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.BoxCount); + String controlName = GetFieldName(ItemField.BoxCount); responseData.SetControlValue(controlName, Transaction.BoxCount); if (StringUtil.GetLength(Transaction.BoxCount) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_BoxCount)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_BoxCount)]); @@ -313,7 +313,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Status code. if (Transaction.DeliveryStatusCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryStatus); + String controlName = GetFieldName(ItemField.DeliveryStatus); responseData.SetControlValue(controlName, Transaction.DeliveryStatusCode); if (StringUtil.GetLength(Transaction.DeliveryStatusCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryStatusCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryStatusCode)]); @@ -322,7 +322,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Type code. if (Transaction.DeliveryTypeCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryType); + String controlName = GetFieldName(ItemField.DeliveryType); responseData.SetControlValue(controlName, Transaction.DeliveryTypeCode); if (StringUtil.GetLength(Transaction.DeliveryTypeCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryTypeCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryTypeCode)]); @@ -331,7 +331,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Method code. if (Transaction.DeliveryMethodCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryMethod); + String controlName = GetFieldName(ItemField.DeliveryMethod); responseData.SetControlValue(controlName, Transaction.DeliveryMethodCode); if (StringUtil.GetLength(Transaction.DeliveryMethodCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryMethodCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryMethodCode)]); @@ -340,7 +340,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Courier code. if (Transaction.DeliveryCourierCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryCourier); + String controlName = GetFieldName(ItemField.DeliveryCourier); responseData.SetControlValue(controlName, Transaction.DeliveryCourierCode); if (StringUtil.GetLength(Transaction.DeliveryCourierCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryCourierCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryCourierCode)]); @@ -349,7 +349,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Book In code. if (Transaction.DeliveryBookInCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryBookIn); + String controlName = GetFieldName(ItemField.DeliveryBookIn); responseData.SetControlValue(controlName, Transaction.DeliveryBookInCode); if (StringUtil.GetLength(Transaction.DeliveryBookInCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryBookInCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryBookInCode)]); @@ -358,7 +358,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Stock Picker code. if (Transaction.StockPickerCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.StockPicker); + String controlName = GetFieldName(ItemField.StockPicker); responseData.SetControlValue(controlName, Transaction.StockPickerCode); if (StringUtil.GetLength(Transaction.StockPickerCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_StockPickerCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_StockPickerCode)]); @@ -367,7 +367,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Ref. if (Transaction.DeliveryRef != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryRef); + String controlName = GetFieldName(ItemField.DeliveryRef); responseData.SetControlValue(controlName, Transaction.DeliveryRef); if (StringUtil.GetLength(Transaction.DeliveryRef) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryRef)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryRef)]); @@ -376,7 +376,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Comment. if (Transaction.DeliveryComment != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryComment); + String controlName = GetFieldName(ItemField.DeliveryComment); responseData.SetControlValue(controlName, Transaction.DeliveryComment); if (StringUtil.GetLength(Transaction.DeliveryComment) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryComment)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryComment)]); @@ -385,7 +385,7 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Department. if (Transaction.DeliveryDepartment != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryDepartment); + String controlName = GetFieldName(ItemField.DeliveryDepartment); responseData.SetControlValue(controlName, Transaction.DeliveryDepartment); if (StringUtil.GetLength(Transaction.DeliveryDepartment) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryDepartment)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryDepartment)]); @@ -394,30 +394,61 @@ namespace Sarand.BusinessMgr.Web.Portal.Models.Transactions // Delivery Nominal code. if (Transaction.DeliveryNominalCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.DeliveryNominalCode); + String controlName = GetFieldName(ItemField.DeliveryNominalCode); responseData.SetControlValue(controlName, Transaction.DeliveryNominalCode); if (StringUtil.GetLength(Transaction.DeliveryNominalCode) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryNominalCode)) responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_DeliveryNominalCode)]); } - // Transaction Notes. - if (Transaction.Notes != null) - { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Notes); - responseData.SetControlValue(controlName, Transaction.Notes); - if (!Transaction.Notes.IsEmpty() && StringUtil.GetLength(Transaction.Notes) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Notes)) - responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Notes)]); - } - // Transaction status. if (Transaction.StatusCode != null) { - String controlName = Model_Transaction.GetFieldName(Model_Transaction.ItemField.Status); + String controlName = GetFieldName(ItemField.Status); if (Transaction.StatusCode.IsEmpty()) responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); else if (!SbmTransaction.ValidStatusesByType(transactionType).Contains(GetTransactionStatus())) responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); } + SbmTransaction.StatusCat transactionStatusCat = SbmTransaction.GetCategoryForStatus(GetTransactionStatus()); + + // Status dates - Raised. + if (Transaction.Raised != null) + { + String controlName = GetFieldName(ItemField.Raised); + if (Transaction.Raised.IsEmpty() || !DateUtil.IsValid(ParseDateFromForm(Transaction.Raised))) + responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); + else if (ParseDateFromForm(Transaction.Raised) > DateTime.Today) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Status dates - In Progress. + if (Transaction.InProgress != null) + { + String controlName = GetFieldName(ItemField.InProgress); + if ((Transaction.InProgress.IsEmpty() || !DateUtil.IsValid(ParseDateFromForm(Transaction.InProgress))) && (transactionStatusCat == SbmTransaction.StatusCat.Open || transactionStatusCat == SbmTransaction.StatusCat.Closed)) + responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); + else if (ParseDateFromForm(Transaction.InProgress) > DateTime.Today) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Status dates - Closed. + if (Transaction.Closed != null) + { + String controlName = GetFieldName(ItemField.Closed); + if ((Transaction.Closed.IsEmpty() || !DateUtil.IsValid(ParseDateFromForm(Transaction.Closed))) && (transactionStatusCat == SbmTransaction.StatusCat.Closed)) + responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]); + else if (ParseDateFromForm(Transaction.Closed) > DateTime.Today) + responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]); + } + + // Transaction Notes. + if (Transaction.Notes != null) + { + String controlName = GetFieldName(ItemField.Notes); + responseData.SetControlValue(controlName, Transaction.Notes); + if (!Transaction.Notes.IsEmpty() && StringUtil.GetLength(Transaction.Notes) > GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Notes)) + responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SbmDbDfn.ColumnIdx.Transaction_Notes)]); + } return !responseData.HasControlErrors(); } diff --git a/SaBusinessMgrCoreWebPortal/SaBusinessMgrCoreWebPortal.csproj b/SaBusinessMgrCoreWebPortal/SaBusinessMgrCoreWebPortal.csproj index 454d3fc..0cb98b8 100644 --- a/SaBusinessMgrCoreWebPortal/SaBusinessMgrCoreWebPortal.csproj +++ b/SaBusinessMgrCoreWebPortal/SaBusinessMgrCoreWebPortal.csproj @@ -80,4 +80,9 @@ + + + + + diff --git a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionDialog.cshtml b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionDialog.cshtml index 57bb1e9..0dd4661 100644 --- a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionDialog.cshtml +++ b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionDialog.cshtml @@ -24,6 +24,7 @@ { @Html.Hidden("Transaction.Id", "", new { @id = "", @class = "TransactionId sbm-input" }) @Html.Hidden("Transaction.Exists", "", new { @id = "", @class = "TransactionExists sbm-input" }) + @Html.Hidden("Transaction.Type", "", new { @id = "", @class = "TransactionType sbm-input" })
@* Association *@ @@ -218,9 +219,33 @@
- @* Raised by *@ -
+ @* Required *@ +
+
+
+ +
+
+
+
+
@Html.TextBox("Transaction.Required", "", new { @id = "ifTransactionRequired", @class = "TransactionRequired sbm-input sbm-calendar sbm-auto-val", @maxlen = 10 })
+
+
+
+
+
+
+ +
+
+ +
+
+ + @* Closed *@ +
+
@@ -235,6 +260,9 @@
+
+
+
diff --git a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionMaintain.cshtml b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionMaintain.cshtml index 9e5cf7c..1cafbe9 100644 --- a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionMaintain.cshtml +++ b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionMaintain.cshtml @@ -43,7 +43,7 @@
@if (ModelTransaction?.GetFilterTransactionType() > 0) { - @Html.Hidden("Filter.TransactionType", ModelTransaction.Filter.TransactionType, new { @id = "", @class = "FilterTransactionType" }) + @Html.Hidden("Filter.Type", ModelTransaction.Filter.Type, new { @id = "", @class = "FilterType sbm-input" }) } else @@ -52,7 +52,7 @@ @* Transaction Category *@
@Localiser["label.type"]
- @Html.DropDownList("Filter.TransactionType", Model.GetTransactionTypeCodesForFilterDropdown(), null, new { @id = "", @class = "FilterTransactionType sbm-select" }) + @Html.DropDownList("Filter.Type", Model.GetTransactionTypeCodesForFilterDropdown(), null, new { @id = "", @class = "FilterType sbm-select" })
} @@ -60,7 +60,7 @@ @* Transaction Status *@
@Localiser["label.status"]
- @Html.DropDownList("Filter.TransactionStatusCat", ModelTransaction?.GetTransactionStatusCatsForFilterDropdown() ?? Model.GetEmptyListForSelect(), null, new { @id = "", @class = "FilterTransactionStatusCat sbm-select" }) + @Html.DropDownList("Filter.StatusCat", ModelTransaction?.GetTransactionStatusCatsForFilterDropdown() ?? Model.GetEmptyListForSelect(), null, new { @id = "", @class = "FilterStatusCat sbm-select" })
diff --git a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionSelect.cshtml b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionSelect.cshtml index ae91fbb..fb0cb0a 100644 --- a/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionSelect.cshtml +++ b/SaBusinessMgrCoreWebPortal/Views/Transaction/Panel-TransactionSelect.cshtml @@ -24,7 +24,7 @@ @* Transaction type *@
@Localiser["label.type"]
- @Html.DropDownList("Filter.TransactionType", Model.GetTransactionTypeCodesForFilterDropdown(), Localiser["label.any"], new { @id = "", @class = "FilterTransactionType sbm-select" }) + @Html.DropDownList("Filter.Type", Model.GetTransactionTypeCodesForFilterDropdown(), Localiser["label.any"], new { @id = "", @class = "FilterType sbm-select" })
diff --git a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-data.css b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-data.css index 882a72d..cde022e 100644 --- a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-data.css +++ b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-data.css @@ -484,7 +484,7 @@ table.sbm-item-list tbody td /* Item statuses */ -.sbm-status-awa, .sbm-status-req, .sbm-status-rai, .sbm-status-clo +.sbm-status-pre, .sbm-status-awa, .sbm-status-req, .sbm-status-rai, .sbm-status-clo { color: darkorange; } @@ -499,12 +499,12 @@ table.sbm-item-list tbody td color: darkred; } -.sbm-status-inp, .sbm-status-exp, .sbm-status-inv, .sbm-status-suc, .sbm-status-act, .sbm-status-que, .sbm-status-log +.sbm-status-wip, .sbm-status-exp, .sbm-status-inv, .sbm-status-suc, .sbm-status-act, .sbm-status-que, .sbm-status-log { color: darkcyan; } -.sbm-status-pre, .sbm-status-pro, .sbm-status-inp, .sbm-status-hld, .sbm-status-upd, .sbm-status-sup, .sbm-status-aut, .sbm-status-sub +.sbm-status-pro, sbm-status-hld, .sbm-status-upd, .sbm-status-sup, .sbm-status-aut, .sbm-status-sub { color: dodgerblue; } diff --git a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-form.css b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-form.css index 5f82bad..47848e6 100644 --- a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-form.css +++ b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-form.css @@ -171,7 +171,7 @@ .sbm-form .sbm-input.sbm-calendar { - max-width: 180px; + max-width: 120px; } .sbm-form .sbm-textarea, .sbm-form .sbm-select[multiple="multiple"] diff --git a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-main.css b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-main.css index c788b5d..2eee843 100644 --- a/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-main.css +++ b/SaBusinessMgrCoreWebPortal/wwwroot/css/sbm-main.css @@ -442,4 +442,9 @@ a:focus border: 1px solid var(--color-OldGold); } +.ui-datepicker-trigger +{ + margin-left:4px; +} + /* The End */ diff --git a/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-main.js b/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-main.js index 4635a1c..f68a8c5 100644 --- a/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-main.js +++ b/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-main.js @@ -138,7 +138,7 @@ } sbm.initCalendars = function (sel, opt) { - return $(sel).datepicker(opt || {}); + return $(sel).prop('autocomplete', false).datepicker(opt || {}); } sbm.allowClearCalendar = function (sel) { @@ -583,14 +583,15 @@ $.datepicker.setDefaults({ showOn: 'both', buttonImageOnly: true, - buttonImage: '../img/action/calendar32.png', + buttonImage: '../img/action/calendar24.png', buttonText: sbm.lbl.calendar, dateFormat: sbm.form.calendarDateFormat, changeMonth: true, changeYear: false, - yearRange: '-14:+01', + yearRange: '-30:+01', firstDay: 1, //defaultDate: 0, + beforeShow: function (i) { if ($(i).attr('readonly')) { return false; } }, }); }); diff --git a/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-trn.js b/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-trn.js index 2607a6c..73e95b7 100644 --- a/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-trn.js +++ b/SaBusinessMgrCoreWebPortal/wwwroot/js/sbm-trn.js @@ -127,15 +127,16 @@ { co.clearItem(env, cfg); let $frm = env.$frm.item; - $frm.find('.TransactionType').val(env.data.transactionTypeDefault); + env.$ctrl.trnType.val(env.$frm.filter.find('.sbm-input.FilterType').val()); env.$ctrl.searchTgtAssoc.show(); - $frm.find('.TransactionStatus').val(env.data.defaultStatusCode); + env.$ctrl.trnStatus.val(env.data.defaultStatusCode).trigger('change'); + env.$ctrl.trnRaised.datepicker('setDate', 'today'); co.openItemDlg(env, cfg, sbm.dlg.title.createTransaction); } co.clearItem = function (env, cfg) { sbm.clearItemForm(env.$frm.item); - sbm.populateSelectCodeDesc('#cbTransactionStatus', env.data.statuses); + sbm.populateSelectCodeDesc(env.$ctrl.trnStatus, env.data.statuses); } co.openItemDlg = function (env, cfg, title) { @@ -161,7 +162,7 @@ } co.onUpdateItem = function (env, response) { - sbm.debug('onUpdateItem', env, response); + //sbm.debug('onUpdateItem', env, response); if (!response.success) return; let cfg = response.config || {}; co.clearItem(env, cfg); @@ -171,11 +172,10 @@ let $ctrls = $frm.find('.sbm-input,.sbm-textarea,.sbm-select'); $ctrls.filter('.TransactionId').val(item.id); $ctrls.filter('.TransactionExists').val(1); - sbm.debug(item.field.value.AssociationId); $ctrls.filter('.TransactionAssociationId').val(item.field.value.AssociationId); env.$ctrl.searchTgtAssoc.hide(); - sbm.selectOrAdd($ctrls.filter('.TransactionType'), item.typeCode, item.typeDesc); - sbm.selectOrAdd($ctrls.filter('.TransactionStatus'), item.statusCode, item.field.value.Status); + sbm.selectOrAdd(env.$ctrl.trnStatus, item.statusCode, item.field.value.Status); + env.$ctrl.trnStatus.trigger('change'); co.openItemDlg(env, cfg, sbm.dlg.title.updateTransaction); } @@ -187,11 +187,22 @@ } co.onSelectAssocTarget = function (env, item) { - sbm.debug('onSelectAssocTarget', env, item); + //sbm.debug('onSelectAssocTarget', env, item); env.$frm.item.find('.TransactionAssociationId').val(item.id); env.$frm.item.find('.TransactionAssociation').val(item.name); } + co.onChangeStatus = function (env) + { + let sta = env.$ctrl.trnStatus.val(); + env.$ctrl.trnRaised.prop('readonly', sta != 'PRE'); + env.$ctrl.trnInProgress.prop('readonly', sta != 'WIP'); + if (sta == 'PRE') env.$ctrl.trnInProgress.val('') + env.$ctrl.trnRequired.prop('readonly', (sta != 'PRE' && sta != 'WIP')); + env.$ctrl.trnClosed.prop('readonly', sta == 'PRE' || sta == 'WIP'); + if (sta == 'PRE' || sta == 'WIP') env.$ctrl.trnClosed.val('') + } + //-------------------------------------------------------------- co.storeItem = function (env) { @@ -230,7 +241,7 @@ //sbm.debug('selectTransaction', prm); let env = co.env.select; env.prmSelect = prm; - env.$frm.filter.find('.FilterTransactionType').val(''); + env.$frm.filter.find('.FilterType').val(''); env.$frm.filter.find('.FilterSearch').val(prm.search || ''); env.$pnl.table.find('tbody tr').remove(); sbm.openDialog(env.$dlg.select, 1000, 800); @@ -282,17 +293,28 @@ env.$frm.filter = $items.find('.frmTransactionFilter'); if (env.$frm.filter.length) - env.$frm.filter.on('input', '.FilterSearch', function () { co.refreshItems(env, 250); }).on('change', '.FilterTransactionType,.FilterTransactionStatusCat', function () { co.refreshItems(env, 50); }); + env.$frm.filter.on('input', '.FilterSearch', function () { co.refreshItems(env, 250); }).on('change', '.sbm-select.FilterType,.sbm-select.FilterStatusCat', function () { co.refreshItems(env, 50); }); env.$frm.itemId = $items.find('#frmTransactionId'); var opt = sbm.dlgOpts(); opt.dialogClass += " sbm-Transaction"; env.$dlg.item = $items.find('#dlgTransaction').dialog(opt); env.$frm.item = env.$dlg.item.find('#frmTransaction').on('input', '.sbm-input, .sbm-textarea', function () { sbm.clearControlError(this); }).on('change', '.sbm-select', function () { sbm.clearControlError(this); }); - sbm.initCalendars(env.$dlg.item.find('.sbm-input.sbm-calendar'), {}); - env.$frm.item.on('blur', '.sbm-input.sbm-format-integer', function () { sbm.formatInteger($(this)); }).on('blur', '.sbm-input.sbm-format-currency', function () { sbm.formatCurrency($(this)); }); - env.$frm.item.find('.TransactionAssociation').on('dblclick', function () { co.selectAssocTarget(env); }); - env.$ctrl.searchTgtAssoc = env.$frm.item.find('.AssociationTargetSearch').on('click', function () { co.selectAssocTarget(env); }); - + if (env.$frm.item.length) + { + env.$frm.item.on('blur', '.sbm-input.sbm-format-integer', function () { sbm.formatInteger($(this)); }).on('blur', '.sbm-input.sbm-format-currency', function () { sbm.formatCurrency($(this)); }); + env.$ctrl.trnType = env.$frm.item.find('.sbm-input.TransactionType'); + env.$frm.item.find('.TransactionAssociation').on('dblclick', function () { co.selectAssocTarget(env); }); + env.$ctrl.searchTgtAssoc = env.$frm.item.find('.AssociationTargetSearch').on('click', function () { co.selectAssocTarget(env); }); + env.$ctrl.trnStatus = env.$frm.item.find('.sbm-select.TransactionStatus'); + if (env.$ctrl.trnStatus.length) env.$ctrl.trnStatus.on('change', function () { co.onChangeStatus(env); }); + sbm.initCalendars(env.$frm.item.find('.sbm-input.sbm-calendar'), {}); + env.$ctrl.trnRaised = env.$frm.item.find('.sbm-input.TransactionRaised'); + env.$ctrl.trnInProgress = env.$frm.item.find('.sbm-input.TransactionInProgress'); + env.$ctrl.trnRequired = env.$frm.item.find('.sbm-input.TransactionRequired'); + env.$ctrl.clearRequired = env.$frm.item.find('.ClearTransactionRequired').on('click', function () { env.$ctrl.trnRequired.val(''); }); + sbm.allowClearCalendar(env.$ctrl.trnRequired); + env.$ctrl.trnClosed = env.$frm.item.find('.sbm-input.TransactionClosed'); + } var opt = sbm.dlgOpts(); opt.dialogClass += " sbm-Transaction"; opt.buttons[sbm.lbl.ok] = function () { co.selectItem(env); };