Files
BusinessMgr-2019/SaBusMgrStandardDbas/Dbas/Bus/SbmContainer_Dbas.cs
T
2021-07-08 20:50:46 +01:00

101 lines
3.6 KiB
C#

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<String> filter = new List<String>();
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<String> filter = new List<String>();
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<String> filter = new List<String>();
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;
}
//-------------------------------------------------------------------
}
//=======================================================================
}