TS - Bulk mobile managers
This commit is contained in:
@@ -151,6 +151,10 @@
|
||||
<Project>{5af5ac55-7a6e-434d-a7b9-be1924903f1c}</Project>
|
||||
<Name>SacsCoreBase</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\Common-C#\Workspace\SacsCoreMob\SacsCoreMob.csproj">
|
||||
<Project>{56ab4cf8-63a8-44ff-b325-16e13be82366}</Project>
|
||||
<Name>SacsCoreMob</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\..\..\LogisticsMgr-C#\Workspace\SaLogMgrCore\SaLogMgrCore.csproj">
|
||||
<Project>{74e66d28-ce0c-49eb-8c8b-9370b2faae49}</Project>
|
||||
<Name>SaLogMgrCore</Name>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmBerthingCost_Mobile : SlmBerthingCost
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmBerthingCost_Mobile (Slm.Site site, SysId id, SysId berthingId, ushort flags) :
|
||||
base(site, id, berthingId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmBerthingResource_Mobile : SlmBerthingResource
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmBerthingResource_Mobile (Slm.Site site, SysId id, SysId berthingId, Slm.BerthingResourceType berthingResourceType, ushort flags) :
|
||||
base(site, id, berthingId, berthingResourceType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmBerthingTask_Mobile : SlmBerthingTask
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmBerthingTask_Mobile (Slm.Site site, SysId id, SysId berthingId, Slm.BerthingTaskType berthingTaskType, ushort flags) :
|
||||
base(site, id, berthingId, berthingTaskType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmBerthing_Mobile : SlmBerthing
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmBerthing_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmChecklistItem_Mobile : SlmChecklistItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmChecklistItem_Mobile (Slm.Site site, SysId id, SysId checklistId, ushort flags) :
|
||||
base(site, id, checklistId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasItemChecklistReferences()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmChecklist_Mobile : SlmChecklist
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmChecklist_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmCommodityLocation_Mobile : SlmCommodityLocation
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmCommodityLocation_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasStockMovements ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmCommodity_Mobile : SlmCommodity
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmCommodity_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasStockLocations ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasStockMovements ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasStockLevels ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasDischargeHolds ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasDischarges ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasRequirements ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmCruiseBerthing_Mobile : SlmCruiseBerthing
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmCruiseBerthing_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmDataItemValue_Mobile : SlmDataItemValue
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmDataItemValue_Mobile (Slm.Site site, ItemId itemId, Slm.ItemValueType valueType, ushort flags) :
|
||||
base(itemId, valueType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmDischargeHold_Mobile : SlmDischargeHold
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmDischargeHold_Mobile (Slm.Site site, SysId id, SysId berthingId, ushort flags) :
|
||||
base(site, id, berthingId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmDischarge_Mobile : SlmDischarge
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmDischarge_Mobile (Slm.Site site, SysId id, SysId berthingId, ushort flags) :
|
||||
base(site, id, berthingId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmItemChecklistItem_Mobile : SlmItemChecklistItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmItemChecklistItem_Mobile (Slm.Site site, SysId id, SysId itemChecklistId, SysId checklistItemId, ushort flags) :
|
||||
base(site, id, itemChecklistId, checklistItemId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmItemChecklist_Mobile : SlmItemChecklist
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmItemChecklist_Mobile (Slm.Site site, SysId id, SysId itemId, SysId checklistId, Slm.ChecklistItemType itemType, ushort flags) :
|
||||
base(site, id, itemId, checklistId, itemType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmRequirement_Mobile : SlmRequirement
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmRequirement_Mobile (Slm.Site site, SysId id, SysId transId, Slm.RequirementType requirementType, ushort flags) :
|
||||
base(site, id, transId, requirementType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffAllocation_Mobile : SlmStaffAllocation
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffAllocation_Mobile (Slm.Site site, SysId id, SysId staffTaskId, SysId staffMemberId, ushort flags) :
|
||||
base(site, id, staffTaskId, staffMemberId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffJob_Mobile : SlmStaffJob
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffJob_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasTasks ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasAllocations ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffMemberAvailability_Mobile : SlmStaffMemberAvailability
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffMemberAvailability_Mobile (Slm.Site site, SysId id, SysId staffMemberId, ushort flags) :
|
||||
base(site, id, staffMemberId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffMemberSkill_Mobile : SlmStaffMemberSkill
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffMemberSkill_Mobile (Slm.Site site, SysId id, SysId staffMemberId, ushort flags) :
|
||||
base(site, id, staffMemberId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffMember_Mobile : SlmStaffMember
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffMember_Mobile (Slm.Site site, SysId id, ushort flags) :
|
||||
base(site, id)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasSkills ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasAllocations ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasAllocationsBefore ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasAllocationsAfter ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffTaskSkill_Mobile : SlmStaffTaskSkill
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffTaskSkill_Mobile (Slm.Site site, SysId id, SysId staffTaskId, ushort flags) :
|
||||
base(site, id, staffTaskId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStaffTask_Mobile : SlmStaffTask
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffTask_Mobile (Slm.Site site, SysId id, SysId staffJobId, ushort flags) :
|
||||
base(site, id, staffJobId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasAllocations ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasAllocationsCount ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStockLevel_Mobile : SlmStockLevel
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStockLevel_Mobile (Slm.Site site, SysId id, SysId commodityId, Slm.StockLevelType stockLevelType, ushort flags) :
|
||||
base(site, id, commodityId, stockLevelType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStockLoading_Mobile : SlmStockLoading
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStockLoading_Mobile (Slm.Site site, SysId id, SysId locationId, ushort flags) :
|
||||
base(site, id, locationId)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStockLocation_Mobile : SlmStockLocation
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStockLocation_Mobile (Slm.Site site, SysId id, SysId locationIdParent, Slm.StockLocationType stockLocationType, ushort flags) :
|
||||
base(site, id, locationIdParent, stockLocationType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmStockMovement_Mobile : SlmStockMovement
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStockMovement_Mobile (Slm.Site site, SysId id, SysId commodityId, Slm.StockMovementType stockMovementType, ushort flags) :
|
||||
base(site, id, commodityId, stockMovementType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmTransaction_Mobile : SlmTransaction
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmTransaction_Mobile (Slm.Site site, SysId id, Slm.TransactionType requirementType, ushort flags) :
|
||||
base(site, id, requirementType)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Bus
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmVessel_Mobile : SlmVessel
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmVessel_Mobile (Slm.Site site, SysId id, Slm.VesselCategory vesselCategory, ushort flags) :
|
||||
base(site, id, vesselCategory)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A s s o c i a t e d D a t a
|
||||
//-------------------------------------------------------------------
|
||||
public override bool HasBulkBerthings ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override bool HasCommodities ()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,338 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// B e r t h i n g C o s t s
|
||||
//*******************************************************************
|
||||
// BerthingCost exists.
|
||||
public override bool BerthingCostExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create BerthingCost.
|
||||
public override SlmBerthingCost CreateBerthingCost (SysId berthingId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmBerthingCost_Mobile(Site, null, berthingId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get BerthingCost.
|
||||
public override SlmBerthingCost GetBerthingCost (SlmBerthingCost.Params prmBerthingCost)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmBerthingCost GetBerthingCostById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate BerthingCost.
|
||||
public override bool IsValidBerthingCostData (SlmBerthingCost.Data data, SlmBerthingCost.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidBerthingCostData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert BerthingCost.
|
||||
public override bool InsertBerthingCost (SlmBerthingCost berthingCost, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingCost(berthingCost)) return false;
|
||||
if (SysId.IsValid(berthingCost.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update BerthingCost.
|
||||
public override bool UpdateBerthingCost (SlmBerthingCost berthingCost, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingCost(berthingCost)) return false;
|
||||
if (!SysId.IsValid(berthingCost.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete BerthingCost.
|
||||
public override bool BerthingCostCanBeDeleted (SlmBerthingCost berthingCost)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.BerthingCostCanBeDeleted(berthingCost)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteBerthingCost (SlmBerthingCost berthingCost, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!BerthingCostCanBeDeleted(berthingCost)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement berthingCostElement, SlmBerthingCost berthingCost, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
berthingCostElement.AppendElement("Id", SysId.ToString(berthingCost.Id));
|
||||
berthingCostElement.AppendElement("BerthingId", SysId.ToString(berthingCost.BerthingId));
|
||||
berthingCostElement.AppendElement("BerthingCostCategory", berthingCost.BerthingCostCategory.ToString());
|
||||
berthingCostElement.AppendElement("Unit", berthingCost.BerthingCostUnit.ToString());
|
||||
berthingCostElement.AppendElement("Type", berthingCost.BerthingCostType.ToString());
|
||||
berthingCostElement.AppendElement("Rate", berthingCost.Rate.ToString("N3"));
|
||||
berthingCostElement.AppendElement("Quantity", berthingCost.Quantity.ToString("N3"));
|
||||
berthingCostElement.AppendElement("Total", berthingCost.Total.ToString("N3"));
|
||||
berthingCostElement.AppendElement("Notes", berthingCost.Notes);
|
||||
berthingCostElement.AppendElement("Status", SacsSystem.GetStatusCode(berthingCost.Status));
|
||||
berthingCostElement.AppendElement("Flags", berthingCost.Flags.ToString());
|
||||
if (!SysId.IsValid(berthingCost.Id))
|
||||
{
|
||||
berthingCostElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingCostElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingCostElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
berthingCostElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingCostElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingCostElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement berthingCostElement, SlmBerthingCost berthingCost)
|
||||
{
|
||||
//berthingCost.Id = new SysId(StringUtil.ToInt(berthingCostElement.GetChildText("Id")));
|
||||
//berthingCost.BerthingId = new SysId(StringUtil.ToInt(berthingCostElement.GetChildText("BerthingId")));
|
||||
berthingCost.BerthingCostCategory = EnumUtil.ParseEnum(berthingCostElement.GetChildText("Category"), Slm.BerthingCostCategory.Unknown);
|
||||
berthingCost.BerthingCostUnit = EnumUtil.ParseEnum(berthingCostElement.GetChildText("BerthingCostUnit"), Slm.BerthingCostUnit.Unknown);
|
||||
berthingCost.BerthingCostType = EnumUtil.ParseEnum(berthingCostElement.GetChildText("BerthingCostType"), Slm.BerthingCostType.Unknown);
|
||||
berthingCost.Rate = StringUtil.ToDecimal(berthingCostElement.GetChildText("Rate"));
|
||||
berthingCost.Quantity = StringUtil.ToDecimal(berthingCostElement.GetChildText("Quantity"));
|
||||
berthingCost.Total = StringUtil.ToDecimal(berthingCostElement.GetChildText("Total"));
|
||||
berthingCost.Notes = berthingCostElement.GetChildText("Notes");
|
||||
berthingCost.Status = SacsSystem.GetStatusForCode(berthingCostElement.GetChildText("Status"));
|
||||
berthingCost.SetCreateStamp(DateUtil.ParseXmlDateTime(berthingCostElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(berthingCostElement.GetChildText("CreateBy"))), berthingCostElement.GetChildText("CreateHost"));
|
||||
berthingCost.SetUpdateStamp(DateUtil.ParseXmlDateTime(berthingCostElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(berthingCostElement.GetChildText("UpdateBy"))), berthingCostElement.GetChildText("UpdateHost"));
|
||||
berthingCost.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingCost column definitions.
|
||||
public override ColumnDfn GetBerthingCostColumnDfn (SlmBerthingCost.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingCost query filter.
|
||||
public override List<string> GetBerthingCostQueryFilter (SlmBerthingCost.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetBerthingCostQueryFilter_Mobile (SlmBerthingCost.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// BerthingCost Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Company Id Cruise Line
|
||||
if (SysId.IsValid(prm.BerthingId)) filter.Add("BerthingId", SysId.ToString(prm.BerthingId));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// BerthingCost sort columns.
|
||||
public List<String> GetBerthingCostSortColumns (SlmBerthingCost.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingCost count.
|
||||
public override long GetBerthingCostCount (SlmBerthingCost.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingCost list.
|
||||
public override List<SlmBerthingCost> GetBerthingCostList (SlmBerthingCost.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmBerthingCost>> GetBerthingCostList_Mobile (SlmBerthingCost.Params prmBerthingCost, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmBerthingCost> companies = new List<SlmBerthingCost>();
|
||||
String fn = GetType().Name + ".GetBerthingCostList_Mobile";
|
||||
|
||||
// BerthingCost columns.
|
||||
List<SlmBerthingCost.Column> columns = new List<SlmBerthingCost.Column>()
|
||||
{
|
||||
SlmBerthingCost.Column.Id,
|
||||
SlmBerthingCost.Column.BerthingId,
|
||||
SlmBerthingCost.Column.BerthingCostCategory,
|
||||
SlmBerthingCost.Column.BerthingCostUnit,
|
||||
SlmBerthingCost.Column.BerthingCostType,
|
||||
SlmBerthingCost.Column.Rate,
|
||||
SlmBerthingCost.Column.Quantity,
|
||||
SlmBerthingCost.Column.Total,
|
||||
SlmBerthingCost.Column.Notes,
|
||||
SlmBerthingCost.Column.Flags,
|
||||
SlmBerthingCost.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteBerthingCostQuery_Mobile(columns, prmBerthingCost, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmBerthingCost.Column.Id);
|
||||
SysId berthingId = itemData.GetIdValue(SlmBerthingCost.Column.BerthingId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmBerthingCost.Column.Id);
|
||||
// Create item.
|
||||
SlmBerthingCost_Mobile berthingCost = new SlmBerthingCost_Mobile(Site, id, berthingId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmBerthingCost.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmBerthingCost.Column.BerthingId: berthingCost.BerthingId = itemData.GetIdValue(column); break;
|
||||
case SlmBerthingCost.Column.BerthingCostCategory: berthingCost.BerthingCostCategory = EnumUtil.ParseEnum(value, Slm.BerthingCostCategory.Unknown); break;
|
||||
case SlmBerthingCost.Column.BerthingCostUnit: berthingCost.BerthingCostUnit= EnumUtil.ParseEnum(value, Slm.BerthingCostUnit.Unknown); break;
|
||||
case SlmBerthingCost.Column.BerthingCostType: berthingCost.BerthingCostType = EnumUtil.ParseEnum(value, Slm.BerthingCostType.Unknown); break;
|
||||
case SlmBerthingCost.Column.Rate: berthingCost.Rate = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingCost.Column.Quantity: berthingCost.Quantity = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingCost.Column.Total: berthingCost.Total = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingCost.Column.Notes: berthingCost.Notes = value; break;
|
||||
case SlmBerthingCost.Column.Status: berthingCost.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(berthingCost);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingCost query execution.
|
||||
public override DbResultSet ExecuteBerthingCostQuery (List<ColumnDfn> columns, SlmBerthingCost.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteBerthingCostQuery_Mobile (List<SlmBerthingCost.Column> berthingCostColumns, SlmBerthingCost.Params prmBerthingCost, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmBerthingCost.Column column in berthingCostColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetBerthingCostRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetBerthingCostQueryFilter_Mobile(prmBerthingCost), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetBerthingCostRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.BerthingCost;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetBerthingCostDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmBerthingCost.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// BerthingCost Category.
|
||||
case SlmBerthingCost.Column.BerthingCostCategory_Desc:
|
||||
{
|
||||
Slm.BerthingCostCategory berthingCostCategory = (Slm.BerthingCostCategory)values.GetValue(column.DataName).AsLong();
|
||||
value = new DataValue(berthingCostCategories.GetDescForType((int)berthingCostCategory, berthingCostCategory.ToString()));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmBerthingCost.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmBerthingCost.Column.Status_Desc:
|
||||
case SlmBerthingCost.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmBerthingCost.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmBerthingCost.Column.Status_Ind)
|
||||
value = new DataValue(SlmBerthingCost.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// B e r t h i n g R e s o u r c e s
|
||||
//*******************************************************************
|
||||
// BerthingResource exists.
|
||||
public override bool BerthingResourceExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create BerthingResource.
|
||||
public override SlmBerthingResource CreateBerthingResource (SysId berthingId,Slm.BerthingResourceType berthingResourceType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmBerthingResource_Mobile(Site, null, berthingId, berthingResourceType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get BerthingResource.
|
||||
public override SlmBerthingResource GetBerthingResource (SlmBerthingResource.Params prmBerthingResource)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmBerthingResource GetBerthingResourceById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate BerthingResource.
|
||||
public override bool IsValidBerthingResourceData (SlmBerthingResource.Data data, SlmBerthingResource.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidBerthingResourceData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert BerthingResource.
|
||||
public override bool InsertBerthingResource (SlmBerthingResource berthingResource, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingResource(berthingResource)) return false;
|
||||
if (SysId.IsValid(berthingResource.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update BerthingResource.
|
||||
public override bool UpdateBerthingResource (SlmBerthingResource berthingResource, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingResource(berthingResource)) return false;
|
||||
if (!SysId.IsValid(berthingResource.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete BerthingResource.
|
||||
public override bool BerthingResourceCanBeDeleted (SlmBerthingResource berthingResource)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.BerthingResourceCanBeDeleted(berthingResource)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteBerthingResource (SlmBerthingResource berthingResource, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!BerthingResourceCanBeDeleted(berthingResource)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement berthingResourceElement, SlmBerthingResource berthingResource, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
berthingResourceElement.AppendElement("Id", SysId.ToString(berthingResource.Id));
|
||||
berthingResourceElement.AppendElement("BerthingId", SysId.ToString(berthingResource.BerthingId));
|
||||
berthingResourceElement.AppendElement("Type", berthingResource.BerthingResourceType.ToString());
|
||||
berthingResourceElement.AppendElement("Name", berthingResource.Name);
|
||||
berthingResourceElement.AppendElement("Identity", berthingResource.Identity);
|
||||
berthingResourceElement.AppendElement("Started", DateUtil.FormatXmlDateTime(berthingResource.Started));
|
||||
berthingResourceElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(berthingResource.Completed));
|
||||
berthingResourceElement.AppendElement("Length", berthingResource.Elapsed.ToString("N3"));
|
||||
berthingResourceElement.AppendElement("Breadth", berthingResource.Rate.ToString("N3"));
|
||||
berthingResourceElement.AppendElement("Draught", berthingResource.Cost.ToString("N3"));
|
||||
berthingResourceElement.AppendElement("Notes", berthingResource.Notes);
|
||||
berthingResourceElement.AppendElement("Status", SacsSystem.GetStatusCode(berthingResource.Status));
|
||||
berthingResourceElement.AppendElement("Flags", berthingResource.Flags.ToString());
|
||||
if (!SysId.IsValid(berthingResource.Id))
|
||||
{
|
||||
berthingResourceElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingResourceElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingResourceElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
berthingResourceElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingResourceElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingResourceElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement berthingResourceElement, SlmBerthingResource berthingResource)
|
||||
{
|
||||
//berthingResource.Id = new SysId(StringUtil.ToInt(berthingResourceElement.GetChildText("Id")));
|
||||
//berthingResource.BerthingId = new SysId(StringUtil.ToInt(berthingResourceElement.GetChildText("BerthingId")));
|
||||
//berthingResource.BerthingResourceType = EnumUtil.ParseEnum(berthingResourceElement.GetChildText("Type"), Slm.BerthingResourceType.Unknown);
|
||||
berthingResource.Name = berthingResourceElement.GetChildText("Name");
|
||||
berthingResource.Identity = berthingResourceElement.GetChildText("Identity");
|
||||
berthingResource.Started = DateUtil.ParseXmlDateTime(berthingResourceElement.GetChildText("Started"));
|
||||
berthingResource.Completed = DateUtil.ParseXmlDateTime(berthingResourceElement.GetChildText("Completed"));
|
||||
berthingResource.Elapsed = StringUtil.ToDecimal(berthingResourceElement.GetChildText("Elapsed"));
|
||||
berthingResource.Rate = StringUtil.ToDecimal(berthingResourceElement.GetChildText("Rate"));
|
||||
berthingResource.Cost = StringUtil.ToDecimal(berthingResourceElement.GetChildText("Cost"));
|
||||
berthingResource.Notes = berthingResourceElement.GetChildText("Notes");
|
||||
berthingResource.Status = SacsSystem.GetStatusForCode(berthingResourceElement.GetChildText("Status"));
|
||||
berthingResource.SetCreateStamp(DateUtil.ParseXmlDateTime(berthingResourceElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(berthingResourceElement.GetChildText("CreateBy"))), berthingResourceElement.GetChildText("CreateHost"));
|
||||
berthingResource.SetUpdateStamp(DateUtil.ParseXmlDateTime(berthingResourceElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(berthingResourceElement.GetChildText("UpdateBy"))), berthingResourceElement.GetChildText("UpdateHost"));
|
||||
berthingResource.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingResource column definitions.
|
||||
public override ColumnDfn GetBerthingResourceColumnDfn (SlmBerthingResource.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingResource query filter.
|
||||
public override List<string> GetBerthingResourceQueryFilter (SlmBerthingResource.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetBerthingResourceQueryFilter_Mobile (SlmBerthingResource.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// BerthingResource Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Berthing Id.
|
||||
if (SysId.IsValid(prm.BerthingId)) filter.Add("BerthingId", SysId.ToString(prm.BerthingId));
|
||||
|
||||
// Berthing Resource Type.
|
||||
if ((int)prm.BerthingResourceType> 0) filter.Add("BerthingResourceType", ((int)prm.BerthingResourceType).ToString());
|
||||
|
||||
// Started.
|
||||
if (DateUtil.IsValid(prm.Started)) filter.Add("Started", DateUtil.FormatXmlDate(prm.Started));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// BerthingResource sort columns.
|
||||
public List<String> GetBerthingResourceSortColumns (SlmBerthingResource.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingResource count.
|
||||
public override long GetBerthingResourceCount (SlmBerthingResource.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingResource list.
|
||||
public override List<SlmBerthingResource> GetBerthingResourceList (SlmBerthingResource.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmBerthingResource>> GetBerthingResourceList_Mobile (SlmBerthingResource.Params prmBerthingResource, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmBerthingResource> companies = new List<SlmBerthingResource>();
|
||||
String fn = GetType().Name + ".GetBerthingResourceList_Mobile";
|
||||
|
||||
// BerthingResource columns.
|
||||
List<SlmBerthingResource.Column> columns = new List<SlmBerthingResource.Column>()
|
||||
{
|
||||
SlmBerthingResource.Column.Id,
|
||||
SlmBerthingResource.Column.BerthingId,
|
||||
SlmBerthingResource.Column.BerthingResourceType,
|
||||
SlmBerthingResource.Column.Name,
|
||||
SlmBerthingResource.Column.Identity,
|
||||
SlmBerthingResource.Column.Started,
|
||||
SlmBerthingResource.Column.Completed,
|
||||
SlmBerthingResource.Column.Elapsed,
|
||||
SlmBerthingResource.Column.Rate,
|
||||
SlmBerthingResource.Column.Cost,
|
||||
SlmBerthingResource.Column.Notes,
|
||||
SlmBerthingResource.Column.Flags,
|
||||
SlmBerthingResource.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteBerthingResourceQuery_Mobile(columns, prmBerthingResource, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmBerthingResource.Column.Id);
|
||||
SysId berthingId = itemData.GetIdValue(SlmBerthingResource.Column.BerthingId);
|
||||
Slm.BerthingResourceType berthingResourceType = EnumUtil.ParseEnum(itemData.GetValue(SlmBerthingResource.Column.BerthingResourceType), Slm.BerthingResourceType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmBerthingResource.Column.Id);
|
||||
// Create item.
|
||||
SlmBerthingResource_Mobile berthingResource = new SlmBerthingResource_Mobile(Site, id, berthingId, berthingResourceType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmBerthingResource.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmBerthingResource.Column.BerthingResourceCategory: berthingResource.BerthingResourceCategory; break;
|
||||
//case SlmBerthingResource.Column.BerthingId: berthingResource.BerthingId = itemData.GetIdValue(column); break;
|
||||
//case SlmBerthingResource.Column.BerthingResourceType: berthingResource.BerthingResourceType = value; break;
|
||||
case SlmBerthingResource.Column.Name: berthingResource.Name = value; break;
|
||||
case SlmBerthingResource.Column.Identity: berthingResource.Identity = value; break;
|
||||
case SlmBerthingResource.Column.Started: berthingResource.Started= itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthingResource.Column.Completed: berthingResource.Completed= itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthingResource.Column.Elapsed: berthingResource.Elapsed = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingResource.Column.Rate: berthingResource.Rate = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingResource.Column.Cost: berthingResource.Cost= itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthingResource.Column.Notes: berthingResource.Notes = value; break;
|
||||
case SlmBerthingResource.Column.Status: berthingResource.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(berthingResource);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingResource query execution.
|
||||
public override DbResultSet ExecuteBerthingResourceQuery (List<ColumnDfn> columns, SlmBerthingResource.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteBerthingResourceQuery_Mobile (List<SlmBerthingResource.Column> berthingResourceColumns, SlmBerthingResource.Params prmBerthingResource, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmBerthingResource.Column column in berthingResourceColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetBerthingResourceRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetBerthingResourceQueryFilter_Mobile(prmBerthingResource), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetBerthingResourceRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.BerthingResource;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetBerthingResourceDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmBerthingResource.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// BerthingResource Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmBerthingResource.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmBerthingResource.Column.Status_Desc:
|
||||
case SlmBerthingResource.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmBerthingResource.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmBerthingResource.Column.Status_Ind)
|
||||
value = new DataValue(SlmBerthingResource.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,329 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// B e r t h i n g T a s k s
|
||||
//*******************************************************************
|
||||
// BerthingTask exists.
|
||||
public override bool BerthingTaskExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create BerthingTask.
|
||||
public override SlmBerthingTask CreateBerthingTask (SysId berthingId ,Slm.BerthingTaskType berthingTaskType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmBerthingTask_Mobile(Site, null, berthingId, berthingTaskType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get BerthingTask.
|
||||
public override SlmBerthingTask GetBerthingTask (SlmBerthingTask.Params prmBerthingTask)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmBerthingTask GetBerthingTaskById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate BerthingTask.
|
||||
public override bool IsValidBerthingTaskData (SlmBerthingTask.Data data, SlmBerthingTask.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidBerthingTaskData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert BerthingTask.
|
||||
public override bool InsertBerthingTask (SlmBerthingTask berthingTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingTask(berthingTask)) return false;
|
||||
if (SysId.IsValid(berthingTask.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update BerthingTask.
|
||||
public override bool UpdateBerthingTask (SlmBerthingTask berthingTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthingTask(berthingTask)) return false;
|
||||
if (!SysId.IsValid(berthingTask.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete BerthingTask.
|
||||
public override bool BerthingTaskCanBeDeleted (SlmBerthingTask berthingTask)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.BerthingTaskCanBeDeleted(berthingTask)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteBerthingTask (SlmBerthingTask berthingTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!BerthingTaskCanBeDeleted(berthingTask)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement berthingTaskElement, SlmBerthingTask berthingTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
berthingTaskElement.AppendElement("Id", SysId.ToString(berthingTask.Id));
|
||||
berthingTaskElement.AppendElement("BerthingId", SysId.ToString(berthingTask.BerthingId));
|
||||
berthingTaskElement.AppendElement("Type", berthingTask.BerthingTaskType.ToString());
|
||||
berthingTaskElement.AppendElement("Started", DateUtil.FormatXmlDateTime(berthingTask.Started));
|
||||
berthingTaskElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(berthingTask.Completed));
|
||||
berthingTaskElement.AppendElement("Remarks", berthingTask.Remarks);
|
||||
berthingTaskElement.AppendElement("Notes", berthingTask.Notes);
|
||||
berthingTaskElement.AppendElement("Status", SacsSystem.GetStatusCode(berthingTask.Status));
|
||||
berthingTaskElement.AppendElement("Flags", berthingTask.Flags.ToString());
|
||||
if (!SysId.IsValid(berthingTask.Id))
|
||||
{
|
||||
berthingTaskElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingTaskElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingTaskElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
berthingTaskElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingTaskElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingTaskElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement berthingTaskElement, SlmBerthingTask berthingTask)
|
||||
{
|
||||
//berthingTask.Id = new SysId(StringUtil.ToInt(berthingTaskElement.GetChildText("Id")));
|
||||
//berthingTask.BerthingId = new SysId(StringUtil.ToInt(berthingTaskElement.GetChildText("BerthingId")));
|
||||
//berthingTask.BerthingTaskType = EnumUtil.ParseEnum(berthingTaskElement.GetChildText("Type"), Slm.BerthingTaskType.Unknown);
|
||||
berthingTask.Started = DateUtil.ParseXmlDateTime(berthingTaskElement.GetChildText("Started"));
|
||||
berthingTask.Completed = DateUtil.ParseXmlDateTime(berthingTaskElement.GetChildText("Completed"));
|
||||
berthingTask.Remarks = berthingTaskElement.GetChildText("Remarks");
|
||||
berthingTask.Notes = berthingTaskElement.GetChildText("Notes");
|
||||
berthingTask.Status = SacsSystem.GetStatusForCode(berthingTaskElement.GetChildText("Status"));
|
||||
berthingTask.SetCreateStamp(DateUtil.ParseXmlDateTime(berthingTaskElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(berthingTaskElement.GetChildText("CreateBy"))), berthingTaskElement.GetChildText("CreateHost"));
|
||||
berthingTask.SetUpdateStamp(DateUtil.ParseXmlDateTime(berthingTaskElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(berthingTaskElement.GetChildText("UpdateBy"))), berthingTaskElement.GetChildText("UpdateHost"));
|
||||
berthingTask.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingTask column definitions.
|
||||
public override ColumnDfn GetBerthingTaskColumnDfn (SlmBerthingTask.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingTask query filter.
|
||||
public override List<string> GetBerthingTaskQueryFilter (SlmBerthingTask.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetBerthingTaskQueryFilter_Mobile (SlmBerthingTask.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// BerthingTask Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Berthing Id.
|
||||
if (SysId.IsValid(prm.BerthingId)) filter.Add("BerthingId", SysId.ToString(prm.BerthingId));
|
||||
|
||||
// BerthingTask type.
|
||||
if ((int)prm.BerthingTaskType > 0) filter.Add("BerthingTaskType", ((int)prm.BerthingTaskType).ToString());
|
||||
|
||||
// Started.
|
||||
if (DateUtil.IsValid(prm.Started)) filter.Add("Started", DateUtil.FormatXmlDate(prm.Started));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// BerthingTask sort columns.
|
||||
public List<String> GetBerthingTaskSortColumns (SlmBerthingTask.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingTask count.
|
||||
public override long GetBerthingTaskCount (SlmBerthingTask.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingTask list.
|
||||
public override List<SlmBerthingTask> GetBerthingTaskList (SlmBerthingTask.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmBerthingTask>> GetBerthingTaskList_Mobile (SlmBerthingTask.Params prmBerthingTask, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmBerthingTask> companies = new List<SlmBerthingTask>();
|
||||
String fn = GetType().Name + ".GetBerthingTaskList_Mobile";
|
||||
|
||||
// BerthingTask columns.
|
||||
List<SlmBerthingTask.Column> columns = new List<SlmBerthingTask.Column>()
|
||||
{
|
||||
SlmBerthingTask.Column.Id,
|
||||
SlmBerthingTask.Column.BerthingId,
|
||||
SlmBerthingTask.Column.BerthingTaskType,
|
||||
SlmBerthingTask.Column.Started,
|
||||
SlmBerthingTask.Column.Completed,
|
||||
SlmBerthingTask.Column.Remarks,
|
||||
SlmBerthingTask.Column.Notes,
|
||||
SlmBerthingTask.Column.Flags,
|
||||
SlmBerthingTask.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteBerthingTaskQuery_Mobile(columns, prmBerthingTask, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmBerthingTask.Column.Id);
|
||||
SysId berthingId = itemData.GetIdValue(SlmBerthingTask.Column.BerthingId);
|
||||
Slm.BerthingTaskType berthingTaskType = EnumUtil.ParseEnum(itemData.GetValue(SlmBerthingTask.Column.BerthingTaskType), Slm.BerthingTaskType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmBerthingTask.Column.Id);
|
||||
// Create item.
|
||||
SlmBerthingTask_Mobile berthingTask = new SlmBerthingTask_Mobile(Site, id, berthingId, berthingTaskType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmBerthingTask.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmBerthingTask.Column.BerthingId: berthingTask.BerthingId = itemData.GetIdValue(column); break;
|
||||
//case SlmBerthingTask.Column.BerthingTaskType: berthingTask.BerthingTaskType; break;
|
||||
case SlmBerthingTask.Column.Remarks: berthingTask.Remarks = value; break;
|
||||
case SlmBerthingTask.Column.Notes: berthingTask.Notes = value; break;
|
||||
case SlmBerthingTask.Column.Status: berthingTask.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(berthingTask);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BerthingTask query execution.
|
||||
public override DbResultSet ExecuteBerthingTaskQuery (List<ColumnDfn> columns, SlmBerthingTask.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteBerthingTaskQuery_Mobile (List<SlmBerthingTask.Column> berthingTaskColumns, SlmBerthingTask.Params prmBerthingTask, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmBerthingTask.Column column in berthingTaskColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetBerthingTaskRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetBerthingTaskQueryFilter_Mobile(prmBerthingTask), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetBerthingTaskRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.BerthingTask;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetBerthingTaskDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmBerthingTask.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// BerthingTask Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmBerthingTask.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmBerthingTask.Column.Status_Desc:
|
||||
case SlmBerthingTask.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmBerthingTask.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmBerthingTask.Column.Status_Ind)
|
||||
value = new DataValue(SlmBerthingTask.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,409 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// B e r t h i n g s
|
||||
//*******************************************************************
|
||||
// Berthing exists.
|
||||
public override bool BerthingExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Berthing.
|
||||
public override SlmBerthing CreateBerthing ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmBerthing_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Berthing.
|
||||
public override SlmBerthing GetBerthing (SlmBerthing.Params prmBerthing)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmBerthing GetBerthingById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Berthing.
|
||||
public override bool IsValidBerthingData (SlmBerthing.Data data, SlmBerthing.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidBerthingData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Berthing.
|
||||
public override bool InsertBerthing (SlmBerthing berthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthing(berthing)) return false;
|
||||
if (SysId.IsValid(berthing.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Berthing.
|
||||
public override bool UpdateBerthing (SlmBerthing berthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidBerthing(berthing)) return false;
|
||||
if (!SysId.IsValid(berthing.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Berthing.
|
||||
public override bool BerthingCanBeDeleted (SlmBerthing berthing)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.BerthingCanBeDeleted(berthing)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteBerthing (SlmBerthing berthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!BerthingCanBeDeleted(berthing)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement berthingElement, SlmBerthing berthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
berthingElement.AppendElement("Id", SysId.ToString(berthing.Id));
|
||||
berthingElement.AppendElement("VesselId", SysId.ToString(berthing.VesselId));
|
||||
berthingElement.AppendElement("AgentId", SysId.ToString(berthing.AgentId));
|
||||
berthingElement.AppendElement("CustomerId", SysId.ToString(berthing.CustomerId));
|
||||
berthingElement.AppendElement("Berth", berthing.Berth);
|
||||
berthingElement.AppendElement("Bollard", berthing.Bollard);
|
||||
berthingElement.AppendElement("Expected", DateUtil.FormatXmlDateTime(berthing.Expected));
|
||||
berthingElement.AppendElement("CompletionEst", DateUtil.FormatXmlDateTime(berthing.CompletionEst));
|
||||
berthingElement.AppendElement("Arrived", DateUtil.FormatXmlDateTime(berthing.Arrived));
|
||||
berthingElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(berthing.Completed));
|
||||
berthingElement.AppendElement("Departed", DateUtil.FormatXmlDateTime(berthing.Departed));
|
||||
berthingElement.AppendElement("Cargo", berthing.Cargo);
|
||||
berthingElement.AppendElement("Holds", berthing.Holds.ToString("N3"));
|
||||
berthingElement.AppendElement("TotalDischarge", berthing.TotalDischarge.ToString("N3"));
|
||||
berthingElement.AppendElement("HoursWorked", berthing.HoursWorked.ToString("N3"));
|
||||
berthingElement.AppendElement("StatsData", berthing.StatsData);
|
||||
berthingElement.AppendElement("RateConveyor", berthing.RateConveyor.ToString("N3"));
|
||||
berthingElement.AppendElement("RateLorry", berthing.RateLorry.ToString("N3"));
|
||||
berthingElement.AppendElement("RateQuayside", berthing.RateQuayside.ToString("N3"));
|
||||
berthingElement.AppendElement("RateOvertime", berthing.RateOvertime.ToString("N3"));
|
||||
berthingElement.AppendElement("SpecialInstr", berthing.SpecialInstr);
|
||||
berthingElement.AppendElement("Notes", berthing.Notes);
|
||||
berthingElement.AppendElement("Status", SacsSystem.GetStatusCode(berthing.Status));
|
||||
berthingElement.AppendElement("Flags", berthing.Flags.ToString());
|
||||
if (!SysId.IsValid(berthing.Id))
|
||||
{
|
||||
berthingElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
berthingElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
berthingElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
berthingElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement berthingElement, SlmBerthing berthing)
|
||||
{
|
||||
//berthing.Id = new SysId(StringUtil.ToInt(berthingElement.GetChildText("Id")));
|
||||
berthing.VesselId = new SysId(StringUtil.ToInt(berthingElement.GetChildText("VesselId")));
|
||||
berthing.AgentId = new SysId(StringUtil.ToInt(berthingElement.GetChildText("AgentId")));
|
||||
berthing.CustomerId = new SysId(StringUtil.ToInt(berthingElement.GetChildText("CustomerId")));
|
||||
berthing.Berth = berthingElement.GetChildText("Berth");
|
||||
berthing.Bollard = berthingElement.GetChildText("Bollard");
|
||||
berthing.Expected = DateUtil.ParseXmlDateTime(berthingElement.GetChildText("Expected"));
|
||||
berthing.CompletionEst = DateUtil.ParseXmlDateTime(berthingElement.GetChildText("CompletionEst "));
|
||||
berthing.Arrived = DateUtil.ParseXmlDateTime(berthingElement.GetChildText("Arrived"));
|
||||
berthing.Completed = DateUtil.ParseXmlDateTime(berthingElement.GetChildText("Completed"));
|
||||
berthing.Departed = DateUtil.ParseXmlDateTime(berthingElement.GetChildText("Departed"));
|
||||
berthing.Cargo = berthingElement.GetChildText("Cargo");
|
||||
berthing.Holds = decimal.ToByte(StringUtil.ToDecimal((berthingElement.GetChildText("Holds"))));
|
||||
berthing.TotalDischarge = StringUtil.ToDecimal(berthingElement.GetChildText("TotalDischarge"));
|
||||
berthing.HoursWorked = StringUtil.ToShort(berthingElement.GetChildText("HoursWorked"));
|
||||
berthing.StatsData = berthingElement.GetChildText("StatsData");
|
||||
berthing.RateConveyor = StringUtil.ToDecimal(berthingElement.GetChildText("RateConveyor"));
|
||||
berthing.RateLorry = StringUtil.ToDecimal(berthingElement.GetChildText("RateLorry"));
|
||||
berthing.RateQuayside = StringUtil.ToDecimal(berthingElement.GetChildText("RateQuayside "));
|
||||
berthing.RateOvertime = StringUtil.ToDecimal(berthingElement.GetChildText("RateOvertime"));
|
||||
berthing.SpecialInstr = berthingElement.GetChildText("SpecialInstr");
|
||||
berthing.Notes = berthingElement.GetChildText("Notes");
|
||||
berthing.Status = SacsSystem.GetStatusForCode(berthingElement.GetChildText("Status"));
|
||||
berthing.SetCreateStamp(DateUtil.ParseXmlDateTime(berthingElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(berthingElement.GetChildText("CreateBy"))), berthingElement.GetChildText("CreateHost"));
|
||||
berthing.SetUpdateStamp(DateUtil.ParseXmlDateTime(berthingElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(berthingElement.GetChildText("UpdateBy"))), berthingElement.GetChildText("UpdateHost"));
|
||||
berthing.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Berthing column definitions.
|
||||
public override ColumnDfn GetBerthingColumnDfn (SlmBerthing.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Berthing query filter.
|
||||
public override List<string> GetBerthingQueryFilter (SlmBerthing.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetBerthingQueryFilter_Mobile (SlmBerthing.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Berthing Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Vessel Id.
|
||||
if (SysId.IsValid(prm.VesselId)) filter.Add("VesselId", SysId.ToString(prm.VesselId));
|
||||
|
||||
// Agent Id.
|
||||
if (SysId.IsValid(prm.AgentId)) filter.Add("AgentId", SysId.ToString(prm.AgentId));
|
||||
|
||||
// Customer Id.
|
||||
if (SysId.IsValid(prm.CustomerId)) filter.Add("CustomerId", SysId.ToString(prm.CustomerId));
|
||||
|
||||
// Customer.
|
||||
if (!StringUtil.IsEmpty(prm.CustomerPartial)) filter.Add("CustomerPartial", prm.CustomerPartial);
|
||||
|
||||
// Arrived.
|
||||
if (DateUtil.IsValid(prm.ArrivedFrom)) filter.Add("ArrivedFrom", DateUtil.FormatXmlDate(prm.ArrivedFrom));
|
||||
if (DateUtil.IsValid(prm.ArrivedTo)) filter.Add("ArrivedTo", DateUtil.FormatXmlDate(prm.ArrivedTo));
|
||||
|
||||
// Completed.
|
||||
if (DateUtil.IsValid(prm.CompletedFrom)) filter.Add("CompletedFrom", DateUtil.FormatXmlDate(prm.CompletedFrom));
|
||||
if (DateUtil.IsValid(prm.CompletedTo)) filter.Add("CompletedTo", DateUtil.FormatXmlDate(prm.CompletedTo));
|
||||
|
||||
// Berth.
|
||||
if (!StringUtil.IsEmpty(prm.Berth)) filter.Add("Berth", prm.Berth);
|
||||
|
||||
// Bollard.
|
||||
if (!StringUtil.IsEmpty(prm.Bollard)) filter.Add("Bollard", prm.Bollard);
|
||||
|
||||
// Vessel.
|
||||
if (!StringUtil.IsEmpty(prm.VesselPartial)) filter.Add("VesselPartial", prm.VesselPartial);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Berthing sort columns.
|
||||
public List<String> GetBerthingSortColumns (SlmBerthing.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Berthing count.
|
||||
public override long GetBerthingCount (SlmBerthing.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Berthing list.
|
||||
public override List<SlmBerthing> GetBerthingList (SlmBerthing.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmBerthing>> GetBerthingList_Mobile (SlmBerthing.Params prmBerthing, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmBerthing> companies = new List<SlmBerthing>();
|
||||
String fn = GetType().Name + ".GetBerthingList_Mobile";
|
||||
|
||||
// Berthing columns.
|
||||
List<SlmBerthing.Column> columns = new List<SlmBerthing.Column>()
|
||||
{
|
||||
SlmBerthing.Column.Id,
|
||||
SlmBerthing.Column.VesselId,
|
||||
SlmBerthing.Column.AgentId,
|
||||
SlmBerthing.Column.CustomerId,
|
||||
SlmBerthing.Column.Berth,
|
||||
SlmBerthing.Column.Bollard,
|
||||
SlmBerthing.Column.Expected,
|
||||
SlmBerthing.Column.CompletionEst,
|
||||
SlmBerthing.Column.Arrived,
|
||||
SlmBerthing.Column.Completed,
|
||||
SlmBerthing.Column.Departed,
|
||||
SlmBerthing.Column.Cargo,
|
||||
SlmBerthing.Column.Holds,
|
||||
SlmBerthing.Column.TotalDischarge,
|
||||
SlmBerthing.Column.HoursWorked,
|
||||
SlmBerthing.Column.StatsData,
|
||||
SlmBerthing.Column.RateConveyor,
|
||||
SlmBerthing.Column.RateLorry,
|
||||
SlmBerthing.Column.RateQuayside,
|
||||
SlmBerthing.Column.RateOvertime,
|
||||
SlmBerthing.Column.SpecialInstr,
|
||||
SlmBerthing.Column.Notes,
|
||||
SlmBerthing.Column.Flags,
|
||||
SlmBerthing.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteBerthingQuery_Mobile(columns, prmBerthing, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmBerthing.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmBerthing.Column.Id);
|
||||
// Create item.
|
||||
SlmBerthing_Mobile berthing = new SlmBerthing_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmBerthing.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
case SlmBerthing.Column.VesselId: berthing.VesselId = itemData.GetIdValue(column); break;
|
||||
case SlmBerthing.Column.AgentId: berthing.AgentId = itemData.GetIdValue(column); break;
|
||||
case SlmBerthing.Column.CustomerId: berthing.CustomerId= itemData.GetIdValue(column); break;
|
||||
case SlmBerthing.Column.Berth: berthing.Berth = value; break;
|
||||
case SlmBerthing.Column.Bollard: berthing.Bollard = value; break;
|
||||
case SlmBerthing.Column.Expected: berthing.Expected = itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthing.Column.CompletionEst: berthing.CompletionEst = itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthing.Column.Arrived: berthing.Arrived = itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthing.Column.Completed: berthing.Completed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthing.Column.Departed: berthing.Departed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmBerthing.Column.Cargo: berthing.Cargo = value; break;
|
||||
case SlmBerthing.Column.Holds: berthing.Holds = decimal.ToByte(itemData.GetDecimalValue(column)); break;
|
||||
case SlmBerthing.Column.TotalDischarge: berthing.TotalDischarge = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthing.Column.HoursWorked: berthing.HoursWorked = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmBerthing.Column.StatsData: berthing.StatsData = value; break;
|
||||
case SlmBerthing.Column.RateConveyor: berthing.RateConveyor = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthing.Column.RateLorry: berthing.RateLorry = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthing.Column.RateQuayside: berthing.RateQuayside = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthing.Column.RateOvertime: berthing.RateOvertime = itemData.GetDecimalValue(column); break;
|
||||
case SlmBerthing.Column.SpecialInstr: berthing.SpecialInstr = value; break;
|
||||
case SlmBerthing.Column.Notes: berthing.Notes = value; break;
|
||||
case SlmBerthing.Column.Status: berthing.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(berthing);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Berthing query execution.
|
||||
public override DbResultSet ExecuteBerthingQuery (List<ColumnDfn> columns, SlmBerthing.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteBerthingQuery_Mobile (List<SlmBerthing.Column> berthingColumns, SlmBerthing.Params prmBerthing, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmBerthing.Column column in berthingColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetBerthingRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetBerthingQueryFilter_Mobile(prmBerthing), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetBerthingRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Berthing;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetBerthingDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmBerthing.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Berthing Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmBerthing.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmBerthing.Column.Status_Desc:
|
||||
case SlmBerthing.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmBerthing.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmBerthing.Column.Status_Ind)
|
||||
value = new DataValue(SlmBerthing.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,453 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// C r u i s e B e r t h i n g s
|
||||
//*******************************************************************
|
||||
// CruiseBerthing exists.
|
||||
public override bool CruiseBerthingExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create CruiseBerthing.
|
||||
public override SlmCruiseBerthing CreateCruiseBerthing ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmCruiseBerthing_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get CruiseBerthing.
|
||||
public override SlmCruiseBerthing GetCruiseBerthing (SlmCruiseBerthing.Params prmCruiseBerthing)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmCruiseBerthing GetCruiseBerthingById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate CruiseBerthing.
|
||||
public override bool IsValidCruiseBerthingData (SlmCruiseBerthing.Data data, SlmCruiseBerthing.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidCruiseBerthingData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert CruiseBerthing.
|
||||
public override bool InsertCruiseBerthing (SlmCruiseBerthing cruiseBerthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCruiseBerthing(cruiseBerthing)) return false;
|
||||
if (SysId.IsValid(cruiseBerthing.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update CruiseBerthing.
|
||||
public override bool UpdateCruiseBerthing (SlmCruiseBerthing cruiseBerthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCruiseBerthing(cruiseBerthing)) return false;
|
||||
if (!SysId.IsValid(cruiseBerthing.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete CruiseBerthing.
|
||||
public override bool CruiseBerthingCanBeDeleted (SlmCruiseBerthing cruiseBerthing)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.CruiseBerthingCanBeDeleted(cruiseBerthing)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteCruiseBerthing (SlmCruiseBerthing cruiseBerthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!CruiseBerthingCanBeDeleted(cruiseBerthing)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement cruiseBerthingElement, SlmCruiseBerthing cruiseBerthing, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
cruiseBerthingElement.AppendElement("Id", SysId.ToString(cruiseBerthing.Id));
|
||||
cruiseBerthingElement.AppendElement("VesselId", SysId.ToString(cruiseBerthing.VesselId));
|
||||
cruiseBerthingElement.AppendElement("AgentContact", cruiseBerthing.AgentContact);
|
||||
cruiseBerthingElement.AppendElement("PortContact", cruiseBerthing.PortContact);
|
||||
cruiseBerthingElement.AppendElement("CruiseLineContact", cruiseBerthing.CruiseLineContact);
|
||||
cruiseBerthingElement.AppendElement("TerminalCode", cruiseBerthing.TerminalCode);
|
||||
cruiseBerthingElement.AppendElement("Bollard", cruiseBerthing.Bollard);
|
||||
cruiseBerthingElement.AppendElement("SideToQuayCode", cruiseBerthing.SideToQuayCode);
|
||||
cruiseBerthingElement.AppendElement("Expected", DateUtil.FormatXmlDateTime(cruiseBerthing.Expected));
|
||||
cruiseBerthingElement.AppendElement("Arrived", DateUtil.FormatXmlDateTime(cruiseBerthing.Arrived));
|
||||
cruiseBerthingElement.AppendElement("Started", DateUtil.FormatXmlDateTime(cruiseBerthing.Started));
|
||||
cruiseBerthingElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(cruiseBerthing.Completed));
|
||||
cruiseBerthingElement.AppendElement("Departed", DateUtil.FormatXmlDateTime(cruiseBerthing.Departed));
|
||||
cruiseBerthingElement.AppendElement("SpecialInstr", cruiseBerthing.SpecialInstr);
|
||||
cruiseBerthingElement.AppendElement("DelayMins", cruiseBerthing.DelayMins.ToString("N3"));
|
||||
cruiseBerthingElement.AppendElement("BaggageFirstBagOff", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggageFirstBagOff));
|
||||
cruiseBerthingElement.AppendElement("BaggageLastBagOff", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggageLastBagOff));
|
||||
cruiseBerthingElement.AppendElement("BaggageCageCountOff", cruiseBerthing.BaggageCageCountOff.ToString("N3"));
|
||||
cruiseBerthingElement.AppendElement("BaggageLaidOutBy", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggageLaidOutBy));
|
||||
cruiseBerthingElement.AppendElement("BaggagePaxOff", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggagePaxOff));
|
||||
cruiseBerthingElement.AppendElement("BaggageFirstBagOn", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggageFirstBagOn));
|
||||
cruiseBerthingElement.AppendElement("BaggageLastBagOn", DateUtil.FormatXmlDateTime(cruiseBerthing.BaggageLastBagOn));
|
||||
cruiseBerthingElement.AppendElement("BaggageCageCountOn", cruiseBerthing.BaggageCageCountOn.ToString("N3"));
|
||||
cruiseBerthingElement.AppendElement("BaggageComment", cruiseBerthing.BaggageComment);
|
||||
cruiseBerthingElement.AppendElement("StoreCargoNets", cruiseBerthing.StoreCargoNets.ToString());
|
||||
cruiseBerthingElement.AppendElement("StoreDeclarationComplete", cruiseBerthing.StoreDeclarationComplete.ToString());
|
||||
cruiseBerthingElement.AppendElement("StoresOnStartAt", DateUtil.FormatXmlDateTime(cruiseBerthing.StoresOnStartAt));
|
||||
cruiseBerthingElement.AppendElement("StoresOnFinishAt", DateUtil.FormatXmlDateTime(cruiseBerthing.StoresOnFinishAt));
|
||||
cruiseBerthingElement.AppendElement("StoresComment", cruiseBerthing.StoresComment);
|
||||
cruiseBerthingElement.AppendElement("BuildingsEquipmentComment", cruiseBerthing.BuildingsEquipmentComment);
|
||||
cruiseBerthingElement.AppendElement("HealthSafetyComment", cruiseBerthing.HealthSafetyComment);
|
||||
cruiseBerthingElement.AppendElement("SecurityComment", cruiseBerthing.SecurityComment);
|
||||
cruiseBerthingElement.AppendElement("OtherComment", cruiseBerthing.OtherComment);
|
||||
cruiseBerthingElement.AppendElement("SupervisorName", cruiseBerthing.SupervisorName);
|
||||
cruiseBerthingElement.AppendElement("SupervisorPosition", cruiseBerthing.SupervisorPosition);
|
||||
cruiseBerthingElement.AppendElement("Notes", cruiseBerthing.Notes);
|
||||
cruiseBerthingElement.AppendElement("Status", SacsSystem.GetStatusCode(cruiseBerthing.Status));
|
||||
cruiseBerthingElement.AppendElement("Flags", cruiseBerthing.Flags.ToString());
|
||||
if (!SysId.IsValid(cruiseBerthing.Id))
|
||||
{
|
||||
cruiseBerthingElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
cruiseBerthingElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
cruiseBerthingElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
cruiseBerthingElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
cruiseBerthingElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
cruiseBerthingElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement cruiseBerthingElement, SlmCruiseBerthing cruiseBerthing)
|
||||
{
|
||||
//cruiseBerthing.Id = new SysId(StringUtil.ToInt(cruiseBerthingElement.GetChildText("Id")));
|
||||
cruiseBerthing.VesselId= new SysId(StringUtil.ToInt(cruiseBerthingElement.GetChildText("VesselId")));
|
||||
cruiseBerthing.AgentContact = cruiseBerthingElement.GetChildText("AgentContact");
|
||||
cruiseBerthing.PortContact = cruiseBerthingElement.GetChildText("PortContact");
|
||||
cruiseBerthing.CruiseLineContact = cruiseBerthingElement.GetChildText("CruiseLineContact");
|
||||
cruiseBerthing.TerminalCode = cruiseBerthingElement.GetChildText("TerminalCode");
|
||||
cruiseBerthing.Bollard = cruiseBerthingElement.GetChildText("Bollard");
|
||||
cruiseBerthing.SideToQuayCode = cruiseBerthingElement.GetChildText("SideToQuayCode");
|
||||
cruiseBerthing.Expected = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("Expected"));
|
||||
cruiseBerthing.Arrived = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("Arrvied"));
|
||||
cruiseBerthing.Started = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("Started"));
|
||||
cruiseBerthing.Completed = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("Completed"));
|
||||
cruiseBerthing.Departed = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("Departed"));
|
||||
cruiseBerthing.SpecialInstr = cruiseBerthingElement.GetChildText("SpecialInstr");
|
||||
cruiseBerthing.DelayMins = StringUtil.ToInt(cruiseBerthingElement.GetChildText("DelayMins"));
|
||||
cruiseBerthing.BaggageFirstBagOff= DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggageFirstBagOff"));
|
||||
cruiseBerthing.BaggageLastBagOff = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggageLastBagOff"));
|
||||
cruiseBerthing.BaggageCageCountOff= StringUtil.ToShort(cruiseBerthingElement.GetChildText("BaggageCageCountOff"));
|
||||
cruiseBerthing.BaggageLaidOutBy= DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggageLaidOutBy"));
|
||||
cruiseBerthing.BaggagePaxOff = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggagePaxOff"));
|
||||
cruiseBerthing.BaggageFirstBagOn = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggageFirstBagOn "));
|
||||
cruiseBerthing.BaggageLastBagOn = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("BaggageLastBagOn"));
|
||||
cruiseBerthing.BaggageCageCountOn = StringUtil.ToShort(cruiseBerthingElement.GetChildText("BaggageCageCountOn"));
|
||||
cruiseBerthing.BaggageComment = cruiseBerthingElement.GetChildText("BaggageComment");
|
||||
cruiseBerthing.StoreCargoNets = StringUtil.ToBool(cruiseBerthingElement.GetChildText("StoreCargoNets"));
|
||||
cruiseBerthing.StoreDeclarationComplete = StringUtil.ToBool(cruiseBerthingElement.GetChildText("StoreDeclarationComplete"));
|
||||
cruiseBerthing.StoresOnStartAt = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("StoresOnStartAt"));
|
||||
cruiseBerthing.StoresOnFinishAt = DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("StoresOnFinishAt"));
|
||||
cruiseBerthing.StoresOnPalletCount = StringUtil.ToShort(cruiseBerthingElement.GetChildText("StoresOnPalletCount"));
|
||||
cruiseBerthing.StoresComment = cruiseBerthingElement.GetChildText("StoresComment");
|
||||
cruiseBerthing.BuildingsEquipmentComment = cruiseBerthingElement.GetChildText("BuildingsEquipmentComment");
|
||||
cruiseBerthing.HealthSafetyComment = cruiseBerthingElement.GetChildText("HealthSafetyComment");
|
||||
cruiseBerthing.SecurityComment = cruiseBerthingElement.GetChildText("SecurityComment");
|
||||
cruiseBerthing.OtherComment = cruiseBerthingElement.GetChildText("OtherComment");
|
||||
cruiseBerthing.SupervisorName = cruiseBerthingElement.GetChildText("SupervisorName");
|
||||
cruiseBerthing.SupervisorPosition = cruiseBerthingElement.GetChildText("SupervisorPosition");
|
||||
cruiseBerthing.Notes = cruiseBerthingElement.GetChildText("Notes");
|
||||
cruiseBerthing.Status = SacsSystem.GetStatusForCode(cruiseBerthingElement.GetChildText("Status"));
|
||||
cruiseBerthing.SetCreateStamp(DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(cruiseBerthingElement.GetChildText("CreateBy"))), cruiseBerthingElement.GetChildText("CreateHost"));
|
||||
cruiseBerthing.SetUpdateStamp(DateUtil.ParseXmlDateTime(cruiseBerthingElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(cruiseBerthingElement.GetChildText("UpdateBy"))), cruiseBerthingElement.GetChildText("UpdateHost"));
|
||||
cruiseBerthing.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CruiseBerthing column definitions.
|
||||
public override ColumnDfn GetCruiseBerthingColumnDfn (SlmCruiseBerthing.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CruiseBerthing query filter.
|
||||
public override List<string> GetCruiseBerthingQueryFilter (SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetCruiseBerthingQueryFilter_Mobile (SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// CruiseBerthing Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Vessel Id.
|
||||
if (SysId.IsValid(prm.VesselId)) filter.Add("VesselId", SysId.ToString(prm.VesselId));
|
||||
|
||||
// Arrived.
|
||||
if (DateUtil.IsValid(prm.ArrivedFrom)) filter.Add("ArrivedFrom", DateUtil.FormatXmlDate(prm.ArrivedFrom));
|
||||
if (DateUtil.IsValid(prm.ArrivedTo)) filter.Add("ArrivedTo", DateUtil.FormatXmlDate(prm.ArrivedTo));
|
||||
|
||||
// Terminal Code.
|
||||
if (!StringUtil.IsEmpty(prm.TerminalCode)) filter.Add("TerminalCode", prm.TerminalCode);
|
||||
|
||||
// Arrived.
|
||||
if (prm.Arrived != false) filter.Add("Arrived", prm.Arrived.ToString());
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// CruiseBerthing sort columns.
|
||||
public List<String> GetCruiseBerthingSortColumns (SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CruiseBerthing count.
|
||||
public override long GetCruiseBerthingCount (SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CruiseBerthing list.
|
||||
public override List<SlmCruiseBerthing> GetCruiseBerthingList (SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmCruiseBerthing>> GetCruiseBerthingList_Mobile (SlmCruiseBerthing.Params prmCruiseBerthing, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmCruiseBerthing> companies = new List<SlmCruiseBerthing>();
|
||||
String fn = GetType().Name + ".GetCruiseBerthingList_Mobile";
|
||||
|
||||
// CruiseBerthing columns.
|
||||
List<SlmCruiseBerthing.Column> columns = new List<SlmCruiseBerthing.Column>()
|
||||
{
|
||||
SlmCruiseBerthing.Column.Id,
|
||||
SlmCruiseBerthing.Column.VesselId,
|
||||
SlmCruiseBerthing.Column.AgentContact,
|
||||
SlmCruiseBerthing.Column.PortContact,
|
||||
SlmCruiseBerthing.Column.CruiseLineContact,
|
||||
SlmCruiseBerthing.Column.TerminalCode,
|
||||
SlmCruiseBerthing.Column.Bollard,
|
||||
SlmCruiseBerthing.Column.SideToQuayCode,
|
||||
SlmCruiseBerthing.Column.Expected,
|
||||
SlmCruiseBerthing.Column.Arrived,
|
||||
SlmCruiseBerthing.Column.Started,
|
||||
SlmCruiseBerthing.Column.Completed,
|
||||
SlmCruiseBerthing.Column.Departed,
|
||||
SlmCruiseBerthing.Column.SpecialInstr,
|
||||
SlmCruiseBerthing.Column.DelayMins,
|
||||
SlmCruiseBerthing.Column.BaggageFirstBagOff,
|
||||
SlmCruiseBerthing.Column.BaggageLastBagOff,
|
||||
SlmCruiseBerthing.Column.BaggageCageCountOff,
|
||||
SlmCruiseBerthing.Column.BaggageLaidOutBy,
|
||||
SlmCruiseBerthing.Column.BaggagePaxOff,
|
||||
SlmCruiseBerthing.Column.BaggageFirstBagOn,
|
||||
SlmCruiseBerthing.Column.BaggageLastBagOn,
|
||||
SlmCruiseBerthing.Column.BaggageCageCountOn,
|
||||
SlmCruiseBerthing.Column.BaggageComment,
|
||||
SlmCruiseBerthing.Column.StoresCargoNets,
|
||||
SlmCruiseBerthing.Column.StoresDeclarationComplete,
|
||||
SlmCruiseBerthing.Column.StoresOnStartAt,
|
||||
SlmCruiseBerthing.Column.StoresOnFinishAt,
|
||||
SlmCruiseBerthing.Column.StoresOnPalletCount,
|
||||
SlmCruiseBerthing.Column.StoresComment,
|
||||
SlmCruiseBerthing.Column.BuildingsEquipmentComment,
|
||||
SlmCruiseBerthing.Column.HealthSafetyComment,
|
||||
SlmCruiseBerthing.Column.SecurityComment,
|
||||
SlmCruiseBerthing.Column.OtherComment,
|
||||
SlmCruiseBerthing.Column.SupervisorName,
|
||||
SlmCruiseBerthing.Column.SupervisorPosition,
|
||||
SlmCruiseBerthing.Column.Notes,
|
||||
SlmCruiseBerthing.Column.Flags,
|
||||
SlmCruiseBerthing.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteCruiseBerthingQuery_Mobile(columns, prmCruiseBerthing, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmCruiseBerthing.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmCruiseBerthing.Column.Id);
|
||||
// Create item.
|
||||
SlmCruiseBerthing_Mobile cruiseBerthing = new SlmCruiseBerthing_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmCruiseBerthing.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmCruiseBerthing.Column.CruiseBerthingCategory: cruiseBerthing.CruiseBerthingCategory; break;
|
||||
case SlmCruiseBerthing.Column.VesselId: cruiseBerthing.VesselId = itemData.GetIdValue(column); break;
|
||||
case SlmCruiseBerthing.Column.AgentContact: cruiseBerthing.AgentContact = value; break;
|
||||
case SlmCruiseBerthing.Column.PortContact: cruiseBerthing.PortContact = value; break;
|
||||
case SlmCruiseBerthing.Column.CruiseLineContact: cruiseBerthing.CruiseLineContact = value; break;
|
||||
case SlmCruiseBerthing.Column.TerminalCode: cruiseBerthing.TerminalCode= value; break;
|
||||
case SlmCruiseBerthing.Column.Bollard: cruiseBerthing.Bollard = value; break;
|
||||
case SlmCruiseBerthing.Column.SideToQuayCode: cruiseBerthing.SideToQuayCode = value; break;
|
||||
case SlmCruiseBerthing.Column.Expected: cruiseBerthing.Expected = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.Arrived: cruiseBerthing.Arrived = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.Started: cruiseBerthing.Started= itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.Completed: cruiseBerthing.Completed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.Departed: cruiseBerthing.Departed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.SpecialInstr: cruiseBerthing.SpecialInstr = value; break;
|
||||
case SlmCruiseBerthing.Column.DelayMins: cruiseBerthing.DelayMins = itemData.GetIntValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageFirstBagOff: cruiseBerthing.BaggageFirstBagOff= itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageLastBagOff: cruiseBerthing.BaggageLastBagOff = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageCageCountOff: cruiseBerthing.BaggageCageCountOff = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmCruiseBerthing.Column.BaggageLaidOutBy: cruiseBerthing.BaggageLaidOutBy = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggagePaxOff: cruiseBerthing.BaggagePaxOff = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageFirstBagOn: cruiseBerthing.BaggageFirstBagOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageLastBagOn: cruiseBerthing.BaggageLastBagOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.BaggageCageCountOn: cruiseBerthing.BaggageCageCountOn = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmCruiseBerthing.Column.BaggageComment: cruiseBerthing.BaggageComment = value; break;
|
||||
case SlmCruiseBerthing.Column.StoresCargoNets: cruiseBerthing.StoreCargoNets = StringUtil.ToBool(value); break;
|
||||
case SlmCruiseBerthing.Column.StoresDeclarationComplete: cruiseBerthing.StoreDeclarationComplete = StringUtil.ToBool(value); break;
|
||||
case SlmCruiseBerthing.Column.StoresOnStartAt: cruiseBerthing.StoresOnStartAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.StoresOnFinishAt: cruiseBerthing.StoresOnFinishAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCruiseBerthing.Column.StoresOnPalletCount: cruiseBerthing.StoresOnPalletCount = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmCruiseBerthing.Column.StoresComment: cruiseBerthing.StoresComment= value; break;
|
||||
case SlmCruiseBerthing.Column.BuildingsEquipmentComment: cruiseBerthing.BuildingsEquipmentComment= value; break;
|
||||
case SlmCruiseBerthing.Column.HealthSafetyComment: cruiseBerthing.HealthSafetyComment= value; break;
|
||||
case SlmCruiseBerthing.Column.SecurityComment: cruiseBerthing.SecurityComment = value; break;
|
||||
case SlmCruiseBerthing.Column.OtherComment: cruiseBerthing.OtherComment = value; break;
|
||||
case SlmCruiseBerthing.Column.SupervisorName: cruiseBerthing.SupervisorName = value; break;
|
||||
case SlmCruiseBerthing.Column.SupervisorPosition: cruiseBerthing.SupervisorPosition = value; break;
|
||||
case SlmCruiseBerthing.Column.Notes: cruiseBerthing.Notes = value; break;
|
||||
case SlmCruiseBerthing.Column.Status: cruiseBerthing.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(cruiseBerthing);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CruiseBerthing query execution.
|
||||
public override DbResultSet ExecuteCruiseBerthingQuery (List<ColumnDfn> columns, SlmCruiseBerthing.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteCruiseBerthingQuery_Mobile (List<SlmCruiseBerthing.Column> cruiseBerthingColumns, SlmCruiseBerthing.Params prmCruiseBerthing, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmCruiseBerthing.Column column in cruiseBerthingColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetCruiseBerthingRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetCruiseBerthingQueryFilter_Mobile(prmCruiseBerthing), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetCruiseBerthingRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.CruiseBerthing;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetCruiseBerthingDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmCruiseBerthing.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// CruiseBerthing Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmCruiseBerthing.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmCruiseBerthing.Column.Status_Desc:
|
||||
case SlmCruiseBerthing.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmCruiseBerthing.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmCruiseBerthing.Column.Status_Ind)
|
||||
value = new DataValue(SlmCruiseBerthing.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,338 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// D i s c h a r g e H o l d s
|
||||
//*******************************************************************
|
||||
// DischargeHold exists.
|
||||
public override bool DischargeHoldExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create DischargeHold.
|
||||
public override SlmDischargeHold CreateDischargeHold (SysId berthingId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmDischargeHold_Mobile(Site, null, berthingId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get DischargeHold.
|
||||
public override SlmDischargeHold GetDischargeHold (SlmDischargeHold.Params prmDischargeHold)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmDischargeHold GetDischargeHoldById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate DischargeHold.
|
||||
public override bool IsValidDischargeHoldData (SlmDischargeHold.Data data, SlmDischargeHold.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidDischargeHoldData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert DischargeHold.
|
||||
public override bool InsertDischargeHold (SlmDischargeHold dischargeHold, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDischargeHold(dischargeHold)) return false;
|
||||
if (SysId.IsValid(dischargeHold.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update DischargeHold.
|
||||
public override bool UpdateDischargeHold (SlmDischargeHold dischargeHold, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDischargeHold(dischargeHold)) return false;
|
||||
if (!SysId.IsValid(dischargeHold.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete DischargeHold.
|
||||
public override bool DischargeHoldCanBeDeleted (SlmDischargeHold dischargeHold)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.DischargeHoldCanBeDeleted(dischargeHold)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteDischargeHold (SlmDischargeHold dischargeHold, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!DischargeHoldCanBeDeleted(dischargeHold)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement dischargeHoldElement, SlmDischargeHold dischargeHold, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dischargeHoldElement.AppendElement("Id", SysId.ToString(dischargeHold.Id));
|
||||
dischargeHoldElement.AppendElement("BerthingId", SysId.ToString(dischargeHold.BerthingId));
|
||||
dischargeHoldElement.AppendElement("HoldNo", dischargeHold.HoldNo);
|
||||
dischargeHoldElement.AppendElement("Capacity", dischargeHold.Capacity.ToString("N3"));
|
||||
dischargeHoldElement.AppendElement("CommodityId", SysId.ToString(dischargeHold.CommodityId));
|
||||
dischargeHoldElement.AppendElement("NumberCranes", dischargeHold.NumberCranes.ToString("N3"));
|
||||
dischargeHoldElement.AppendElement("Method", dischargeHold.Method);
|
||||
dischargeHoldElement.AppendElement("Unit", dischargeHold.Unit);
|
||||
dischargeHoldElement.AppendElement("Notes", dischargeHold.Notes);
|
||||
dischargeHoldElement.AppendElement("Status", SacsSystem.GetStatusCode(dischargeHold.Status));
|
||||
dischargeHoldElement.AppendElement("Flags", dischargeHold.Flags.ToString());
|
||||
if (!SysId.IsValid(dischargeHold.Id))
|
||||
{
|
||||
dischargeHoldElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dischargeHoldElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dischargeHoldElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
dischargeHoldElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dischargeHoldElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dischargeHoldElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement dischargeHoldElement, SlmDischargeHold dischargeHold)
|
||||
{
|
||||
//dischargeHold.Id = new SysId(StringUtil.ToInt(dischargeHoldElement.GetChildText("Id")));
|
||||
//dischargeHold.BerthingId = new SysId(StringUtil.ToInt(dischargeHoldElement.GetChildText("BerthingId")));
|
||||
dischargeHold.HoldNo= dischargeHoldElement.GetChildText("HoldNo");
|
||||
dischargeHold.Capacity = StringUtil.ToDecimal(dischargeHoldElement.GetChildText("Capacity"));
|
||||
dischargeHold.CommodityId = new SysId(StringUtil.ToInt(dischargeHoldElement.GetChildText("CommodityId")));
|
||||
dischargeHold.NumberCranes = StringUtil.ToShort(dischargeHoldElement.GetChildText("NumberCranes"));
|
||||
dischargeHold.Method = dischargeHoldElement.GetChildText("Method");
|
||||
dischargeHold.Unit = dischargeHoldElement.GetChildText("Unit");
|
||||
dischargeHold.Notes = dischargeHoldElement.GetChildText("Notes");
|
||||
dischargeHold.Status = SacsSystem.GetStatusForCode(dischargeHoldElement.GetChildText("Status"));
|
||||
dischargeHold.SetCreateStamp(DateUtil.ParseXmlDateTime(dischargeHoldElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(dischargeHoldElement.GetChildText("CreateBy"))), dischargeHoldElement.GetChildText("CreateHost"));
|
||||
dischargeHold.SetUpdateStamp(DateUtil.ParseXmlDateTime(dischargeHoldElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(dischargeHoldElement.GetChildText("UpdateBy"))), dischargeHoldElement.GetChildText("UpdateHost"));
|
||||
dischargeHold.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DischargeHold column definitions.
|
||||
public override ColumnDfn GetDischargeHoldColumnDfn (SlmDischargeHold.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DischargeHold query filter.
|
||||
public override List<string> GetDischargeHoldQueryFilter (SlmDischargeHold.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetDischargeHoldQueryFilter_Mobile (SlmDischargeHold.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// DischargeHold Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Berthing Id.
|
||||
if (SysId.IsValid(prm.BerthingId)) filter.Add("BerthingId", SysId.ToString(prm.BerthingId));
|
||||
|
||||
// Commodity Id.
|
||||
if (SysId.IsValid(prm.CommodityId)) filter.Add("CommodityId", SysId.ToString(prm.CommodityId));
|
||||
|
||||
// Hold No.
|
||||
if (!StringUtil.IsEmpty(prm.HoldNo)) filter.Add("HoldNo", prm.HoldNo);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// DischargeHold sort columns.
|
||||
public List<String> GetDischargeHoldSortColumns (SlmDischargeHold.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DischargeHold count.
|
||||
public override long GetDischargeHoldCount (SlmDischargeHold.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DischargeHold list.
|
||||
public override List<SlmDischargeHold> GetDischargeHoldList (SlmDischargeHold.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmDischargeHold>> GetDischargeHoldList_Mobile (SlmDischargeHold.Params prmDischargeHold, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmDischargeHold> companies = new List<SlmDischargeHold>();
|
||||
String fn = GetType().Name + ".GetDischargeHoldList_Mobile";
|
||||
|
||||
// DischargeHold columns.
|
||||
List<SlmDischargeHold.Column> columns = new List<SlmDischargeHold.Column>()
|
||||
{
|
||||
SlmDischargeHold.Column.Id,
|
||||
SlmDischargeHold.Column.BerthingId,
|
||||
SlmDischargeHold.Column.HoldNo,
|
||||
SlmDischargeHold.Column.Capacity,
|
||||
SlmDischargeHold.Column.CommodityId,
|
||||
SlmDischargeHold.Column.NumberCranes,
|
||||
SlmDischargeHold.Column.Method,
|
||||
SlmDischargeHold.Column.Unit,
|
||||
SlmDischargeHold.Column.Notes,
|
||||
SlmDischargeHold.Column.Flags,
|
||||
SlmDischargeHold.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteDischargeHoldQuery_Mobile(columns, prmDischargeHold, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmDischargeHold.Column.Id);
|
||||
SysId berthingId = itemData.GetIdValue(SlmDischargeHold.Column.BerthingId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmDischargeHold.Column.Id);
|
||||
// Create item.
|
||||
SlmDischargeHold_Mobile dischargeHold = new SlmDischargeHold_Mobile(Site, id, berthingId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmDischargeHold.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmDischargeHold.Column.BerthingId: dischargeHold.BerthingId = itemData.GetIdValue(column); break;
|
||||
case SlmDischargeHold.Column.HoldNo: dischargeHold.HoldNo = value; break;
|
||||
case SlmDischargeHold.Column.Capacity: dischargeHold.Capacity = itemData.GetDecimalValue(column); break;
|
||||
case SlmDischargeHold.Column.CommodityId: dischargeHold.CommodityId = itemData.GetIdValue(column); break;
|
||||
case SlmDischargeHold.Column.NumberCranes: dischargeHold.NumberCranes = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmDischargeHold.Column.Method: dischargeHold.Method = value; break;
|
||||
case SlmDischargeHold.Column.Unit: dischargeHold.Unit = value; break;
|
||||
case SlmDischargeHold.Column.Notes: dischargeHold.Notes = value; break;
|
||||
case SlmDischargeHold.Column.Status: dischargeHold.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(dischargeHold);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DischargeHold query execution.
|
||||
public override DbResultSet ExecuteDischargeHoldQuery (List<ColumnDfn> columns, SlmDischargeHold.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteDischargeHoldQuery_Mobile (List<SlmDischargeHold.Column> dischargeHoldColumns, SlmDischargeHold.Params prmDischargeHold, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmDischargeHold.Column column in dischargeHoldColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetDischargeHoldRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetDischargeHoldQueryFilter_Mobile(prmDischargeHold), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetDischargeHoldRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.DischargeHold;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetDischargeHoldDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmDischargeHold.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// DischargeHold Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmDischargeHold.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmDischargeHold.Column.Status_Desc:
|
||||
case SlmDischargeHold.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmDischargeHold.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmDischargeHold.Column.Status_Ind)
|
||||
value = new DataValue(SlmDischargeHold.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,358 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// D i s c h a r g e s
|
||||
//*******************************************************************
|
||||
// Discharge exists.
|
||||
public override bool DischargeExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Discharge.
|
||||
public override SlmDischarge CreateDischarge (SysId berthingId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmDischarge_Mobile(Site, null, berthingId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Discharge.
|
||||
public override SlmDischarge GetDischarge (SlmDischarge.Params prmDischarge)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmDischarge GetDischargeById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Discharge.
|
||||
public override bool IsValidDischargeData (SlmDischarge.Data data, SlmDischarge.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidDischargeData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Discharge.
|
||||
public override bool InsertDischarge (SlmDischarge discharge, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDischarge(discharge)) return false;
|
||||
if (SysId.IsValid(discharge.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Discharge.
|
||||
public override bool UpdateDischarge (SlmDischarge discharge, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDischarge(discharge)) return false;
|
||||
if (!SysId.IsValid(discharge.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Discharge.
|
||||
public override bool DischargeCanBeDeleted (SlmDischarge discharge)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.DischargeCanBeDeleted(discharge)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteDischarge (SlmDischarge discharge, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!DischargeCanBeDeleted(discharge)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement dischargeElement, SlmDischarge discharge, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dischargeElement.AppendElement("Id", SysId.ToString(discharge.Id));
|
||||
dischargeElement.AppendElement("BerthingId", SysId.ToString(discharge.BerthingId));
|
||||
dischargeElement.AppendElement("Discharged", DateUtil.FormatXmlDateTime(discharge.Discharged));
|
||||
dischargeElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(discharge.Completed));
|
||||
dischargeElement.AppendElement("CommodityId", SysId.ToString(discharge.CommodityId));
|
||||
dischargeElement.AppendElement("LocationId", SysId.ToString(discharge.LocationId));
|
||||
dischargeElement.AppendElement("Quantity", discharge.Quantity.ToString("N3"));
|
||||
dischargeElement.AppendElement("NumberCranes", discharge.NumberCranes.ToString("N3"));
|
||||
dischargeElement.AppendElement("Method", discharge.Method);
|
||||
dischargeElement.AppendElement("Unit", discharge.Unit);
|
||||
dischargeElement.AppendElement("Notes", discharge.Notes);
|
||||
dischargeElement.AppendElement("Status", SacsSystem.GetStatusCode(discharge.Status));
|
||||
dischargeElement.AppendElement("Flags", discharge.Flags.ToString());
|
||||
if (!SysId.IsValid(discharge.Id))
|
||||
{
|
||||
dischargeElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dischargeElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dischargeElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
dischargeElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dischargeElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dischargeElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement dischargeElement, SlmDischarge discharge)
|
||||
{
|
||||
//discharge.Id = new SysId(StringUtil.ToInt(dischargeElement.GetChildText("Id")));
|
||||
//discharge.BerthingId = new SysId(StringUtil.ToInt(dischargeElement.GetChildText("BerthingId")));
|
||||
discharge.Discharged = DateUtil.ParseXmlDateTime(dischargeElement.GetChildText("Discharged"));
|
||||
discharge.Completed= DateUtil.ParseXmlDateTime(dischargeElement.GetChildText("Completed"));
|
||||
discharge.CommodityId = new SysId(StringUtil.ToInt(dischargeElement.GetChildText("CommodityId")));
|
||||
discharge.LocationId = new SysId(StringUtil.ToInt(dischargeElement.GetChildText("LocationId")));
|
||||
discharge.Quantity = StringUtil.ToDecimal(dischargeElement.GetChildText("Quantity"));
|
||||
discharge.NumberCranes = StringUtil.ToShort(dischargeElement.GetChildText("NumberCranes"));
|
||||
discharge.Method = dischargeElement.GetChildText("Method");
|
||||
discharge.Unit = dischargeElement.GetChildText("Unit");
|
||||
discharge.Notes = dischargeElement.GetChildText("Notes");
|
||||
discharge.Status = SacsSystem.GetStatusForCode(dischargeElement.GetChildText("Status"));
|
||||
discharge.SetCreateStamp(DateUtil.ParseXmlDateTime(dischargeElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(dischargeElement.GetChildText("CreateBy"))), dischargeElement.GetChildText("CreateHost"));
|
||||
discharge.SetUpdateStamp(DateUtil.ParseXmlDateTime(dischargeElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(dischargeElement.GetChildText("UpdateBy"))), dischargeElement.GetChildText("UpdateHost"));
|
||||
discharge.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Discharge column definitions.
|
||||
public override ColumnDfn GetDischargeColumnDfn (SlmDischarge.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Discharge query filter.
|
||||
public override List<string> GetDischargeQueryFilter (SlmDischarge.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetDischargeQueryFilter_Mobile (SlmDischarge.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Discharge Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Berthing Id.
|
||||
if (SysId.IsValid(prm.BerthingId)) filter.Add("BerthingId", SysId.ToString(prm.BerthingId));
|
||||
|
||||
// Commodity Id.
|
||||
if (SysId.IsValid(prm.CommodityId)) filter.Add("CommodityId", SysId.ToString(prm.CommodityId));
|
||||
|
||||
// Location Id.
|
||||
if (SysId.IsValid(prm.LocationId)) filter.Add("LocationId", SysId.ToString(prm.LocationId));
|
||||
|
||||
// Discharged.
|
||||
if (DateUtil.IsValid(prm.Discharged)) filter.Add("Discharged", DateUtil.FormatXmlDate(prm.Discharged));
|
||||
|
||||
// Completed.
|
||||
if (DateUtil.IsValid(prm.Completed)) filter.Add("Completed", DateUtil.FormatXmlDate(prm.Completed));
|
||||
|
||||
// Quantity.
|
||||
if (prm.Quantity > 0) filter.Add("Quantity", prm.Quantity.ToString());
|
||||
|
||||
// NumberCranes.
|
||||
if (prm.NumberCranes > 0) filter.Add("NumberCranes", prm.NumberCranes.ToString());
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Discharge sort columns.
|
||||
public List<String> GetDischargeSortColumns (SlmDischarge.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Discharge count.
|
||||
public override long GetDischargeCount (SlmDischarge.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Discharge list.
|
||||
public override List<SlmDischarge> GetDischargeList (SlmDischarge.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmDischarge>> GetDischargeList_Mobile (SlmDischarge.Params prmDischarge, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmDischarge> companies = new List<SlmDischarge>();
|
||||
String fn = GetType().Name + ".GetDischargeList_Mobile";
|
||||
|
||||
// Discharge columns.
|
||||
List<SlmDischarge.Column> columns = new List<SlmDischarge.Column>()
|
||||
{
|
||||
SlmDischarge.Column.Id,
|
||||
SlmDischarge.Column.BerthingId,
|
||||
SlmDischarge.Column.Discharged,
|
||||
SlmDischarge.Column.Completed,
|
||||
SlmDischarge.Column.CommodityId,
|
||||
SlmDischarge.Column.LocationId,
|
||||
SlmDischarge.Column.Quantity,
|
||||
SlmDischarge.Column.NumberCranes,
|
||||
SlmDischarge.Column.Method,
|
||||
SlmDischarge.Column.Unit,
|
||||
SlmDischarge.Column.Notes,
|
||||
SlmDischarge.Column.Flags,
|
||||
SlmDischarge.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteDischargeQuery_Mobile(columns, prmDischarge, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmDischarge.Column.Id);
|
||||
SysId berthingId = itemData.GetIdValue(SlmDischarge.Column.BerthingId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmDischarge.Column.Id);
|
||||
// Create item.
|
||||
SlmDischarge_Mobile discharge = new SlmDischarge_Mobile(Site, id, berthingId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmDischarge.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmDischarge.Column.BerthingId: discharge.BerthingId = itemData.GetIdValue(column); break;
|
||||
case SlmDischarge.Column.Discharged: discharge.Discharged = itemData.GetDateTimeValue(column); break;
|
||||
case SlmDischarge.Column.Completed: discharge.Completed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmDischarge.Column.CommodityId: discharge.CommodityId = itemData.GetIdValue(column); break;
|
||||
case SlmDischarge.Column.LocationId: discharge.LocationId = itemData.GetIdValue(column); break;
|
||||
case SlmDischarge.Column.Quantity: discharge.Quantity = itemData.GetDecimalValue(column); break;
|
||||
case SlmDischarge.Column.NumberCranes: discharge.NumberCranes = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmDischarge.Column.Method: discharge.Method = value; break;
|
||||
case SlmDischarge.Column.Unit: discharge.Unit = value; break;
|
||||
case SlmDischarge.Column.Notes: discharge.Notes = value; break;
|
||||
case SlmDischarge.Column.Status: discharge.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(discharge);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Discharge query execution.
|
||||
public override DbResultSet ExecuteDischargeQuery (List<ColumnDfn> columns, SlmDischarge.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteDischargeQuery_Mobile (List<SlmDischarge.Column> dischargeColumns, SlmDischarge.Params prmDischarge, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmDischarge.Column column in dischargeColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetDischargeRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetDischargeQueryFilter_Mobile(prmDischarge), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetDischargeRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Discharge;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetDischargeDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmDischarge.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Discharge Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmDischarge.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmDischarge.Column.Status_Desc:
|
||||
case SlmDischarge.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmDischarge.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmDischarge.Column.Status_Ind)
|
||||
value = new DataValue(SlmDischarge.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,363 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmBerthingMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// V e s s e l s
|
||||
//*******************************************************************
|
||||
// Vessel exists.
|
||||
public override bool VesselExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Vessel.
|
||||
public override SlmVessel CreateVessel (Slm.VesselCategory vesselCategory)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmVessel_Mobile(Site, null, vesselCategory, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Vessel.
|
||||
public override SlmVessel GetVessel (SlmVessel.Params prmVessel)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmVessel GetVesselById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Vessel.
|
||||
public override bool IsValidVesselData (SlmVessel.Data data, SlmVessel.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidVesselData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Vessel.
|
||||
public override bool InsertVessel (SlmVessel vessel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidVessel(vessel)) return false;
|
||||
if (SysId.IsValid(vessel.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Vessel.
|
||||
public override bool UpdateVessel (SlmVessel vessel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidVessel(vessel)) return false;
|
||||
if (!SysId.IsValid(vessel.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Vessel.
|
||||
public override bool VesselCanBeDeleted (SlmVessel vessel)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.VesselCanBeDeleted(vessel)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteVessel (SlmVessel vessel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!VesselCanBeDeleted(vessel)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement vesselElement, SlmVessel vessel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
vesselElement.AppendElement("Id", SysId.ToString(vessel.Id));
|
||||
vesselElement.AppendElement("Category", vessel.VesselCategory.ToString());
|
||||
vesselElement.AppendElement("Name", vessel.Name);
|
||||
vesselElement.AppendElement("Type", vessel.VesselType);
|
||||
vesselElement.AppendElement("Owner", vessel.Owner);
|
||||
vesselElement.AppendElement("Abbreviation", vessel.Abbreviation);
|
||||
vesselElement.AppendElement("Length", vessel.Length.ToString("N3"));
|
||||
vesselElement.AppendElement("Breadth", vessel.Breadth.ToString("N3"));
|
||||
vesselElement.AppendElement("Draught", vessel.Draught.ToString("N3"));
|
||||
vesselElement.AppendElement("Depth", vessel.Depth.ToString("N3"));
|
||||
vesselElement.AppendElement("Displacement", vessel.Displacement.ToString("N3"));
|
||||
vesselElement.AppendElement("CompanyIdCruiseLine", SysId.ToString(vessel.CompanyIdCruiseLine));
|
||||
vesselElement.AppendElement("Notes", vessel.Notes);
|
||||
vesselElement.AppendElement("Status", SacsSystem.GetStatusCode(vessel.Status));
|
||||
vesselElement.AppendElement("Flags", vessel.Flags.ToString());
|
||||
if (!SysId.IsValid(vessel.Id))
|
||||
{
|
||||
vesselElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
vesselElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
vesselElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
vesselElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
vesselElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
vesselElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement vesselElement, SlmVessel vessel)
|
||||
{
|
||||
//vessel.Id = new SysId(StringUtil.ToInt(vesselElement.GetChildText("Id")));
|
||||
//vessel.VesselCategory = EnumUtil.ParseEnum(vesselElement.GetChildText("Category"), Slm.VesselCategory.Unknown);
|
||||
vessel.Name = vesselElement.GetChildText("Name");
|
||||
vessel.VesselType = vesselElement.GetChildText("Type");
|
||||
vessel.Owner = vesselElement.GetChildText("Owner");
|
||||
vessel.Abbreviation = vesselElement.GetChildText("Abbreviation");
|
||||
vessel.Length = StringUtil.ToDecimal(vesselElement.GetChildText("Length"));
|
||||
vessel.Breadth = StringUtil.ToDecimal(vesselElement.GetChildText("Breadth"));
|
||||
vessel.Draught= StringUtil.ToDecimal(vesselElement.GetChildText("Draught"));
|
||||
vessel.Depth = StringUtil.ToDecimal(vesselElement.GetChildText("Depth"));
|
||||
vessel.Displacement = StringUtil.ToDecimal(vesselElement.GetChildText("Displacement"));
|
||||
vessel.CompanyIdCruiseLine = new SysId(StringUtil.ToInt(vesselElement.GetChildText("CompanyIdCruiseLine")));
|
||||
vessel.Notes = vesselElement.GetChildText("Notes");
|
||||
vessel.Status = SacsSystem.GetStatusForCode(vesselElement.GetChildText("Status"));
|
||||
vessel.SetCreateStamp(DateUtil.ParseXmlDateTime(vesselElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(vesselElement.GetChildText("CreateBy"))), vesselElement.GetChildText("CreateHost"));
|
||||
vessel.SetUpdateStamp(DateUtil.ParseXmlDateTime(vesselElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(vesselElement.GetChildText("UpdateBy"))), vesselElement.GetChildText("UpdateHost"));
|
||||
vessel.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Vessel column definitions.
|
||||
public override ColumnDfn GetVesselColumnDfn (SlmVessel.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Vessel query filter.
|
||||
public override List<string> GetVesselQueryFilter (SlmVessel.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetVesselQueryFilter_Mobile (SlmVessel.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Vessel Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Vessel Category.
|
||||
if ((int)prm.VesselCategory > 0) filter.Add("VesselCategory", ((int)prm.VesselCategory).ToString());
|
||||
|
||||
// Company Id Cruise Line
|
||||
if (SysId.IsValid(prm.CompanyIdCruiseLine)) filter.Add("CompanyIdCruiseLine", SysId.ToString(prm.CompanyIdCruiseLine));
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.Name)) filter.Add("Name", prm.Name);
|
||||
if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add("NamePartial", prm.NamePartial);
|
||||
|
||||
// Type.
|
||||
if (!StringUtil.IsEmpty(prm.TypePartial)) filter.Add("TypePartial", prm.TypePartial);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Vessel sort columns.
|
||||
public List<String> GetVesselSortColumns (SlmVessel.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Vessel count.
|
||||
public override long GetVesselCount (SlmVessel.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Vessel list.
|
||||
public override List<SlmVessel> GetVesselList (SlmVessel.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmVessel>> GetVesselList_Mobile (SlmVessel.Params prmVessel, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmVessel> companies = new List<SlmVessel>();
|
||||
String fn = GetType().Name + ".GetVesselList_Mobile";
|
||||
|
||||
// Vessel columns.
|
||||
List<SlmVessel.Column> columns = new List<SlmVessel.Column>()
|
||||
{
|
||||
SlmVessel.Column.Id,
|
||||
SlmVessel.Column.VesselCategory,
|
||||
SlmVessel.Column.Name,
|
||||
SlmVessel.Column.VesselType,
|
||||
SlmVessel.Column.Owner,
|
||||
SlmVessel.Column.Abbreviation,
|
||||
SlmVessel.Column.Length,
|
||||
SlmVessel.Column.Breadth,
|
||||
SlmVessel.Column.Draught,
|
||||
SlmVessel.Column.Depth,
|
||||
SlmVessel.Column.Displacement,
|
||||
SlmVessel.Column.CompanyIdCruiseLine,
|
||||
SlmVessel.Column.Notes,
|
||||
SlmVessel.Column.Flags,
|
||||
SlmVessel.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteVesselQuery_Mobile(columns, prmVessel, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmVessel.Column.Id);
|
||||
Slm.VesselCategory vesselCategory = EnumUtil.ParseEnum(itemData.GetValue(SlmVessel.Column.VesselCategory), Slm.VesselCategory.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmVessel.Column.Id);
|
||||
// Create item.
|
||||
SlmVessel_Mobile vessel = new SlmVessel_Mobile(Site, id, vesselCategory, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmVessel.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmVessel.Column.VesselCategory: vessel.VesselCategory; break;
|
||||
case SlmVessel.Column.Name: vessel.Name = value; break;
|
||||
case SlmVessel.Column.VesselType: vessel.VesselType = value; break;
|
||||
case SlmVessel.Column.Owner: vessel.Owner = value; break;
|
||||
case SlmVessel.Column.Abbreviation: vessel.Abbreviation= value; break;
|
||||
case SlmVessel.Column.Length: vessel.Length = itemData.GetDecimalValue(column); break;
|
||||
case SlmVessel.Column.Breadth: vessel.Breadth = itemData.GetDecimalValue(column); break;
|
||||
case SlmVessel.Column.Depth: vessel.Depth = itemData.GetDecimalValue(column); break;
|
||||
case SlmVessel.Column.Displacement: vessel.Displacement = itemData.GetDecimalValue(column); break;
|
||||
case SlmVessel.Column.CompanyIdCruiseLine: vessel.CompanyIdCruiseLine = itemData.GetIdValue(column); break;
|
||||
case SlmVessel.Column.Notes: vessel.Notes = value; break;
|
||||
case SlmVessel.Column.Status: vessel.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(vessel);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Vessel query execution.
|
||||
public override DbResultSet ExecuteVesselQuery (List<ColumnDfn> columns, SlmVessel.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteVesselQuery_Mobile (List<SlmVessel.Column> vesselColumns, SlmVessel.Params prmVessel, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmVessel.Column column in vesselColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetVesselRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetVesselQueryFilter_Mobile(prmVessel), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetVesselRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Vessel;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetVesselDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmVessel.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Vessel Category.
|
||||
case SlmVessel.Column.VesselCategory_Desc:
|
||||
{
|
||||
Slm.VesselCategory vesselCategory = (Slm.VesselCategory)values.GetValue(column.DataName).AsLong();
|
||||
value = new DataValue(vesselCategories.GetDescForType((int)vesselCategory, vesselCategory.ToString()));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmVessel.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmVessel.Column.Status_Desc:
|
||||
case SlmVessel.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmVessel.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmVessel.Column.Status_Ind)
|
||||
value = new DataValue(SlmVessel.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmBerthingMgr_Mobile : SlmBerthingMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmBerthingMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,345 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmChecklistMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// C h e c k l i s t I t e m s
|
||||
//*******************************************************************
|
||||
// ChecklistItem exists.
|
||||
public override bool ChecklistItemExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create ChecklistItem.
|
||||
public override SlmChecklistItem CreateChecklistItem (SysId checklistId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmChecklistItem_Mobile(Site, null, checklistId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get ChecklistItem.
|
||||
public override SlmChecklistItem GetChecklistItem (SlmChecklistItem.Params prmChecklistItem)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmChecklistItem GetChecklistItemById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate ChecklistItem.
|
||||
public override bool IsValidChecklistItemData (SlmChecklistItem.Data data, SlmChecklistItem.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidChecklistItemData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert ChecklistItem.
|
||||
public override bool InsertChecklistItem (SlmChecklistItem checklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidChecklistItem(checklistItem)) return false;
|
||||
if (SysId.IsValid(checklistItem.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update ChecklistItem.
|
||||
public override bool UpdateChecklistItem (SlmChecklistItem checklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidChecklistItem(checklistItem)) return false;
|
||||
if (!SysId.IsValid(checklistItem.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete ChecklistItem.
|
||||
public override bool ChecklistItemCanBeDeleted (SlmChecklistItem checklistItem)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.ChecklistItemCanBeDeleted(checklistItem)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteChecklistItem (SlmChecklistItem checklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!ChecklistItemCanBeDeleted(checklistItem)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement checklistItemElement, SlmChecklistItem checklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
checklistItemElement.AppendElement("Id", SysId.ToString(checklistItem.Id));
|
||||
checklistItemElement.AppendElement("ChecklistId", SysId.ToString(checklistItem.ChecklistId));
|
||||
checklistItemElement.AppendElement("Seq", checklistItem.Seq.ToString("N3"));
|
||||
checklistItemElement.AppendElement("Name", checklistItem.Name);
|
||||
checklistItemElement.AppendElement("ChecklistItemType", checklistItem.ChecklistItemType.ToString());
|
||||
checklistItemElement.AppendElement("Length", checklistItem.Length.ToString("N3"));
|
||||
checklistItemElement.AppendElement("Decimals", checklistItem.Decimals.ToString("N3"));
|
||||
checklistItemElement.AppendElement("ResponseFmt", checklistItem.ResponseFmt);
|
||||
checklistItemElement.AppendElement("ValidValues", checklistItem.ValidValues);
|
||||
checklistItemElement.AppendElement("DefaultValue", checklistItem.DefaultValue);
|
||||
checklistItemElement.AppendElement("Notes", checklistItem.Notes);
|
||||
checklistItemElement.AppendElement("Status", SacsSystem.GetStatusCode(checklistItem.Status));
|
||||
checklistItemElement.AppendElement("Flags", checklistItem.Flags.ToString());
|
||||
if (!SysId.IsValid(checklistItem.Id))
|
||||
{
|
||||
checklistItemElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
checklistItemElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
checklistItemElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
checklistItemElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
checklistItemElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
checklistItemElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement checklistItemElement, SlmChecklistItem checklistItem)
|
||||
{
|
||||
//checklistItem.Id = new SysId(StringUtil.ToInt(checklistItemElement.GetChildText("Id")));
|
||||
//checklistItem.ChecklistId = new SysId(StringUtil.ToInt(checklistItemElement.GetChildText("ChecklistId")));
|
||||
checklistItem.Seq = StringUtil.ToShort(checklistItemElement.GetChildText("Seq"));
|
||||
//checklistItem.Name = checklistItemElement.GetChildText("Name");
|
||||
//checklistItem.ChecklistItemType = EnumUtil.ParseEnum(checklistItemElement.GetChildText("Type"), Slm.ChecklistItemType.Unknown);
|
||||
//checklistItem.Length = StringUtil.ToDecimal(checklistItemElement.GetChildText("Length"));
|
||||
//checklistItem.Decimals = StringUtil.ToDecimal(checklistItemElement.GetChildText("Decimals"));
|
||||
//checklistItem.ResponseFmt = checklistItemElement.GetChildText("ResponseFmt");
|
||||
//checklistItem.ValidValues= checklistItemElement.GetChildText("ValidValues");
|
||||
//checklistItem.DefaultValue = checklistItemElement.GetChildText("DefaultValue");
|
||||
checklistItem.Notes = checklistItemElement.GetChildText("Notes");
|
||||
checklistItem.Status = SacsSystem.GetStatusForCode(checklistItemElement.GetChildText("Status"));
|
||||
checklistItem.SetCreateStamp(DateUtil.ParseXmlDateTime(checklistItemElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(checklistItemElement.GetChildText("CreateBy"))), checklistItemElement.GetChildText("CreateHost"));
|
||||
checklistItem.SetUpdateStamp(DateUtil.ParseXmlDateTime(checklistItemElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(checklistItemElement.GetChildText("UpdateBy"))), checklistItemElement.GetChildText("UpdateHost"));
|
||||
checklistItem.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ChecklistItem column definitions.
|
||||
public override ColumnDfn GetChecklistItemColumnDfn (SlmChecklistItem.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ChecklistItem query filter.
|
||||
public override List<string> GetChecklistItemQueryFilter (SlmChecklistItem.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetChecklistItemQueryFilter_Mobile (SlmChecklistItem.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// ChecklistItem Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Checklist Id.
|
||||
if (SysId.IsValid(prm.ChecklistId)) filter.Add("ChecklistId", SysId.ToString(prm.ChecklistId));
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.Name)) filter.Add("Name", prm.Name);
|
||||
if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add("NamePartial", prm.NamePartial);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// ChecklistItem sort columns.
|
||||
public List<String> GetChecklistItemSortColumns (SlmChecklistItem.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ChecklistItem count.
|
||||
public override long GetChecklistItemCount (SlmChecklistItem.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ChecklistItem list.
|
||||
public override List<SlmChecklistItem> GetChecklistItemList (SlmChecklistItem.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmChecklistItem>> GetChecklistItemList_Mobile (SlmChecklistItem.Params prmChecklistItem, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmChecklistItem> companies = new List<SlmChecklistItem>();
|
||||
String fn = GetType().Name + ".GetChecklistItemList_Mobile";
|
||||
|
||||
// ChecklistItem columns.
|
||||
List<SlmChecklistItem.Column> columns = new List<SlmChecklistItem.Column>()
|
||||
{
|
||||
SlmChecklistItem.Column.Id,
|
||||
SlmChecklistItem.Column.ChecklistId,
|
||||
SlmChecklistItem.Column.Seq,
|
||||
SlmChecklistItem.Column.Name,
|
||||
SlmChecklistItem.Column.ChecklistItemType,
|
||||
SlmChecklistItem.Column.Length,
|
||||
SlmChecklistItem.Column.Decimals,
|
||||
SlmChecklistItem.Column.ResponseFmt,
|
||||
SlmChecklistItem.Column.ValidValues,
|
||||
SlmChecklistItem.Column.DefaultValue,
|
||||
SlmChecklistItem.Column.Notes,
|
||||
SlmChecklistItem.Column.Flags,
|
||||
SlmChecklistItem.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteChecklistItemQuery_Mobile(columns, prmChecklistItem, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmChecklistItem.Column.Id);
|
||||
SysId checklistId = itemData.GetIdValue(SlmChecklistItem.Column.ChecklistId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmChecklistItem.Column.Id);
|
||||
// Create item.
|
||||
SlmChecklistItem_Mobile checklistItem = new SlmChecklistItem_Mobile(Site, id, checklistId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmChecklistItem.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmChecklistItem.Column.ChecklistItemCategory: checklistItem.ChecklistItemCategory; break;
|
||||
//case SlmChecklistItem.Column.ChecklistId: checklistItem.ChecklistId = itemData.GetIdValue(column); break;
|
||||
case SlmChecklistItem.Column.Seq: checklistItem.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
//case SlmChecklistItem.Column.Name: checklistItem.Name = value; break;
|
||||
//case SlmChecklistItem.Column.ChecklistItemType: checklistItem.ChecklistItemType = value; break;
|
||||
//case SlmChecklistItem.Column.Length: checklistItem.Length = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
//case SlmChecklistItem.Column.Decimals: checklistItem.Decimals= StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
//case SlmChecklistItem.Column.ResponseFmt: checklistItem.ResponseFmt = value; break;
|
||||
//case SlmChecklistItem.Column.ValidValues: checklistItem.ValidValues= value; break;
|
||||
//case SlmChecklistItem.Column.DefaultValue: checklistItem.DefaultValue = itemData.GetDecimalValue(column); break;
|
||||
case SlmChecklistItem.Column.Notes: checklistItem.Notes = value; break;
|
||||
case SlmChecklistItem.Column.Status: checklistItem.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(checklistItem);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ChecklistItem query execution.
|
||||
public override DbResultSet ExecuteChecklistItemQuery (List<ColumnDfn> columns, SlmChecklistItem.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteChecklistItemQuery_Mobile (List<SlmChecklistItem.Column> checklistItemColumns, SlmChecklistItem.Params prmChecklistItem, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmChecklistItem.Column column in checklistItemColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetChecklistItemRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetChecklistItemQueryFilter_Mobile(prmChecklistItem), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetChecklistItemRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.ChecklistItem;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetChecklistItemDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmChecklistItem.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// ChecklistItem Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmChecklistItem.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmChecklistItem.Column.Status_Desc:
|
||||
case SlmChecklistItem.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmChecklistItem.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmChecklistItem.Column.Status_Ind)
|
||||
value = new DataValue(SlmChecklistItem.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,317 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmChecklistMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// C h e c k l i s t s
|
||||
//*******************************************************************
|
||||
// Checklist exists.
|
||||
public override bool ChecklistExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Checklist.
|
||||
public override SlmChecklist CreateChecklist ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmChecklist_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Checklist.
|
||||
public override SlmChecklist GetChecklist (SlmChecklist.Params prmChecklist)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmChecklist GetChecklistById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Checklist.
|
||||
public override bool IsValidChecklistData (SlmChecklist.Data data, SlmChecklist.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidChecklistData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Checklist.
|
||||
public override bool InsertChecklist (SlmChecklist checklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidChecklist(checklist)) return false;
|
||||
if (SysId.IsValid(checklist.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Checklist.
|
||||
public override bool UpdateChecklist (SlmChecklist checklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidChecklist(checklist)) return false;
|
||||
if (!SysId.IsValid(checklist.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Checklist.
|
||||
public override bool ChecklistCanBeDeleted (SlmChecklist checklist)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.ChecklistCanBeDeleted(checklist)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteChecklist (SlmChecklist checklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!ChecklistCanBeDeleted(checklist)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement checklistElement, SlmChecklist checklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
checklistElement.AppendElement("Id", SysId.ToString(checklist.Id));
|
||||
checklistElement.AppendElement("Name", checklist.Name);
|
||||
checklistElement.AppendElement("Version", checklist.Version.ToString("N3"));
|
||||
checklistElement.AppendElement("PrevChecklistId", checklist.PrevChecklistId.ToString("N3"));
|
||||
checklistElement.AppendElement("Notes", checklist.Notes);
|
||||
checklistElement.AppendElement("Status", SacsSystem.GetStatusCode(checklist.Status));
|
||||
checklistElement.AppendElement("Flags", checklist.Flags.ToString());
|
||||
if (!SysId.IsValid(checklist.Id))
|
||||
{
|
||||
checklistElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
checklistElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
checklistElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
checklistElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
checklistElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
checklistElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement checklistElement, SlmChecklist checklist)
|
||||
{
|
||||
//checklist.Id = new SysId(StringUtil.ToInt(checklistElement.GetChildText("Id")));
|
||||
//checklist.Name = checklistElement.GetChildText("Name");
|
||||
checklist.Version = StringUtil.ToShort(checklistElement.GetChildText("Version"));
|
||||
checklist.PrevChecklistId = StringUtil.ToInt(checklistElement.GetChildText("PrevChecklistId"));
|
||||
checklist.Notes = checklistElement.GetChildText("Notes");
|
||||
checklist.Status = SacsSystem.GetStatusForCode(checklistElement.GetChildText("Status"));
|
||||
checklist.SetCreateStamp(DateUtil.ParseXmlDateTime(checklistElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(checklistElement.GetChildText("CreateBy"))), checklistElement.GetChildText("CreateHost"));
|
||||
checklist.SetUpdateStamp(DateUtil.ParseXmlDateTime(checklistElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(checklistElement.GetChildText("UpdateBy"))), checklistElement.GetChildText("UpdateHost"));
|
||||
checklist.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Checklist column definitions.
|
||||
public override ColumnDfn GetChecklistColumnDfn (SlmChecklist.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Checklist query filter.
|
||||
public override List<string> GetChecklistQueryFilter (SlmChecklist.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetChecklistQueryFilter_Mobile (SlmChecklist.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Checklist Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.Name)) filter.Add("Name", prm.Name);
|
||||
if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add("NamePartial", prm.NamePartial);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Checklist sort columns.
|
||||
public List<String> GetChecklistSortColumns (SlmChecklist.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Checklist count.
|
||||
public override long GetChecklistCount (SlmChecklist.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Checklist list.
|
||||
public override List<SlmChecklist> GetChecklistList (SlmChecklist.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmChecklist>> GetChecklistList_Mobile (SlmChecklist.Params prmChecklist, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmChecklist> companies = new List<SlmChecklist>();
|
||||
String fn = GetType().Name + ".GetChecklistList_Mobile";
|
||||
|
||||
// Checklist columns.
|
||||
List<SlmChecklist.Column> columns = new List<SlmChecklist.Column>()
|
||||
{
|
||||
SlmChecklist.Column.Id,
|
||||
SlmChecklist.Column.Name,
|
||||
SlmChecklist.Column.Version,
|
||||
SlmChecklist.Column.PrevChecklistId,
|
||||
SlmChecklist.Column.Notes,
|
||||
SlmChecklist.Column.Flags,
|
||||
SlmChecklist.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteChecklistQuery_Mobile(columns, prmChecklist, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmChecklist.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmChecklist.Column.Id);
|
||||
// Create item.
|
||||
SlmChecklist_Mobile checklist = new SlmChecklist_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmChecklist.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmChecklist.Column.ChecklistCategory: checklist.ChecklistCategory; break;
|
||||
//case SlmChecklist.Column.Name: checklist.Name = value; break;
|
||||
case SlmChecklist.Column.Version: checklist.Version = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmChecklist.Column.PrevChecklistId: checklist.PrevChecklistId = itemData.GetIntValue(column); break;
|
||||
case SlmChecklist.Column.Notes: checklist.Notes = value; break;
|
||||
case SlmChecklist.Column.Status: checklist.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(checklist);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Checklist query execution.
|
||||
public override DbResultSet ExecuteChecklistQuery (List<ColumnDfn> columns, SlmChecklist.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteChecklistQuery_Mobile (List<SlmChecklist.Column> checklistColumns, SlmChecklist.Params prmChecklist, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmChecklist.Column column in checklistColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetChecklistRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetChecklistQueryFilter_Mobile(prmChecklist), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetChecklistRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Checklist;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetChecklistDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmChecklist.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Checklist Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmChecklist.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmChecklist.Column.Status_Desc:
|
||||
case SlmChecklist.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmChecklist.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmChecklist.Column.Status_Ind)
|
||||
value = new DataValue(SlmChecklist.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,351 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmChecklistMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// I t e m C h e c k l i s t I t e m s
|
||||
//*******************************************************************
|
||||
// ItemChecklistItem exists.
|
||||
public override bool ItemChecklistItemExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create ItemChecklistItem.
|
||||
public override SlmItemChecklistItem CreateItemChecklistItem (SysId itemChecklistId,SysId checklistItemId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmItemChecklistItem_Mobile(Site, null, itemChecklistId, checklistItemId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get ItemChecklistItem.
|
||||
public override SlmItemChecklistItem GetItemChecklistItem (SlmItemChecklistItem.Params prmItemChecklistItem)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmItemChecklistItem GetItemChecklistItemById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate ItemChecklistItem.
|
||||
public override bool IsValidItemChecklistItemData (SlmItemChecklistItem.Data data, SlmItemChecklistItem.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidItemChecklistItemData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert ItemChecklistItem.
|
||||
public override bool InsertItemChecklistItem (SlmItemChecklistItem itemChecklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidItemChecklistItem(itemChecklistItem)) return false;
|
||||
if (SysId.IsValid(itemChecklistItem.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update ItemChecklistItem.
|
||||
public override bool UpdateItemChecklistItem (SlmItemChecklistItem itemChecklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidItemChecklistItem(itemChecklistItem)) return false;
|
||||
if (!SysId.IsValid(itemChecklistItem.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete ItemChecklistItem.
|
||||
public override bool ItemChecklistItemCanBeDeleted (SlmItemChecklistItem itemChecklistItem)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.ItemChecklistItemCanBeDeleted(itemChecklistItem)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteItemChecklistItem (SlmItemChecklistItem itemChecklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!ItemChecklistItemCanBeDeleted(itemChecklistItem)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement itemChecklistItemElement, SlmItemChecklistItem itemChecklistItem, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
itemChecklistItemElement.AppendElement("Id", SysId.ToString(itemChecklistItem.Id));
|
||||
itemChecklistItemElement.AppendElement("ItemChecklistId", SysId.ToString(itemChecklistItem.ItemChecklistId));
|
||||
itemChecklistItemElement.AppendElement("ChecklistItemId", SysId.ToString(itemChecklistItem.ChecklistItemId));
|
||||
itemChecklistItemElement.AppendElement("Seq", itemChecklistItem.Seq.ToString("N3"));
|
||||
itemChecklistItemElement.AppendElement("Name", itemChecklistItem.Name);
|
||||
itemChecklistItemElement.AppendElement("ItemChecklistItemType", itemChecklistItem.ItemChecklistItemType.ToString());
|
||||
itemChecklistItemElement.AppendElement("Value", itemChecklistItem.Value);
|
||||
itemChecklistItemElement.AppendElement("Length", itemChecklistItem.Length.ToString("N3"));
|
||||
itemChecklistItemElement.AppendElement("Decimals", itemChecklistItem.Decimals.ToString("N3"));
|
||||
itemChecklistItemElement.AppendElement("ResponseFmt", itemChecklistItem.ResponseFmt);
|
||||
itemChecklistItemElement.AppendElement("ValidValues", itemChecklistItem.ValidValues);
|
||||
itemChecklistItemElement.AppendElement("DefaultValue", itemChecklistItem.DefaultValue);
|
||||
itemChecklistItemElement.AppendElement("Notes", itemChecklistItem.Notes);
|
||||
itemChecklistItemElement.AppendElement("Status", SacsSystem.GetStatusCode(itemChecklistItem.Status));
|
||||
itemChecklistItemElement.AppendElement("Flags", itemChecklistItem.Flags.ToString());
|
||||
if (!SysId.IsValid(itemChecklistItem.Id))
|
||||
{
|
||||
itemChecklistItemElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
itemChecklistItemElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
itemChecklistItemElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
itemChecklistItemElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
itemChecklistItemElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
itemChecklistItemElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement itemChecklistItemElement, SlmItemChecklistItem itemChecklistItem)
|
||||
{
|
||||
//itemChecklistItem.Id = new SysId(StringUtil.ToInt(itemChecklistItemElement.GetChildText("Id")));
|
||||
//itemChecklistItem.ChecklistId = new SysId(StringUtil.ToInt(itemChecklistItemElement.GetChildText("ChecklistId")));
|
||||
itemChecklistItem.Seq = StringUtil.ToShort(itemChecklistItemElement.GetChildText("Seq"));
|
||||
//itemChecklistItem.Name = itemChecklistItemElement.GetChildText("Name");
|
||||
//itemChecklistItem.ItemChecklistItemType = EnumUtil.ParseEnum(itemChecklistItemElement.GetChildText("Type"), Slm.ItemChecklistItemType.Unknown);
|
||||
//itemChecklistItem.Length = StringUtil.ToDecimal(itemChecklistItemElement.GetChildText("Length"));
|
||||
//itemChecklistItem.Decimals = StringUtil.ToDecimal(itemChecklistItemElement.GetChildText("Decimals"));
|
||||
//itemChecklistItem.ResponseFmt = itemChecklistItemElement.GetChildText("ResponseFmt");
|
||||
//itemChecklistItem.ValidValues= itemChecklistItemElement.GetChildText("ValidValues");
|
||||
//itemChecklistItem.DefaultValue = itemChecklistItemElement.GetChildText("DefaultValue");
|
||||
itemChecklistItem.Notes = itemChecklistItemElement.GetChildText("Notes");
|
||||
itemChecklistItem.Status = SacsSystem.GetStatusForCode(itemChecklistItemElement.GetChildText("Status"));
|
||||
itemChecklistItem.SetCreateStamp(DateUtil.ParseXmlDateTime(itemChecklistItemElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(itemChecklistItemElement.GetChildText("CreateBy"))), itemChecklistItemElement.GetChildText("CreateHost"));
|
||||
itemChecklistItem.SetUpdateStamp(DateUtil.ParseXmlDateTime(itemChecklistItemElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(itemChecklistItemElement.GetChildText("UpdateBy"))), itemChecklistItemElement.GetChildText("UpdateHost"));
|
||||
itemChecklistItem.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklistItem column definitions.
|
||||
public override ColumnDfn GetItemChecklistItemColumnDfn (SlmItemChecklistItem.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklistItem query filter.
|
||||
public override List<string> GetItemChecklistItemQueryFilter (SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetItemChecklistItemQueryFilter_Mobile (SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// ItemChecklistItem Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Item Checklist Id.
|
||||
if (SysId.IsValid(prm.ItemChecklistId)) filter.Add("ItemChecklistId", SysId.ToString(prm.ItemChecklistId));
|
||||
|
||||
// Checklist Item Id.
|
||||
if (SysId.IsValid(prm.ChecklistItemId)) filter.Add("ChecklistItemId", SysId.ToString(prm.ChecklistItemId));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// ItemChecklistItem sort columns.
|
||||
public List<String> GetItemChecklistItemSortColumns (SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklistItem count.
|
||||
public override long GetItemChecklistItemCount (SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklistItem list.
|
||||
public override List<SlmItemChecklistItem> GetItemChecklistItemList (SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmItemChecklistItem>> GetItemChecklistItemList_Mobile (SlmItemChecklistItem.Params prmItemChecklistItem, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmItemChecklistItem> companies = new List<SlmItemChecklistItem>();
|
||||
String fn = GetType().Name + ".GetItemChecklistItemList_Mobile";
|
||||
|
||||
// ItemChecklistItem columns.
|
||||
List<SlmItemChecklistItem.Column> columns = new List<SlmItemChecklistItem.Column>()
|
||||
{
|
||||
SlmItemChecklistItem.Column.Id,
|
||||
SlmItemChecklistItem.Column.ItemChecklistId,
|
||||
SlmItemChecklistItem.Column.ChecklistItemId,
|
||||
SlmItemChecklistItem.Column.Seq,
|
||||
SlmItemChecklistItem.Column.Name,
|
||||
SlmItemChecklistItem.Column.ItemChecklistItemType,
|
||||
SlmItemChecklistItem.Column.Value,
|
||||
SlmItemChecklistItem.Column.Length,
|
||||
SlmItemChecklistItem.Column.Decimals,
|
||||
SlmItemChecklistItem.Column.ResponseFmt,
|
||||
SlmItemChecklistItem.Column.ValidValues,
|
||||
SlmItemChecklistItem.Column.DefaultValue,
|
||||
SlmItemChecklistItem.Column.Notes,
|
||||
SlmItemChecklistItem.Column.Flags,
|
||||
SlmItemChecklistItem.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteItemChecklistItemQuery_Mobile(columns, prmItemChecklistItem, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmItemChecklistItem.Column.Id);
|
||||
SysId itemChecklistId = itemData.GetIdValue(SlmItemChecklistItem.Column.ItemChecklistId);
|
||||
SysId checklistItemId = itemData.GetIdValue(SlmItemChecklistItem.Column.ChecklistItemId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmItemChecklistItem.Column.Id);
|
||||
// Create item.
|
||||
SlmItemChecklistItem_Mobile itemChecklistItem = new SlmItemChecklistItem_Mobile(Site, id, itemChecklistId, checklistItemId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmItemChecklistItem.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmItemChecklistItem.Column.ItemChecklistItemCategory: itemChecklistItem.ItemChecklistItemCategory; break;
|
||||
//case SlmItemChecklistItem.Column.ItemChecklistId: itemChecklistItem.ItemChecklistId = itemData.GetIdValue(column); break;
|
||||
//case SlmItemChecklistItem.Column.ChecklistItemId: itemChecklistItem.ChecklistItemId = itemData.GetIdValue(column); break;
|
||||
case SlmItemChecklistItem.Column.Seq: itemChecklistItem.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmItemChecklistItem.Column.Name: itemChecklistItem.Name = value; break;
|
||||
case SlmItemChecklistItem.Column.ItemChecklistItemType: itemChecklistItem.ItemChecklistItemType = EnumUtil.ParseEnum(value, Slm.ChecklistItemType.Unknown); break;
|
||||
case SlmItemChecklistItem.Column.Value: itemChecklistItem.Value = value; break;
|
||||
case SlmItemChecklistItem.Column.Length: itemChecklistItem.Length = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmItemChecklistItem.Column.Decimals: itemChecklistItem.Decimals= StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmItemChecklistItem.Column.ResponseFmt: itemChecklistItem.ResponseFmt = value; break;
|
||||
case SlmItemChecklistItem.Column.ValidValues: itemChecklistItem.ValidValues= value; break;
|
||||
case SlmItemChecklistItem.Column.DefaultValue: itemChecklistItem.DefaultValue = value; break;
|
||||
case SlmItemChecklistItem.Column.Notes: itemChecklistItem.Notes = value; break;
|
||||
case SlmItemChecklistItem.Column.Status: itemChecklistItem.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(itemChecklistItem);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklistItem query execution.
|
||||
public override DbResultSet ExecuteItemChecklistItemQuery (List<ColumnDfn> columns, SlmItemChecklistItem.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteItemChecklistItemQuery_Mobile (List<SlmItemChecklistItem.Column> itemChecklistItemColumns, SlmItemChecklistItem.Params prmItemChecklistItem, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmItemChecklistItem.Column column in itemChecklistItemColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetItemChecklistItemRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetItemChecklistItemQueryFilter_Mobile(prmItemChecklistItem), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetItemChecklistItemRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.ItemChecklistItem;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetItemChecklistItemDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmItemChecklistItem.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// ItemChecklistItem Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmItemChecklistItem.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmItemChecklistItem.Column.Status_Desc:
|
||||
case SlmItemChecklistItem.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmItemChecklistItem.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmItemChecklistItem.Column.Status_Ind)
|
||||
value = new DataValue(SlmItemChecklistItem.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,335 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmChecklistMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// I t e m C h e c k l i s t s
|
||||
//*******************************************************************
|
||||
// ItemChecklist exists.
|
||||
public override bool ItemChecklistExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create ItemChecklist.
|
||||
public override SlmItemChecklist CreateItemChecklist (SysId itemId, SysId checklistId, Slm.ChecklistItemType itemType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmItemChecklist_Mobile(Site, null, itemId, checklistId, itemType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get ItemChecklist.
|
||||
public override SlmItemChecklist GetItemChecklist (SlmItemChecklist.Params prmItemChecklist)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmItemChecklist GetItemChecklistById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate ItemChecklist.
|
||||
public override bool IsValidItemChecklistData (SlmItemChecklist.Data data, SlmItemChecklist.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidItemChecklistData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert ItemChecklist.
|
||||
public override bool InsertItemChecklist (SlmItemChecklist itemChecklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidItemChecklist(itemChecklist)) return false;
|
||||
if (SysId.IsValid(itemChecklist.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update ItemChecklist.
|
||||
public override bool UpdateItemChecklist (SlmItemChecklist itemChecklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidItemChecklist(itemChecklist)) return false;
|
||||
if (!SysId.IsValid(itemChecklist.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete ItemChecklist.
|
||||
public override bool ItemChecklistCanBeDeleted (SlmItemChecklist itemChecklist)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.ItemChecklistCanBeDeleted(itemChecklist)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteItemChecklist (SlmItemChecklist itemChecklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!ItemChecklistCanBeDeleted(itemChecklist)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement itemChecklistElement, SlmItemChecklist itemChecklist, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
itemChecklistElement.AppendElement("Id", SysId.ToString(itemChecklist.Id));
|
||||
itemChecklistElement.AppendElement("ItemChecklistType", itemChecklist.ItemType.ToString());
|
||||
itemChecklistElement.AppendElement("ItemId", SysId.ToString(itemChecklist.ItemId));
|
||||
itemChecklistElement.AppendElement("ChecklistId", SysId.ToString(itemChecklist.ChecklistId));
|
||||
itemChecklistElement.AppendElement("Name", itemChecklist.Name);
|
||||
itemChecklistElement.AppendElement("Actioned", DateUtil.FormatXmlDateTime(itemChecklist.Actioned));
|
||||
itemChecklistElement.AppendElement("Notes", itemChecklist.Notes);
|
||||
itemChecklistElement.AppendElement("Status", SacsSystem.GetStatusCode(itemChecklist.Status));
|
||||
itemChecklistElement.AppendElement("Flags", itemChecklist.Flags.ToString());
|
||||
if (!SysId.IsValid(itemChecklist.Id))
|
||||
{
|
||||
itemChecklistElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
itemChecklistElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
itemChecklistElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
itemChecklistElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
itemChecklistElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
itemChecklistElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement itemChecklistElement, SlmItemChecklist itemChecklist)
|
||||
{
|
||||
//itemChecklist.Id = new SysId(StringUtil.ToInt(itemChecklistElement.GetChildText("Id")));
|
||||
//itemChecklist.ItemType = EnumUtil.ParseEnum(itemChecklistElement.GetChildText("Type"), Slm.ChecklistItemType.Unknown);
|
||||
//itemChecklist.ItemId = new SysId(StringUtil.ToInt(itemChecklistElement.GetChildText("ItemId")));
|
||||
//itemChecklist.ChecklistId = new SysId(StringUtil.ToInt(itemChecklistElement.GetChildText("ChecklistId")));
|
||||
itemChecklist.Name = itemChecklistElement.GetChildText("Name");
|
||||
itemChecklist.Actioned = DateUtil.ParseXmlDateTime(itemChecklistElement.GetChildText("Actioned"));
|
||||
itemChecklist.Notes = itemChecklistElement.GetChildText("Notes");
|
||||
itemChecklist.Status = SacsSystem.GetStatusForCode(itemChecklistElement.GetChildText("Status"));
|
||||
itemChecklist.SetCreateStamp(DateUtil.ParseXmlDateTime(itemChecklistElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(itemChecklistElement.GetChildText("CreateBy"))), itemChecklistElement.GetChildText("CreateHost"));
|
||||
itemChecklist.SetUpdateStamp(DateUtil.ParseXmlDateTime(itemChecklistElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(itemChecklistElement.GetChildText("UpdateBy"))), itemChecklistElement.GetChildText("UpdateHost"));
|
||||
itemChecklist.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklist column definitions.
|
||||
public override ColumnDfn GetItemChecklistColumnDfn (SlmItemChecklist.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklist query filter.
|
||||
public override List<string> GetItemChecklistQueryFilter (SlmItemChecklist.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetItemChecklistQueryFilter_Mobile (SlmItemChecklist.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// ItemChecklist Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Item type:
|
||||
if (prm.ItemType!= 0) filter.Add("ItemType", prm.ItemType.ToString());
|
||||
|
||||
// Item Id.
|
||||
if (SysId.IsValid(prm.ItemId)) filter.Add("ItemId", SysId.ToString(prm.ItemId));
|
||||
|
||||
// Checklist Id.
|
||||
if (SysId.IsValid(prm.ChecklistId)) filter.Add("ChecklistId", SysId.ToString(prm.ChecklistId));
|
||||
|
||||
// Active Only.
|
||||
if (prm.ActiveOnly != false) filter.Add("ActiveOnly", prm.ActiveOnly.ToString());
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// ItemChecklist sort columns.
|
||||
public List<String> GetItemChecklistSortColumns (SlmItemChecklist.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklist count.
|
||||
public override long GetItemChecklistCount (SlmItemChecklist.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklist list.
|
||||
public override List<SlmItemChecklist> GetItemChecklistList (SlmItemChecklist.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmItemChecklist>> GetItemChecklistList_Mobile (SlmItemChecklist.Params prmItemChecklist, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmItemChecklist> companies = new List<SlmItemChecklist>();
|
||||
String fn = GetType().Name + ".GetItemChecklistList_Mobile";
|
||||
|
||||
// ItemChecklist columns.
|
||||
List<SlmItemChecklist.Column> columns = new List<SlmItemChecklist.Column>()
|
||||
{
|
||||
SlmItemChecklist.Column.Id,
|
||||
SlmItemChecklist.Column.ItemType,
|
||||
SlmItemChecklist.Column.ItemId,
|
||||
SlmItemChecklist.Column.ChecklistId,
|
||||
SlmItemChecklist.Column.Name,
|
||||
SlmItemChecklist.Column.Actioned,
|
||||
SlmItemChecklist.Column.Notes,
|
||||
SlmItemChecklist.Column.Flags,
|
||||
SlmItemChecklist.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteItemChecklistQuery_Mobile(columns, prmItemChecklist, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmItemChecklist.Column.Id);
|
||||
SysId itemId = itemData.GetIdValue(SlmItemChecklist.Column.ItemId);
|
||||
SysId checklistId = itemData.GetIdValue(SlmItemChecklist.Column.ChecklistId);
|
||||
Slm.ChecklistItemType itemType = EnumUtil.ParseEnum(itemData.GetValue(SlmItemChecklist.Column.ItemType), Slm.ChecklistItemType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmItemChecklist.Column.Id);
|
||||
// Create item.
|
||||
SlmItemChecklist_Mobile itemChecklist = new SlmItemChecklist_Mobile(Site, id, itemId, checklistId, itemType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmItemChecklist.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmItemChecklist.Column.ItemType: itemChecklist.ItemType= value; break;
|
||||
//case SlmItemChecklist.Column.ItemId: itemChecklist.ItemId = itemData.GetIdValue(column); break;
|
||||
//case SlmItemChecklist.Column.ChecklistId: itemChecklist.ChecklistId = itemData.GetIdValue(column); break;
|
||||
case SlmItemChecklist.Column.Name: itemChecklist.Name = value; break;
|
||||
case SlmItemChecklist.Column.Actioned: itemChecklist.Actioned = itemData.GetDateTimeValue(column); break;
|
||||
case SlmItemChecklist.Column.Notes: itemChecklist.Notes = value; break;
|
||||
case SlmItemChecklist.Column.Status: itemChecklist.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(itemChecklist);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemChecklist query execution.
|
||||
public override DbResultSet ExecuteItemChecklistQuery (List<ColumnDfn> columns, SlmItemChecklist.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteItemChecklistQuery_Mobile (List<SlmItemChecklist.Column> itemChecklistColumns, SlmItemChecklist.Params prmItemChecklist, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmItemChecklist.Column column in itemChecklistColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetItemChecklistRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetItemChecklistQueryFilter_Mobile(prmItemChecklist), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetItemChecklistRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.ItemChecklist;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetItemChecklistDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmItemChecklist.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// ItemChecklist Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmItemChecklist.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmItemChecklist.Column.Status_Desc:
|
||||
case SlmItemChecklist.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmItemChecklist.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmItemChecklist.Column.Status_Ind)
|
||||
value = new DataValue(SlmItemChecklist.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmChecklistMgr_Mobile : SlmChecklistMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmChecklistMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,359 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o m m o d i t i e s
|
||||
//*******************************************************************
|
||||
// Commodity exists.
|
||||
public override bool CommodityExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Commodity.
|
||||
public override SlmCommodity CreateCommodity ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmCommodity_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Commodity.
|
||||
public override SlmCommodity GetCommodity (SlmCommodity.Params prmCommodity)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmCommodity GetCommodityById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Commodity.
|
||||
public override bool IsValidCommodityData (SlmCommodity.Data data, SlmCommodity.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidCommodityData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Commodity.
|
||||
public override bool InsertCommodity (SlmCommodity commodity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCommodity(commodity)) return false;
|
||||
if (SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Commodity.
|
||||
public override bool UpdateCommodity (SlmCommodity commodity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCommodity(commodity)) return false;
|
||||
if (!SysId.IsValid(commodity.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Commodity.
|
||||
public override bool CommodityCanBeDeleted (SlmCommodity commodity)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.CommodityCanBeDeleted(commodity)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteCommodity (SlmCommodity commodity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!CommodityCanBeDeleted(commodity)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement commodityElement, SlmCommodity commodity, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
commodityElement.AppendElement("Id", SysId.ToString(commodity.Id));
|
||||
commodityElement.AppendElement("Code", commodity.Code);
|
||||
commodityElement.AppendElement("Desc", commodity.Desc);
|
||||
commodityElement.AppendElement("DescFmt", commodity.DescFmt);
|
||||
commodityElement.AppendElement("GenesysCode", commodity.GenesysCode);
|
||||
commodityElement.AppendElement("CustomerId", SysId.ToString(commodity.CustomerId));
|
||||
commodityElement.AppendElement("CustomerCode", commodity.CustomerCode);
|
||||
commodityElement.AppendElement("CustomerDesc", commodity.CustomerDesc);
|
||||
commodityElement.AppendElement("StockUnit", commodity.StockUnit.ToString("N3"));
|
||||
commodityElement.AppendElement("StockColour", commodity.StockColour);
|
||||
commodityElement.AppendElement("StockCalcDate", DateUtil.FormatXmlDateTime(commodity.StockCalcDate));
|
||||
commodityElement.AppendElement("EarliestStockCalcDate", DateUtil.FormatXmlDateTime(commodity.EarliestStockCalcDate));
|
||||
commodityElement.AppendElement("Notes", commodity.Notes);
|
||||
commodityElement.AppendElement("Status", SacsSystem.GetStatusCode(commodity.Status));
|
||||
commodityElement.AppendElement("Flags", commodity.Flags.ToString());
|
||||
if (!SysId.IsValid(commodity.Id))
|
||||
{
|
||||
commodityElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
commodityElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
commodityElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
commodityElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
commodityElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
commodityElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement commodityElement, SlmCommodity commodity)
|
||||
{
|
||||
//commodity.Id = new SysId(StringUtil.ToInt(commodityElement.GetChildText("Id")));
|
||||
commodity.Code = commodityElement.GetChildText("Code");
|
||||
commodity.Desc = commodityElement.GetChildText("Desc");
|
||||
commodity.DescFmt = commodityElement.GetChildText("DescFmt");
|
||||
commodity.GenesysCode = commodityElement.GetChildText("GenesysCode");
|
||||
commodity.CustomerId = new SysId(StringUtil.ToInt(commodityElement.GetChildText("CustomerId")));
|
||||
commodity.CustomerCode = commodityElement.GetChildText("CustomerCode");
|
||||
commodity.CustomerDesc = commodityElement.GetChildText("CustomerDesc");
|
||||
commodity.StockUnit = StringUtil.ToShort(commodityElement.GetChildText("StockUnit"));
|
||||
commodity.StockColour = commodityElement.GetChildText("StockColour");
|
||||
commodity.StockCalcDate = DateUtil.ParseXmlDateTime(commodityElement.GetChildText("StockCalcDate"));
|
||||
commodity.EarliestStockCalcDate = DateUtil.ParseXmlDateTime(commodityElement.GetChildText("EarliestStockCalcDate"));
|
||||
commodity.Notes = commodityElement.GetChildText("Notes");
|
||||
commodity.Status = SacsSystem.GetStatusForCode(commodityElement.GetChildText("Status"));
|
||||
commodity.SetCreateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("CreateBy"))), commodityElement.GetChildText("CreateHost"));
|
||||
commodity.SetUpdateStamp(DateUtil.ParseXmlDateTime(commodityElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(commodityElement.GetChildText("UpdateBy"))), commodityElement.GetChildText("UpdateHost"));
|
||||
commodity.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity column definitions.
|
||||
public override ColumnDfn GetCommodityColumnDfn (SlmCommodity.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity query filter.
|
||||
public override List<string> GetCommodityQueryFilter (SlmCommodity.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetCommodityQueryFilter_Mobile (SlmCommodity.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Commodity Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Commodity Code.
|
||||
if (prm.CommodityCode.Count > 0) filter.Add("CommodityCode", prm.IncludedIds.Concat(","));
|
||||
|
||||
// Code Partial.
|
||||
if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add("CodePartial", prm.CodePartial);
|
||||
|
||||
// Desc Partial.
|
||||
if (!StringUtil.IsEmpty(prm.DescPartial)) filter.Add("DescPartial", prm.DescPartial);
|
||||
|
||||
// Customer Id.
|
||||
if (SysId.IsValid(prm.CustomerId)) filter.Add("CustomerId", SysId.ToString(prm.CustomerId));
|
||||
|
||||
// Customer Code.
|
||||
if (!StringUtil.IsEmpty(prm.CustomerCode)) filter.Add("CustomerCode", prm.CustomerCode);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Commodity sort columns.
|
||||
public List<String> GetCommoditySortColumns (SlmCommodity.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity count.
|
||||
public override long GetCommodityCount (SlmCommodity.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity list.
|
||||
public override List<SlmCommodity> GetCommodityList (SlmCommodity.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmCommodity>> GetCommodityList_Mobile (SlmCommodity.Params prmCommodity, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmCommodity> companies = new List<SlmCommodity>();
|
||||
String fn = GetType().Name + ".GetCommodityList_Mobile";
|
||||
|
||||
// Commodity columns.
|
||||
List<SlmCommodity.Column> columns = new List<SlmCommodity.Column>()
|
||||
{
|
||||
SlmCommodity.Column.Id,
|
||||
SlmCommodity.Column.Code,
|
||||
SlmCommodity.Column.Desc,
|
||||
SlmCommodity.Column.DescFmt,
|
||||
SlmCommodity.Column.GenesysCode,
|
||||
SlmCommodity.Column.CustomerId,
|
||||
SlmCommodity.Column.CustomerCode,
|
||||
SlmCommodity.Column.CustomerDesc,
|
||||
SlmCommodity.Column.StockUnit,
|
||||
SlmCommodity.Column.StockColour,
|
||||
SlmCommodity.Column.StockCalcDate,
|
||||
SlmCommodity.Column.EarliestStockCalcDate,
|
||||
SlmCommodity.Column.Notes,
|
||||
SlmCommodity.Column.Flags,
|
||||
SlmCommodity.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteCommodityQuery_Mobile(columns, prmCommodity, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmCommodity.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmCommodity.Column.Id);
|
||||
// Create item.
|
||||
SlmCommodity_Mobile commodity = new SlmCommodity_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmCommodity.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmCommodity.Column.CommodityCategory: commodity.CommodityCategory; break;
|
||||
case SlmCommodity.Column.Code: commodity.Code = value; break;
|
||||
case SlmCommodity.Column.Desc: commodity.Desc= value; break;
|
||||
case SlmCommodity.Column.DescFmt: commodity.DescFmt = value; break;
|
||||
case SlmCommodity.Column.GenesysCode: commodity.GenesysCode = value; break;
|
||||
case SlmCommodity.Column.CustomerId: commodity.CustomerId = itemData.GetIdValue(column); break;
|
||||
case SlmCommodity.Column.CustomerCode: commodity.CustomerCode = value; break;
|
||||
case SlmCommodity.Column.CustomerDesc: commodity.CustomerDesc = value; break;
|
||||
case SlmCommodity.Column.StockUnit: commodity.StockUnit = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmCommodity.Column.StockColour: commodity.StockColour = value; break;
|
||||
case SlmCommodity.Column.StockCalcDate: commodity.StockCalcDate = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCommodity.Column.EarliestStockCalcDate: commodity.EarliestStockCalcDate = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCommodity.Column.Notes: commodity.Notes = value; break;
|
||||
case SlmCommodity.Column.Status: commodity.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(commodity);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Commodity query execution.
|
||||
public override DbResultSet ExecuteCommodityQuery (List<ColumnDfn> columns, SlmCommodity.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteCommodityQuery_Mobile (List<SlmCommodity.Column> commodityColumns, SlmCommodity.Params prmCommodity, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmCommodity.Column column in commodityColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetCommodityRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetCommodityQueryFilter_Mobile(prmCommodity), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetCommodityRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Commodity;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetCommodityDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmCommodity.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Commodity Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmCommodity.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmCommodity.Column.Status_Desc:
|
||||
case SlmCommodity.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmCommodity.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmCommodity.Column.Status_Ind)
|
||||
value = new DataValue(SlmCommodity.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,333 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// C o m m o d i t y L o c a t i o n s
|
||||
//*******************************************************************
|
||||
// CommodityLocation exists.
|
||||
public override bool CommodityLocationExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create CommodityLocation.
|
||||
public override SlmCommodityLocation CreateCommodityLocation ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmCommodityLocation_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get CommodityLocation.
|
||||
public override SlmCommodityLocation GetCommodityLocation (SlmCommodityLocation.Params prmCommodityLocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmCommodityLocation GetCommodityLocationById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate CommodityLocation.
|
||||
public override bool IsValidCommodityLocationData (SlmCommodityLocation.Data data, SlmCommodityLocation.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidCommodityLocationData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert CommodityLocation.
|
||||
public override bool InsertCommodityLocation (SlmCommodityLocation commodityLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCommodityLocation(commodityLocation)) return false;
|
||||
if (SysId.IsValid(commodityLocation.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update CommodityLocation.
|
||||
public override bool UpdateCommodityLocation (SlmCommodityLocation commodityLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidCommodityLocation(commodityLocation)) return false;
|
||||
if (!SysId.IsValid(commodityLocation.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete CommodityLocation.
|
||||
public override bool CommodityLocationCanBeDeleted (SlmCommodityLocation commodityLocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.CommodityLocationCanBeDeleted(commodityLocation)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteCommodityLocation (SlmCommodityLocation commodityLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!CommodityLocationCanBeDeleted(commodityLocation)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement commodityLocationElement, SlmCommodityLocation commodityLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
commodityLocationElement.AppendElement("Id", SysId.ToString(commodityLocation.Id));
|
||||
commodityLocationElement.AppendElement("CommodityId", SysId.ToString(commodityLocation.CommodityId));
|
||||
commodityLocationElement.AppendElement("LocationId", SysId.ToString(commodityLocation.LocationId));
|
||||
commodityLocationElement.AppendElement("WeighbridgeCode", commodityLocation.WeighbridgeCode);
|
||||
commodityLocationElement.AppendElement("Capacity", commodityLocation.Capacity.ToString("N3"));
|
||||
commodityLocationElement.AppendElement("EffectiveFrom", DateUtil.FormatXmlDateTime(commodityLocation.EffectiveFrom));
|
||||
commodityLocationElement.AppendElement("EffectiveTo", DateUtil.FormatXmlDateTime(commodityLocation.EffectiveTo));
|
||||
commodityLocationElement.AppendElement("Notes", commodityLocation.Notes);
|
||||
commodityLocationElement.AppendElement("Status", SacsSystem.GetStatusCode(commodityLocation.Status));
|
||||
commodityLocationElement.AppendElement("Flags", commodityLocation.Flags.ToString());
|
||||
if (!SysId.IsValid(commodityLocation.Id))
|
||||
{
|
||||
commodityLocationElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
commodityLocationElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
commodityLocationElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
commodityLocationElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
commodityLocationElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
commodityLocationElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement commodityLocationElement, SlmCommodityLocation commodityLocation)
|
||||
{
|
||||
//commodityLocation.Id = new SysId(StringUtil.ToInt(commodityLocationElement.GetChildText("Id")));
|
||||
commodityLocation.CommodityId = new SysId(StringUtil.ToInt(commodityLocationElement.GetChildText("CommodityId")));
|
||||
commodityLocation.LocationId = new SysId(StringUtil.ToInt(commodityLocationElement.GetChildText("LocationId")));
|
||||
commodityLocation.WeighbridgeCode = commodityLocationElement.GetChildText("WeighbridgeCode");
|
||||
commodityLocation.Capacity = StringUtil.ToDecimal(commodityLocationElement.GetChildText("Capacity"));
|
||||
commodityLocation.EffectiveFrom = DateUtil.ParseXmlDateTime(commodityLocationElement.GetChildText("EffectiveFrom"));
|
||||
commodityLocation.EffectiveTo = DateUtil.ParseXmlDateTime(commodityLocationElement.GetChildText("EffectiveTo"));
|
||||
commodityLocation.Notes = commodityLocationElement.GetChildText("Notes");
|
||||
commodityLocation.Status = SacsSystem.GetStatusForCode(commodityLocationElement.GetChildText("Status"));
|
||||
commodityLocation.SetCreateStamp(DateUtil.ParseXmlDateTime(commodityLocationElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(commodityLocationElement.GetChildText("CreateBy"))), commodityLocationElement.GetChildText("CreateHost"));
|
||||
commodityLocation.SetUpdateStamp(DateUtil.ParseXmlDateTime(commodityLocationElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(commodityLocationElement.GetChildText("UpdateBy"))), commodityLocationElement.GetChildText("UpdateHost"));
|
||||
commodityLocation.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CommodityLocation column definitions.
|
||||
public override ColumnDfn GetCommodityLocationColumnDfn (SlmCommodityLocation.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CommodityLocation query filter.
|
||||
public override List<string> GetCommodityLocationQueryFilter (SlmCommodityLocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetCommodityLocationQueryFilter_Mobile (SlmCommodityLocation.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// CommodityLocation Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Location Id.
|
||||
if (SysId.IsValid(prm.LocationId)) filter.Add("LocationId", SysId.ToString(prm.LocationId));
|
||||
|
||||
// Commodity Id.
|
||||
if (SysId.IsValid(prm.CommodityId)) filter.Add("CommodityId", SysId.ToString(prm.CommodityId));
|
||||
|
||||
// Stock.
|
||||
if (DateUtil.IsValid(prm.Stock)) filter.Add("Stock", DateUtil.FormatXmlDate(prm.Stock));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// CommodityLocation sort columns.
|
||||
public List<String> GetCommodityLocationSortColumns (SlmCommodityLocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CommodityLocation count.
|
||||
public override long GetCommodityLocationCount (SlmCommodityLocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CommodityLocation list.
|
||||
public override List<SlmCommodityLocation> GetCommodityLocationList (SlmCommodityLocation.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmCommodityLocation>> GetCommodityLocationList_Mobile (SlmCommodityLocation.Params prmCommodityLocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmCommodityLocation> companies = new List<SlmCommodityLocation>();
|
||||
String fn = GetType().Name + ".GetCommodityLocationList_Mobile";
|
||||
|
||||
// CommodityLocation columns.
|
||||
List<SlmCommodityLocation.Column> columns = new List<SlmCommodityLocation.Column>()
|
||||
{
|
||||
SlmCommodityLocation.Column.Id,
|
||||
SlmCommodityLocation.Column.CommodityId,
|
||||
SlmCommodityLocation.Column.LocationId,
|
||||
SlmCommodityLocation.Column.WeighbridgeCode,
|
||||
SlmCommodityLocation.Column.Capacity,
|
||||
SlmCommodityLocation.Column.EffectiveFrom,
|
||||
SlmCommodityLocation.Column.EffectiveTo,
|
||||
SlmCommodityLocation.Column.Notes,
|
||||
SlmCommodityLocation.Column.Flags,
|
||||
SlmCommodityLocation.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteCommodityLocationQuery_Mobile(columns, prmCommodityLocation, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmCommodityLocation.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmCommodityLocation.Column.Id);
|
||||
// Create item.
|
||||
SlmCommodityLocation_Mobile commodityLocation = new SlmCommodityLocation_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmCommodityLocation.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmCommodityLocation.Column.CommodityLocationCategory: commodityLocation.CommodityLocationCategory; break;
|
||||
case SlmCommodityLocation.Column.CommodityId: commodityLocation.CommodityId = itemData.GetIdValue(column); break;
|
||||
case SlmCommodityLocation.Column.LocationId: commodityLocation.LocationId = itemData.GetIdValue(column); break;
|
||||
case SlmCommodityLocation.Column.WeighbridgeCode: commodityLocation.WeighbridgeCode = value; break;
|
||||
case SlmCommodityLocation.Column.Capacity: commodityLocation.Capacity = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmCommodityLocation.Column.EffectiveFrom: commodityLocation.EffectiveFrom = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCommodityLocation.Column.EffectiveTo: commodityLocation.EffectiveTo = itemData.GetDateTimeValue(column); break;
|
||||
case SlmCommodityLocation.Column.Notes: commodityLocation.Notes = value; break;
|
||||
case SlmCommodityLocation.Column.Status: commodityLocation.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(commodityLocation);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CommodityLocation query execution.
|
||||
public override DbResultSet ExecuteCommodityLocationQuery (List<ColumnDfn> columns, SlmCommodityLocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteCommodityLocationQuery_Mobile (List<SlmCommodityLocation.Column> commodityLocationColumns, SlmCommodityLocation.Params prmCommodityLocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmCommodityLocation.Column column in commodityLocationColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetCommodityLocationRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetCommodityLocationQueryFilter_Mobile(prmCommodityLocation), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetCommodityLocationRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.CommodityLocation;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetCommodityLocationDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmCommodityLocation.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// CommodityLocation Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmCommodityLocation.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmCommodityLocation.Column.Status_Desc:
|
||||
case SlmCommodityLocation.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmCommodityLocation.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmCommodityLocation.Column.Status_Ind)
|
||||
value = new DataValue(SlmCommodityLocation.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,342 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t o c k L e v e l s
|
||||
//*******************************************************************
|
||||
// StockLevel exists.
|
||||
public override bool StockLevelExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StockLevel.
|
||||
public override SlmStockLevel CreateStockLevel (SysId commodityId, Slm.StockLevelType stockLevelType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStockLevel_Mobile(Site, null, commodityId, stockLevelType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StockLevel.
|
||||
public override SlmStockLevel GetStockLevel (SlmStockLevel.Params prmStockLevel)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStockLevel GetStockLevelById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StockLevel.
|
||||
public override bool IsValidStockLevelData (SlmStockLevel.Data data, SlmStockLevel.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStockLevelData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StockLevel.
|
||||
public override bool InsertStockLevel (SlmStockLevel stockLevel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLevel(stockLevel)) return false;
|
||||
if (SysId.IsValid(stockLevel.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StockLevel.
|
||||
public override bool UpdateStockLevel (SlmStockLevel stockLevel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLevel(stockLevel)) return false;
|
||||
if (!SysId.IsValid(stockLevel.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StockLevel.
|
||||
public override bool StockLevelCanBeDeleted (SlmStockLevel stockLevel)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StockLevelCanBeDeleted(stockLevel)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStockLevel (SlmStockLevel stockLevel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StockLevelCanBeDeleted(stockLevel)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement stockLevelElement, SlmStockLevel stockLevel, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
stockLevelElement.AppendElement("Id", SysId.ToString(stockLevel.Id));
|
||||
stockLevelElement.AppendElement("StockLevelType", stockLevel.StockLevelType.ToString());
|
||||
stockLevelElement.AppendElement("CommodityId", SysId.ToString(stockLevel.CommodityId));
|
||||
stockLevelElement.AppendElement("LocationId", SysId.ToString(stockLevel.LocationId));
|
||||
stockLevelElement.AppendElement("StockDate", DateUtil.FormatXmlDateTime(stockLevel.StockDate));
|
||||
stockLevelElement.AppendElement("Quantity", stockLevel.Quantity.ToString("N3"));
|
||||
stockLevelElement.AppendElement("ExternalRef", stockLevel.ExternalRef);
|
||||
stockLevelElement.AppendElement("Containers", stockLevel.Containers.ToString("N3"));
|
||||
stockLevelElement.AppendElement("Notes", stockLevel.Notes);
|
||||
stockLevelElement.AppendElement("Status", SacsSystem.GetStatusCode(stockLevel.Status));
|
||||
stockLevelElement.AppendElement("Flags", stockLevel.Flags.ToString());
|
||||
if (!SysId.IsValid(stockLevel.Id))
|
||||
{
|
||||
stockLevelElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLevelElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLevelElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
stockLevelElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLevelElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLevelElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement stockLevelElement, SlmStockLevel stockLevel)
|
||||
{
|
||||
//stockLevel.Id = new SysId(StringUtil.ToInt(stockLevelElement.GetChildText("Id")));
|
||||
//stockLevel.StockLevelType = EnumUtil.ParseEnum(stockLevelElement.GetChildText("StockLevelType"), Slm.StockLevelType.Unknown);
|
||||
//stockLevel.CommodityId = new SysId(StringUtil.ToInt(stockLevelElement.GetChildText("CommodityId")));
|
||||
stockLevel.LocationId = new SysId(StringUtil.ToInt(stockLevelElement.GetChildText("LocationId")));
|
||||
stockLevel.StockDate = DateUtil.ParseXmlDateTime(stockLevelElement.GetChildText("StockDate"));
|
||||
stockLevel.Quantity = StringUtil.ToDecimal(stockLevelElement.GetChildText("Quantity"));
|
||||
stockLevel.ExternalRef = stockLevelElement.GetChildText("ExternalRef");
|
||||
stockLevel.Containers = StringUtil.ToShort(stockLevelElement.GetChildText("Containers"));
|
||||
stockLevel.Notes = stockLevelElement.GetChildText("Notes");
|
||||
stockLevel.Status = SacsSystem.GetStatusForCode(stockLevelElement.GetChildText("Status"));
|
||||
stockLevel.SetCreateStamp(DateUtil.ParseXmlDateTime(stockLevelElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(stockLevelElement.GetChildText("CreateBy"))), stockLevelElement.GetChildText("CreateHost"));
|
||||
stockLevel.SetUpdateStamp(DateUtil.ParseXmlDateTime(stockLevelElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(stockLevelElement.GetChildText("UpdateBy"))), stockLevelElement.GetChildText("UpdateHost"));
|
||||
stockLevel.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLevel column definitions.
|
||||
public override ColumnDfn GetStockLevelColumnDfn (SlmStockLevel.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLevel query filter.
|
||||
public override List<string> GetStockLevelQueryFilter (SlmStockLevel.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStockLevelQueryFilter_Mobile (SlmStockLevel.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StockLevel Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Stock Level type:
|
||||
if (prm.StockLevelType != 0) filter.Add("StockLevelType", prm.StockLevelType.ToString());
|
||||
|
||||
// Commodity Id.
|
||||
if (SysId.IsValid(prm.CommodityId)) filter.Add("CommodityId", SysId.ToString(prm.CommodityId));
|
||||
|
||||
// Stock.
|
||||
if (DateUtil.IsValid(prm.Stock)) filter.Add("Stock", DateUtil.FormatXmlDate(prm.Stock));
|
||||
|
||||
// Location Ids.
|
||||
if (prm.LocationIncludedIds.Count > 0) filter.Add("LocationIncludedIds", prm.LocationIncludedIds.Concat(","));
|
||||
if (prm.LocationExcludedIds.Count > 0) filter.Add("LocationExcludedIds", prm.LocationExcludedIds.Concat(","));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StockLevel sort columns.
|
||||
public List<String> GetStockLevelSortColumns (SlmStockLevel.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLevel count.
|
||||
public override long GetStockLevelCount (SlmStockLevel.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLevel list.
|
||||
public override List<SlmStockLevel> GetStockLevelList (SlmStockLevel.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStockLevel>> GetStockLevelList_Mobile (SlmStockLevel.Params prmStockLevel, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStockLevel> companies = new List<SlmStockLevel>();
|
||||
String fn = GetType().Name + ".GetStockLevelList_Mobile";
|
||||
|
||||
// StockLevel columns.
|
||||
List<SlmStockLevel.Column> columns = new List<SlmStockLevel.Column>()
|
||||
{
|
||||
SlmStockLevel.Column.Id,
|
||||
SlmStockLevel.Column.StockLevelType,
|
||||
SlmStockLevel.Column.CommodityId,
|
||||
SlmStockLevel.Column.LocationId,
|
||||
SlmStockLevel.Column.StockDate,
|
||||
SlmStockLevel.Column.Quantity,
|
||||
SlmStockLevel.Column.ExternalRef,
|
||||
SlmStockLevel.Column.Containers,
|
||||
SlmStockLevel.Column.Notes,
|
||||
SlmStockLevel.Column.Flags,
|
||||
SlmStockLevel.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStockLevelQuery_Mobile(columns, prmStockLevel, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStockLevel.Column.Id);
|
||||
SysId commodityId = itemData.GetIdValue(SlmStockLevel.Column.CommodityId);
|
||||
Slm.StockLevelType stockLevelType = EnumUtil.ParseEnum(itemData.GetValue(SlmStockLevel.Column.StockLevelType), Slm.StockLevelType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStockLevel.Column.Id);
|
||||
// Create item.
|
||||
SlmStockLevel_Mobile stockLevel = new SlmStockLevel_Mobile(Site, id, commodityId, stockLevelType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStockLevel.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStockLevel.Column.StockLevelType: stockLevel.StockLevelType = EnumUtil.ParseEnum(value, Slm.StockLevelType.Unknown); break;
|
||||
//case SlmStockLevel.Column.CommodityId: stockLevel.CommodityId = itemData.GetIdValue(column); break;
|
||||
case SlmStockLevel.Column.LocationId: stockLevel.LocationId = itemData.GetIdValue(column); break;
|
||||
case SlmStockLevel.Column.StockDate: stockLevel.StockDate = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStockLevel.Column.Quantity: stockLevel.Quantity = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmStockLevel.Column.ExternalRef: stockLevel.ExternalRef = value; break;
|
||||
case SlmStockLevel.Column.Containers: stockLevel.Containers = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmStockLevel.Column.Notes: stockLevel.Notes = value; break;
|
||||
case SlmStockLevel.Column.Status: stockLevel.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(stockLevel);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLevel query execution.
|
||||
public override DbResultSet ExecuteStockLevelQuery (List<ColumnDfn> columns, SlmStockLevel.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStockLevelQuery_Mobile (List<SlmStockLevel.Column> stockLevelColumns, SlmStockLevel.Params prmStockLevel, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStockLevel.Column column in stockLevelColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStockLevelRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStockLevelQueryFilter_Mobile(prmStockLevel), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStockLevelRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StockLevel;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStockLevelDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStockLevel.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StockLevel Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStockLevel.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStockLevel.Column.Status_Desc:
|
||||
case SlmStockLevel.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStockLevel.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStockLevel.Column.Status_Ind)
|
||||
value = new DataValue(SlmStockLevel.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,323 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t o c k L o a d i n g s
|
||||
//*******************************************************************
|
||||
// StockLoading exists.
|
||||
public override bool StockLoadingExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StockLoading.
|
||||
public override SlmStockLoading CreateStockLoading (SysId locationId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStockLoading_Mobile(Site, null, locationId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StockLoading.
|
||||
public override SlmStockLoading GetStockLoading (SlmStockLoading.Params prmStockLoading)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStockLoading GetStockLoadingById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StockLoading.
|
||||
public override bool IsValidStockLoadingData (SlmStockLoading.Data data, SlmStockLoading.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStockLoadingData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StockLoading.
|
||||
public override bool InsertStockLoading (SlmStockLoading stockLoading, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLoading(stockLoading)) return false;
|
||||
if (SysId.IsValid(stockLoading.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StockLoading.
|
||||
public override bool UpdateStockLoading (SlmStockLoading stockLoading, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLoading(stockLoading)) return false;
|
||||
if (!SysId.IsValid(stockLoading.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StockLoading.
|
||||
public override bool StockLoadingCanBeDeleted (SlmStockLoading stockLoading)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StockLoadingCanBeDeleted(stockLoading)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStockLoading (SlmStockLoading stockLoading, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StockLoadingCanBeDeleted(stockLoading)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement stockLoadingElement, SlmStockLoading stockLoading, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
stockLoadingElement.AppendElement("Id", SysId.ToString(stockLoading.Id));
|
||||
stockLoadingElement.AppendElement("LocationId", SysId.ToString(stockLoading.LocationId));
|
||||
stockLoadingElement.AppendElement("RecordedAt", DateUtil.FormatXmlDateTime(stockLoading.RecordedAt));
|
||||
stockLoadingElement.AppendElement("LoadingTemplate", stockLoading.LoadingTemplate);
|
||||
stockLoadingElement.AppendElement("LoadingData", stockLoading.LoadingData);
|
||||
stockLoadingElement.AppendElement("Notes", stockLoading.Notes);
|
||||
stockLoadingElement.AppendElement("Status", SacsSystem.GetStatusCode(stockLoading.Status));
|
||||
stockLoadingElement.AppendElement("Flags", stockLoading.Flags.ToString());
|
||||
if (!SysId.IsValid(stockLoading.Id))
|
||||
{
|
||||
stockLoadingElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLoadingElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLoadingElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
stockLoadingElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLoadingElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLoadingElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement stockLoadingElement, SlmStockLoading stockLoading)
|
||||
{
|
||||
//stockLoading.Id = new SysId(StringUtil.ToInt(stockLoadingElement.GetChildText("Id")));
|
||||
//stockLoading.LocationId = new SysId(StringUtil.ToInt(stockLoadingElement.GetChildText("LocationId")));
|
||||
stockLoading.RecordedAt = DateUtil.ParseXmlDateTime(stockLoadingElement.GetChildText("RecordedAt"));
|
||||
stockLoading.LoadingTemplate = stockLoadingElement.GetChildText("LoadingTemplate");
|
||||
stockLoading.LoadingData = stockLoadingElement.GetChildText("LoadingData");
|
||||
stockLoading.Notes = stockLoadingElement.GetChildText("Notes");
|
||||
stockLoading.Status = SacsSystem.GetStatusForCode(stockLoadingElement.GetChildText("Status"));
|
||||
stockLoading.SetCreateStamp(DateUtil.ParseXmlDateTime(stockLoadingElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(stockLoadingElement.GetChildText("CreateBy"))), stockLoadingElement.GetChildText("CreateHost"));
|
||||
stockLoading.SetUpdateStamp(DateUtil.ParseXmlDateTime(stockLoadingElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(stockLoadingElement.GetChildText("UpdateBy"))), stockLoadingElement.GetChildText("UpdateHost"));
|
||||
stockLoading.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLoading column definitions.
|
||||
public override ColumnDfn GetStockLoadingColumnDfn (SlmStockLoading.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLoading query filter.
|
||||
public override List<string> GetStockLoadingQueryFilter (SlmStockLoading.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStockLoadingQueryFilter_Mobile (SlmStockLoading.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StockLoading Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Stock Location Id.
|
||||
if (SysId.IsValid(prm.StockLocationId)) filter.Add("StockLocationId", SysId.ToString(prm.StockLocationId));
|
||||
|
||||
// Recorded.
|
||||
if (DateUtil.IsValid(prm.RecordedFrom)) filter.Add("RecordedFrom", DateUtil.FormatXmlDate(prm.RecordedFrom));
|
||||
if (DateUtil.IsValid(prm.RecordedTo)) filter.Add("RecordedTo", DateUtil.FormatXmlDate(prm.RecordedTo));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StockLoading sort columns.
|
||||
public List<String> GetStockLoadingSortColumns (SlmStockLoading.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLoading count.
|
||||
public override long GetStockLoadingCount (SlmStockLoading.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLoading list.
|
||||
public override List<SlmStockLoading> GetStockLoadingList (SlmStockLoading.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStockLoading>> GetStockLoadingList_Mobile (SlmStockLoading.Params prmStockLoading, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStockLoading> companies = new List<SlmStockLoading>();
|
||||
String fn = GetType().Name + ".GetStockLoadingList_Mobile";
|
||||
|
||||
// StockLoading columns.
|
||||
List<SlmStockLoading.Column> columns = new List<SlmStockLoading.Column>()
|
||||
{
|
||||
SlmStockLoading.Column.Id,
|
||||
SlmStockLoading.Column.LocationId,
|
||||
SlmStockLoading.Column.RecordedAt,
|
||||
SlmStockLoading.Column.LoadingTemplate,
|
||||
SlmStockLoading.Column.LoadingData,
|
||||
SlmStockLoading.Column.Notes,
|
||||
SlmStockLoading.Column.Flags,
|
||||
SlmStockLoading.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStockLoadingQuery_Mobile(columns, prmStockLoading, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStockLoading.Column.Id);
|
||||
SysId locationId = itemData.GetIdValue(SlmStockLoading.Column.LocationId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStockLoading.Column.Id);
|
||||
// Create item.
|
||||
SlmStockLoading_Mobile stockLoading = new SlmStockLoading_Mobile(Site, id, locationId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStockLoading.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStockLoading.Column.LocationId: stockLoading.LocationId = itemData.GetIdValue(column); break;
|
||||
case SlmStockLoading.Column.RecordedAt: stockLoading.RecordedAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStockLoading.Column.LoadingTemplate: stockLoading.LoadingTemplate = value; break;
|
||||
case SlmStockLoading.Column.LoadingData: stockLoading.LoadingData = value; break;
|
||||
case SlmStockLoading.Column.Notes: stockLoading.Notes = value; break;
|
||||
case SlmStockLoading.Column.Status: stockLoading.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(stockLoading);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLoading query execution.
|
||||
public override DbResultSet ExecuteStockLoadingQuery (List<ColumnDfn> columns, SlmStockLoading.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStockLoadingQuery_Mobile (List<SlmStockLoading.Column> stockLoadingColumns, SlmStockLoading.Params prmStockLoading, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStockLoading.Column column in stockLoadingColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStockLoadingRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStockLoadingQueryFilter_Mobile(prmStockLoading), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStockLoadingRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StockLoading;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStockLoadingDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStockLoading.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StockLoading Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStockLoading.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStockLoading.Column.Status_Desc:
|
||||
case SlmStockLoading.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStockLoading.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStockLoading.Column.Status_Ind)
|
||||
value = new DataValue(SlmStockLoading.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,330 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t o c k L o c a t i o n s
|
||||
//*******************************************************************
|
||||
// StockLocation exists.
|
||||
public override bool StockLocationExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StockLocation.
|
||||
public override SlmStockLocation CreateStockLocation (SysId locationIdParent, Slm.StockLocationType stockLocationType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStockLocation_Mobile(Site, null, locationIdParent, stockLocationType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StockLocation.
|
||||
public override SlmStockLocation GetStockLocation (SlmStockLocation.Params prmStockLocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStockLocation GetStockLocationById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StockLocation.
|
||||
public override bool IsValidStockLocationData (SlmStockLocation.Data data, SlmStockLocation.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStockLocationData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StockLocation.
|
||||
public override bool InsertStockLocation (SlmStockLocation stockLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLocation(stockLocation)) return false;
|
||||
if (SysId.IsValid(stockLocation.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StockLocation.
|
||||
public override bool UpdateStockLocation (SlmStockLocation stockLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockLocation(stockLocation)) return false;
|
||||
if (!SysId.IsValid(stockLocation.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StockLocation.
|
||||
public override bool StockLocationCanBeDeleted (SlmStockLocation stockLocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StockLocationCanBeDeleted(stockLocation)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStockLocation (SlmStockLocation stockLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StockLocationCanBeDeleted(stockLocation)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement stockLocationElement, SlmStockLocation stockLocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
stockLocationElement.AppendElement("Id", SysId.ToString(stockLocation.Id));
|
||||
stockLocationElement.AppendElement("StockLocationType", stockLocation.StockLocationType.ToString());
|
||||
stockLocationElement.AppendElement("LocationIdParent", SysId.ToString(stockLocation.LocationIdParent));
|
||||
stockLocationElement.AppendElement("Code", stockLocation.Code);
|
||||
stockLocationElement.AppendElement("Caption", stockLocation.Caption);
|
||||
stockLocationElement.AppendElement("LoadingTemplate", stockLocation.LoadingTemplate);
|
||||
stockLocationElement.AppendElement("Notes", stockLocation.Notes);
|
||||
stockLocationElement.AppendElement("Status", SacsSystem.GetStatusCode(stockLocation.Status));
|
||||
stockLocationElement.AppendElement("Flags", stockLocation.Flags.ToString());
|
||||
if (!SysId.IsValid(stockLocation.Id))
|
||||
{
|
||||
stockLocationElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLocationElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLocationElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
stockLocationElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockLocationElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockLocationElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement stockLocationElement, SlmStockLocation stockLocation)
|
||||
{
|
||||
//stockLocation.Id = new SysId(StringUtil.ToInt(stockLocationElement.GetChildText("Id")));
|
||||
//stockLocation.StockLocationType = EnumUtil.ParseEnum(stockLocationElement.GetChildText("StockLocationType"), Slm.StockLocationType.Unknown);
|
||||
//stockLocation.LocationIdParent = new SysId(StringUtil.ToInt(stockLocationElement.GetChildText("LocationIdParent")));
|
||||
stockLocation.Code = stockLocationElement.GetChildText("Code");
|
||||
stockLocation.Caption = stockLocationElement.GetChildText("Caption");
|
||||
stockLocation.LoadingTemplate = stockLocationElement.GetChildText("LoadingTemplate");
|
||||
stockLocation.Notes = stockLocationElement.GetChildText("Notes");
|
||||
stockLocation.Status = SacsSystem.GetStatusForCode(stockLocationElement.GetChildText("Status"));
|
||||
stockLocation.SetCreateStamp(DateUtil.ParseXmlDateTime(stockLocationElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(stockLocationElement.GetChildText("CreateBy"))), stockLocationElement.GetChildText("CreateHost"));
|
||||
stockLocation.SetUpdateStamp(DateUtil.ParseXmlDateTime(stockLocationElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(stockLocationElement.GetChildText("UpdateBy"))), stockLocationElement.GetChildText("UpdateHost"));
|
||||
stockLocation.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLocation column definitions.
|
||||
public override ColumnDfn GetStockLocationColumnDfn (SlmStockLocation.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLocation query filter.
|
||||
public override List<string> GetStockLocationQueryFilter (SlmStockLocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStockLocationQueryFilter_Mobile (SlmStockLocation.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StockLocation Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Stock Location type:
|
||||
if (prm.StockLocationType != 0) filter.Add("StockLocationType", prm.StockLocationType.ToString());
|
||||
|
||||
// Parent Id.
|
||||
if (SysId.IsValid(prm.ParentId)) filter.Add("ParentId", SysId.ToString(prm.ParentId));
|
||||
|
||||
// Ignore Parent.
|
||||
if (prm.IgnoreParent != false) filter.Add("IgnoreParent", prm.IgnoreParent.ToString());
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StockLocation sort columns.
|
||||
public List<String> GetStockLocationSortColumns (SlmStockLocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLocation count.
|
||||
public override long GetStockLocationCount (SlmStockLocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLocation list.
|
||||
public override List<SlmStockLocation> GetStockLocationList (SlmStockLocation.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStockLocation>> GetStockLocationList_Mobile (SlmStockLocation.Params prmStockLocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStockLocation> companies = new List<SlmStockLocation>();
|
||||
String fn = GetType().Name + ".GetStockLocationList_Mobile";
|
||||
|
||||
// StockLocation columns.
|
||||
List<SlmStockLocation.Column> columns = new List<SlmStockLocation.Column>()
|
||||
{
|
||||
SlmStockLocation.Column.Id,
|
||||
SlmStockLocation.Column.StockLocationType,
|
||||
SlmStockLocation.Column.LocationIdParent,
|
||||
SlmStockLocation.Column.Code,
|
||||
SlmStockLocation.Column.Caption,
|
||||
SlmStockLocation.Column.LoadingTemplate,
|
||||
SlmStockLocation.Column.Notes,
|
||||
SlmStockLocation.Column.Flags,
|
||||
SlmStockLocation.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStockLocationQuery_Mobile(columns, prmStockLocation, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStockLocation.Column.Id);
|
||||
SysId locationIdParent = itemData.GetIdValue(SlmStockLocation.Column.LocationIdParent);
|
||||
Slm.StockLocationType stockLocationType = EnumUtil.ParseEnum(itemData.GetValue(SlmStockLocation.Column.StockLocationType), Slm.StockLocationType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStockLocation.Column.Id);
|
||||
// Create item.
|
||||
SlmStockLocation_Mobile stockLocation = new SlmStockLocation_Mobile(Site, id, locationIdParent, stockLocationType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStockLocation.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStockLocation.Column.StockLocationType: stockLocation.StockLocationType = EnumUtil.ParseEnum(value, Slm.StockLocationType.Unknown); break;
|
||||
//case SlmStockLocation.Column.LocationIdParent: stockLocation.LocationIdParent = itemData.GetIdValue(column); break;
|
||||
case SlmStockLocation.Column.Code: stockLocation.Code = value; break;
|
||||
case SlmStockLocation.Column.Caption: stockLocation.Caption = value; break;
|
||||
case SlmStockLocation.Column.LoadingTemplate: stockLocation.LoadingTemplate = value; break;
|
||||
case SlmStockLocation.Column.Notes: stockLocation.Notes = value; break;
|
||||
case SlmStockLocation.Column.Status: stockLocation.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(stockLocation);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockLocation query execution.
|
||||
public override DbResultSet ExecuteStockLocationQuery (List<ColumnDfn> columns, SlmStockLocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStockLocationQuery_Mobile (List<SlmStockLocation.Column> stockLocationColumns, SlmStockLocation.Params prmStockLocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStockLocation.Column column in stockLocationColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStockLocationRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStockLocationQueryFilter_Mobile(prmStockLocation), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStockLocationRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StockLocation;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStockLocationDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStockLocation.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StockLocation Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStockLocation.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStockLocation.Column.Status_Desc:
|
||||
case SlmStockLocation.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStockLocation.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStockLocation.Column.Status_Ind)
|
||||
value = new DataValue(SlmStockLocation.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,360 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmCommodityMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t o c k M o v e m e n t s
|
||||
//*******************************************************************
|
||||
// StockMovement exists.
|
||||
public override bool StockMovementExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StockMovement.
|
||||
public override SlmStockMovement CreateStockMovement (SysId commodityId, Slm.StockMovementType stockMovementType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStockMovement_Mobile(Site, null, commodityId, stockMovementType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StockMovement.
|
||||
public override SlmStockMovement GetStockMovement (SlmStockMovement.Params prmStockMovement)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStockMovement GetStockMovementById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StockMovement.
|
||||
public override bool IsValidStockMovementData (SlmStockMovement.Data data, SlmStockMovement.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStockMovementData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StockMovement.
|
||||
public override bool InsertStockMovement (SlmStockMovement stockMovement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockMovement(stockMovement)) return false;
|
||||
if (SysId.IsValid(stockMovement.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StockMovement.
|
||||
public override bool UpdateStockMovement (SlmStockMovement stockMovement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStockMovement(stockMovement)) return false;
|
||||
if (!SysId.IsValid(stockMovement.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StockMovement.
|
||||
public override bool StockMovementCanBeDeleted (SlmStockMovement stockMovement)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StockMovementCanBeDeleted(stockMovement)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStockMovement (SlmStockMovement stockMovement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StockMovementCanBeDeleted(stockMovement)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement stockMovementElement, SlmStockMovement stockMovement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
stockMovementElement.AppendElement("Id", SysId.ToString(stockMovement.Id));
|
||||
stockMovementElement.AppendElement("CommodityId", SysId.ToString(stockMovement.CommodityId));
|
||||
stockMovementElement.AppendElement("StockMovementType", stockMovement.StockMovementType.ToString());
|
||||
stockMovementElement.AppendElement("StockMovementDirection", stockMovement.StockMovementDirection.ToString());
|
||||
stockMovementElement.AppendElement("LocationIdFrom", SysId.ToString(stockMovement.LocationIdFrom));
|
||||
stockMovementElement.AppendElement("LocationIdTo", SysId.ToString(stockMovement.LocationIdTo));
|
||||
stockMovementElement.AppendElement("Started", DateUtil.FormatXmlDateTime(stockMovement.Started));
|
||||
stockMovementElement.AppendElement("Completed", DateUtil.FormatXmlDateTime(stockMovement.Completed));
|
||||
stockMovementElement.AppendElement("Quantity", stockMovement.Quantity.ToString("N3"));
|
||||
stockMovementElement.AppendElement("ExternalRef", stockMovement.ExternalRef);
|
||||
stockMovementElement.AppendElement("SystemRef", stockMovement.SystemRef);
|
||||
stockMovementElement.AppendElement("StockMovementData", stockMovement.StockMovementData);
|
||||
stockMovementElement.AppendElement("Notes", stockMovement.Notes);
|
||||
stockMovementElement.AppendElement("Status", SacsSystem.GetStatusCode(stockMovement.Status));
|
||||
stockMovementElement.AppendElement("Flags", stockMovement.Flags.ToString());
|
||||
if (!SysId.IsValid(stockMovement.Id))
|
||||
{
|
||||
stockMovementElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockMovementElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockMovementElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
stockMovementElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
stockMovementElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
stockMovementElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement stockMovementElement, SlmStockMovement stockMovement)
|
||||
{
|
||||
//stockMovement.Id = new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("Id")));
|
||||
//stockMovement.CommodityId = new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("CommodityId")));
|
||||
//stockMovement.StockMovementType = EnumUtil.ParseEnum(stockMovementElement.GetChildText("StockMovementType"), Slm.StockMovementType.Unknown);
|
||||
stockMovement.LocationIdFrom = new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("LocationIdFrom")));
|
||||
stockMovement.LocationIdTo = new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("LocationIdTo")));
|
||||
stockMovement.Started = DateUtil.ParseXmlDateTime(stockMovementElement.GetChildText("Started"));
|
||||
stockMovement.Completed = DateUtil.ParseXmlDateTime(stockMovementElement.GetChildText("Completed"));
|
||||
stockMovement.Quantity = StringUtil.ToDecimal(stockMovementElement.GetChildText("Quantity"));
|
||||
stockMovement.ExternalRef = stockMovementElement.GetChildText("ExternalRef");
|
||||
stockMovement.SystemRef = stockMovementElement.GetChildText("SystemRef");
|
||||
stockMovement.StockMovementData = stockMovementElement.GetChildText("StockMovementData");
|
||||
stockMovement.Notes = stockMovementElement.GetChildText("Notes");
|
||||
stockMovement.Status = SacsSystem.GetStatusForCode(stockMovementElement.GetChildText("Status"));
|
||||
stockMovement.SetCreateStamp(DateUtil.ParseXmlDateTime(stockMovementElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("CreateBy"))), stockMovementElement.GetChildText("CreateHost"));
|
||||
stockMovement.SetUpdateStamp(DateUtil.ParseXmlDateTime(stockMovementElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(stockMovementElement.GetChildText("UpdateBy"))), stockMovementElement.GetChildText("UpdateHost"));
|
||||
stockMovement.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockMovement column definitions.
|
||||
public override ColumnDfn GetStockMovementColumnDfn (SlmStockMovement.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockMovement query filter.
|
||||
public override List<string> GetStockMovementQueryFilter (SlmStockMovement.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStockMovementQueryFilter_Mobile (SlmStockMovement.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StockMovement Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Commodity Id.
|
||||
if (SysId.IsValid(prm.CommodityId)) filter.Add("CommodityId", SysId.ToString(prm.CommodityId));
|
||||
|
||||
// Location Ids.
|
||||
if (SysId.IsValid(prm.LocationFromId)) filter.Add("LocationFromId", SysId.ToString(prm.LocationFromId));
|
||||
if (SysId.IsValid(prm.LocationToId)) filter.Add("LocationToId", SysId.ToString(prm.LocationToId));
|
||||
|
||||
// Stock Movement type.
|
||||
if (prm.StockMovementType != 0) filter.Add("StockMovementType", prm.StockMovementType.ToString());
|
||||
|
||||
// Stock Movement direction.
|
||||
if (prm.StockMovementDirection != 0) filter.Add("StockMovementDirection", prm.StockMovementDirection.ToString());
|
||||
|
||||
// Movement.
|
||||
if (DateUtil.IsValid(prm.Movement)) filter.Add("Movement", DateUtil.FormatXmlDate(prm.Movement));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StockMovement sort columns.
|
||||
public List<String> GetStockMovementSortColumns (SlmStockMovement.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockMovement count.
|
||||
public override long GetStockMovementCount (SlmStockMovement.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockMovement list.
|
||||
public override List<SlmStockMovement> GetStockMovementList (SlmStockMovement.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStockMovement>> GetStockMovementList_Mobile (SlmStockMovement.Params prmStockMovement, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStockMovement> companies = new List<SlmStockMovement>();
|
||||
String fn = GetType().Name + ".GetStockMovementList_Mobile";
|
||||
|
||||
// StockMovement columns.
|
||||
List<SlmStockMovement.Column> columns = new List<SlmStockMovement.Column>()
|
||||
{
|
||||
SlmStockMovement.Column.Id,
|
||||
SlmStockMovement.Column.CommodityId,
|
||||
SlmStockMovement.Column.StockMovementType,
|
||||
SlmStockMovement.Column.StockMovementDirection,
|
||||
SlmStockMovement.Column.LocationIdFrom,
|
||||
SlmStockMovement.Column.LocationIdTo,
|
||||
SlmStockMovement.Column.Started,
|
||||
SlmStockMovement.Column.Completed,
|
||||
SlmStockMovement.Column.Quantity,
|
||||
SlmStockMovement.Column.ExternalRef,
|
||||
SlmStockMovement.Column.SystemRef,
|
||||
SlmStockMovement.Column.StockMovementData,
|
||||
SlmStockMovement.Column.Notes,
|
||||
SlmStockMovement.Column.Flags,
|
||||
SlmStockMovement.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStockMovementQuery_Mobile(columns, prmStockMovement, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStockMovement.Column.Id);
|
||||
SysId commodityId = itemData.GetIdValue(SlmStockMovement.Column.CommodityId);
|
||||
Slm.StockMovementType stockMovementType = EnumUtil.ParseEnum(itemData.GetValue(SlmStockMovement.Column.StockMovementType), Slm.StockMovementType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStockMovement.Column.Id);
|
||||
// Create item.
|
||||
SlmStockMovement_Mobile stockMovement = new SlmStockMovement_Mobile(Site, id, commodityId, stockMovementType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStockMovement.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStockMovement.Column.CommodityId: stockMovement.CommodityId = itemData.GetIdValue(column); break;
|
||||
//case SlmStockMovement.Column.StockMovementType: stockMovement.StockMovementType = EnumUtil.ParseEnum(value, Slm.StockMovementType.Unknown); break;
|
||||
case SlmStockMovement.Column.StockMovementDirection: stockMovement.StockMovementDirection = EnumUtil.ParseEnum(value, Slm.StockMovementDirection.Unknown); break;
|
||||
case SlmStockMovement.Column.LocationIdFrom: stockMovement.LocationIdFrom = itemData.GetIdValue(column); break;
|
||||
case SlmStockMovement.Column.LocationIdTo: stockMovement.LocationIdTo = itemData.GetIdValue(column); break;
|
||||
case SlmStockMovement.Column.Started: stockMovement.Started = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStockMovement.Column.Completed: stockMovement.Completed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStockMovement.Column.Quantity: stockMovement.Quantity = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmStockMovement.Column.ExternalRef: stockMovement.ExternalRef = value; break;
|
||||
case SlmStockMovement.Column.SystemRef: stockMovement.SystemRef = value; break;
|
||||
case SlmStockMovement.Column.StockMovementData: stockMovement.StockMovementData = value; break;
|
||||
case SlmStockMovement.Column.Notes: stockMovement.Notes = value; break;
|
||||
case SlmStockMovement.Column.Status: stockMovement.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(stockMovement);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StockMovement query execution.
|
||||
public override DbResultSet ExecuteStockMovementQuery (List<ColumnDfn> columns, SlmStockMovement.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStockMovementQuery_Mobile (List<SlmStockMovement.Column> stockMovementColumns, SlmStockMovement.Params prmStockMovement, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStockMovement.Column column in stockMovementColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStockMovementRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStockMovementQueryFilter_Mobile(prmStockMovement), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStockMovementRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StockMovement;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStockMovementDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStockMovement.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StockMovement Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStockMovement.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStockMovement.Column.Status_Desc:
|
||||
case SlmStockMovement.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStockMovement.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStockMovement.Column.Status_Ind)
|
||||
value = new DataValue(SlmStockMovement.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmCommodityMgr_Mobile : SlmCommodityMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmCommodityMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmItemDataMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// D a t a I t e m V a l u e
|
||||
//*******************************************************************
|
||||
// Utilities.
|
||||
public override bool ItemHasDataItemValues (ItemId itemId)
|
||||
{
|
||||
SlmDataItemValue.Params prmDataItemValue = new SlmDataItemValue.Params();
|
||||
prmDataItemValue.ItemId = itemId;
|
||||
return GetDataItemValueCount(prmDataItemValue) == 1;
|
||||
}
|
||||
|
||||
// Create DataItemValue.
|
||||
public override SlmDataItemValue CreateDataItemValue (ItemId itemId, Slm.ItemValueType valueType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmDataItemValue_Mobile(Site, itemId, valueType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get DataItemValue.
|
||||
public override SlmDataItemValue GetDataItemValue (SlmDataItemValue.Params prmDataItemValue)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Validate DataItemValue.
|
||||
public override bool IsValidDataItemValueData (SlmDataItemValue.Data data, SlmDataItemValue.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidDataItemValueData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Store Data Item Values.
|
||||
public override bool StoreDataItemValues (ItemId itemId, List<SlmDataItemValue> dataItemValues, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert DataItemValue.
|
||||
public override bool InsertDataItemValue (SlmDataItemValue dataItemValue, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDataItemValue(dataItemValue)) return false;
|
||||
if (SysId.IsValid(dataItemValue.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update DataItemValue.
|
||||
public override bool UpdateDataItemValue (SlmDataItemValue dataItemValue, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidDataItemValue(dataItemValue)) return false;
|
||||
if (!SysId.IsValid(dataItemValue.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete DataItemValue.
|
||||
public override bool DataItemValueCanBeDeleted (SlmDataItemValue dataItemValue)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.DataItemValueCanBeDeleted(dataItemValue)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteDataItemValue (SlmDataItemValue dataItemValue, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!DataItemValueCanBeDeleted(dataItemValue)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement dataItemValueElement, SlmDataItemValue dataItemValue, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
dataItemValueElement.AppendElement("Id", SysId.ToString(dataItemValue.Id));
|
||||
dataItemValueElement.AppendElement("ItemId", dataItemValue.ItemId.ToString());
|
||||
dataItemValueElement.AppendElement("ItemValueType", dataItemValue.ItemValueType.ToString());
|
||||
dataItemValueElement.AppendElement("Value", dataItemValue.Value);
|
||||
dataItemValueElement.AppendElement("Notes", dataItemValue.Notes);
|
||||
dataItemValueElement.AppendElement("Status", SacsSystem.GetStatusCode(dataItemValue.Status));
|
||||
dataItemValueElement.AppendElement("Flags", dataItemValue.Flags.ToString());
|
||||
if (!SysId.IsValid(dataItemValue.Id))
|
||||
{
|
||||
dataItemValueElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dataItemValueElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dataItemValueElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
dataItemValueElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
dataItemValueElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
dataItemValueElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement dataItemValueElement, SlmDataItemValue dataItemValue)
|
||||
{
|
||||
//dataItemValue.Id = new SysId(StringUtil.ToInt(dataItemValueElement.GetChildText("Id")));
|
||||
//dataItemValue.ItemId = EnumUtil.ParseEnum(dataItemValueElement.GetChildText("ItemId"), Slm.ItemId.Unknown);
|
||||
//dataItemValue.ItemValueType = EnumUtil.ParseEnum(dataItemValueElement.GetChildText("ItemValueType"), Slm.ItemValueType.Unknown);
|
||||
dataItemValue.Value = dataItemValueElement.GetChildText("Value");
|
||||
dataItemValue.Notes = dataItemValueElement.GetChildText("Notes");
|
||||
dataItemValue.Status = SacsSystem.GetStatusForCode(dataItemValueElement.GetChildText("Status"));
|
||||
dataItemValue.SetCreateStamp(DateUtil.ParseXmlDateTime(dataItemValueElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(dataItemValueElement.GetChildText("CreateBy"))), dataItemValueElement.GetChildText("CreateHost"));
|
||||
dataItemValue.SetUpdateStamp(DateUtil.ParseXmlDateTime(dataItemValueElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(dataItemValueElement.GetChildText("UpdateBy"))), dataItemValueElement.GetChildText("UpdateHost"));
|
||||
dataItemValue.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DataItemValue column definitions.
|
||||
public override ColumnDfn GetDataItemValueColumnDfn (SlmDataItemValue.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DataItemValue query filter.
|
||||
public override List<string> GetDataItemValueQueryFilter (SlmDataItemValue.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetDataItemValueQueryFilter_Mobile (SlmDataItemValue.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Item Id.
|
||||
if (prm.ItemId.Type > 0) filter.Add("ItemId.Type", ((Slm.DataItemType)prm.ItemId.Type).ToString());
|
||||
if (SysId.IsValid(prm.ItemId.Id)) filter.Add("ItemId.Id", SysId.ToString(prm.ItemId.Id));
|
||||
|
||||
// Movement type:
|
||||
if (prm.ItemValueType != 0) filter.Add("ItemValueType", prm.ItemValueType.ToString());
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.Value)) filter.Add("Value", prm.Value);
|
||||
if (!StringUtil.IsEmpty(prm.ValuePartial)) filter.Add("ValuePartial", prm.ValuePartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// DataItemValue sort columns.
|
||||
public List<String> GetDataItemValueSortColumns (SlmDataItemValue.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DataItemValue count.
|
||||
public override long GetDataItemValueCount (SlmDataItemValue.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DataItemValue list.
|
||||
public override List<SlmDataItemValue> GetDataItemValueList (SlmDataItemValue.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmDataItemValue>> GetDataItemValueList_Mobile (SlmDataItemValue.Params prmDataItemValue, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmDataItemValue> companies = new List<SlmDataItemValue>();
|
||||
String fn = GetType().Name + ".GetDataItemValueList_Mobile";
|
||||
|
||||
// DataItemValue columns.
|
||||
List<SlmDataItemValue.Column> columns = new List<SlmDataItemValue.Column>()
|
||||
{
|
||||
SlmDataItemValue.Column.ItemId,
|
||||
SlmDataItemValue.Column.ItemType,
|
||||
SlmDataItemValue.Column.Value,
|
||||
SlmDataItemValue.Column.Flags,
|
||||
SlmDataItemValue.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteDataItemValueQuery_Mobile(columns, prmDataItemValue, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
//SysId id = itemData.GetIdValue(SlmDataItemValue.Column.Id);
|
||||
ItemId itemId = new ItemId();
|
||||
Slm.ItemValueType valueType = EnumUtil.ParseEnum(itemData.GetValue(SlmDataItemValue.Column.ValueType), Slm.ItemValueType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmDataItemValue.Column.ItemId);
|
||||
// Create item.
|
||||
SlmDataItemValue_Mobile dataItemValue = new SlmDataItemValue_Mobile(Site, itemId, valueType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmDataItemValue.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmDataItemValue.Column.DataItemValueCategory: dataItemValue.DataItemValueCategory; break;
|
||||
//case SlmDataItemValue.Column.ItemId: dataItemValue.ItemId = EnumUtil.ParseEnum(value, ItemId.Unknown); break;
|
||||
//case SlmDataItemValue.Column.ItemType: dataItemValue.ItemValueType = EnumUtil.ParseEnum(value, Slm.ItemValueType.Unknown); break;
|
||||
case SlmDataItemValue.Column.Value: dataItemValue.Value = value; break;
|
||||
case SlmDataItemValue.Column.Status: dataItemValue.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(dataItemValue);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// DataItemValue query execution.
|
||||
public override DbResultSet ExecuteDataItemValueQuery (List<ColumnDfn> columns, SlmDataItemValue.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteDataItemValueQuery_Mobile (List<SlmDataItemValue.Column> dataItemValueColumns, SlmDataItemValue.Params prmDataItemValue, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmDataItemValue.Column column in dataItemValueColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetDataItemValueRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetDataItemValueQueryFilter_Mobile(prmDataItemValue), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetDataItemValueRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.DataItemValue;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetDataItemValueDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmDataItemValue.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Item type.
|
||||
case SlmDataItemValue.Column.ItemType_Desc:
|
||||
{
|
||||
Slm.DataItemType dataItemType = (Slm.DataItemType)values.GetValue(column.DataName).AsLong();
|
||||
value = new DataValue(dataItemTypes.GetDescForType((int)dataItemType, dataItemType.ToString()));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Value type.
|
||||
case SlmDataItemValue.Column.ValueType_Desc:
|
||||
{
|
||||
Slm.ItemValueType itemValueType = (Slm.ItemValueType)values.GetValue(column.DataName).AsLong();
|
||||
value = new DataValue(itemValueTypes.GetDescForType((int)itemValueType, itemValueType.ToString()));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmDataItemValue.Column.Status_Desc:
|
||||
case SlmDataItemValue.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmDataItemValue.Column.Status_Desc)
|
||||
{
|
||||
String statusDesc = SacsSystem.GetStatusDescForCode(statusCode);
|
||||
value = new DataValue(statusDesc);
|
||||
}
|
||||
else if (column.Id == (int)SlmDataItemValue.Column.Status_Ind)
|
||||
{
|
||||
DataValue.TriStateType triState = DataValue.TriStateType.Unknown;
|
||||
if (status == SaStatus.Active)
|
||||
triState = DataValue.TriStateType.Green;
|
||||
else if (status == SaStatus.Inactive)
|
||||
triState = DataValue.TriStateType.Red;
|
||||
value = new DataValue(triState);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmItemDataMgr_Mobile : SlmItemDataMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmItemDataMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,319 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f A l l o c a t i o n
|
||||
//*******************************************************************
|
||||
// StaffAllocation exists.
|
||||
public override bool StaffAllocationExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffAllocation.
|
||||
public override SlmStaffAllocation CreateStaffAllocation (SysId staffTaskId, SysId staffMemberId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffAllocation_Mobile(Site, null, staffTaskId, staffMemberId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffAllocation.
|
||||
public override SlmStaffAllocation GetStaffAllocation (SlmStaffAllocation.Params prmStaffAllocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffAllocation GetStaffAllocationById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffAllocation.
|
||||
public override bool IsValidStaffAllocationData (SlmStaffAllocation.Data data, SlmStaffAllocation.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffAllocationData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffAllocation.
|
||||
public override bool InsertStaffAllocation (SlmStaffAllocation staffAllocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffAllocation(staffAllocation)) return false;
|
||||
if (SysId.IsValid(staffAllocation.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffAllocation.
|
||||
public override bool UpdateStaffAllocation (SlmStaffAllocation staffAllocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffAllocation(staffAllocation)) return false;
|
||||
if (!SysId.IsValid(staffAllocation.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffAllocation.
|
||||
public override bool StaffAllocationCanBeDeleted (SlmStaffAllocation staffAllocation)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffAllocationCanBeDeleted(staffAllocation)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffAllocation (SlmStaffAllocation staffAllocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffAllocationCanBeDeleted(staffAllocation)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffAllocationElement, SlmStaffAllocation staffAllocation, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffAllocationElement.AppendElement("Id", SysId.ToString(staffAllocation.Id));
|
||||
staffAllocationElement.AppendElement("StaffTaskId", SysId.ToString(staffAllocation.StaffTaskId));
|
||||
staffAllocationElement.AppendElement("StaffMemberId", SysId.ToString(staffAllocation.StaffMemberId));
|
||||
staffAllocationElement.AppendElement("TaskOn", DateUtil.FormatXmlDateTime(staffAllocation.TaskOn));
|
||||
staffAllocationElement.AppendElement("Notes", staffAllocation.Notes);
|
||||
staffAllocationElement.AppendElement("Status", SacsSystem.GetStatusCode(staffAllocation.Status));
|
||||
staffAllocationElement.AppendElement("Flags", staffAllocation.Flags.ToString());
|
||||
if (!SysId.IsValid(staffAllocation.Id))
|
||||
{
|
||||
staffAllocationElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffAllocationElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffAllocationElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffAllocationElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffAllocationElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffAllocationElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffAllocationElement, SlmStaffAllocation staffAllocation)
|
||||
{
|
||||
//staffAllocation.Id = new SysId(StringUtil.ToInt(staffAllocationElement.GetChildText("Id")));
|
||||
//staffAllocation.StaffTaskId= new SysId(StringUtil.ToInt(staffAllocationElement.GetChildText("StaffTaskId")));
|
||||
//staffAllocation.StaffMemberId = new SysId(StringUtil.ToInt(staffAllocationElement.GetChildText("StaffMemberId")));
|
||||
staffAllocation.TaskOn = DateUtil.ParseXmlDateTime(staffAllocationElement.GetChildText("TaskOn"));
|
||||
staffAllocation.Notes = staffAllocationElement.GetChildText("Notes");
|
||||
staffAllocation.Status = SacsSystem.GetStatusForCode(staffAllocationElement.GetChildText("Status"));
|
||||
staffAllocation.SetCreateStamp(DateUtil.ParseXmlDateTime(staffAllocationElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffAllocationElement.GetChildText("CreateBy"))), staffAllocationElement.GetChildText("CreateHost"));
|
||||
staffAllocation.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffAllocationElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffAllocationElement.GetChildText("UpdateBy"))), staffAllocationElement.GetChildText("UpdateHost"));
|
||||
staffAllocation.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffAllocation column definitions.
|
||||
public override ColumnDfn GetStaffAllocationColumnDfn (SlmStaffAllocation.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffAllocation query filter.
|
||||
public override List<string> GetStaffAllocationQueryFilter (SlmStaffAllocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffAllocationQueryFilter_Mobile (SlmStaffAllocation.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffAllocation Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Staff Ids.
|
||||
if (prm.StaffTaskIds.Count > 0) filter.Add("StaffTaskIds", prm.StaffTaskIds.Concat(","));
|
||||
if (prm.StaffMemberIds.Count > 0) filter.Add("StaffMemberIds", prm.StaffMemberIds.Concat(","));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffAllocation sort columns.
|
||||
public List<String> GetStaffAllocationSortColumns (SlmStaffAllocation.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffAllocation count.
|
||||
public override long GetStaffAllocationCount (SlmStaffAllocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffAllocation list.
|
||||
public override List<SlmStaffAllocation> GetStaffAllocationList (SlmStaffAllocation.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffAllocation>> GetStaffAllocationList_Mobile (SlmStaffAllocation.Params prmStaffAllocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffAllocation> companies = new List<SlmStaffAllocation>();
|
||||
String fn = GetType().Name + ".GetStaffAllocationList_Mobile";
|
||||
|
||||
// StaffAllocation columns.
|
||||
List<SlmStaffAllocation.Column> columns = new List<SlmStaffAllocation.Column>()
|
||||
{
|
||||
SlmStaffAllocation.Column.Id,
|
||||
SlmStaffAllocation.Column.StaffTaskId,
|
||||
SlmStaffAllocation.Column.StaffMemberId,
|
||||
SlmStaffAllocation.Column.TaskOn,
|
||||
SlmStaffAllocation.Column.Notes,
|
||||
SlmStaffAllocation.Column.Flags,
|
||||
SlmStaffAllocation.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffAllocationQuery_Mobile(columns, prmStaffAllocation, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffAllocation.Column.Id);
|
||||
SysId staffTaskId = itemData.GetIdValue(SlmStaffAllocation.Column.StaffTaskId);
|
||||
SysId staffMemberId = itemData.GetIdValue(SlmStaffAllocation.Column.StaffMemberId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffAllocation.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffAllocation_Mobile staffAllocation = new SlmStaffAllocation_Mobile(Site, id, staffTaskId, staffMemberId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffAllocation.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffAllocation.Column.StaffAllocationCategory: staffAllocation.StaffAllocationCategory; break;
|
||||
//case SlmStaffAllocation.Column.StaffTaskId: staffAllocation.StaffTaskId = itemData.GetIdValue(column); break;
|
||||
//case SlmStaffAllocation.Column.StaffMemberId: staffAllocation.StaffMemberId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffAllocation.Column.TaskOn: staffAllocation.TaskOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffAllocation.Column.Notes: staffAllocation.Notes = value; break;
|
||||
case SlmStaffAllocation.Column.Status: staffAllocation.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffAllocation);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffAllocation query execution.
|
||||
public override DbResultSet ExecuteStaffAllocationQuery (List<ColumnDfn> columns, SlmStaffAllocation.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffAllocationQuery_Mobile (List<SlmStaffAllocation.Column> staffAllocationColumns, SlmStaffAllocation.Params prmStaffAllocation, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffAllocation.Column column in staffAllocationColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffAllocationRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffAllocationQueryFilter_Mobile(prmStaffAllocation), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffAllocationRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffAllocation;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffAllocationDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffAllocation.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffAllocation Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffAllocation.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffAllocation.Column.Status_Desc:
|
||||
case SlmStaffAllocation.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffAllocation.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffAllocation.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffAllocation.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,336 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f J o b s
|
||||
//*******************************************************************
|
||||
// StaffJob exists.
|
||||
public override bool StaffJobExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffJob.
|
||||
public override SlmStaffJob CreateStaffJob ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffJob_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffJob.
|
||||
public override SlmStaffJob GetStaffJob (SlmStaffJob.Params prmStaffJob)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffJob GetStaffJobById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffJob.
|
||||
public override bool IsValidStaffJobData (SlmStaffJob.Data data, SlmStaffJob.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffJobData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffJob.
|
||||
public override bool InsertStaffJob (SlmStaffJob staffJob, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffJob(staffJob)) return false;
|
||||
if (SysId.IsValid(staffJob.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffJob.
|
||||
public override bool UpdateStaffJob (SlmStaffJob staffJob, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffJob(staffJob)) return false;
|
||||
if (!SysId.IsValid(staffJob.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffJob.
|
||||
public override bool StaffJobCanBeDeleted (SlmStaffJob staffJob)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffJobCanBeDeleted(staffJob)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffJob (SlmStaffJob staffJob, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffJobCanBeDeleted(staffJob)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffJobElement, SlmStaffJob staffJob, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffJobElement.AppendElement("Id", SysId.ToString(staffJob.Id));
|
||||
staffJobElement.AppendElement("Caption", staffJob.Caption);
|
||||
staffJobElement.AppendElement("Location", staffJob.Location);
|
||||
staffJobElement.AppendElement("DisplayColour", staffJob.DisplayColour);
|
||||
staffJobElement.AppendElement("JobStartAt", DateUtil.FormatXmlDateTime(staffJob.JobStartAt));
|
||||
staffJobElement.AppendElement("JobFinishAt", DateUtil.FormatXmlDateTime(staffJob.JobFinishAt));
|
||||
staffJobElement.AppendElement("CruiseBerthingId", SysId.ToString(staffJob.CruiseBerthingId));
|
||||
staffJobElement.AppendElement("Notes", staffJob.Notes);
|
||||
staffJobElement.AppendElement("Status", SacsSystem.GetStatusCode(staffJob.Status));
|
||||
staffJobElement.AppendElement("Flags", staffJob.Flags.ToString());
|
||||
if (!SysId.IsValid(staffJob.Id))
|
||||
{
|
||||
staffJobElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffJobElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffJobElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffJobElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffJobElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffJobElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffJobElement, SlmStaffJob staffJob)
|
||||
{
|
||||
//staffJob.Id = new SysId(StringUtil.ToInt(staffJobElement.GetChildText("Id")));
|
||||
staffJob.Caption = staffJobElement.GetChildText("Caption");
|
||||
staffJob.Location = staffJobElement.GetChildText("Location");
|
||||
staffJob.DisplayColour = staffJobElement.GetChildText("DisplayColour");
|
||||
staffJob.JobStartAt= DateUtil.ParseXmlDateTime(staffJobElement.GetChildText("JobStartAt"));
|
||||
staffJob.JobFinishAt = DateUtil.ParseXmlDateTime(staffJobElement.GetChildText("JobFinishAt"));
|
||||
staffJob.CruiseBerthingId = new SysId(StringUtil.ToInt(staffJobElement.GetChildText("CruiseBerthingId")));
|
||||
staffJob.Notes = staffJobElement.GetChildText("Notes");
|
||||
staffJob.Status = SacsSystem.GetStatusForCode(staffJobElement.GetChildText("Status"));
|
||||
staffJob.SetCreateStamp(DateUtil.ParseXmlDateTime(staffJobElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffJobElement.GetChildText("CreateBy"))), staffJobElement.GetChildText("CreateHost"));
|
||||
staffJob.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffJobElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffJobElement.GetChildText("UpdateBy"))), staffJobElement.GetChildText("UpdateHost"));
|
||||
staffJob.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffJob column definitions.
|
||||
public override ColumnDfn GetStaffJobColumnDfn (SlmStaffJob.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffJob query filter.
|
||||
public override List<string> GetStaffJobQueryFilter (SlmStaffJob.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffJobQueryFilter_Mobile (SlmStaffJob.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffJob Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
|
||||
// Caption.
|
||||
if (!StringUtil.IsEmpty(prm.Caption)) filter.Add("Caption", prm.Caption);
|
||||
if (!StringUtil.IsEmpty(prm.CaptionPartial)) filter.Add("CaptionPartial", prm.CaptionPartial);
|
||||
|
||||
// Job.
|
||||
if (DateUtil.IsValid(prm.JobFrom)) filter.Add("JobFrom", DateUtil.FormatXmlDate(prm.JobFrom));
|
||||
if (DateUtil.IsValid(prm.JobTo)) filter.Add("JobTo", DateUtil.FormatXmlDate(prm.JobTo));
|
||||
|
||||
// Cruise berthing Id.
|
||||
if (SysId.IsValid(prm.CruiseBerthingId)) filter.Add("CruiseBerthingId", SysId.ToString(prm.CruiseBerthingId));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffJob sort columns.
|
||||
public List<String> GetStaffJobSortColumns (SlmStaffJob.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffJob count.
|
||||
public override long GetStaffJobCount (SlmStaffJob.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffJob list.
|
||||
public override List<SlmStaffJob> GetStaffJobList (SlmStaffJob.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffJob>> GetStaffJobList_Mobile (SlmStaffJob.Params prmStaffJob, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffJob> companies = new List<SlmStaffJob>();
|
||||
String fn = GetType().Name + ".GetStaffJobList_Mobile";
|
||||
|
||||
// StaffJob columns.
|
||||
List<SlmStaffJob.Column> columns = new List<SlmStaffJob.Column>()
|
||||
{
|
||||
SlmStaffJob.Column.Id,
|
||||
SlmStaffJob.Column.Caption,
|
||||
SlmStaffJob.Column.Location,
|
||||
SlmStaffJob.Column.DisplayColour,
|
||||
SlmStaffJob.Column.JobStartAt,
|
||||
SlmStaffJob.Column.JobFinishAt,
|
||||
SlmStaffJob.Column.CruiseBerthingId,
|
||||
SlmStaffJob.Column.Notes,
|
||||
SlmStaffJob.Column.Flags,
|
||||
SlmStaffJob.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffJobQuery_Mobile(columns, prmStaffJob, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffJob.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffJob.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffJob_Mobile staffJob = new SlmStaffJob_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffJob.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffJob.Column.StaffJobCategory: staffJob.StaffJobCategory; break;
|
||||
case SlmStaffJob.Column.Caption: staffJob.Caption = value; break;
|
||||
case SlmStaffJob.Column.Location: staffJob.Location = value; break;
|
||||
case SlmStaffJob.Column.DisplayColour: staffJob.DisplayColour = value; break;
|
||||
case SlmStaffJob.Column.JobStartAt: staffJob.JobStartAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffJob.Column.JobFinishAt: staffJob.JobFinishAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffJob.Column.CruiseBerthingId: staffJob.CruiseBerthingId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffJob.Column.Notes: staffJob.Notes = value; break;
|
||||
case SlmStaffJob.Column.Status: staffJob.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffJob);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffJob query execution.
|
||||
public override DbResultSet ExecuteStaffJobQuery (List<ColumnDfn> columns, SlmStaffJob.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffJobQuery_Mobile (List<SlmStaffJob.Column> staffJobColumns, SlmStaffJob.Params prmStaffJob, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffJob.Column column in staffJobColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffJobRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffJobQueryFilter_Mobile(prmStaffJob), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffJobRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffJob;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffJobDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffJob.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffJob Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffJob.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffJob.Column.Status_Desc:
|
||||
case SlmStaffJob.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffJob.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffJob.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffJob.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,317 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f M e m b e r A v a i l a b i l i t i e s
|
||||
//*******************************************************************
|
||||
// StaffMemberAvailability exists.
|
||||
public override bool StaffMemberAvailabilityExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffMemberAvailability.
|
||||
public override SlmStaffMemberAvailability CreateStaffMemberAvailability (SysId staffMemberId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffMemberAvailability_Mobile(Site, null, staffMemberId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffMemberAvailability.
|
||||
public override SlmStaffMemberAvailability GetStaffMemberAvailability (SlmStaffMemberAvailability.Params prmStaffMemberAvailability)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffMemberAvailability GetStaffMemberAvailabilityById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffMemberAvailability.
|
||||
public override bool IsValidStaffMemberAvailabilityData (SlmStaffMemberAvailability.Data data, SlmStaffMemberAvailability.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffMemberAvailabilityData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffMemberAvailability.
|
||||
public override bool InsertStaffMemberAvailability (SlmStaffMemberAvailability staffMemberAvailability, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMemberAvailability(staffMemberAvailability)) return false;
|
||||
if (SysId.IsValid(staffMemberAvailability.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffMemberAvailability.
|
||||
public override bool UpdateStaffMemberAvailability (SlmStaffMemberAvailability staffMemberAvailability, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMemberAvailability(staffMemberAvailability)) return false;
|
||||
if (!SysId.IsValid(staffMemberAvailability.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffMemberAvailability.
|
||||
public override bool StaffMemberAvailabilityCanBeDeleted (SlmStaffMemberAvailability staffMemberAvailability)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffMemberAvailabilityCanBeDeleted(staffMemberAvailability)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffMemberAvailability (SlmStaffMemberAvailability staffMemberAvailability, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffMemberAvailabilityCanBeDeleted(staffMemberAvailability)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffMemberAvailabilityElement, SlmStaffMemberAvailability staffMemberAvailability, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffMemberAvailabilityElement.AppendElement("Id", SysId.ToString(staffMemberAvailability.Id));
|
||||
staffMemberAvailabilityElement.AppendElement("StaffMemberId", SysId.ToString(staffMemberAvailability.StaffMemberId));
|
||||
staffMemberAvailabilityElement.AppendElement("AvailabilityOn", DateUtil.FormatXmlDateTime(staffMemberAvailability.AvailabilityOn));
|
||||
staffMemberAvailabilityElement.AppendElement("Notes", staffMemberAvailability.Notes);
|
||||
staffMemberAvailabilityElement.AppendElement("Status", SacsSystem.GetStatusCode(staffMemberAvailability.Status));
|
||||
staffMemberAvailabilityElement.AppendElement("Flags", staffMemberAvailability.Flags.ToString());
|
||||
if (!SysId.IsValid(staffMemberAvailability.Id))
|
||||
{
|
||||
staffMemberAvailabilityElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberAvailabilityElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberAvailabilityElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffMemberAvailabilityElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberAvailabilityElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberAvailabilityElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffMemberAvailabilityElement, SlmStaffMemberAvailability staffMemberAvailability)
|
||||
{
|
||||
//staffMemberAvailability.Id = new SysId(StringUtil.ToInt(staffMemberAvailabilityElement.GetChildText("Id")));
|
||||
//staffMemberAvailability.StaffMemberId = new SysId(StringUtil.ToInt(staffMemberAvailabilityElement.GetChildText("StaffMemberId")));
|
||||
staffMemberAvailability.AvailabilityOn = DateUtil.ParseXmlDateTime(staffMemberAvailabilityElement.GetChildText("AvailabilityOn"));
|
||||
staffMemberAvailability.Notes = staffMemberAvailabilityElement.GetChildText("Notes");
|
||||
staffMemberAvailability.Status = SacsSystem.GetStatusForCode(staffMemberAvailabilityElement.GetChildText("Status"));
|
||||
staffMemberAvailability.SetCreateStamp(DateUtil.ParseXmlDateTime(staffMemberAvailabilityElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffMemberAvailabilityElement.GetChildText("CreateBy"))), staffMemberAvailabilityElement.GetChildText("CreateHost"));
|
||||
staffMemberAvailability.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffMemberAvailabilityElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffMemberAvailabilityElement.GetChildText("UpdateBy"))), staffMemberAvailabilityElement.GetChildText("UpdateHost"));
|
||||
staffMemberAvailability.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberAvailability column definitions.
|
||||
public override ColumnDfn GetStaffMemberAvailabilityColumnDfn (SlmStaffMemberAvailability.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberAvailability query filter.
|
||||
public override List<string> GetStaffMemberAvailabilityQueryFilter (SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffMemberAvailabilityQueryFilter_Mobile (SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffMemberAvailability Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Staff Member Ids.
|
||||
if (prm.StaffMemberIds.Count > 0) filter.Add("StaffMemberIds", prm.StaffMemberIds.Concat(","));
|
||||
|
||||
// Availability.
|
||||
if (DateUtil.IsValid(prm.AvailabilityFrom)) filter.Add("AvailabilityFrom", DateUtil.FormatXmlDate(prm.AvailabilityFrom));
|
||||
if (DateUtil.IsValid(prm.AvailabilityTo)) filter.Add("AvailabilityTo", DateUtil.FormatXmlDate(prm.AvailabilityTo));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffMemberAvailability sort columns.
|
||||
public List<String> GetStaffMemberAvailabilitySortColumns (SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberAvailability count.
|
||||
public override long GetStaffMemberAvailabilityCount (SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberAvailability list.
|
||||
public override List<SlmStaffMemberAvailability> GetStaffMemberAvailabilityList (SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffMemberAvailability>> GetStaffMemberAvailabilityList_Mobile (SlmStaffMemberAvailability.Params prmStaffMemberAvailability, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffMemberAvailability> companies = new List<SlmStaffMemberAvailability>();
|
||||
String fn = GetType().Name + ".GetStaffMemberAvailabilityList_Mobile";
|
||||
|
||||
// StaffMemberAvailability columns.
|
||||
List<SlmStaffMemberAvailability.Column> columns = new List<SlmStaffMemberAvailability.Column>()
|
||||
{
|
||||
SlmStaffMemberAvailability.Column.Id,
|
||||
SlmStaffMemberAvailability.Column.StaffMemberId,
|
||||
SlmStaffMemberAvailability.Column.AvailabilityOn,
|
||||
SlmStaffMemberAvailability.Column.Notes,
|
||||
SlmStaffMemberAvailability.Column.Flags,
|
||||
SlmStaffMemberAvailability.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffMemberAvailabilityQuery_Mobile(columns, prmStaffMemberAvailability, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffMemberAvailability.Column.Id);
|
||||
SysId staffMemberId = itemData.GetIdValue(SlmStaffMemberAvailability.Column.StaffMemberId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffMemberAvailability.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffMemberAvailability_Mobile staffMemberAvailability = new SlmStaffMemberAvailability_Mobile(Site, id, staffMemberId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffMemberAvailability.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffMemberAvailability.Column.StaffMemberAvailabilityCategory: staffMemberAvailability.StaffMemberAvailabilityCategory; break;
|
||||
//case SlmStaffMemberAvailability.Column.StaffMemberId: staffMemberAvailability.StaffMemberId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffMemberAvailability.Column.AvailabilityOn: staffMemberAvailability.AvailabilityOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffMemberAvailability.Column.Notes: staffMemberAvailability.Notes = value; break;
|
||||
case SlmStaffMemberAvailability.Column.Status: staffMemberAvailability.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffMemberAvailability);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberAvailability query execution.
|
||||
public override DbResultSet ExecuteStaffMemberAvailabilityQuery (List<ColumnDfn> columns, SlmStaffMemberAvailability.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffMemberAvailabilityQuery_Mobile (List<SlmStaffMemberAvailability.Column> staffMemberAvailabilityColumns, SlmStaffMemberAvailability.Params prmStaffMemberAvailability, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffMemberAvailability.Column column in staffMemberAvailabilityColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffMemberAvailabilityRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffMemberAvailabilityQueryFilter_Mobile(prmStaffMemberAvailability), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffMemberAvailabilityRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffMemberAvailability;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffMemberAvailabilityDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffMemberAvailability.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffMemberAvailability Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffMemberAvailability.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffMemberAvailability.Column.Status_Desc:
|
||||
case SlmStaffMemberAvailability.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffMemberAvailability.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffMemberAvailability.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffMemberAvailability.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f M e m b e r S k i l l s
|
||||
//*******************************************************************
|
||||
// StaffMemberSkill exists.
|
||||
public override bool StaffMemberSkillExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffMemberSkill.
|
||||
public override SlmStaffMemberSkill CreateStaffMemberSkill (SysId staffMemberId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffMemberSkill_Mobile(Site, null, staffMemberId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffMemberSkill.
|
||||
public override SlmStaffMemberSkill GetStaffMemberSkill (SlmStaffMemberSkill.Params prmStaffMemberSkill)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffMemberSkill GetStaffMemberSkillById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffMemberSkill.
|
||||
public override bool IsValidStaffMemberSkillData (SlmStaffMemberSkill.Data data, SlmStaffMemberSkill.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffMemberSkillData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffMemberSkill.
|
||||
public override bool InsertStaffMemberSkill (SlmStaffMemberSkill staffMemberSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMemberSkill(staffMemberSkill)) return false;
|
||||
if (SysId.IsValid(staffMemberSkill.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffMemberSkill.
|
||||
public override bool UpdateStaffMemberSkill (SlmStaffMemberSkill staffMemberSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMemberSkill(staffMemberSkill)) return false;
|
||||
if (!SysId.IsValid(staffMemberSkill.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffMemberSkill.
|
||||
public override bool StaffMemberSkillCanBeDeleted (SlmStaffMemberSkill staffMemberSkill)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffMemberSkillCanBeDeleted(staffMemberSkill)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffMemberSkill (SlmStaffMemberSkill staffMemberSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffMemberSkillCanBeDeleted(staffMemberSkill)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffMemberSkillElement, SlmStaffMemberSkill staffMemberSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffMemberSkillElement.AppendElement("Id", SysId.ToString(staffMemberSkill.Id));
|
||||
staffMemberSkillElement.AppendElement("StaffMemberId", SysId.ToString(staffMemberSkill.StaffMemberId));
|
||||
staffMemberSkillElement.AppendElement("SkillCode", staffMemberSkill.SkillCode);
|
||||
staffMemberSkillElement.AppendElement("Notes", staffMemberSkill.Notes);
|
||||
staffMemberSkillElement.AppendElement("Status", SacsSystem.GetStatusCode(staffMemberSkill.Status));
|
||||
staffMemberSkillElement.AppendElement("Flags", staffMemberSkill.Flags.ToString());
|
||||
if (!SysId.IsValid(staffMemberSkill.Id))
|
||||
{
|
||||
staffMemberSkillElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberSkillElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberSkillElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffMemberSkillElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberSkillElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberSkillElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffMemberSkillElement, SlmStaffMemberSkill staffMemberSkill)
|
||||
{
|
||||
//staffMemberSkill.Id = new SysId(StringUtil.ToInt(staffMemberSkillElement.GetChildText("Id")));
|
||||
//staffMemberSkill.StaffMemberId = new SysId(StringUtil.ToInt(staffMemberSkillElement.GetChildText("StaffMemberId")));
|
||||
staffMemberSkill.SkillCode = staffMemberSkillElement.GetChildText("SkillCode");
|
||||
staffMemberSkill.Notes = staffMemberSkillElement.GetChildText("Notes");
|
||||
staffMemberSkill.Status = SacsSystem.GetStatusForCode(staffMemberSkillElement.GetChildText("Status"));
|
||||
staffMemberSkill.SetCreateStamp(DateUtil.ParseXmlDateTime(staffMemberSkillElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffMemberSkillElement.GetChildText("CreateBy"))), staffMemberSkillElement.GetChildText("CreateHost"));
|
||||
staffMemberSkill.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffMemberSkillElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffMemberSkillElement.GetChildText("UpdateBy"))), staffMemberSkillElement.GetChildText("UpdateHost"));
|
||||
staffMemberSkill.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberSkill column definitions.
|
||||
public override ColumnDfn GetStaffMemberSkillColumnDfn (SlmStaffMemberSkill.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberSkill query filter.
|
||||
public override List<string> GetStaffMemberSkillQueryFilter (SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffMemberSkillQueryFilter_Mobile (SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffMemberSkill Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Staff Member Id.
|
||||
if (SysId.IsValid(prm.StaffMemberId)) filter.Add("StaffMemberId", SysId.ToString(prm.StaffMemberId));
|
||||
|
||||
// Skill Code.
|
||||
if (!StringUtil.IsEmpty(prm.SkillCode)) filter.Add("SkillCode", prm.SkillCode);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffMemberSkill sort columns.
|
||||
public List<String> GetStaffMemberSkillSortColumns (SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberSkill count.
|
||||
public override long GetStaffMemberSkillCount (SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberSkill list.
|
||||
public override List<SlmStaffMemberSkill> GetStaffMemberSkillList (SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffMemberSkill>> GetStaffMemberSkillList_Mobile (SlmStaffMemberSkill.Params prmStaffMemberSkill, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffMemberSkill> companies = new List<SlmStaffMemberSkill>();
|
||||
String fn = GetType().Name + ".GetStaffMemberSkillList_Mobile";
|
||||
|
||||
// StaffMemberSkill columns.
|
||||
List<SlmStaffMemberSkill.Column> columns = new List<SlmStaffMemberSkill.Column>()
|
||||
{
|
||||
SlmStaffMemberSkill.Column.Id,
|
||||
SlmStaffMemberSkill.Column.StaffMemberId,
|
||||
SlmStaffMemberSkill.Column.SkillCode,
|
||||
SlmStaffMemberSkill.Column.Notes,
|
||||
SlmStaffMemberSkill.Column.Flags,
|
||||
SlmStaffMemberSkill.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffMemberSkillQuery_Mobile(columns, prmStaffMemberSkill, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffMemberSkill.Column.Id);
|
||||
SysId staffMemberId = itemData.GetIdValue(SlmStaffMemberSkill.Column.StaffMemberId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffMemberSkill.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffMemberSkill_Mobile staffMemberSkill = new SlmStaffMemberSkill_Mobile(Site, id, staffMemberId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffMemberSkill.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffMemberSkill.Column.StaffMemberSkillCategory: staffMemberSkill.StaffMemberSkillCategory; break;
|
||||
//case SlmStaffMemberSkill.Column.StaffMemberId: staffMemberSkill.StaffMemberId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffMemberSkill.Column.SkillCode: staffMemberSkill.SkillCode = value; break;
|
||||
case SlmStaffMemberSkill.Column.Notes: staffMemberSkill.Notes = value; break;
|
||||
case SlmStaffMemberSkill.Column.Status: staffMemberSkill.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffMemberSkill);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMemberSkill query execution.
|
||||
public override DbResultSet ExecuteStaffMemberSkillQuery (List<ColumnDfn> columns, SlmStaffMemberSkill.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffMemberSkillQuery_Mobile (List<SlmStaffMemberSkill.Column> staffMemberSkillColumns, SlmStaffMemberSkill.Params prmStaffMemberSkill, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffMemberSkill.Column column in staffMemberSkillColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffMemberSkillRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffMemberSkillQueryFilter_Mobile(prmStaffMemberSkill), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffMemberSkillRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffMemberSkill;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffMemberSkillDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffMemberSkill.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffMemberSkill Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffMemberSkill.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffMemberSkill.Column.Status_Desc:
|
||||
case SlmStaffMemberSkill.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffMemberSkill.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffMemberSkill.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffMemberSkill.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,370 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f M e m b e r s
|
||||
//*******************************************************************
|
||||
// StaffMember exists.
|
||||
public override bool StaffMemberExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffMember.
|
||||
public override SlmStaffMember CreateStaffMember ()
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffMember_Mobile(Site, null, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffMember.
|
||||
public override SlmStaffMember GetStaffMember (SlmStaffMember.Params prmStaffMember)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffMember GetStaffMemberById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffMember.
|
||||
public override bool IsValidStaffMemberData (SlmStaffMember.Data data, SlmStaffMember.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffMemberData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffMember.
|
||||
public override bool InsertStaffMember (SlmStaffMember staffMember, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMember(staffMember)) return false;
|
||||
if (SysId.IsValid(staffMember.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffMember.
|
||||
public override bool UpdateStaffMember (SlmStaffMember staffMember, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffMember(staffMember)) return false;
|
||||
if (!SysId.IsValid(staffMember.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffMember.
|
||||
public override bool StaffMemberCanBeDeleted (SlmStaffMember staffMember)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffMemberCanBeDeleted(staffMember)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffMember (SlmStaffMember staffMember, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffMemberCanBeDeleted(staffMember)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffMemberElement, SlmStaffMember staffMember, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffMemberElement.AppendElement("Id", SysId.ToString(staffMember.Id));
|
||||
staffMemberElement.AppendElement("FirstName", staffMember.FirstName);
|
||||
staffMemberElement.AppendElement("LastName", staffMember.LastName);
|
||||
staffMemberElement.AppendElement("DateOfBirth", DateUtil.FormatXmlDateTime(staffMember.DateOfBirth));
|
||||
staffMemberElement.AppendElement("Email", staffMember.Email);
|
||||
staffMemberElement.AppendElement("PhoneHome", staffMember.PhoneHome);
|
||||
staffMemberElement.AppendElement("PhoneMobile", staffMember.PhoneMobile);
|
||||
staffMemberElement.AppendElement("ContractHours", staffMember.ContractHours.ToString("N3"));
|
||||
staffMemberElement.AppendElement("ContractStartOn", DateUtil.FormatXmlDateTime(staffMember.ContractStartOn));
|
||||
staffMemberElement.AppendElement("ContractFinishOn", DateUtil.FormatXmlDateTime(staffMember.ContractFinishOn));
|
||||
staffMemberElement.AppendElement("SizeWaist", staffMember.SizeWaist);
|
||||
staffMemberElement.AppendElement("SizeChest", staffMember.SizeChest);
|
||||
staffMemberElement.AppendElement("SizeCollar", staffMember.SizeCollar);
|
||||
staffMemberElement.AppendElement("SizeShoe", staffMember.SizeShoe);
|
||||
staffMemberElement.AppendElement("EmergencyContactName", staffMember.EmergencyContactName);
|
||||
staffMemberElement.AppendElement("EmergencyContactPhone", staffMember.EmergencyContactPhone);
|
||||
staffMemberElement.AppendElement("Notes", staffMember.Notes);
|
||||
staffMemberElement.AppendElement("Status", SacsSystem.GetStatusCode(staffMember.Status));
|
||||
staffMemberElement.AppendElement("Flags", staffMember.Flags.ToString());
|
||||
if (!SysId.IsValid(staffMember.Id))
|
||||
{
|
||||
staffMemberElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffMemberElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffMemberElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffMemberElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffMemberElement, SlmStaffMember staffMember)
|
||||
{
|
||||
//staffMember.Id = new SysId(StringUtil.ToInt(staffMemberElement.GetChildText("Id")));
|
||||
staffMember.FirstName = staffMemberElement.GetChildText("FirstName");
|
||||
staffMember.LastName = staffMemberElement.GetChildText("LastName");
|
||||
staffMember.DateOfBirth = DateUtil.ParseXmlDateTime(staffMemberElement.GetChildText("DateOfBirth"));
|
||||
staffMember.Email = staffMemberElement.GetChildText("Email");
|
||||
staffMember.PhoneHome = staffMemberElement.GetChildText("PhoneHome");
|
||||
staffMember.PhoneMobile = staffMemberElement.GetChildText("PhoneMobile");
|
||||
staffMember.ContractHours = StringUtil.ToInt(staffMemberElement.GetChildText("ContractHours"));
|
||||
staffMember.ContractStartOn = DateUtil.ParseXmlDateTime(staffMemberElement.GetChildText("ContractStartOn"));
|
||||
staffMember.ContractFinishOn = DateUtil.ParseXmlDateTime(staffMemberElement.GetChildText("ContractFinishOn"));
|
||||
staffMember.SizeWaist = staffMemberElement.GetChildText("SizeWaist");
|
||||
staffMember.SizeChest = staffMemberElement.GetChildText("SizeChest");
|
||||
staffMember.SizeCollar = staffMemberElement.GetChildText("SizeCollar");
|
||||
staffMember.SizeShoe = staffMemberElement.GetChildText("SizeShoe");
|
||||
staffMember.EmergencyContactName = staffMemberElement.GetChildText("EmergencyContactName");
|
||||
staffMember.EmergencyContactPhone = staffMemberElement.GetChildText("EmergencyContactPhone");
|
||||
staffMember.Notes = staffMemberElement.GetChildText("Notes");
|
||||
staffMember.Status = SacsSystem.GetStatusForCode(staffMemberElement.GetChildText("Status"));
|
||||
staffMember.SetCreateStamp(DateUtil.ParseXmlDateTime(staffMemberElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffMemberElement.GetChildText("CreateBy"))), staffMemberElement.GetChildText("CreateHost"));
|
||||
staffMember.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffMemberElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffMemberElement.GetChildText("UpdateBy"))), staffMemberElement.GetChildText("UpdateHost"));
|
||||
staffMember.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMember column definitions.
|
||||
public override ColumnDfn GetStaffMemberColumnDfn (SlmStaffMember.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMember query filter.
|
||||
public override List<string> GetStaffMemberQueryFilter (SlmStaffMember.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffMemberQueryFilter_Mobile (SlmStaffMember.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffMember Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
|
||||
// Name.
|
||||
if (!StringUtil.IsEmpty(prm.NamePartial)) filter.Add("NamePartial", prm.NamePartial);
|
||||
if (!StringUtil.IsEmpty(prm.LastName)) filter.Add("LastName", prm.LastName);
|
||||
if (!StringUtil.IsEmpty(prm.LastNamePartial)) filter.Add("LastNamePartial", prm.LastNamePartial);
|
||||
|
||||
// Availability.
|
||||
if (DateUtil.IsValid(prm.AvailableFrom)) filter.Add("AvailableFrom", DateUtil.FormatXmlDate(prm.AvailableFrom));
|
||||
if (DateUtil.IsValid(prm.AvailableTo)) filter.Add("AvailableTo", DateUtil.FormatXmlDate(prm.AvailableTo));
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffMember sort columns.
|
||||
public List<String> GetStaffMemberSortColumns (SlmStaffMember.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMember count.
|
||||
public override long GetStaffMemberCount (SlmStaffMember.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMember list.
|
||||
public override List<SlmStaffMember> GetStaffMemberList (SlmStaffMember.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffMember>> GetStaffMemberList_Mobile (SlmStaffMember.Params prmStaffMember, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffMember> companies = new List<SlmStaffMember>();
|
||||
String fn = GetType().Name + ".GetStaffMemberList_Mobile";
|
||||
|
||||
// StaffMember columns.
|
||||
List<SlmStaffMember.Column> columns = new List<SlmStaffMember.Column>()
|
||||
{
|
||||
SlmStaffMember.Column.Id,
|
||||
SlmStaffMember.Column.FirstName,
|
||||
SlmStaffMember.Column.LastName,
|
||||
SlmStaffMember.Column.DateOfBirth,
|
||||
SlmStaffMember.Column.Email,
|
||||
SlmStaffMember.Column.PhoneHome,
|
||||
SlmStaffMember.Column.PhoneMobile,
|
||||
SlmStaffMember.Column.ContractHours,
|
||||
SlmStaffMember.Column.ContractStartOn,
|
||||
SlmStaffMember.Column.ContractFinishOn,
|
||||
SlmStaffMember.Column.SizeWaist,
|
||||
SlmStaffMember.Column.SizeChest,
|
||||
SlmStaffMember.Column.SizeCollar,
|
||||
SlmStaffMember.Column.SizeShoe,
|
||||
SlmStaffMember.Column.EmergencyContactName,
|
||||
SlmStaffMember.Column.EmergencyContactPhone,
|
||||
SlmStaffMember.Column.Notes,
|
||||
SlmStaffMember.Column.Flags,
|
||||
SlmStaffMember.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffMemberQuery_Mobile(columns, prmStaffMember, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffMember.Column.Id);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffMember.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffMember_Mobile staffMember = new SlmStaffMember_Mobile(Site, id, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffMember.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffMember.Column.StaffMemberCategory: staffMember.StaffMemberCategory; break;
|
||||
case SlmStaffMember.Column.FirstName: staffMember.FirstName = value; break;
|
||||
case SlmStaffMember.Column.LastName: staffMember.LastName = value; break;
|
||||
case SlmStaffMember.Column.DateOfBirth: staffMember.DateOfBirth = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffMember.Column.Email: staffMember.Email = value; break;
|
||||
case SlmStaffMember.Column.PhoneHome: staffMember.PhoneHome = value; break;
|
||||
case SlmStaffMember.Column.PhoneMobile: staffMember.PhoneMobile = value; break;
|
||||
case SlmStaffMember.Column.ContractHours: staffMember.ContractHours = itemData.GetIntValue(column); break;
|
||||
case SlmStaffMember.Column.ContractStartOn: staffMember.ContractStartOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffMember.Column.ContractFinishOn: staffMember.ContractFinishOn = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffMember.Column.SizeWaist: staffMember.SizeWaist = value; break;
|
||||
case SlmStaffMember.Column.SizeChest: staffMember.SizeChest = value; break;
|
||||
case SlmStaffMember.Column.SizeCollar: staffMember.SizeCollar = value; break;
|
||||
case SlmStaffMember.Column.SizeShoe: staffMember.SizeShoe = value; break;
|
||||
case SlmStaffMember.Column.EmergencyContactName: staffMember.EmergencyContactName = value; break;
|
||||
case SlmStaffMember.Column.EmergencyContactPhone: staffMember.EmergencyContactPhone = value; break;
|
||||
case SlmStaffMember.Column.Notes: staffMember.Notes = value; break;
|
||||
case SlmStaffMember.Column.Status: staffMember.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffMember);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffMember query execution.
|
||||
public override DbResultSet ExecuteStaffMemberQuery (List<ColumnDfn> columns, SlmStaffMember.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffMemberQuery_Mobile (List<SlmStaffMember.Column> staffMemberColumns, SlmStaffMember.Params prmStaffMember, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffMember.Column column in staffMemberColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffMemberRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffMemberQueryFilter_Mobile(prmStaffMember), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffMemberRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffMember;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffMemberDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffMember.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffMember Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffMember.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffMember.Column.Status_Desc:
|
||||
case SlmStaffMember.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffMember.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffMember.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffMember.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,316 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f T a s k s S k i l l s
|
||||
//*******************************************************************
|
||||
// StaffTaskSkill exists.
|
||||
public override bool StaffTaskSkillExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffTaskSkill.
|
||||
public override SlmStaffTaskSkill CreateStaffTaskSkill (SysId staffTaskId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffTaskSkill_Mobile(Site, null, staffTaskId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffTaskSkill.
|
||||
public override SlmStaffTaskSkill GetStaffTaskSkill (SlmStaffTaskSkill.Params prmStaffTaskSkill)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffTaskSkill GetStaffTaskSkillById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffTaskSkill.
|
||||
public override bool IsValidStaffTaskSkillData (SlmStaffTaskSkill.Data data, SlmStaffTaskSkill.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffTaskSkillData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffTaskSkill.
|
||||
public override bool InsertStaffTaskSkill (SlmStaffTaskSkill staffTaskSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffTaskSkill(staffTaskSkill)) return false;
|
||||
if (SysId.IsValid(staffTaskSkill.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffTaskSkill.
|
||||
public override bool UpdateStaffTaskSkill (SlmStaffTaskSkill staffTaskSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffTaskSkill(staffTaskSkill)) return false;
|
||||
if (!SysId.IsValid(staffTaskSkill.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffTaskSkill.
|
||||
public override bool StaffTaskSkillCanBeDeleted (SlmStaffTaskSkill staffTaskSkill)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffTaskSkillCanBeDeleted(staffTaskSkill)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffTaskSkill (SlmStaffTaskSkill staffTaskSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffTaskSkillCanBeDeleted(staffTaskSkill)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffTaskSkillElement, SlmStaffTaskSkill staffTaskSkill, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffTaskSkillElement.AppendElement("Id", SysId.ToString(staffTaskSkill.Id));
|
||||
staffTaskSkillElement.AppendElement("StaffTaskId", SysId.ToString(staffTaskSkill.StaffTaskId));
|
||||
staffTaskSkillElement.AppendElement("SkillCode", staffTaskSkill.SkillCode);
|
||||
staffTaskSkillElement.AppendElement("Notes", staffTaskSkill.Notes);
|
||||
staffTaskSkillElement.AppendElement("Status", SacsSystem.GetStatusCode(staffTaskSkill.Status));
|
||||
staffTaskSkillElement.AppendElement("Flags", staffTaskSkill.Flags.ToString());
|
||||
if (!SysId.IsValid(staffTaskSkill.Id))
|
||||
{
|
||||
staffTaskSkillElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffTaskSkillElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffTaskSkillElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffTaskSkillElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffTaskSkillElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffTaskSkillElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffTaskSkillElement, SlmStaffTaskSkill staffTaskSkill)
|
||||
{
|
||||
//staffTaskSkill.Id = new SysId(StringUtil.ToInt(staffTaskSkillElement.GetChildText("Id")));
|
||||
//staffTaskSkill.StaffMemberId = new SysId(StringUtil.ToInt(staffTaskSkillElement.GetChildText("StaffMemberId")));
|
||||
staffTaskSkill.SkillCode = staffTaskSkillElement.GetChildText("SkillCode");
|
||||
staffTaskSkill.Notes = staffTaskSkillElement.GetChildText("Notes");
|
||||
staffTaskSkill.Status = SacsSystem.GetStatusForCode(staffTaskSkillElement.GetChildText("Status"));
|
||||
staffTaskSkill.SetCreateStamp(DateUtil.ParseXmlDateTime(staffTaskSkillElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffTaskSkillElement.GetChildText("CreateBy"))), staffTaskSkillElement.GetChildText("CreateHost"));
|
||||
staffTaskSkill.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffTaskSkillElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffTaskSkillElement.GetChildText("UpdateBy"))), staffTaskSkillElement.GetChildText("UpdateHost"));
|
||||
staffTaskSkill.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTaskSkill column definitions.
|
||||
public override ColumnDfn GetStaffTaskSkillColumnDfn (SlmStaffTaskSkill.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTaskSkill query filter.
|
||||
public override List<string> GetStaffTaskSkillQueryFilter (SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffTaskSkillQueryFilter_Mobile (SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffTaskSkill Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Staff Task Id.
|
||||
if (SysId.IsValid(prm.StaffTask)) filter.Add("StaffTask", SysId.ToString(prm.StaffTask));
|
||||
|
||||
// Skill Code.
|
||||
if (!StringUtil.IsEmpty(prm.SkillCode)) filter.Add("SkillCode", prm.SkillCode);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffTaskSkill sort columns.
|
||||
public List<String> GetStaffTaskSkillSortColumns (SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTaskSkill count.
|
||||
public override long GetStaffTaskSkillCount (SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTaskSkill list.
|
||||
public override List<SlmStaffTaskSkill> GetStaffTaskSkillList (SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffTaskSkill>> GetStaffTaskSkillList_Mobile (SlmStaffTaskSkill.Params prmStaffTaskSkill, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffTaskSkill> companies = new List<SlmStaffTaskSkill>();
|
||||
String fn = GetType().Name + ".GetStaffTaskSkillList_Mobile";
|
||||
|
||||
// StaffTaskSkill columns.
|
||||
List<SlmStaffTaskSkill.Column> columns = new List<SlmStaffTaskSkill.Column>()
|
||||
{
|
||||
SlmStaffTaskSkill.Column.Id,
|
||||
SlmStaffTaskSkill.Column.StaffTaskId,
|
||||
SlmStaffTaskSkill.Column.SkillCode,
|
||||
SlmStaffTaskSkill.Column.Notes,
|
||||
SlmStaffTaskSkill.Column.Flags,
|
||||
SlmStaffTaskSkill.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffTaskSkillQuery_Mobile(columns, prmStaffTaskSkill, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffTaskSkill.Column.Id);
|
||||
SysId staffMemberId = itemData.GetIdValue(SlmStaffTaskSkill.Column.StaffTaskId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffTaskSkill.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffTaskSkill_Mobile staffTaskSkill = new SlmStaffTaskSkill_Mobile(Site, id, staffMemberId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffTaskSkill.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffTaskSkill.Column.StaffTaskSkillCategory: staffTaskSkill.StaffTaskSkillCategory; break;
|
||||
//case SlmStaffTaskSkill.Column.StaffTaskId: staffTaskSkill.StaffTaskId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffTaskSkill.Column.SkillCode: staffTaskSkill.SkillCode = value; break;
|
||||
case SlmStaffTaskSkill.Column.Notes: staffTaskSkill.Notes = value; break;
|
||||
case SlmStaffTaskSkill.Column.Status: staffTaskSkill.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffTaskSkill);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTaskSkill query execution.
|
||||
public override DbResultSet ExecuteStaffTaskSkillQuery (List<ColumnDfn> columns, SlmStaffTaskSkill.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffTaskSkillQuery_Mobile (List<SlmStaffTaskSkill.Column> staffTaskSkillColumns, SlmStaffTaskSkill.Params prmStaffTaskSkill, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffTaskSkill.Column column in staffTaskSkillColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffTaskSkillRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffTaskSkillQueryFilter_Mobile(prmStaffTaskSkill), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffTaskSkillRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffTaskSkill;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffTaskSkillDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffTaskSkill.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffTaskSkill Category.
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffTaskSkill.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffTaskSkill.Column.Status_Desc:
|
||||
case SlmStaffTaskSkill.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffTaskSkill.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffTaskSkill.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffTaskSkill.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,341 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmStaffMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// S t a f f T a s k s
|
||||
//*******************************************************************
|
||||
// StaffTask exists.
|
||||
public override bool StaffTaskExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create StaffTask.
|
||||
public override SlmStaffTask CreateStaffTask (SysId staffJobId)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmStaffTask_Mobile(Site, null, staffJobId, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get StaffTask.
|
||||
public override SlmStaffTask GetStaffTask (SlmStaffTask.Params prmStaffTask)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmStaffTask GetStaffTaskById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate StaffTask.
|
||||
public override bool IsValidStaffTaskData (SlmStaffTask.Data data, SlmStaffTask.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidStaffTaskData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert StaffTask.
|
||||
public override bool InsertStaffTask (SlmStaffTask staffTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffTask(staffTask)) return false;
|
||||
if (SysId.IsValid(staffTask.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update StaffTask.
|
||||
public override bool UpdateStaffTask (SlmStaffTask staffTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidStaffTask(staffTask)) return false;
|
||||
if (!SysId.IsValid(staffTask.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete StaffTask.
|
||||
public override bool StaffTaskCanBeDeleted (SlmStaffTask staffTask)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.StaffTaskCanBeDeleted(staffTask)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteStaffTask (SlmStaffTask staffTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StaffTaskCanBeDeleted(staffTask)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement staffTaskElement, SlmStaffTask staffTask, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
staffTaskElement.AppendElement("Id", SysId.ToString(staffTask.Id));
|
||||
staffTaskElement.AppendElement("StaffJobId", SysId.ToString(staffTask.StaffJobId));
|
||||
staffTaskElement.AppendElement("TaskStartAt", DateUtil.FormatXmlDateTime(staffTask.TaskStartAt));
|
||||
staffTaskElement.AppendElement("TaskFinishAt", DateUtil.FormatXmlDateTime(staffTask.TaskFinishAt));
|
||||
staffTaskElement.AppendElement("StaffRequired", staffTask.StaffRequired.ToString("N3"));
|
||||
staffTaskElement.AppendElement("StaffExternal", staffTask.StaffExternal.ToString("N3"));
|
||||
staffTaskElement.AppendElement("SkillCode", staffTask.SkillCode);
|
||||
staffTaskElement.AppendElement("Notes", staffTask.Notes);
|
||||
staffTaskElement.AppendElement("Status", SacsSystem.GetStatusCode(staffTask.Status));
|
||||
staffTaskElement.AppendElement("Flags", staffTask.Flags.ToString());
|
||||
if (!SysId.IsValid(staffTask.Id))
|
||||
{
|
||||
staffTaskElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffTaskElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffTaskElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
staffTaskElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
staffTaskElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
staffTaskElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement staffTaskElement, SlmStaffTask staffTask)
|
||||
{
|
||||
//staffTask.Id = new SysId(StringUtil.ToInt(staffTaskElement.GetChildText("Id")));
|
||||
//staffTask.StaffJobId = new SysId(StringUtil.ToInt(staffTaskElement.GetChildText("StaffJobId")));
|
||||
staffTask.TaskStartAt = DateUtil.ParseXmlDateTime(staffTaskElement.GetChildText("TaskStartAt"));
|
||||
staffTask.TaskFinishAt = DateUtil.ParseXmlDateTime(staffTaskElement.GetChildText("TaskFinishAt"));
|
||||
staffTask.StaffRequired = StringUtil.ToShort(staffTaskElement.GetChildText("Caption"));
|
||||
staffTask.StaffExternal = StringUtil.ToShort(staffTaskElement.GetChildText("Location"));
|
||||
staffTask.SkillCode = staffTaskElement.GetChildText("SkillCode");
|
||||
staffTask.Notes = staffTaskElement.GetChildText("Notes");
|
||||
staffTask.Status = SacsSystem.GetStatusForCode(staffTaskElement.GetChildText("Status"));
|
||||
staffTask.SetCreateStamp(DateUtil.ParseXmlDateTime(staffTaskElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(staffTaskElement.GetChildText("CreateBy"))), staffTaskElement.GetChildText("CreateHost"));
|
||||
staffTask.SetUpdateStamp(DateUtil.ParseXmlDateTime(staffTaskElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(staffTaskElement.GetChildText("UpdateBy"))), staffTaskElement.GetChildText("UpdateHost"));
|
||||
staffTask.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTask column definitions.
|
||||
public override ColumnDfn GetStaffTaskColumnDfn (SlmStaffTask.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTask query filter.
|
||||
public override List<string> GetStaffTaskQueryFilter (SlmStaffTask.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetStaffTaskQueryFilter_Mobile (SlmStaffTask.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// StaffTask Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Staff Job Ids.
|
||||
if (prm.StaffJobIds.Count > 0) filter.Add("StaffJobIds", prm.StaffJobIds.Concat(","));
|
||||
|
||||
// Job Caption Partial.
|
||||
if (!StringUtil.IsEmpty(prm.JobCaptionPartial)) filter.Add("JobCaptionPartial", prm.JobCaptionPartial);
|
||||
|
||||
// Task.
|
||||
if (DateUtil.IsValid(prm.TaskFrom)) filter.Add("TaskFrom", DateUtil.FormatXmlDate(prm.TaskFrom));
|
||||
if (DateUtil.IsValid(prm.TaskTo)) filter.Add("TaskTo", DateUtil.FormatXmlDate(prm.TaskTo));
|
||||
|
||||
// Skill Code.
|
||||
if (prm.SkillCode.Count > 0) filter.Add("SkillCode", prm.SkillCode.ToCsv());
|
||||
|
||||
// External Staff Required.
|
||||
if (prm.ExternalStaffRequired != false) filter.Add("ExternalStaffRequired", prm.ExternalStaffRequired.ToString());
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// StaffTask sort columns.
|
||||
public List<String> GetStaffTaskSortColumns (SlmStaffTask.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTask count.
|
||||
public override long GetStaffTaskCount (SlmStaffTask.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTask list.
|
||||
public override List<SlmStaffTask> GetStaffTaskList (SlmStaffTask.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmStaffTask>> GetStaffTaskList_Mobile (SlmStaffTask.Params prmStaffTask, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmStaffTask> companies = new List<SlmStaffTask>();
|
||||
String fn = GetType().Name + ".GetStaffTaskList_Mobile";
|
||||
|
||||
// StaffTask columns.
|
||||
List<SlmStaffTask.Column> columns = new List<SlmStaffTask.Column>()
|
||||
{
|
||||
SlmStaffTask.Column.Id,
|
||||
SlmStaffTask.Column.StaffJobId,
|
||||
SlmStaffTask.Column.TaskStartAt,
|
||||
SlmStaffTask.Column.TaskFinishAt,
|
||||
SlmStaffTask.Column.StaffRequired,
|
||||
SlmStaffTask.Column.StaffExternal,
|
||||
SlmStaffTask.Column.SkillCode,
|
||||
SlmStaffTask.Column.Notes,
|
||||
SlmStaffTask.Column.Flags,
|
||||
SlmStaffTask.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteStaffTaskQuery_Mobile(columns, prmStaffTask, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmStaffTask.Column.Id);
|
||||
SysId staffJobId = itemData.GetIdValue(SlmStaffTask.Column.StaffJobId);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmStaffTask.Column.Id);
|
||||
// Create item.
|
||||
SlmStaffTask_Mobile staffTask = new SlmStaffTask_Mobile(Site, id, staffJobId, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmStaffTask.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmStaffTask.Column.StaffTaskCategory: staffTask.StaffTaskCategory; break;
|
||||
//case SlmStaffTask.Column.StaffJobId: staffTask.StaffJobId = itemData.GetIdValue(column); break;
|
||||
case SlmStaffTask.Column.TaskStartAt: staffTask.TaskStartAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffTask.Column.TaskFinishAt: staffTask.TaskFinishAt = itemData.GetDateTimeValue(column); break;
|
||||
case SlmStaffTask.Column.StaffRequired: staffTask.StaffRequired = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmStaffTask.Column.StaffExternal: staffTask.StaffExternal = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmStaffTask.Column.SkillCode: staffTask.SkillCode = value; break;
|
||||
case SlmStaffTask.Column.Notes: staffTask.Notes = value; break;
|
||||
case SlmStaffTask.Column.Status: staffTask.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(staffTask);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// StaffTask query execution.
|
||||
public override DbResultSet ExecuteStaffTaskQuery (List<ColumnDfn> columns, SlmStaffTask.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteStaffTaskQuery_Mobile (List<SlmStaffTask.Column> staffTaskColumns, SlmStaffTask.Params prmStaffTask, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmStaffTask.Column column in staffTaskColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetStaffTaskRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetStaffTaskQueryFilter_Mobile(prmStaffTask), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetStaffTaskRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.StaffTask;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetStaffTaskDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmStaffTask.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// StaffTask Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmStaffTask.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmStaffTask.Column.Status_Desc:
|
||||
case SlmStaffTask.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmStaffTask.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmStaffTask.Column.Status_Ind)
|
||||
value = new DataValue(SlmStaffTask.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmStaffMgr_Mobile : SlmStaffMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmStaffMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,371 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmTransactionMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// R e q u i r e m e n t s
|
||||
//*******************************************************************
|
||||
// Requirement exists.
|
||||
public override bool RequirementExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Requirement.
|
||||
public override SlmRequirement CreateRequirement (SysId transId, Slm.RequirementType requirementType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmRequirement_Mobile(Site, null, transId, requirementType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Requirement.
|
||||
public override SlmRequirement GetRequirement (SlmRequirement.Params prmRequirement)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmRequirement GetRequirementById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Requirement.
|
||||
public override bool IsValidRequirementData (SlmRequirement.Data data, SlmRequirement.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidRequirementData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Requirement.
|
||||
public override bool InsertRequirement (SlmRequirement requirement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidRequirement(requirement)) return false;
|
||||
if (SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Requirement.
|
||||
public override bool UpdateRequirement (SlmRequirement requirement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidRequirement(requirement)) return false;
|
||||
if (!SysId.IsValid(requirement.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Requirement.
|
||||
public override bool RequirementCanBeDeleted (SlmRequirement requirement)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.RequirementCanBeDeleted(requirement)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteRequirement (SlmRequirement requirement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!RequirementCanBeDeleted(requirement)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement requirementElement, SlmRequirement requirement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
requirementElement.AppendElement("Id", SysId.ToString(requirement.Id));
|
||||
requirementElement.AppendElement("TransId", SysId.ToString(requirement.TransId));
|
||||
requirementElement.AppendElement("RequirementType", requirement.RequirementType.ToString());
|
||||
requirementElement.AppendElement("Seq", requirement.Seq.ToString("N3"));
|
||||
requirementElement.AppendElement("TicketNo", requirement.TicketNo);
|
||||
requirementElement.AppendElement("ContractNo", requirement.ContractNo);
|
||||
requirementElement.AppendElement("PartnerName", requirement.PartnerName);
|
||||
requirementElement.AppendElement("VehicleReg", requirement.VehicleReg);
|
||||
requirementElement.AppendElement("HaulierCode", requirement.HaulierCode);
|
||||
requirementElement.AppendElement("HaulierName", requirement.HaulierName);
|
||||
requirementElement.AppendElement("CommodityId", SysId.ToString(requirement.CommodityId));
|
||||
requirementElement.AppendElement("ProductCode", requirement.ProductCode);
|
||||
requirementElement.AppendElement("ProductDesc", requirement.ProductDesc);
|
||||
requirementElement.AppendElement("Quantity", requirement.Quantity.ToString("N3"));
|
||||
requirementElement.AppendElement("QuantityUnit", requirement.QuantityUnit.ToString());
|
||||
requirementElement.AppendElement("Weighed", DateUtil.FormatXmlDateTime(requirement.Weighed));
|
||||
requirementElement.AppendElement("Published", DateUtil.FormatXmlDateTime(requirement.Published));
|
||||
requirementElement.AppendElement("Notes", requirement.Notes);
|
||||
requirementElement.AppendElement("Status", SacsSystem.GetStatusCode(requirement.Status));
|
||||
requirementElement.AppendElement("Flags", requirement.Flags.ToString());
|
||||
if (!SysId.IsValid(requirement.Id))
|
||||
{
|
||||
requirementElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
requirementElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
requirementElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
requirementElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
requirementElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
requirementElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement requirementElement, SlmRequirement requirement)
|
||||
{
|
||||
//requirement.Id = new SysId(StringUtil.ToInt(requirementElement.GetChildText("Id")));
|
||||
//requirement.TransId = new SysId(StringUtil.ToInt(requirementElement.GetChildText("TransId")));
|
||||
//requirement.RequirementType = EnumUtil.ParseEnum(requirementElement.GetChildText("Type"), Slm.RequirementType.Unknown);
|
||||
requirement.Seq = StringUtil.ToInt(requirementElement.GetChildText("Seq"));
|
||||
requirement.TicketNo = requirementElement.GetChildText("TicketNo");
|
||||
requirement.ContractNo = requirementElement.GetChildText("ContractNo");
|
||||
requirement.PartnerName = requirementElement.GetChildText("PartnerName");
|
||||
requirement.VehicleReg = requirementElement.GetChildText("VehicleReg");
|
||||
requirement.HaulierCode = requirementElement.GetChildText("HaulierCode");
|
||||
requirement.HaulierName = requirementElement.GetChildText("HaulierName");
|
||||
requirement.CommodityId = new SysId(StringUtil.ToInt(requirementElement.GetChildText("CommodityId")));
|
||||
requirement.ProductCode = requirementElement.GetChildText("ProductCode");
|
||||
requirement.ProductDesc = requirementElement.GetChildText("ProductDesc ");
|
||||
requirement.Quantity = StringUtil.ToDecimal(requirementElement.GetChildText("Quantity"));
|
||||
requirement.QuantityUnit = EnumUtil.ParseEnum(requirementElement.GetChildText("QuantityUnit"), Slm.WeightUnit.Unknown);
|
||||
requirement.Weighed = DateUtil.ParseXmlDateTime(requirementElement.GetChildText("Draught"));
|
||||
requirement.Published = DateUtil.ParseXmlDateTime(requirementElement.GetChildText("Depth"));
|
||||
requirement.Notes = requirementElement.GetChildText("Notes");
|
||||
requirement.Status = SacsSystem.GetStatusForCode(requirementElement.GetChildText("Status"));
|
||||
requirement.SetCreateStamp(DateUtil.ParseXmlDateTime(requirementElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(requirementElement.GetChildText("CreateBy"))), requirementElement.GetChildText("CreateHost"));
|
||||
requirement.SetUpdateStamp(DateUtil.ParseXmlDateTime(requirementElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(requirementElement.GetChildText("UpdateBy"))), requirementElement.GetChildText("UpdateHost"));
|
||||
requirement.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Requirement column definitions.
|
||||
public override ColumnDfn GetRequirementColumnDfn (SlmRequirement.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Requirement query filter.
|
||||
public override List<string> GetRequirementQueryFilter (SlmRequirement.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetRequirementQueryFilter_Mobile (SlmRequirement.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Requirement Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Trans Id.
|
||||
if (SysId.IsValid(prm.TransId)) filter.Add("TransId", SysId.ToString(prm.TransId));
|
||||
|
||||
// Product Code.
|
||||
if (!StringUtil.IsEmpty(prm.ProductCode)) filter.Add("ProductCode", prm.ProductCode);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Requirement sort columns.
|
||||
public List<String> GetRequirementSortColumns (SlmRequirement.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Requirement count.
|
||||
public override long GetRequirementCount (SlmRequirement.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Requirement list.
|
||||
public override List<SlmRequirement> GetRequirementList (SlmRequirement.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmRequirement>> GetRequirementList_Mobile (SlmRequirement.Params prmRequirement, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmRequirement> companies = new List<SlmRequirement>();
|
||||
String fn = GetType().Name + ".GetRequirementList_Mobile";
|
||||
|
||||
// Requirement columns.
|
||||
List<SlmRequirement.Column> columns = new List<SlmRequirement.Column>()
|
||||
{
|
||||
SlmRequirement.Column.Id,
|
||||
SlmRequirement.Column.TransId,
|
||||
SlmRequirement.Column.RequirementType,
|
||||
SlmRequirement.Column.Seq,
|
||||
SlmRequirement.Column.TicketNo,
|
||||
SlmRequirement.Column.ContractNo,
|
||||
SlmRequirement.Column.PartnerName,
|
||||
SlmRequirement.Column.VehicleReg,
|
||||
SlmRequirement.Column.HaulierCode,
|
||||
SlmRequirement.Column.HaulierName,
|
||||
SlmRequirement.Column.CommodityId,
|
||||
SlmRequirement.Column.ProductCode,
|
||||
SlmRequirement.Column.ProductDesc,
|
||||
SlmRequirement.Column.Quantity,
|
||||
SlmRequirement.Column.QuantityUnit,
|
||||
SlmRequirement.Column.Weighed,
|
||||
SlmRequirement.Column.Published,
|
||||
SlmRequirement.Column.Notes,
|
||||
SlmRequirement.Column.Flags,
|
||||
SlmRequirement.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteRequirementQuery_Mobile(columns, prmRequirement, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmRequirement.Column.Id);
|
||||
SysId transId = itemData.GetIdValue(SlmRequirement.Column.TransId);
|
||||
Slm.RequirementType requirementType = EnumUtil.ParseEnum(itemData.GetValue(SlmRequirement.Column.RequirementType), Slm.RequirementType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmRequirement.Column.Id);
|
||||
// Create item.
|
||||
SlmRequirement_Mobile requirement = new SlmRequirement_Mobile(Site, id, transId, requirementType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmRequirement.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
//case SlmRequirement.Column.TransId: requirement.TransId = itemData.GetIdValue(column); break;
|
||||
//case SlmRequirement.Column.RequirementType: requirement.RequirementType = value; break;
|
||||
case SlmRequirement.Column.Seq: requirement.Seq = StringUtil.ToShort(itemData.GetDecimalValue(column)); break;
|
||||
case SlmRequirement.Column.TicketNo: requirement.TicketNo = value; break;
|
||||
case SlmRequirement.Column.ContractNo: requirement.ContractNo = value; break;
|
||||
case SlmRequirement.Column.PartnerName: requirement.PartnerName = value; break;
|
||||
case SlmRequirement.Column.VehicleReg: requirement.VehicleReg = value; break;
|
||||
case SlmRequirement.Column.HaulierCode: requirement.HaulierCode = value; break;
|
||||
case SlmRequirement.Column.HaulierName: requirement.HaulierName = value; break;
|
||||
case SlmRequirement.Column.CommodityId: requirement.CommodityId = itemData.GetIdValue(column); break;
|
||||
case SlmRequirement.Column.ProductCode: requirement.ProductCode = value; break;
|
||||
case SlmRequirement.Column.ProductDesc: requirement.ProductDesc = value; break;
|
||||
case SlmRequirement.Column.Quantity: requirement.Quantity = itemData.GetDecimalValue(column); break;
|
||||
case SlmRequirement.Column.QuantityUnit: requirement.QuantityUnit = EnumUtil.ParseEnum(value, Slm.WeightUnit.Unknown); break;
|
||||
case SlmRequirement.Column.Weighed: requirement.Weighed = itemData.GetDateTimeValue(column); break;
|
||||
case SlmRequirement.Column.Published: requirement.Published = itemData.GetDateTimeValue(column); break;
|
||||
case SlmRequirement.Column.Notes: requirement.Notes = value; break;
|
||||
case SlmRequirement.Column.Status: requirement.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(requirement);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Requirement query execution.
|
||||
public override DbResultSet ExecuteRequirementQuery (List<ColumnDfn> columns, SlmRequirement.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteRequirementQuery_Mobile (List<SlmRequirement.Column> requirementColumns, SlmRequirement.Params prmRequirement, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmRequirement.Column column in requirementColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetRequirementRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetRequirementQueryFilter_Mobile(prmRequirement), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetRequirementRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Requirement;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetRequirementDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmRequirement.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Requirement Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmRequirement.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmRequirement.Column.Status_Desc:
|
||||
case SlmRequirement.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmRequirement.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmRequirement.Column.Status_Ind)
|
||||
value = new DataValue(SlmRequirement.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,344 @@
|
||||
using Sarand.Core.App;
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Data;
|
||||
using Sarand.Core.Dbas.Base;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.Core.Xml;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Bus;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
partial class SlmTransactionMgr_Mobile
|
||||
{
|
||||
//*******************************************************************
|
||||
// T r a n s a c t i o n s
|
||||
//*******************************************************************
|
||||
// Transaction exists.
|
||||
public override bool TransactionExistsById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// Create Transaction.
|
||||
public override SlmTransaction CreateTransaction (Slm.TransactionType transactionType)
|
||||
{
|
||||
ClearErrorState();
|
||||
return new SlmTransaction_Mobile(Site, null, transactionType, 0);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Transaction.
|
||||
public override SlmTransaction GetTransaction (SlmTransaction.Params prmTransaction)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public override SlmTransaction GetTransactionById (SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Transaction.
|
||||
public override bool IsValidTransactionData (SlmTransaction.Data data, SlmTransaction.ErrField errField)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.IsValidTransactionData(data, errField)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Insert Transaction.
|
||||
public override bool InsertTransaction (SlmTransaction transaction, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidTransaction(transaction)) return false;
|
||||
if (SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.ValiditemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Update Transaction.
|
||||
public override bool UpdateTransaction (SlmTransaction transaction, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!IsValidTransaction(transaction)) return false;
|
||||
if (!SysId.IsValid(transaction.Id)) return SetErrorState(ErrorMessage.InvalidItemId);
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Delete Transaction.
|
||||
public override bool TransactionCanBeDeleted (SlmTransaction transaction)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!base.TransactionCanBeDeleted(transaction)) return false;
|
||||
return true;
|
||||
}
|
||||
public override bool DeleteTransaction (SlmTransaction transaction, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!TransactionCanBeDeleted(transaction)) return false;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement transactionElement, SlmTransaction transaction, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
transactionElement.AppendElement("Id", SysId.ToString(transaction.Id));
|
||||
transactionElement.AppendElement("CompanyId", SysId.ToString(transaction.CompanyId));
|
||||
transactionElement.AppendElement("TransactionType", transaction.TransactionType.ToString());
|
||||
transactionElement.AppendElement("Ref", transaction.Ref);
|
||||
transactionElement.AppendElement("RefInt", transaction.RefInt.ToString("N3"));
|
||||
transactionElement.AppendElement("RefExt", transaction.RefExt);
|
||||
transactionElement.AppendElement("Raised", DateUtil.FormatXmlDateTime(transaction.Raised));
|
||||
transactionElement.AppendElement("Published", DateUtil.FormatXmlDateTime(transaction.Published));
|
||||
transactionElement.AppendElement("Notes", transaction.Notes);
|
||||
transactionElement.AppendElement("Status", SacsSystem.GetStatusCode(transaction.Status));
|
||||
transactionElement.AppendElement("Flags", transaction.Flags.ToString());
|
||||
if (!SysId.IsValid(transaction.Id))
|
||||
{
|
||||
transactionElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
transactionElement.AppendElement("CreateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
transactionElement.AppendElement("CreateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
transactionElement.AppendElement("UpdateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
transactionElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
transactionElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement transactionElement, SlmTransaction transaction)
|
||||
{
|
||||
//transaction.Id = new SysId(StringUtil.ToInt(transactionElement.GetChildText("Id")));
|
||||
transaction.CompanyId = new SysId(StringUtil.ToInt(transactionElement.GetChildText("CompanyId")));
|
||||
//transaction.TransactionType = EnumUtil.ParseEnum(transactionElement.GetChildText("Type"), Slm.TransactionType.Unknown);
|
||||
transaction.Ref = transactionElement.GetChildText("Ref");
|
||||
transaction.RefInt = StringUtil.ToInt(transactionElement.GetChildText("RefInt"));
|
||||
transaction.RefExt = transactionElement.GetChildText("RefExt");
|
||||
transaction.Raised = DateUtil.ParseXmlDateTime(transactionElement.GetChildText("Raised"));
|
||||
transaction.Published = DateUtil.ParseXmlDateTime(transactionElement.GetChildText("Depth"));
|
||||
transaction.Notes = transactionElement.GetChildText("Notes");
|
||||
transaction.Status = SacsSystem.GetStatusForCode(transactionElement.GetChildText("Status"));
|
||||
transaction.SetCreateStamp(DateUtil.ParseXmlDateTime(transactionElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(transactionElement.GetChildText("CreateBy"))), transactionElement.GetChildText("CreateHost"));
|
||||
transaction.SetUpdateStamp(DateUtil.ParseXmlDateTime(transactionElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(transactionElement.GetChildText("UpdateBy"))), transactionElement.GetChildText("UpdateHost"));
|
||||
transaction.AcceptChanges();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Transaction column definitions.
|
||||
public override ColumnDfn GetTransactionColumnDfn (SlmTransaction.Column columnId, string caption = "", int width = 0)
|
||||
{
|
||||
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
|
||||
if (!String.IsNullOrEmpty(caption))
|
||||
columnDfn.Caption = caption;
|
||||
if (width > 0)
|
||||
columnDfn.Width = width;
|
||||
return columnDfn;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Transaction query filter.
|
||||
public override List<string> GetTransactionQueryFilter (SlmTransaction.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public Dictionary<String, String> GetTransactionQueryFilter_Mobile (SlmTransaction.Params prm)
|
||||
{
|
||||
Dictionary<String, String> filter = new Dictionary<string, string>();
|
||||
|
||||
// Transaction Id.
|
||||
if (prm.IncludedIds.Count > 0) filter.Add("IncludedIds", prm.IncludedIds.Concat(","));
|
||||
if (prm.ExcludedIds.Count > 0) filter.Add("ExcludedIds", prm.ExcludedIds.Concat(","));
|
||||
|
||||
// Company Id.
|
||||
if (SysId.IsValid(prm.CompanyId)) filter.Add("CompanyId", SysId.ToString(prm.CompanyId));
|
||||
|
||||
// Company Name.
|
||||
if (!StringUtil.IsEmpty(prm.CompanyName)) filter.Add("CompanyName", prm.CompanyName);
|
||||
|
||||
// Transaction type:
|
||||
if (prm.TransactionType != 0) filter.Add("TransactionType", prm.TransactionType.ToString());
|
||||
|
||||
// Ref.
|
||||
if (!StringUtil.IsEmpty(prm.RefFull)) filter.Add("RefFull", prm.RefFull);
|
||||
if (!StringUtil.IsEmpty(prm.RefPartial)) filter.Add("RefPartial", prm.RefPartial);
|
||||
if (!StringUtil.IsEmpty(prm.RefExtFull)) filter.Add("RefExtFull", prm.RefExtFull);
|
||||
if (!StringUtil.IsEmpty(prm.RefExtPartial)) filter.Add("RefExtPartial", prm.RefExtPartial);
|
||||
|
||||
// Notes.
|
||||
if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add("NotesPartial", prm.NotesPartial);
|
||||
|
||||
// Status.
|
||||
filter.Add("StatusCat", prm.StatusCat.ToString());
|
||||
|
||||
// Paging.
|
||||
if (prm.ResultsPaging.Paged)
|
||||
{
|
||||
filter.Add("PageNo", prm.ResultsPaging.PageNo.ToString());
|
||||
filter.Add("PageLength", prm.ResultsPaging.PageLength.ToString());
|
||||
}
|
||||
|
||||
return filter;
|
||||
}
|
||||
// Transaction sort columns.
|
||||
public List<String> GetTransactionSortColumns (SlmTransaction.Params prm)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Transaction count.
|
||||
public override long GetTransactionCount (SlmTransaction.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Transaction list.
|
||||
public override List<SlmTransaction> GetTransactionList (SlmTransaction.Params prm)
|
||||
{
|
||||
List<SlmCompany> companies = new List<SlmCompany>();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmTransaction>> GetTransactionList_Mobile (SlmTransaction.Params prmTransaction, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmTransaction> companies = new List<SlmTransaction>();
|
||||
String fn = GetType().Name + ".GetTransactionList_Mobile";
|
||||
|
||||
// Transaction columns.
|
||||
List<SlmTransaction.Column> columns = new List<SlmTransaction.Column>()
|
||||
{
|
||||
SlmTransaction.Column.Id,
|
||||
SlmTransaction.Column.CompanyId,
|
||||
SlmTransaction.Column.TransactionType,
|
||||
SlmTransaction.Column.Ref,
|
||||
SlmTransaction.Column.RefInt,
|
||||
SlmTransaction.Column.RefExt,
|
||||
SlmTransaction.Column.Raised,
|
||||
SlmTransaction.Column.Published,
|
||||
SlmTransaction.Column.Published,
|
||||
SlmTransaction.Column.Notes,
|
||||
SlmTransaction.Column.Flags,
|
||||
SlmTransaction.Column.Status
|
||||
};
|
||||
|
||||
List<SlmWebServiceItemData> itemDataList = await ExecuteTransactionQuery_Mobile(columns, prmTransaction, taskData);
|
||||
foreach (SlmWebServiceItemData itemData in itemDataList)
|
||||
{
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
// Item construction properties.
|
||||
SysId id = itemData.GetIdValue(SlmTransaction.Column.Id);
|
||||
Slm.TransactionType transactionType = EnumUtil.ParseEnum(itemData.GetValue(SlmTransaction.Column.TransactionType), Slm.TransactionType.Unknown);
|
||||
ushort flags = (ushort)itemData.GetIntValue(SlmTransaction.Column.Id);
|
||||
// Create item.
|
||||
SlmTransaction_Mobile transaction = new SlmTransaction_Mobile(Site, id, transactionType, flags);
|
||||
// Populate item properties.
|
||||
foreach (SlmTransaction.Column column in columns)
|
||||
{
|
||||
String value = itemData.GetValue(column);
|
||||
switch (column)
|
||||
{
|
||||
case SlmTransaction.Column.CompanyId: transaction.CompanyId = itemData.GetIdValue(column); break;
|
||||
//case SlmTransaction.Column.TransactionType: transaction.TransactionType = value; break;
|
||||
case SlmTransaction.Column.Ref: transaction.Ref = value; break;
|
||||
case SlmTransaction.Column.RefInt: transaction.RefInt = itemData.GetIntValue(column); break;
|
||||
case SlmTransaction.Column.RefExt: transaction.RefExt = value; break;
|
||||
case SlmTransaction.Column.Raised: transaction.Raised = itemData.GetDateTimeValue(column); break;
|
||||
case SlmTransaction.Column.Published: transaction.Published = itemData.GetDateTimeValue(column); break;
|
||||
case SlmTransaction.Column.Notes: transaction.Notes = value; break;
|
||||
case SlmTransaction.Column.Status: transaction.Status = SacsSystem.GetStatusForCode(value); break;
|
||||
}
|
||||
}
|
||||
companies.Add(transaction);
|
||||
}
|
||||
taskData.ThrowIfCancellationRequested();
|
||||
|
||||
if (taskData.Debug) Logger.Debug(fn + " Companies: " + companies.Count);
|
||||
return companies;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Transaction query execution.
|
||||
public override DbResultSet ExecuteTransactionQuery (List<ColumnDfn> columns, SlmTransaction.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<List<SlmWebServiceItemData>> ExecuteTransactionQuery_Mobile (List<SlmTransaction.Column> transactionColumns, SlmTransaction.Params prmTransaction, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Columns.
|
||||
List<String> columns = new List<string>();
|
||||
foreach (SlmTransaction.Column column in transactionColumns)
|
||||
columns.Add(column.ToString());
|
||||
|
||||
SlmWebServiceClient.ItemListResponseData responseData = await webServiceClient.GetItemList(GetTransactionRequestConfig(SlmWebServiceRequest.RequestType.List, taskData.Debug), GetTransactionQueryFilter_Mobile(prmTransaction), columns, taskData);
|
||||
return responseData.Items;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetTransactionRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Transaction;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = User;
|
||||
configRequest.Context.Email = Email;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public override DataValue GetTransactionDataValue (ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SlmTransaction.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Transaction Category.
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SlmTransaction.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Status.
|
||||
case SlmTransaction.Column.Status_Desc:
|
||||
case SlmTransaction.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SlmTransaction.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDesc(status));
|
||||
else if (column.Id == (int)SlmTransaction.Column.Status_Ind)
|
||||
value = new DataValue(SlmTransaction.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Core.Mgr;
|
||||
using Sarand.LogisticsMgr.Core.WebService;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SlmTransactionMgr_Mobile : SlmTransactionMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SlmWebServiceClient webServiceClient = new SlmWebServiceClient();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmTransactionMgr_Mobile (SlmSessionContext sessionContext) :
|
||||
base(sessionContext)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public SlmSessionProfile_Mobile SessionProfile { get { return SlmGlobals_Mobile.SessionProfile; } }
|
||||
public SlmSiteDefinition SiteDefinition { get { return SessionProfile.SiteDefinition; } }
|
||||
public String User { get { return SessionProfile.User; } }
|
||||
public String Email { get { return SessionProfile.Email; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
Reference in New Issue
Block a user