STN Asset Movements
This commit is contained in:
@@ -59,6 +59,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
// P e r s i s t e n t S e s s i o n P r o p e r t i e s
|
||||
//-------------------------------------------------------------------
|
||||
public String DefaultEmailAddress { get; set; }
|
||||
public SlmSiteDefinition DefaultSiteDefinition { get; set; }
|
||||
protected static String PropertyName_Context_Site_Code { get; } = "Context-Site-Code";
|
||||
protected static String PropertyName_Context_Site_Url { get; } = "Context-Site-Url";
|
||||
protected static String PropertyName_Context_EmailAddress { get; } = "Context-Email";
|
||||
@@ -70,7 +71,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
Object sessionSiteCode = Properties.GetValue(PropertyName_Context_Site_Code, SlmSystem.GetSiteCode(sessionProfile.Site));
|
||||
Object sessionSiteUrl = Properties.GetValue(PropertyName_Context_Site_Url, sessionProfile.SiteDefinition != null ? sessionProfile.SiteDefinition.URL : "");
|
||||
Object sessionEmail = Properties.GetValue(PropertyName_Context_EmailAddress, sessionProfile.EmailAddress);
|
||||
// Populate session properties.
|
||||
// Populate default session properties.
|
||||
// Site definition.
|
||||
if (sessionSiteCode != null && sessionSiteUrl != null)
|
||||
{
|
||||
@@ -80,19 +81,21 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
{
|
||||
if (siteDefinition.Site != site) continue;
|
||||
if (!siteDefinition.URL.Equals(siteUrl)) continue;
|
||||
SetSite(siteDefinition);
|
||||
DefaultSiteDefinition = siteDefinition;
|
||||
}
|
||||
}
|
||||
// User & Email.
|
||||
// User email.
|
||||
if (sessionEmail != null) DefaultEmailAddress = sessionEmail.ToString();
|
||||
}
|
||||
public void StorePersistentSessionProperties ()
|
||||
{
|
||||
SlmSessionProfile_Mobile sessionProfile = SlmGlobals_Mobile.SessionProfile;
|
||||
if (sessionProfile == null) return;
|
||||
Properties[PropertyName_Context_Site_Code] = SlmSystem.GetSiteCode(sessionProfile.Site);
|
||||
Properties[PropertyName_Context_Site_Url] = sessionProfile.SiteDefinition.URL;
|
||||
Properties[PropertyName_Context_EmailAddress] = sessionProfile.EmailAddress;
|
||||
if (DefaultSiteDefinition != null)
|
||||
{
|
||||
Properties[PropertyName_Context_Site_Code] = SlmSystem.GetSiteCode(DefaultSiteDefinition.Site);
|
||||
Properties[PropertyName_Context_Site_Url] = DefaultSiteDefinition.URL;
|
||||
}
|
||||
if (!StringUtil.IsEmpty(DefaultEmailAddress))
|
||||
Properties[PropertyName_Context_EmailAddress] = DefaultEmailAddress;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -60,6 +60,16 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
public static Color MenuBackgroundColor { get; } = Color.FromHex("#F0F0F0");
|
||||
public static Color MenuHeaderBackgroundColor { get; } = Color.FromHex("#E0E0E0");
|
||||
// Dynamic font sizing.
|
||||
public static String HtmlFontSize
|
||||
{
|
||||
get
|
||||
{
|
||||
if (SaxApplication.MinDeviceDimension > 2000) return "18px";
|
||||
if (SaxApplication.MinDeviceDimension > 1600) return "16px";
|
||||
if (SaxApplication.MinDeviceDimension > 1200) return "14px";
|
||||
return "12px";
|
||||
}
|
||||
}
|
||||
public static double FontSizeRatio
|
||||
{
|
||||
get
|
||||
@@ -84,9 +94,14 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
public static double PageNavigationPaddingVertical { get; } = 4.0;
|
||||
public static Color PageNavigationBorderColor { get; } = Color.FromHex("#808080");
|
||||
public static Color PageNavigationBackgroundColor { get; } = Color.FromHex("#e9f6fb");
|
||||
// Item List.
|
||||
public static double ItemListHeaderBorderWidth { get; set; } = 2.0;
|
||||
public static float ItemListHeaderBorderRadius = 6.0f;
|
||||
public static Color ItemListHeaderBorderColor = ApplicationBarBackgroundColor;
|
||||
public static Color ItemListHeaderBackgroundColor = Color.FromHex("#F0F0F0");
|
||||
// Controls.
|
||||
public static Color ControlBackgroundColor { get; } = Color.FromHex("#f8f8f8");
|
||||
public static Color ControlBorderColor { get; } = Color.FromHex("#f8f8f8");
|
||||
public static Color ControlBackgroundColor { get; } = Color.FromHex("#F8F8F8");
|
||||
public static Color ControlBorderColor { get; } = Color.FromHex("#E0E0E0");
|
||||
public static double ControlBorderWidth { get; } = 0.5;
|
||||
public static Thickness LabelMargin { get; } = new Thickness(4.0, 8.0, 0, 0);
|
||||
// Associated items panel.
|
||||
|
||||
@@ -36,6 +36,10 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
Granted = securityRight.GetBoolValue("Granted");
|
||||
}
|
||||
}
|
||||
public SaSecurityProfile_Mobile ()
|
||||
{
|
||||
// Blank profile.
|
||||
}
|
||||
public SaSecurityProfile_Mobile (SlmWebServiceItemData securityItem)
|
||||
{
|
||||
// Security item properties.
|
||||
@@ -73,6 +77,10 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public bool ValidProfile { get { return SysId.IsValid(UserId); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Refresh profile.
|
||||
public bool RefreshProfile (SlmSiteDefinition siteDefinition, SlmWebServiceItemData securityItem)
|
||||
@@ -88,7 +96,21 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
UserId = SysId.InvalidOnNull(userProfile.Id);
|
||||
Logger.Debug(fn + " User: '" + UserDisplayName + "' [Id: " + UserId + "]" + (SysId.IsValid(previousUserId) ? ". Previous UserId: " + SysId.ToString(previousUserId) : ""));
|
||||
RefreshProfile(userProfile, null);
|
||||
return SysId.IsValid(UserId) && SysId.InvalidOnNull(UserId).Equals(SysId.InvalidOnNull(userProfile.Id));
|
||||
return ValidProfile && SysId.InvalidOnNull(UserId).Equals(SysId.InvalidOnNull(userProfile.Id));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Clear profile.
|
||||
public bool ClearProfile ()
|
||||
{
|
||||
String fn = GetType().Name+".ClearProfile";
|
||||
ClearErrorState();
|
||||
// Construct User Security Profile.
|
||||
SaSecurityProfile userProfile = new SaSecurityProfile_Mobile();
|
||||
UserId = new SysId();
|
||||
RefreshProfile(userProfile, null);
|
||||
if (SacsSystem.DebugMode) Logger.Debug(fn + " User logged out");
|
||||
return !ValidProfile;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
private class SlmSiteDefinition_Mobile : SlmSiteDefinition { }
|
||||
internal class SlmSiteDefinition_Mobile : SlmSiteDefinition { }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
@@ -19,7 +19,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
// Construction.
|
||||
protected SlmSessionContext_Mobile (SlmSiteDefinition siteDefinition) : base(0)
|
||||
{
|
||||
if (siteDefinition == null) siteDefinition = new SlmSiteDefinition_Mobile();
|
||||
siteDefinition = siteDefinition ?? new SlmSiteDefinition_Mobile();
|
||||
Site = (siteDefinition != null ? siteDefinition.Site : Slm.Site.Unknown);
|
||||
SiteDefinition = siteDefinition;
|
||||
}
|
||||
|
||||
@@ -25,6 +25,11 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
// Populate Security Profile.
|
||||
SecurityProfile_Mobile.RefreshProfile(SessionContext_Mobile.SiteDefinition, securityItem);
|
||||
}
|
||||
internal void LogoutUser ()
|
||||
{
|
||||
userData_Mobile.Clear();
|
||||
SecurityProfile_Mobile.ClearProfile();
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -61,6 +66,12 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
SlmGlobals_Mobile.Application.SetSite(siteDefinition);
|
||||
return UserContext.ValidUser && SiteDefinition.Valid;
|
||||
}
|
||||
public bool LogoutUser ()
|
||||
{
|
||||
userContext_Local.LogoutUser();
|
||||
SlmGlobals_Mobile.Application.SetSite(new SlmSessionContext_Mobile.SlmSiteDefinition_Mobile());
|
||||
return !(UserContext.ValidUser && SiteDefinition.Valid);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// S e s s i o n P r o f i l e E v e n t s
|
||||
|
||||
@@ -20,6 +20,13 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
EmailAddress = securityItem.GetValue("EmailAddress");
|
||||
DisplayName = securityItem.GetValue("Description");
|
||||
}
|
||||
public void Clear ()
|
||||
{
|
||||
SecurityItemId = new Sarand.Core.Bus.SysId();
|
||||
SecurityItemCode = "";
|
||||
EmailAddress = "";
|
||||
DisplayName = "";
|
||||
}
|
||||
}
|
||||
protected class SlmSessionContext_Mobile_Internal : SlmSessionContext_Mobile
|
||||
{
|
||||
@@ -27,7 +34,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.App
|
||||
public void SetSiteDefinition (SlmSiteDefinition siteDefinition)
|
||||
{
|
||||
SiteDefinition = siteDefinition;
|
||||
Site = siteDefinition.Site;
|
||||
Site = siteDefinition?.Site ?? Slm.Site.Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -467,7 +467,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.CodeTypes
|
||||
foreach (SaCodeType codeType in codeTypes)
|
||||
{
|
||||
if (prmCode.CodeTypeIds.HasValidIds() && !prmCode.CodeTypeIds.Contains(codeType.Id)) continue;
|
||||
if (prmCode.CodeTypeCodes.Count > 1 && !prmCode.CodeTypeCodes.ContainsCI(codeType.Code)) continue;
|
||||
if (prmCode.CodeTypeCodes.Count > 0 && !prmCode.CodeTypeCodes.ContainsCI(codeType.Code)) continue;
|
||||
|
||||
// Code Type is valid - filter code for code types.
|
||||
foreach (SaCode saCode in GetCodeListForCodeType(codeType.Code, prmCode.StatusCat == SaCode.StatusCat.ActiveOnly))
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
// Components.
|
||||
private SlmContentView outerView = new SlmContentView();
|
||||
private SlmContentView embeddedView = new SlmContentView();
|
||||
private readonly SlmLabel label = new SlmLabel();
|
||||
private readonly SlmLabel labelReadOnly = new SlmLabel();
|
||||
// Styling.
|
||||
private Thickness borderThickness = new Thickness();
|
||||
private Color borderColor = Color.Transparent;
|
||||
@@ -40,8 +40,8 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
BorderWidth = SlmMobile.ControlBorderWidth;
|
||||
|
||||
// Read-only label configuration.
|
||||
label.BackgroundColor = Color.Transparent;
|
||||
label.Margin = new Thickness(SlmMobile.LabelMargin.Left, SlmMobile.LabelMargin.Top);
|
||||
labelReadOnly.BackgroundColor = Color.Transparent;
|
||||
labelReadOnly.Margin = new Thickness(SlmMobile.LabelMargin.Left, SlmMobile.LabelMargin.Top);
|
||||
|
||||
SetControlActivity();
|
||||
}
|
||||
@@ -64,9 +64,10 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
get { return readOnly; }
|
||||
set { if (readOnly == value) return; readOnly = value; SetControlActivity(); }
|
||||
}
|
||||
public String ReadOnlyText
|
||||
protected String ReadOnlyText
|
||||
{
|
||||
set { if (label.Text.Equals(value)) return; label.Text = value; }
|
||||
get{ return labelReadOnly.Text; }
|
||||
set { if (labelReadOnly.Text.Equals(value)) return; labelReadOnly.Text = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -93,7 +94,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
}
|
||||
protected override void SetControlsReadOnly ()
|
||||
{
|
||||
if (readOnly) Content = label;
|
||||
if (readOnly) Content = labelReadOnly;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.Mobile.Forms.Controls;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmDatePicker : SaxDatePicker
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmDatePicker ()
|
||||
{
|
||||
// Font sizing.
|
||||
FontSize = FontSize * SlmMobile.FontSizeRatio;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// P i c k e r E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Mobile.Forms.Controls;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmDatePickerView : SlmControlView
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly SlmDatePicker datePicker = new SlmDatePicker();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmDatePickerView (SlmDatePicker suppliedPicker = null)
|
||||
{
|
||||
// Control configuration.
|
||||
if (suppliedPicker != null) datePicker = suppliedPicker;
|
||||
datePicker.BackgroundColor = Color.Transparent;
|
||||
|
||||
// Control events.
|
||||
datePicker.BackgroundColor = Color.Transparent;
|
||||
datePicker.DateSelected += DatePicker_DateSelected;
|
||||
datePicker.Focused += DatePicker_Focused;
|
||||
datePicker.Unfocused += DatePicker_Unfocused;
|
||||
|
||||
ConfigureComponents();
|
||||
SetControlActivity();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected SlmDatePicker DatePicker { get { return datePicker; } }
|
||||
public DateTime Date
|
||||
{
|
||||
get { return datePicker.Date; }
|
||||
set { if (datePicker.Date == value) return; datePicker.Date = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n f i g u r e C o m p o n e n t s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Control configuration that can b changed dynamically.</summary>
|
||||
protected override void ConfigureComponents ()
|
||||
{
|
||||
base.ConfigureComponents();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l A c t i v i t y
|
||||
//-------------------------------------------------------------------
|
||||
protected override void SetControlActivity ()
|
||||
{
|
||||
base.SetControlActivity();
|
||||
SetControlsReadOnly();
|
||||
}
|
||||
protected override void SetControlsReadOnly ()
|
||||
{
|
||||
base.SetControlsReadOnly();
|
||||
if (!ReadOnly) Content = datePicker;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// V i e w E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnParentSet ()
|
||||
{
|
||||
base.OnParentSet();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
base.OnPropertyChanging(propertyName);
|
||||
}
|
||||
protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
base.OnPropertyChanged(propertyName);
|
||||
//Logger.Debug(GetType().Name + ".OnPropertyChanged Name=" + propertyName);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnChildAdded (Element child)
|
||||
{
|
||||
base.OnChildAdded(child);
|
||||
}
|
||||
protected override void OnChildRemoved (Element child)
|
||||
{
|
||||
base.OnChildRemoved(child);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnSizeAllocated (double width, double height)
|
||||
{
|
||||
base.OnSizeAllocated(width, height);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
public event EventHandler<DateChangedEventArgs> DateSelected;
|
||||
private void DatePicker_DateSelected (object sender, DateChangedEventArgs e)
|
||||
{
|
||||
ReadOnlyText = datePicker.Date != null ? DateUtil.Format(datePicker.Date, datePicker.Format) : "";
|
||||
if (ReadOnly) return;
|
||||
if (DateSelected != null) DateSelected.Invoke(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
private void DatePicker_Focused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Focused(sender, e);
|
||||
}
|
||||
private void DatePicker_Unfocused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Unfocused(sender, e);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
using Sarand.Core.Mobile.Forms.Controls;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmEditor : SaxEditor
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmEditor ()
|
||||
{
|
||||
// Font sizing.
|
||||
FontSize = FontSize * SlmMobile.FontSizeRatio;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Mobile.Forms.Controls;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmEditorView : SlmControlView
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly SlmEditor entry = new SlmEditor();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmEditorView ()
|
||||
{
|
||||
// Control configuration.
|
||||
entry.BackgroundColor = Color.Transparent;
|
||||
|
||||
// Editor events.
|
||||
entry.Focused += Editor_Focused;
|
||||
entry.Unfocused += Editor_Unfocused;
|
||||
entry.TextChanged += Editor_TextChanged;
|
||||
entry.Completed += Editor_Completed;
|
||||
|
||||
ConfigureComponents();
|
||||
SetControlActivity();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public int MaxLength
|
||||
{
|
||||
get { return entry.MaxLength; }
|
||||
set { entry.MaxLength = value; }
|
||||
}
|
||||
public Keyboard Keyboard
|
||||
{
|
||||
get { return entry.Keyboard; }
|
||||
set { entry.Keyboard = value; }
|
||||
}
|
||||
public String Text
|
||||
{
|
||||
get { return entry.Text; }
|
||||
set { value = StringUtil.EmptyOnNull(value); if (entry.Text != null && entry.Text.Equals(value)) return; entry.Text = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n f i g u r e C o m p o n e n t s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Control configuration that can be changed dynamically.</summary>
|
||||
protected override void ConfigureComponents ()
|
||||
{
|
||||
base.ConfigureComponents();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l A c t i v i t y
|
||||
//-------------------------------------------------------------------
|
||||
protected override void SetControlActivity ()
|
||||
{
|
||||
base.SetControlActivity();
|
||||
SetControlsReadOnly();
|
||||
}
|
||||
protected override void SetControlsReadOnly ()
|
||||
{
|
||||
base.SetControlsReadOnly();
|
||||
if (!ReadOnly) Content = entry;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
private void Editor_Focused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Focused(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
private void Editor_Unfocused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Unfocused(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Text changed.
|
||||
public event EventHandler<TextChangedEventArgs> TextChanged;
|
||||
private void Editor_TextChanged (object sender, TextChangedEventArgs e)
|
||||
{
|
||||
ReadOnlyText = entry.Text;
|
||||
if (ReadOnly) return;
|
||||
if (TextChanged != null) TextChanged.Invoke(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Completed.
|
||||
public event EventHandler Completed;
|
||||
private void Editor_Completed (object sender, EventArgs e)
|
||||
{
|
||||
if (ReadOnly) return;
|
||||
if (Completed != null) Completed.Invoke(sender, e);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// V i e w E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnParentSet ()
|
||||
{
|
||||
base.OnParentSet();
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnPropertyChanging ([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
base.OnPropertyChanging(propertyName);
|
||||
}
|
||||
protected override void OnPropertyChanged ([CallerMemberName] string propertyName = null)
|
||||
{
|
||||
base.OnPropertyChanged(propertyName);
|
||||
//Logger.Debug(GetType().Name + ".OnPropertyChanged Name=" + propertyName);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnChildAdded (Element child)
|
||||
{
|
||||
base.OnChildAdded(child);
|
||||
}
|
||||
protected override void OnChildRemoved (Element child)
|
||||
{
|
||||
base.OnChildRemoved(child);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
protected override void OnSizeAllocated (double width, double height)
|
||||
{
|
||||
base.OnSizeAllocated(width, height);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -22,6 +22,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
}
|
||||
public class Config
|
||||
{
|
||||
public bool ReadOnly { get; set; }
|
||||
public NavigationMode NavigationMode { get; set; } = NavigationMode.OkCancel;
|
||||
}
|
||||
|
||||
@@ -64,6 +65,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
// Managers.
|
||||
protected SlmAccountMgr_Mobile AccountMgr { get { if (accountMgr == null) accountMgr = new SlmAccountMgr_Mobile(SessionContext); return accountMgr; } }
|
||||
protected SlmAssetMgr_Mobile AssetMgr { get { if (assetMgr == null) assetMgr = new SlmAssetMgr_Mobile(SessionContext); return assetMgr; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// I n i t i a l i s e
|
||||
//-------------------------------------------------------------------
|
||||
@@ -94,7 +96,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
viewCaptionBar.Children.Add(labelCaption);
|
||||
labelCaption.Text = "Form";
|
||||
labelCaption.TextColor = SlmMobile.PageCaptionTextColor;
|
||||
labelCaption.FontSize *= SlmMobile.PageCaptionTextSizeRatio;
|
||||
labelCaption.FontSize *= SlmMobile.FontSizeRatio * SlmMobile.PageCaptionTextSizeRatio;
|
||||
labelCaption.HorizontalOptions = LayoutOptions.CenterAndExpand;
|
||||
labelCaption.HorizontalTextAlignment = TextAlignment.Center;
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Mobile.Forms.Controls;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmLabelView : SlmControlView
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmLabelView ()
|
||||
{
|
||||
// Control configuration.
|
||||
ConfigureComponents();
|
||||
SetControlActivity();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public String Text
|
||||
{
|
||||
get { return ReadOnlyText; }
|
||||
set { if (ReadOnlyText.Equals(value)) return; ReadOnlyText = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n f i g u r e C o m p o n e n t s
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Control configuration that can b changed dynamically.</summary>
|
||||
protected override void ConfigureComponents ()
|
||||
{
|
||||
ReadOnly = true;
|
||||
base.ConfigureComponents();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l A c t i v i t y
|
||||
//-------------------------------------------------------------------
|
||||
protected override void SetControlActivity ()
|
||||
{
|
||||
SetControlsReadOnly();
|
||||
}
|
||||
protected override void SetControlsReadOnly ()
|
||||
{
|
||||
base.SetControlsReadOnly();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// V i e w E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -26,13 +26,14 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
// Control configuration.
|
||||
if (suppliedPicker != null) picker = suppliedPicker;
|
||||
picker.BackgroundColor = Color.Transparent;
|
||||
// In case picker pre-populated and default item selected.
|
||||
ReadOnlyText = (picker.SelectedItem != null ? picker.SelectedItem.ToString() : "");
|
||||
|
||||
// Control events.
|
||||
picker.Populated += Picker_Populated;
|
||||
picker.SelectedIndexChanged += Picker_SelectedIndexChanged;
|
||||
picker.Focused += Picker_Focused;
|
||||
picker.Unfocused += Picker_Unfocused;
|
||||
picker.BackgroundColor = Color.Transparent;
|
||||
picker.SelectedIndexChanged += Picker_SelectedIndexChanged;
|
||||
picker.Populated += Picker_Populated;
|
||||
|
||||
ConfigureComponents();
|
||||
SetControlActivity();
|
||||
@@ -112,16 +113,6 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
//-------------------------------------------------------------------
|
||||
// C o n t r o l E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
private void Picker_Focused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Focused(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
private void Picker_Unfocused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Unfocused(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
public event SaxPicker.PopulatedEventHandler Populated;
|
||||
private void Picker_Populated (object sender, SaxPicker.PopulatedEventArgs e)
|
||||
{
|
||||
@@ -135,6 +126,15 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Base
|
||||
if (ReadOnly) return;
|
||||
if (SelectedIndexChanged != null) SelectedIndexChanged.Invoke(sender, e);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
private void Picker_Focused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Focused(sender, e);
|
||||
}
|
||||
private void Picker_Unfocused (object sender, FocusEventArgs e)
|
||||
{
|
||||
Control_Unfocused(sender, e);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
+8
-8
@@ -16,18 +16,18 @@ using Xamarin.Forms;
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Controls
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmPickerView_Codes : SlmPickerView
|
||||
public class SlmPickerView_CodeType : SlmPickerView
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmPickerView_Codes () : base(new SlmPicker_Codes()) { }
|
||||
public SlmPickerView_CodeType () : base(new SlmPicker_CodeType()) { }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Slm.CodeType CodeType
|
||||
{
|
||||
get { return (Picker as SlmPicker_Codes).CodeType; }
|
||||
set { (Picker as SlmPicker_Codes).CodeType = value; }
|
||||
get { return (Picker as SlmPicker_CodeType).CodeType; }
|
||||
set { (Picker as SlmPicker_CodeType).CodeType = value; }
|
||||
}
|
||||
public bool ContainsCode (String code)
|
||||
{
|
||||
@@ -35,14 +35,14 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Controls
|
||||
}
|
||||
public String SelectedCode
|
||||
{
|
||||
get { return (Picker as SlmPicker_Codes).SelectedCode; }
|
||||
set { (Picker as SlmPicker_Codes).SelectedCode = value; }
|
||||
get { return (Picker as SlmPicker_CodeType).SelectedCode; }
|
||||
set { (Picker as SlmPicker_CodeType).SelectedCode = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
public class SlmPicker_Codes : SlmPicker
|
||||
public class SlmPicker_CodeType : SlmPicker
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
@@ -51,7 +51,7 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Controls
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmPicker_Codes ()
|
||||
public SlmPicker_CodeType ()
|
||||
{
|
||||
PopulateCodes();
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
using Sarand.Core.CodeTypes;
|
||||
using Sarand.Core.Tasks;
|
||||
using Sarand.LogisticsMgr.Core.App;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.CodeTypes;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Forms.Base;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.Mgr;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Controls
|
||||
{
|
||||
//=======================================================================
|
||||
public class SlmPickerView_SystemCodes : SlmPickerView
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmPickerView_SystemCodes (Slm.SystemCode systemCodeType) :
|
||||
base(new SlmPicker_SystemCodes(systemCodeType))
|
||||
{ }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public String SelectedCode
|
||||
{
|
||||
get { return (Picker as SlmPicker_SystemCodes).SelectedItemCode; }
|
||||
set { (Picker as SlmPicker_SystemCodes).SelectedItemCode = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
public class SlmPicker_SystemCodes : SlmPicker
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private Slm.SystemCode systemCode;
|
||||
private List<TypeCodeDesc> systemCodes = new List<TypeCodeDesc>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmPicker_SystemCodes (Slm.SystemCode systemCodeType)
|
||||
{
|
||||
this.systemCode = systemCodeType;
|
||||
systemCodes.AddRange(SlmSystem.GetCodesOfType(systemCodeType));
|
||||
PopulateSystemCodes();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// P o p u l a t i o n
|
||||
//-------------------------------------------------------------------
|
||||
public void PopulateSystemCodes ()
|
||||
{
|
||||
Items.Clear();
|
||||
foreach (TypeCodeDesc systemCode in systemCodes)
|
||||
{
|
||||
AddItem(systemCode.Code, systemCode.Desc);
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
using Sarand.Core.Mobile.Forms.Panels;
|
||||
using Sarand.LogisticsMgr.Mobile.Core.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Forms.Panels
|
||||
{
|
||||
public class SlmPanel_ItemListHeader : SaxPanel_ItemListHeader
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
public new class Config : SaxPanel_ItemListHeader.Config
|
||||
{
|
||||
public Config ()
|
||||
{
|
||||
Margin = new Thickness(0, 0, 0, 4.0);
|
||||
HeaderBorderWidth = SlmMobile.ItemListHeaderBorderWidth;
|
||||
HeaderBorderRadius = SlmMobile.ItemListHeaderBorderRadius;
|
||||
HeaderBorderColor = SlmMobile.ItemListHeaderBorderColor;
|
||||
HeaderBackgroundColor = SlmMobile.ItemListHeaderBackgroundColor;
|
||||
LabelMargin = SlmMobile.LabelMargin;
|
||||
CaptionLabelFontSizeRatio = SlmMobile.FontSizeRatio * SlmMobile.PageCaptionTextSizeRatio;
|
||||
PagingLabelFontSizeRatio = SlmMobile.FontSizeRatio;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SlmPanel_ItemListHeader (Config config) :
|
||||
base(config)
|
||||
{
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// P a n e l E v e n t s
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -63,7 +63,6 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
public override SlmAssetMovement GetAssetMovement (SlmAssetMovement.Params prm)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (GetAssetMovementCount(prm) != 1) return null;
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<SlmAssetMovement> GetAssetMovement_Mobile (SlmAssetMovement.Params prmAssetMovement, SacsTaskData taskData)
|
||||
@@ -74,17 +73,17 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
|
||||
// Request item data.
|
||||
SlmWebServiceClient.ItemDataResponseData responseData = await webServiceClient.GetItemData(GetAssetMovementRequestConfig(SlmWebServiceRequest.RequestType.Data, taskData.Debug), GetAssetMovementQueryFilter_Mobile(prmAssetMovement), taskData);
|
||||
XElement dataElement = responseData.DataElement;
|
||||
if (dataElement == null) throw new NotSupportedException("No data element found in AssetMovement data response.");
|
||||
if (responseData.DataElement == null) throw new NotSupportedException("No data element found in AssetMovement data response.");
|
||||
if (responseData.ItemElement == null) throw new NotSupportedException("No item element found in AssetMovement data response.");
|
||||
if (responseData.Item == null) throw new NotSupportedException("No item extracted from AssetMovement data response.");
|
||||
|
||||
// Item construction properties.
|
||||
SysId id = new SysId(StringUtil.ToInt(dataElement.GetChildText(SlmAssetMovement.Column.Id.ToString())));
|
||||
Slm.AssetItemType assetItemType = EnumUtil.ParseEnum(dataElement.GetChildText(SlmAssetMovement.Column.AssetItemType.ToString()), Slm.AssetItemType.Unknown);
|
||||
ushort flags = (ushort)StringUtil.ToInt(dataElement.GetChildText(SlmAssetMovement.Column.Id.ToString()));
|
||||
SysId id = responseData.Item.GetIdValue(nameof(SlmAssetMovement.Id));
|
||||
Slm.AssetItemType assetItemType = EnumUtil.ParseEnum(responseData.Item.GetValue(nameof(SlmAssetMovement.AssetItemType)), Slm.AssetItemType.Unknown);
|
||||
ushort flags = (ushort)responseData.Item.GetIntValue(nameof(SlmAssetMovement.Flags));
|
||||
// Create item.
|
||||
SlmAssetMovement_Mobile assetMovement = new SlmAssetMovement_Mobile(Site, id, assetItemType, flags);
|
||||
// Populate item properties.
|
||||
PopulateFrom(dataElement, assetMovement);
|
||||
PopulateFrom(responseData.Item, assetMovement);
|
||||
return assetMovement;
|
||||
}
|
||||
|
||||
@@ -161,57 +160,57 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement assetMovementElement, SlmAssetMovement assetMovement, DbUpdateInfo dbUpdateInfo)
|
||||
public static void PopulateTo (XElement assetMovementElement, SlmAssetMovement assetMovement, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
// Movement.
|
||||
assetMovementElement.AppendElement("Id", SysId.ToString(assetMovement.Id));
|
||||
assetMovementElement.AppendElement("MovementType", assetMovement.MovementType.ToString());
|
||||
assetMovementElement.AppendElement("MovementAt", DateUtil.FormatXmlDateTime(assetMovement.MovementAt));
|
||||
assetMovementElement.AppendElement("MovementRef", assetMovement.MovementRef);
|
||||
assetMovementElement.AppendElement("MovementInfo", assetMovement.MovementInfo);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.Id), SysId.ToString(assetMovement.Id));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementType), assetMovement.MovementType.ToString());
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementAt), DateUtil.FormatXmlDateTime(assetMovement.MovementAt));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementRef), assetMovement.MovementRef);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementInfo), assetMovement.MovementInfo);
|
||||
// Associated data.
|
||||
assetMovementElement.AppendElement("MovementNotificationIdIn", SysId.ToString(assetMovement.MovementNotificationIdIn));
|
||||
assetMovementElement.AppendElement("MovementNotificationIdOut", SysId.ToString(assetMovement.MovementNotificationIdOut));
|
||||
assetMovementElement.AppendElement("VehicleMovementAssetIdIn", SysId.ToString(assetMovement.VehicleMovementAssetIdIn));
|
||||
assetMovementElement.AppendElement("VehicleMovementAssetIdOut", SysId.ToString(assetMovement.VehicleMovementAssetIdOut));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementNotificationIdIn), SysId.ToString(assetMovement.MovementNotificationIdIn));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.MovementNotificationIdOut), SysId.ToString(assetMovement.MovementNotificationIdOut));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.VehicleMovementAssetIdIn), SysId.ToString(assetMovement.VehicleMovementAssetIdIn));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.VehicleMovementAssetIdOut), SysId.ToString(assetMovement.VehicleMovementAssetIdOut));
|
||||
// Customer.
|
||||
assetMovementElement.AppendElement("Customer", assetMovement.Customer);
|
||||
assetMovementElement.AppendElement("CustomerRef", assetMovement.CustomerRef);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.Customer), assetMovement.Customer);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.CustomerRef), assetMovement.CustomerRef);
|
||||
// Locations.
|
||||
assetMovementElement.AppendElement("LocationStart", assetMovement.LocationStart);
|
||||
assetMovementElement.AppendElement("LocationCurrent", assetMovement.LocationCurrent);
|
||||
assetMovementElement.AppendElement("LocationFinish", assetMovement.LocationFinish);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.LocationStart), assetMovement.LocationStart);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.LocationCurrent), assetMovement.LocationCurrent);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.LocationFinish), assetMovement.LocationFinish);
|
||||
// Transport.
|
||||
assetMovementElement.AppendElement("HaulierInitial", assetMovement.HaulierInitial);
|
||||
assetMovementElement.AppendElement("Haulier", assetMovement.HaulierFinal);
|
||||
assetMovementElement.AppendElement("RegistrationInitial", assetMovement.RegistrationInitial);
|
||||
assetMovementElement.AppendElement("VehicleRegistration", assetMovement.RegistrationFinal);
|
||||
assetMovementElement.AppendElement("WagonType", assetMovement.WagonType);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.HaulierInitial), assetMovement.HaulierInitial);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.HaulierFinal), assetMovement.HaulierFinal);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.RegistrationInitial), assetMovement.RegistrationInitial);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.RegistrationFinal), assetMovement.RegistrationFinal);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.WagonType), assetMovement.WagonType);
|
||||
// Asset.
|
||||
assetMovementElement.AppendElement("AssetItemType", assetMovement.AssetItemType.ToString());
|
||||
assetMovementElement.AppendElement("AssetItemId", SysId.ToString(assetMovement.AssetItemId));
|
||||
assetMovementElement.AppendElement("PinNumber", assetMovement.PinNumber);
|
||||
assetMovementElement.AppendElement("SealNumber", assetMovement.SealNumber);
|
||||
assetMovementElement.AppendElement("DangerousGoodsInfo", assetMovement.DangerousGoodsInfo);
|
||||
assetMovementElement.AppendElement("AssetTypeCode", assetMovement.AssetTypeCode);
|
||||
assetMovementElement.AppendElement("AssetSizeCode", assetMovement.AssetSizeCode);
|
||||
assetMovementElement.AppendElement("AssetWidth", assetMovement.AssetWidth.ToString("N3"));
|
||||
assetMovementElement.AppendElement("AssetHeight", assetMovement.AssetHeight.ToString("N3"));
|
||||
assetMovementElement.AppendElement("AssetLength", assetMovement.AssetLength.ToString("N3"));
|
||||
assetMovementElement.AppendElement("AssetWeightGross", assetMovement.AssetWeightGross.ToString("N3"));
|
||||
assetMovementElement.AppendElement("AssetConditionCode", assetMovement.AssetConditionCode);
|
||||
assetMovementElement.AppendElement("AssetHoldReasonCode", assetMovement.AssetHoldReasonCode);
|
||||
assetMovementElement.AppendElement("AssetHoldReason", assetMovement.AssetHoldReason);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetItemType), assetMovement.AssetItemType.ToString());
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetItemId), SysId.ToString(assetMovement.AssetItemId));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.PinNumber), assetMovement.PinNumber);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.SealNumber), assetMovement.SealNumber);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.DangerousGoodsInfo), assetMovement.DangerousGoodsInfo);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetTypeCode), assetMovement.AssetTypeCode);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetSizeCode), assetMovement.AssetSizeCode);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetWidth), assetMovement.AssetWidth.ToString("N3"));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetHeight), assetMovement.AssetHeight.ToString("N3"));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetLength), assetMovement.AssetLength.ToString("N3"));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetWeightGross), assetMovement.AssetWeightGross.ToString("N3"));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetConditionCode), assetMovement.AssetConditionCode);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetHoldReasonCode), assetMovement.AssetHoldReasonCode);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.AssetHoldReason), assetMovement.AssetHoldReason);
|
||||
// Status dates.
|
||||
assetMovementElement.AppendElement("InProgressAt", DateUtil.FormatXmlDateTime(assetMovement.InProgressAt));
|
||||
assetMovementElement.AppendElement("OnHoldAt", DateUtil.FormatXmlDateTime(assetMovement.OnHoldAt));
|
||||
assetMovementElement.AppendElement("CompletedAt", DateUtil.FormatXmlDateTime(assetMovement.CompletedAt));
|
||||
// TODO assetMovementElement.AppendElement("InvoicedAt", DateUtil.FormatXmlDateTime(assetMovement.InvoicedAt));
|
||||
assetMovementElement.AppendElement("CancelledAt", DateUtil.FormatXmlDateTime(assetMovement.CancelledAt));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.InProgressAt), DateUtil.FormatXmlDateTime(assetMovement.InProgressAt));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.OnHoldAt), DateUtil.FormatXmlDateTime(assetMovement.OnHoldAt));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.CompletedAt), DateUtil.FormatXmlDateTime(assetMovement.CompletedAt));
|
||||
// TODO assetMovementElement.AppendElement(nameof(SlmAssetMovement.InvoicedAt), DateUtil.FormatXmlDateTime(assetMovement.InvoicedAt));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.CancelledAt), DateUtil.FormatXmlDateTime(assetMovement.CancelledAt));
|
||||
// Common properties.
|
||||
assetMovementElement.AppendElement("Notes", assetMovement.Notes);
|
||||
assetMovementElement.AppendElement("Status", SacsSystem.GetStatusCode(assetMovement.Status));
|
||||
assetMovementElement.AppendElement("Flags", assetMovement.Flags.ToString());
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.Notes), assetMovement.Notes);
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.Status), SacsSystem.GetStatusCode(assetMovement.Status));
|
||||
assetMovementElement.AppendElement(nameof(SlmAssetMovement.Flags), assetMovement.Flags.ToString());
|
||||
if (!SysId.IsValid(assetMovement.Id))
|
||||
{
|
||||
assetMovementElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
@@ -222,58 +221,58 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
assetMovementElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
assetMovementElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement assetMovementElement, SlmAssetMovement assetMovement)
|
||||
public static void PopulateFrom (SlmWebServiceItemData itemData, SlmAssetMovement assetMovement)
|
||||
{
|
||||
// Movement.
|
||||
//assetMovement.Id = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("Id")));
|
||||
assetMovement.MovementType = EnumUtil.ParseEnum(assetMovementElement.GetChildText("MovementType"), Slm.AssetMovementType.Unknown);
|
||||
assetMovement.MovementAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("MovementAt"));
|
||||
assetMovement.MovementRef = assetMovementElement.GetChildText("MovementRef");
|
||||
assetMovement.MovementInfo = assetMovementElement.GetChildText("MovementInfo");
|
||||
//assetMovement.Id = itemData.GetIdValue(nameof(SlmAssetMovement.Id));
|
||||
assetMovement.MovementType = EnumUtil.ParseEnum(itemData.GetValue(nameof(SlmAssetMovement.MovementType)), Slm.AssetMovementType.Unknown);
|
||||
assetMovement.MovementAt = itemData.GetDateTimeValue(nameof(SlmAssetMovement.MovementAt));
|
||||
assetMovement.MovementRef = itemData.GetValue(nameof(SlmAssetMovement.MovementRef));
|
||||
assetMovement.MovementInfo = itemData.GetValue(nameof(SlmAssetMovement.MovementInfo));
|
||||
// Associated data.
|
||||
assetMovement.MovementNotificationIdIn = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("MovementNotificationIdIn")));
|
||||
assetMovement.MovementNotificationIdOut = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("MovementNotificationIdOut")));
|
||||
assetMovement.VehicleMovementAssetIdIn = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("VehicleMovementAssetIdIn")));
|
||||
assetMovement.VehicleMovementAssetIdOut = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("VehicleMovementAssetIdOut")));
|
||||
assetMovement.MovementNotificationIdIn = itemData.GetIdValue(nameof(SlmAssetMovement.MovementNotificationIdIn));
|
||||
assetMovement.MovementNotificationIdOut = itemData.GetIdValue(nameof(SlmAssetMovement.MovementNotificationIdOut));
|
||||
assetMovement.VehicleMovementAssetIdIn = itemData.GetIdValue(nameof(SlmAssetMovement.VehicleMovementAssetIdIn));
|
||||
assetMovement.VehicleMovementAssetIdOut = itemData.GetIdValue(nameof(SlmAssetMovement.VehicleMovementAssetIdOut));
|
||||
// Customer.
|
||||
assetMovement.Customer = assetMovementElement.GetChildText("Customer");
|
||||
assetMovement.CustomerRef = assetMovementElement.GetChildText("CustomerRef");
|
||||
assetMovement.Customer = itemData.GetValue(nameof(SlmAssetMovement.Customer));
|
||||
assetMovement.CustomerRef = itemData.GetValue(nameof(SlmAssetMovement.CustomerRef));
|
||||
// Locations.
|
||||
assetMovement.LocationStart = assetMovementElement.GetChildText("LocationStart");
|
||||
assetMovement.LocationCurrent = assetMovementElement.GetChildText("LocationCurrent");
|
||||
assetMovement.LocationFinish = assetMovementElement.GetChildText("LocationFinish");
|
||||
assetMovement.LocationStart = itemData.GetValue(nameof(SlmAssetMovement.LocationStart));
|
||||
assetMovement.LocationCurrent = itemData.GetValue(nameof(SlmAssetMovement.LocationCurrent));
|
||||
assetMovement.LocationFinish = itemData.GetValue(nameof(SlmAssetMovement.LocationFinish));
|
||||
// Transport.
|
||||
assetMovement.HaulierInitial = assetMovementElement.GetChildText("HaulierInitial");
|
||||
assetMovement.HaulierFinal = assetMovementElement.GetChildText("Haulier");
|
||||
assetMovement.RegistrationInitial = assetMovementElement.GetChildText("RegistrationInitial");
|
||||
assetMovement.RegistrationFinal = assetMovementElement.GetChildText("VehicleRegistration");
|
||||
assetMovement.WagonType = assetMovementElement.GetChildText("WagonType");
|
||||
assetMovement.HaulierInitial = itemData.GetValue(nameof(SlmAssetMovement.HaulierInitial));
|
||||
assetMovement.HaulierFinal = itemData.GetValue(nameof(SlmAssetMovement.HaulierFinal));
|
||||
assetMovement.RegistrationInitial = itemData.GetValue(nameof(SlmAssetMovement.RegistrationInitial));
|
||||
assetMovement.RegistrationFinal = itemData.GetValue(nameof(SlmAssetMovement.RegistrationFinal));
|
||||
assetMovement.WagonType = itemData.GetValue(nameof(SlmAssetMovement.WagonType));
|
||||
// Asset.
|
||||
//assetMovement.AssetItemType = (Slm.AssetItemType)dbAssetMovement._AssetItemType");
|
||||
assetMovement.AssetItemId = new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("AssetItemId")));
|
||||
assetMovement.PinNumber = assetMovementElement.GetChildText("PinNumber");
|
||||
assetMovement.SealNumber = assetMovementElement.GetChildText("SealNumber");
|
||||
assetMovement.DangerousGoodsInfo = assetMovementElement.GetChildText("DangerousGoodsInfo");
|
||||
assetMovement.AssetTypeCode = assetMovementElement.GetChildText("AssetTypeCode");
|
||||
assetMovement.AssetSizeCode = assetMovementElement.GetChildText("AssetSizeCode");
|
||||
assetMovement.AssetWidth = StringUtil.ToDecimal(assetMovementElement.GetChildText("AssetWidth"));
|
||||
assetMovement.AssetHeight = StringUtil.ToDecimal(assetMovementElement.GetChildText("AssetHeight"));
|
||||
assetMovement.AssetLength = StringUtil.ToDecimal(assetMovementElement.GetChildText("AssetLength"));
|
||||
assetMovement.AssetWeightGross = StringUtil.ToDecimal(assetMovementElement.GetChildText("AssetWeightGross"));
|
||||
assetMovement.AssetConditionCode = assetMovementElement.GetChildText("AssetConditionCode");
|
||||
assetMovement.AssetHoldReasonCode = assetMovementElement.GetChildText("AssetHoldReasonCode");
|
||||
assetMovement.AssetHoldReason = assetMovementElement.GetChildText("AssetHoldReason");
|
||||
//assetMovement.AssetItemType = EnumUtil.ParseEnum(itemData.GetValue(nameof(SlmAssetMovement.AssetItemType)), Slm.AssetItemType.Unknown);
|
||||
assetMovement.AssetItemId = itemData.GetIdValue(nameof(SlmAssetMovement.AssetItemId));
|
||||
assetMovement.PinNumber = itemData.GetValue(nameof(SlmAssetMovement.PinNumber));
|
||||
assetMovement.SealNumber = itemData.GetValue(nameof(SlmAssetMovement.SealNumber));
|
||||
assetMovement.DangerousGoodsInfo = itemData.GetValue(nameof(SlmAssetMovement.DangerousGoodsInfo));
|
||||
assetMovement.AssetTypeCode = itemData.GetValue(nameof(SlmAssetMovement.AssetTypeCode));
|
||||
assetMovement.AssetSizeCode = itemData.GetValue(nameof(SlmAssetMovement.AssetSizeCode));
|
||||
assetMovement.AssetWidth = itemData.GetDecimalValue(nameof(SlmAssetMovement.AssetWidth));
|
||||
assetMovement.AssetHeight = itemData.GetDecimalValue(nameof(SlmAssetMovement.AssetHeight));
|
||||
assetMovement.AssetLength = itemData.GetDecimalValue(nameof(SlmAssetMovement.AssetLength));
|
||||
assetMovement.AssetWeightGross = itemData.GetDecimalValue(nameof(SlmAssetMovement.AssetWeightGross));
|
||||
assetMovement.AssetConditionCode = itemData.GetValue(nameof(SlmAssetMovement.AssetConditionCode));
|
||||
assetMovement.AssetHoldReasonCode = itemData.GetValue(nameof(SlmAssetMovement.AssetHoldReasonCode));
|
||||
assetMovement.AssetHoldReason = itemData.GetValue(nameof(SlmAssetMovement.AssetHoldReason));
|
||||
// Status dates.
|
||||
assetMovement.InProgressAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("InProgressAt"));
|
||||
assetMovement.OnHoldAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("OnHoldAt"));
|
||||
assetMovement.CompletedAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("CompletedAt"));
|
||||
// TODO assetMovement.InvoicedAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("InvoicedAt"));
|
||||
assetMovement.CancelledAt = DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("CancelledAt"));
|
||||
assetMovement.InProgressAt = itemData.GetDateTimeValue(nameof(SlmAssetMovement.InProgressAt));
|
||||
assetMovement.OnHoldAt = itemData.GetDateTimeValue(nameof(SlmAssetMovement.OnHoldAt));
|
||||
assetMovement.CompletedAt = itemData.GetDateTimeValue(nameof(SlmAssetMovement.CompletedAt));
|
||||
// TODO assetMovement.InvoicedAt = assetMovementElement.GetDateTimeValue(nameof(SlmAssetMovement.InvoicedAt));
|
||||
assetMovement.CancelledAt = itemData.GetDateTimeValue(nameof(SlmAssetMovement.CancelledAt));
|
||||
// Common properties.
|
||||
assetMovement.Notes = assetMovementElement.GetChildText("Notes");
|
||||
assetMovement.Status = SacsSystem.GetStatusForCode(assetMovementElement.GetChildText("Status"));
|
||||
assetMovement.SetCreateStamp(DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("CreateBy"))), assetMovementElement.GetChildText("CreateHost"));
|
||||
assetMovement.SetUpdateStamp(DateUtil.ParseXmlDateTime(assetMovementElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(assetMovementElement.GetChildText("UpdateBy"))), assetMovementElement.GetChildText("UpdateHost"));
|
||||
assetMovement.Notes = itemData.GetValue(nameof(SlmAssetMovement.Notes));
|
||||
assetMovement.Status = SacsSystem.GetStatusForCode(itemData.GetValue(nameof(SlmAssetMovement.Status)));
|
||||
assetMovement.SetCreateStamp(itemData.GetDateTimeValue("CreateOn"), itemData.GetIdValue("CreateBy"), itemData.GetValue("CreateHost"));
|
||||
assetMovement.SetUpdateStamp(itemData.GetDateTimeValue("UpdateOn"), itemData.GetIdValue("UpdateBy"), itemData.GetValue("UpdateHost"));
|
||||
assetMovement.AcceptChanges();
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,16 @@
|
||||
using Sarand.Core.Base;
|
||||
using Sarand.Core.Bus;
|
||||
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.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
@@ -41,6 +44,27 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
ClearErrorState();
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public async Task<SlmContainer> GetContainer_Mobile (SlmContainer.Params prmContainer, SacsTaskData taskData)
|
||||
{
|
||||
ClearErrorState();
|
||||
List<SlmContainer> companies = new List<SlmContainer>();
|
||||
String fn = GetType().Name + ".GetContainer_Mobile";
|
||||
|
||||
// Request item data.
|
||||
SlmWebServiceClient.ItemDataResponseData responseData = await webServiceClient.GetItemData(GetContainerRequestConfig(SlmWebServiceRequest.RequestType.Data, taskData.Debug), GetContainerQueryFilter_Mobile(prmContainer), taskData);
|
||||
if (responseData.DataElement == null) throw new NotSupportedException("No data element found in Container data response.");
|
||||
if (responseData.ItemElement == null) throw new NotSupportedException("No item element found in Container data response.");
|
||||
if (responseData.Item == null) throw new NotSupportedException("No item extracted from Container data response.");
|
||||
|
||||
// Item construction properties.
|
||||
SysId id = responseData.Item.GetIdValue(nameof(SlmContainer.Id));
|
||||
String code = responseData.Item.GetValue(nameof(SlmContainer.Code));
|
||||
ushort flags = (ushort)responseData.Item.GetIntValue(nameof(SlmContainer.Flags));
|
||||
// Create item.
|
||||
SlmContainer_Mobile container = new SlmContainer_Mobile(Site, id, code, flags);
|
||||
PopulateFrom(responseData.Item, container);
|
||||
return container;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Container.
|
||||
@@ -93,16 +117,16 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
// Copy data properties to and from database.
|
||||
private void PopulateTo (XElement containerElement, SlmContainer container, DbUpdateInfo dbUpdateInfo)
|
||||
{
|
||||
containerElement.AppendElement("Id", SysId.ToString(container.Id));
|
||||
containerElement.AppendElement("Code", container.Code);
|
||||
containerElement.AppendElement("SizeCode", container.SizeCode);
|
||||
containerElement.AppendElement("Width", container.Width.ToString("N3"));
|
||||
containerElement.AppendElement("Height", container.Height.ToString("N3"));
|
||||
containerElement.AppendElement("Length", container.Length.ToString("N3"));
|
||||
containerElement.AppendElement(nameof(SlmContainer.Id), SysId.ToString(container.Id));
|
||||
containerElement.AppendElement(nameof(SlmContainer.Code), container.Code);
|
||||
containerElement.AppendElement(nameof(SlmContainer.SizeCode), container.SizeCode);
|
||||
containerElement.AppendElement(nameof(SlmContainer.Width), container.Width.ToString("N3"));
|
||||
containerElement.AppendElement(nameof(SlmContainer.Height), container.Height.ToString("N3"));
|
||||
containerElement.AppendElement(nameof(SlmContainer.Length), container.Length.ToString("N3"));
|
||||
// Common properties.
|
||||
containerElement.AppendElement("Notes", container.Notes);
|
||||
containerElement.AppendElement("Status", SacsSystem.GetStatusCode(container.Status));
|
||||
containerElement.AppendElement("Flags", container.Flags.ToString());
|
||||
containerElement.AppendElement(nameof(SlmContainer.Notes), container.Notes);
|
||||
containerElement.AppendElement(nameof(SlmContainer.Status), SacsSystem.GetStatusCode(container.Status));
|
||||
containerElement.AppendElement(nameof(SlmContainer.Flags), container.Flags.ToString());
|
||||
if (!SysId.IsValid(container.Id))
|
||||
{
|
||||
containerElement.AppendElement("CreateOn", DateUtil.FormatXmlDateTime(DateTime.Now));
|
||||
@@ -113,19 +137,19 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
containerElement.AppendElement("UpdateBy", SysId.ToString(dbUpdateInfo.UserId));
|
||||
containerElement.AppendElement("UpdateHost", dbUpdateInfo.Host);
|
||||
}
|
||||
private void PopulateFrom (XElement containerElement, SlmContainer container)
|
||||
private void PopulateFrom (SlmWebServiceItemData itemData, SlmContainer container)
|
||||
{
|
||||
//container.Id = new SysId(StringUtil.ToInt(containerElement.GetChildText("Id")));
|
||||
//container.Code = containerElement.GetChildText("Code");
|
||||
container.SizeCode = containerElement.GetChildText("SizeCode");
|
||||
container.Width = StringUtil.ToDecimal(containerElement.GetChildText("Width"));
|
||||
container.Height = StringUtil.ToDecimal(containerElement.GetChildText("Height"));
|
||||
container.Length = StringUtil.ToDecimal(containerElement.GetChildText("Length"));
|
||||
//container.Id = itemData.GetIdValue(nameof(SlmContainer.Id)));
|
||||
//container.Code = itemData.GetValue(nameof(SlmContainer.Code));
|
||||
container.SizeCode = itemData.GetValue(nameof(SlmContainer.SizeCode));
|
||||
container.Width = itemData.GetDecimalValue(nameof(SlmContainer.Width));
|
||||
container.Height = itemData.GetDecimalValue(nameof(SlmContainer.Height));
|
||||
container.Length = itemData.GetDecimalValue(nameof(SlmContainer.Length));
|
||||
// Common properties.
|
||||
container.Notes = containerElement.GetChildText("Notes");
|
||||
container.Status = SacsSystem.GetStatusForCode(containerElement.GetChildText("Status"));
|
||||
container.SetCreateStamp(DateUtil.ParseXmlDateTime(containerElement.GetChildText("CreateOn")), new SysId(StringUtil.ToInt(containerElement.GetChildText("CreateBy"))), containerElement.GetChildText("CreateHost"));
|
||||
container.SetUpdateStamp(DateUtil.ParseXmlDateTime(containerElement.GetChildText("UpdateOn")), new SysId(StringUtil.ToInt(containerElement.GetChildText("UpdateBy"))), containerElement.GetChildText("UpdateHost"));
|
||||
container.Notes = itemData.GetValue(nameof(SlmContainer.Notes));
|
||||
container.Status = SacsSystem.GetStatusForCode(itemData.GetValue(nameof(SlmContainer.Status)));
|
||||
container.SetCreateStamp(itemData.GetDateTimeValue("CreateOn"), itemData.GetIdValue("CreateBy"), itemData.GetValue("CreateHost"));
|
||||
container.SetUpdateStamp(itemData.GetDateTimeValue("UpdateOn"), itemData.GetIdValue("UpdateBy"), itemData.GetValue("UpdateHost"));
|
||||
container.AcceptChanges();
|
||||
}
|
||||
|
||||
@@ -202,6 +226,19 @@ namespace Sarand.LogisticsMgr.Mobile.Core.Mgr
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
private SlmWebServiceRequest.Config GetContainerRequestConfig (SlmWebServiceRequest.RequestType requestType, bool debug = false)
|
||||
{
|
||||
SlmWebServiceRequest.Config configRequest = new SlmWebServiceRequest.Config();
|
||||
configRequest.DataType = SlmWebServiceRequest.DataType.Container;
|
||||
configRequest.RequestType = requestType;
|
||||
configRequest.Context.SiteDefinition = SiteDefinition;
|
||||
configRequest.Context.User = UserCode;
|
||||
configRequest.Context.Email = EmailAddress;
|
||||
configRequest.Context.Debug = debug;
|
||||
return configRequest;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
Reference in New Issue
Block a user