TS - Bulk mobile managers

This commit is contained in:
Andy Howard
2019-03-14 15:45:19 +00:00
parent bbb200d30b
commit f02aff8d59
64 changed files with 10947 additions and 3 deletions
@@ -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; } }
//-------------------------------------------------------------------
}
//=======================================================================
}