using Sarand.BusinessMgr.Net.Standard.Base.App; using Sarand.BusinessMgr.Net.Standard.Base.Bus; using Sarand.BusinessMgr.Net.Standard.Base.UpdateLog; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using System.Collections.Generic; namespace Sarand.BusinessMgr.Net.Standard.Dbas.UpdateLog { //======================================================================= public class SbmUpdateLogItemMonitor_ContainerItem : SbmUpdateLogItemMonitor { //------------------------------------------------------------------- // Configuration. public new class Config : SbmUpdateLogItemMonitor.Config { public Config(SbmInternals internals, SysId itemId) : base(internals) { ItemType = (short)Sbm.ItemType.ContainerItem; ItemId = itemId; } } //------------------------------------------------------------------- // Data members. private readonly List itemTypes, itemTypeSource; //------------------------------------------------------------------- // Construction. public SbmUpdateLogItemMonitor_ContainerItem(SbmInternals internals, SbmContainerItem containerItem) : base(new Config(internals, containerItem.Id)) { itemTypes = SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.ItemType); itemTypeSource = SbmSystem.GetCodesOfType(UserContext, Sbm.SystemCode.ItemType); RecordAttrValues(containerItem, false); } //------------------------------------------------------------------- // Record attribute values. public bool RecordUpdatedValues(SbmContainerItem containerItem) { return RecordAttrValues(containerItem, true); } private bool RecordAttrValues(SbmContainerItem containerItem, bool newValues) { ClearErrorState(); // ContainerItem Properties - record values that may require logging. //RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_ContainerItemId, containerItem.ContainerItemId, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_ContainerId, SysId.ToInt(containerItem.ContainerId), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_ItemType, itemTypes.GetDescForType(containerItem.ItemType, ((int)containerItem.ItemType).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_ItemId, SysId.ToInt(containerItem.ItemId), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_ItemSeq, containerItem.ItemSeq, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.Address_Type, itemTypeSource.GetDescForType(containerItem.ItemTypeSource, ((int)containerItem.ItemTypeSource).ToString()), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_ItemIdSource, SysId.ToInt(containerItem.ItemIdSource), newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_Quantity, containerItem.Quantity, newValues); // Common properties. RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_Notes, containerItem.Notes, newValues); RecordAttrValue(SbmDbDfn.ColumnIdx.ContainerItem_Status, SacsSystem.GetStatusCode(containerItem.Status), newValues); return !HasErrorState(); } //------------------------------------------------------------------- } //======================================================================= }