using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.Utils; using System; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { //======================================================================= partial class SbmAssetMgr { //******************************************************************* // A s s e t C a t e g o r i e s //******************************************************************* // Utilities. //------------------------------------------------------------------- // Retrieve individual assetCategories. //------------------------------------------------------------------- // AssetCategory exists. public bool AssetCategoryExistsById(SysId assetCategoryId) { ClearErrorState(); if (!SysId.IsValid(assetCategoryId)) return false; SbmAssetCategory.Params prmAssetCategory = new SbmAssetCategory.Params(); prmAssetCategory.IncludedIds.Add(assetCategoryId); prmAssetCategory.StatusCat = SbmAssetCategory.StatusCat.Any; return GetAssetCategoryCount(prmAssetCategory) == 1; } public bool AssetCategoryExistsByCode(Sbm.AssetType assetType, String code) { ClearErrorState(); if (assetType <= 0 || StringUtil.IsEmpty(code)) return false; SbmAssetCategory.Params prmAssetCategory = new SbmAssetCategory.Params { AssetType = assetType, Code = code, StatusCat = SbmAssetCategory.StatusCat.Any }; return GetAssetCategoryCount(prmAssetCategory) == 1; } //---------------------------------------------------------- // Get assetCategories. public abstract SbmAssetCategory GetAssetCategory(SbmAssetCategory.Params prm); public SbmAssetCategory GetAssetCategoryById(SysId assetCategoryId) { ClearErrorState(); if (!SysId.IsValid(assetCategoryId)) return null; SbmAssetCategory.Params prmAssetCategory = new SbmAssetCategory.Params(); prmAssetCategory.IncludedIds.Add(assetCategoryId); prmAssetCategory.StatusCat = SbmAssetCategory.StatusCat.Any; return GetAssetCategory(prmAssetCategory); } //---------------------------------------------------------- // Create assetCategories. public abstract SbmAssetCategory CreateAssetCategory(Sbm.AssetType assetType); //------------------------------------------------------------------- // Validate assetCategory data. public bool IsValidAssetCategory(SbmAssetCategory assetCategory) { ClearErrorState(); if (assetCategory == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidAssetCategoryData(assetCategory.GetData(), new SbmAssetCategory.ErrField()); } public virtual bool IsValidAssetCategoryData(SbmAssetCategory.Data data, SbmAssetCategory.ErrField errField) { ClearErrorState(); // AssetCategory properties. if (errField.AffIdOwner != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.AffIdOwner) < 1) { errField.AffIdOwner = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Aff Id Owner must be supplied"); } if (errField.AssetType != SacsHierarchyItem.ValidValue.Ignore) { if ((int)data.AssetType < 1) { errField.AssetType = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Type must be supplied"); } } if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Code), true)) { errField.Code = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief), true)) { errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.IncomeType != SacsHierarchyItem.ValidValue.Ignore) { if ((int)data.IncomeType < 1) { errField.IncomeType = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Type must be supplied"); } } if (errField.AssocIdSupplier != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.AssocIdSupplier) < 1) { errField.AssocIdSupplier = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Assoc Id Supplier must be supplied"); } if (errField.PaymentTerms != SacsHierarchyItem.ValidValue.Ignore) { errField.PaymentTerms = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.TaxCodeIdPurchase != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdPurchase) < 1) { errField.TaxCodeIdPurchase = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Taxcode Id Purchase must be supplied"); } if (errField.AssocIdCustomer != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.AssocIdCustomer) < 1) { errField.AssocIdCustomer = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Assoc Id Customer must be supplied"); } if (errField.TaxCodeIdSell != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdSell) < 1) { errField.TaxCodeIdSell = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Taxcode Id Sell must be supplied"); } if (errField.TaxCodeIdProfit != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdProfit) < 1) { errField.TaxCodeIdProfit = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Taxcode Id Profit must be supplied"); } if (errField.DisposeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DisposeCode, "dispose code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DisposeCode), true)) { errField.DisposeCode = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.TaxCodeIdRentalCost != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdRentalCost) < 1) { errField.TaxCodeIdRentalCost = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Taxcode Id Rental Cost must be supplied"); } if (errField.UomIdRentalCost != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.UomIdRentalCost) < 1) { errField.UomIdRentalCost = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Uom Id Rental Cost must be supplied"); } if (errField.TaxCodeIdRentalPrice != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdRentalPrice) < 1) { errField.TaxCodeIdRentalPrice = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState("Taxcode Id Rental Price must be supplied"); } // Common properties. if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Notes))) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmAssetCategory.AssetCategoryStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // AssetCategory database interface. public abstract bool InsertAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo); public virtual bool AssetCategoryCanBeDeleted(SbmAssetCategory assetCategory) { ClearErrorState(); return true; } public abstract bool DeleteAssetCategory(SbmAssetCategory assetCategory, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // AssetCategory list. public abstract ColumnDfn GetAssetCategoryColumnDfn(SbmAssetCategory.Column columnId, String caption = "", int width = 0); public abstract List GetAssetCategoryQueryFilter(SbmAssetCategory.Params prm); public abstract long GetAssetCategoryCount(SbmAssetCategory.Params prm); public abstract List GetAssetCategoryList(SbmAssetCategory.Params prm); public abstract DbResultSet ExecuteAssetCategoryQuery(List columns, SbmAssetCategory.Params prm); //------------------------------------------------------------------- // D a t a V a l u e s //------------------------------------------------------------------- /// /// Extract and format result set data value where specific handling is required. /// Where response is an invalid data value, format value using column.FormatValue(values). /// public DataValue GetAssetCategoryDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmAssetCategory.Column)column.Id) { // Notes. case SbmAssetCategory.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmAssetCategory.Column.Status_Desc: case SbmAssetCategory.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmAssetCategory.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmAssetCategory.Column.Status_Ind) value = new DataValue(SbmAssetCategory.GetStatusTriState(status)); } break; //----------------------------------------------------------- } return value; } } //======================================================================= }