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.Dbas.Bus { //======================================================================= class SbmContainer_Dbas : SbmContainer { //------------------------------------------------------------------- // Data members. private readonly SbmInternals internals; //------------------------------------------------------------------- // Construction. public SbmContainer_Dbas(SbmInternals internals, SysId id, SysId affiliateIdOwner, Sbm.ContainerCategory containerCategory, Sbm.ContainerType containerType, ushort flags) : base(internals.UserContext, id, affiliateIdOwner, containerCategory, containerType) { this.internals = internals; Flags = flags; } protected override void Dispose(bool disposing) { if (disposing) { // NB Do not dispose the Internals - owned by manager. } base.Dispose(disposing); } //------------------------------------------------------------------- // Properties. //------------------------------------------------------------------- // Associated Data Elements. public override bool HasItems() { ClearErrorState(); if (!SysId.IsValid(Id)) return false; ISacsDatabase db = internals.BusMgrDatabase; if (db != null) { String tableContainItem = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.ContainerItem); if (db.TableExists(tableContainItem)) { List filter = new List(); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.ContainerItem_ContainerId) + "=" + Id.ToString()); return db.GetRowCount(tableContainItem, filter.Concat(" AND ", "(", ")")) > 0; } } return false; } public override bool HasMovements() { ClearErrorState(); if (!SysId.IsValid(Id)) return false; ISacsDatabase db = internals.BusMgrDatabase; if (db != null) { String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement); if (db.TableExists(tableMovement)) { List filter = new List(); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemType) + "=" + ((int)Sbm.ItemType.Container).ToString()); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId) + "=" + Id.ToString()); return db.GetRowCount(tableMovement, filter.Concat(" AND ", "(", ")")) > 0; } } return false; } public override bool HasActionedMovements() { ClearErrorState(); if (!SysId.IsValid(Id)) return false; ISacsDatabase db = internals.BusMgrDatabase; if (db != null) { String tableMovement = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Movement); if (db.TableExists(tableMovement)) { List filter = new List(); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemType) + "=" + ((int)Sbm.ItemType.Container).ToString()); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_ItemId) + "=" + Id.ToString()); filter.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Movement_Status) + "=" + SacsSystem.GetStatusForCode(SaStatus.Actioned.ToString()) + ":"); return db.GetRowCount(tableMovement, filter.Concat(" AND ", "(", ")")) > 0; } } return false; } //------------------------------------------------------------------- } //======================================================================= }