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 System; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr { //======================================================================= // Commodity Manager - Commodity Supplier. //======================================================================= partial class SbmCommodityMgr { //------------------------------------------------------------------- // Utilities. public abstract bool CanManageCommoditySuppliers(); //------------------------------------------------------------------- // Retrieve individual commoditySuppliers. //------------------------------------------------------------------- // CommoditySupplier exists. public bool CommoditySupplierExistsById(SysId commoditySupplierId) { ClearErrorState(); if (!SysId.IsValid(commoditySupplierId)) return false; SbmCommoditySupplier.Params prmCommoditySupplier = new SbmCommoditySupplier.Params(); prmCommoditySupplier.IdsIncluded.Add(commoditySupplierId); prmCommoditySupplier.StatusCat = SbmCommoditySupplier.StatusCat.Any; return GetCommoditySupplierCount(prmCommoditySupplier) == 1; } //------------------------------------------------------------------- // Get commoditySuppliers. public abstract SbmCommoditySupplier GetCommoditySupplier(SbmCommoditySupplier.Params prm); public SbmCommoditySupplier GetCommoditySupplierById(SysId commoditySupplierId) { ClearErrorState(); if (!SysId.IsValid(commoditySupplierId)) return null; SbmCommoditySupplier.Params prmCommoditySupplier = new SbmCommoditySupplier.Params(); prmCommoditySupplier.IdsIncluded.Add(commoditySupplierId); prmCommoditySupplier.StatusCat = SbmCommoditySupplier.StatusCat.Any; return GetCommoditySupplier(prmCommoditySupplier); } //------------------------------------------------------------------- // Create commoditySuppliers. public abstract SbmCommoditySupplier CreateCommoditySupplier(SysId commodityId, SysId assocIdSupplier); //------------------------------------------------------------------- // Validate CommoditySupplier data. public bool IsValidCommoditySupplier(SbmCommoditySupplier commoditySupplier) { ClearErrorState(); //Validate the identity. if (!SysId.IsValid(commoditySupplier.CommodityId)) return SetErrorState("Commodity Id must be specified"); if (!SysId.IsValid(commoditySupplier.AssocIdSupplier)) return SetErrorState("Supplier must be specified"); if (commoditySupplier == null) return SetErrorState(ErrorMessage.ItemNotSpecified); return IsValidCommoditySupplierData(commoditySupplier.GetData(), new SbmCommoditySupplier.ErrField()); } public virtual bool IsValidCommoditySupplierData(SbmCommoditySupplier.Data data, SbmCommoditySupplier.ErrField errField) { ClearErrorState(); //Validate the identity. if (!SysId.IsValid(data.CommodityId)) return SetErrorState("Commodity Id must be specified"); if (!SysId.IsValid(data.AssocIdSupplier)) return SetErrorState("Supplier must be specified"); // Validate the text attributes. if (errField.ProductCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProductCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode, "finish code"), (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode), true)) { errField.ProductCode = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.AmountCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AmountCost.ToString(), "AmountCost", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_AmountCost), true)) { errField.AmountCost = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.CurrencyIdCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CurrencyIdCost.ToString(), "CurrencyIdCost", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_CurrencyIdCost), true)) { errField.CurrencyIdCost = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "Notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Notes), true)) { errField.Notes = SacsHierarchyItem.ValidValue.Invalid; return false; } if (errField.Status != SacsHierarchyItem.ValidValue.Ignore) { if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Status), true, true)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return false; } if (!SbmCommoditySupplier.CommoditySupplierStatuses.Contains(data.Status)) { errField.Status = SacsHierarchyItem.ValidValue.Invalid; return SetErrorState(ErrorMessage.InvalidStatus); } } return true; } //------------------------------------------------------------------- // Store CommoditySupplier detail. public abstract bool StoreCommoditySuppliers(List commoditySuppliers); public abstract bool Store(SbmCommoditySupplier commoditySupplier); //------------------------------------------------------------------- // CommoditySupplier database interface. public abstract bool InsertCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo); public abstract bool UpdateCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo); public virtual bool CommoditySupplierCanBeDeleted(SbmCommoditySupplier commoditySupplier) { ClearErrorState(); return true; } public abstract bool DeleteCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo); //------------------------------------------------------------------- // CommoditySupplier list. public abstract ColumnDfn GetCommoditySupplierColumnDfn(SbmCommoditySupplier.Column columnId, String caption = "", int width = 0); public abstract List GetCommoditySupplierQueryFilter(SbmCommoditySupplier.Params prm); public abstract long GetCommoditySupplierCount(SbmCommoditySupplier.Params prm); public abstract List GetCommoditySupplierList(SbmCommoditySupplier.Params prm); public abstract DbResultSet ExecuteCommoditySupplierQuery(List columns, SbmCommoditySupplier.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 GetCommoditySupplierDataValue(ColumnDfn column, NamedValue.Map values) { DataValue value = new DataValue(); switch ((SbmCommoditySupplier.Column)column.Id) { //----------------------------------------------------------- // Commodity Category. case SbmCommoditySupplier.Column.Commodity_CategoryDesc: { String categoryCode = values.GetValue(GetCommoditySupplierColumnDfn(SbmCommoditySupplier.Column.Commodity_CategoryCode).DataName).ToString(); value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.CommodityCategory, categoryCode)); break; } // ToDo is Commodity DescBrief needed in DataValue? only if its reference ... case SbmCommoditySupplier.Column.Commodity_DescBrief: { //String cmdDescBrief = values.GetValue(column.DataName).ToString(); value = new DataValue(values.GetValue(column.DataName).ToString()); break; } // Commodity Status. case SbmCommoditySupplier.Column.Commodity_StatusDesc: case SbmCommoditySupplier.Column.Commodity_StatusInd: { SaStatus status = SacsSystem.GetStatusForCode(values.GetValue(column.DataName).ToString()); if (column.Id == (int)SbmCommoditySupplier.Column.Commodity_StatusDesc) value = new DataValue(SacsSystem.GetStatusDesc(status)); else if (column.Id == (int)SbmCommoditySupplier.Column.Commodity_StatusInd) value = new DataValue(SbmCommoditySupplier.GetStatusTriState(status)); } break; //----------------------------------------------------------- // CmdCustomer Formatted currency values. //----------------------------------------------------------- // Notes. case SbmCommoditySupplier.Column.Notes: value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200)); break; // Status. case SbmCommoditySupplier.Column.Status_Desc: case SbmCommoditySupplier.Column.Status_Ind: { String statusCode = values.GetValue(column.DataName).ToString(); SaStatus status = SacsSystem.GetStatusForCode(statusCode); if (column.Id == (int)SbmCommoditySupplier.Column.Status_Desc) value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode)); else if (column.Id == (int)SbmCommoditySupplier.Column.Status_Ind) value = new DataValue(SbmCommoditySupplier.GetStatusTriState(status)); break; } //----------------------------------------------------------- default: value = values.GetValue(column.DataName); break; } return value; } //------------------------------------------------------------------- } //======================================================================= }