3.0.0.1 Demo repository registration
This commit is contained in:
@@ -24,7 +24,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
// I n t e r f a c e O p t i o n D e f i n i t i o n s
|
||||
//-------------------------------------------------------------------
|
||||
public static List<SaItemOptionDfn> GetInterfaceItemOptionDfns(ISbmUserOrganisationContext userContext, SaInterfaceCategory interfaceCategory, short interfaceType)
|
||||
public static List<SaItemOptionDfn> GetInterfaceItemOptionDfns(SbmInternals internals, SaInterfaceCategory interfaceCategory, short interfaceType)
|
||||
{
|
||||
switch (interfaceCategory)
|
||||
{
|
||||
@@ -34,7 +34,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
}
|
||||
case SaInterfaceCategory.Accounts:
|
||||
{
|
||||
return new SbmAccountsDfn(userContext).GetInterfaceItemOptionDfns((Sbm.InterfaceType_Accounts)interfaceType);
|
||||
return internals.AccountsConsole.GetInterfaceItemOptionDfns((Sbm.InterfaceType_Accounts)interfaceType);
|
||||
}
|
||||
case SaInterfaceCategory.System:
|
||||
{
|
||||
@@ -46,7 +46,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
{
|
||||
if (interfaceType == (short)Sbm.InterfaceType_File.CommodityExport)
|
||||
{
|
||||
SbmInterfaceProcess_Commodity_Export.Config processConfig = new SbmInterfaceProcess_Commodity_Export.Config(userContext);
|
||||
SbmInterfaceProcess_Commodity_Export.Config processConfig = new SbmInterfaceProcess_Commodity_Export.Config(internals.UserContext);
|
||||
SbmInterfaceProcess_Commodity_Export process = new SbmInterfaceProcess_Commodity_Export(processConfig);
|
||||
return process.GetInterfaceItemOptionDfns();
|
||||
}
|
||||
@@ -59,7 +59,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
// P r o c e s s i n g O p t i o n s
|
||||
//-------------------------------------------------------------------
|
||||
public static List<SaProcess_Base.GroupData> GetProcessingOptions(ISbmUserOrganisationContext userContext, SaInterface interfaceObj)
|
||||
public static List<SaProcess_Base.GroupData> GetProcessingOptions(SbmInternals internals, SaInterface interfaceObj)
|
||||
{
|
||||
if (interfaceObj == null || !SysId.IsValid(interfaceObj.Id)) return new List<SaProcess_Base.GroupData>();
|
||||
List<SaProcess_Base.GroupData> optionGroups = null;
|
||||
@@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
case SaInterfaceCategory.File:
|
||||
{
|
||||
if (interfaceObj.Type == (short)Sbm.InterfaceType_File.CommodityExport)
|
||||
optionGroups = SbmInterfaceProcess_Commodity_Export.GetProcessingOptions(userContext, interfaceObj);
|
||||
optionGroups = SbmInterfaceProcess_Commodity_Export.GetProcessingOptions(internals.UserContext, interfaceObj);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -90,7 +90,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
// C o n f i g u r e P r o c e s s
|
||||
//-------------------------------------------------------------------
|
||||
public static SbmInterfaceProcess ConfigureProcess(ISbmUserOrganisationContext userContext, SaInterface interfaceObj, SaProcess_Base.GroupData processGroup)
|
||||
public static SbmInterfaceProcess ConfigureProcess(SbmInternals internals, SaInterface interfaceObj, SaProcess_Base.GroupData processGroup)
|
||||
{
|
||||
if (interfaceObj == null || !SysId.IsValid(interfaceObj.Id)) return null;
|
||||
switch (interfaceObj.Category)
|
||||
@@ -110,7 +110,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
case SaInterfaceCategory.File:
|
||||
{
|
||||
if (interfaceObj.Type == (short)Sbm.InterfaceType_File.CommodityExport)
|
||||
return SbmInterfaceProcess_Commodity_Export.ConfigureProcess(userContext, interfaceObj, processGroup);
|
||||
return SbmInterfaceProcess_Commodity_Export.ConfigureProcess(internals.UserContext, interfaceObj, processGroup);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -120,7 +120,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
// P r o c e s s I n t e r f a c e
|
||||
//-------------------------------------------------------------------
|
||||
public static bool ProcessInterface(ISbmUserOrganisationContext userContext, SaInterface interfaceObj)
|
||||
public static bool ProcessInterface(SbmInternals internals, SaInterface interfaceObj)
|
||||
{
|
||||
if (interfaceObj == null || !SysId.IsValid(interfaceObj.Id)) return false;
|
||||
switch (interfaceObj.Category)
|
||||
@@ -149,7 +149,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
// I n v o k e P r o c e s s D e f i n i t i o n
|
||||
//-------------------------------------------------------------------
|
||||
// Invoke process based on definition from command line argument.
|
||||
public static bool InvokeProcessDefinition(ISbmUserOrganisationContext userContext, SacsProcessDefinition processDfn)
|
||||
public static bool InvokeProcessDefinition(SbmInternals internals, SacsProcessDefinition processDfn)
|
||||
{
|
||||
//----------------------------------------------------------------
|
||||
// Log process definition.
|
||||
@@ -160,7 +160,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
if (processDfn.ProcessName.EqualsCI("ApplicationParameterName..."))
|
||||
{
|
||||
String caption = "System Interface ...";
|
||||
SaInterface saInterface = GetSystemInterfaceByType(userContext, (short)Sbm.InterfaceType_System.MSOutlook, caption);
|
||||
SaInterface saInterface = GetSystemInterfaceByType(internals, (short)Sbm.InterfaceType_System.MSOutlook, caption);
|
||||
if (saInterface != null)
|
||||
{
|
||||
/*
|
||||
@@ -186,30 +186,27 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve interface.
|
||||
private static SaInterface GetSystemInterfaceByType(ISbmUserOrganisationContext userContext, short interfaceType, String caption)
|
||||
private static SaInterface GetSystemInterfaceByType(SbmInternals internals, short interfaceType, String caption)
|
||||
{
|
||||
return GetInterfaceByCategoryType(userContext, SaInterfaceCategory.System, interfaceType, caption);
|
||||
return GetInterfaceByCategoryType(internals, SaInterfaceCategory.System, interfaceType, caption);
|
||||
}
|
||||
private static SaInterface GetInterfaceByCategoryType(ISbmUserOrganisationContext userContext, SaInterfaceCategory interfaceCategory, short interfaceType, String caption)
|
||||
private static SaInterface GetInterfaceByCategoryType(SbmInternals internals, SaInterfaceCategory interfaceCategory, short interfaceType, String caption)
|
||||
{
|
||||
SaInterface saInterface = null;
|
||||
SaInterface.Params prmInterface = new SaInterface.Params();
|
||||
prmInterface.InterfaceCategory = interfaceCategory;
|
||||
prmInterface.InterfaceTypesIncluded.Add(interfaceType);
|
||||
prmInterface.StatusCat = SaInterface.StatusCat.Any;
|
||||
using (SaInterfaceConsole interfaceConsole = SbmGlobals.System.CreateInterfaceConsole(userContext))
|
||||
saInterface = internals.InterfaceConsole.GetInterface(prmInterface);
|
||||
if (saInterface == null)
|
||||
{
|
||||
saInterface = interfaceConsole.GetInterface(prmInterface);
|
||||
if (saInterface == null)
|
||||
{
|
||||
SaLogger.Warn("Unable to run " + caption + " - Interface not found", true);
|
||||
return null;
|
||||
}
|
||||
if (!saInterface.Active)
|
||||
{
|
||||
SaLogger.Warn("Unable to run " + caption + " - Interface is not active", true);
|
||||
return null;
|
||||
}
|
||||
SaLogger.Warn("Unable to run " + caption + " - Interface not found", true);
|
||||
return null;
|
||||
}
|
||||
if (!saInterface.Active)
|
||||
{
|
||||
SaLogger.Warn("Unable to run " + caption + " - Interface is not active", true);
|
||||
return null;
|
||||
}
|
||||
return saInterface;
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Interfaces
|
||||
List<String> processComments = new List<string>();
|
||||
CalculateItemCount();
|
||||
processComments.Add("Commodities to export: " + Params.CommodityCountTotal);
|
||||
processComments.AddRange(GetParams().GetDisplayValues(UserContext).Concat("="));
|
||||
processComments.AddRange(GetParams().GetDisplayValues(Internals).Concat("="));
|
||||
processComments.AddRange(base.ProcessComments);
|
||||
return processComments;
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Procs
|
||||
return internals;
|
||||
}
|
||||
}
|
||||
protected SbmAccountsDfn AccountsDfn { get { return Internals.AccountsDfn; } }
|
||||
protected SbmAccountsConsole AccountsDfn { get { return Internals.AccountsConsole; } }
|
||||
protected new DbUpdateInfo DbUpdateInfo { get { return Internals.DbUpdateInfo; } }
|
||||
// Excel export.
|
||||
public static Color ExcelColumnHeadingColor { get; } = Color.LightYellow;
|
||||
|
||||
@@ -137,7 +137,7 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Procs
|
||||
List<String> processComments = new List<string>();
|
||||
CalculateItemCount();
|
||||
processComments.Add("Commodities to export: " + Params.CommodityCountTotal);
|
||||
processComments.AddRange(config.CommodityParams.GetDisplayValues(UserContext).Concat("="));
|
||||
processComments.AddRange(config.CommodityParams.GetDisplayValues(Internals).Concat("="));
|
||||
processComments.AddRange(base.ProcessComments);
|
||||
return processComments;
|
||||
}
|
||||
@@ -296,10 +296,10 @@ namespace Sarand.BusinessMgr.Net.Core.Procs.Procs
|
||||
configHeadings.FirstHeadingRowPos = 1;
|
||||
configHeadings.ForegroundColourRGB = ExcelColumnHeadingColor.ToArgb();
|
||||
configHeadings.BorderWeight = SaXlBorderWeight.Thin;
|
||||
configHeadings.FreezeColPos = (uint)(displayColumns.GetPosForId(SbmCommodity.Column.Code) + 1);
|
||||
configHeadings.FreezeColPos = (uint)(displayColumns.GetPosForId(SbmCommodity.Column.Code) + 1);
|
||||
spreadsheet.SetColumnHeadings(displayColumns, configHeadings);
|
||||
|
||||
Params.HomeColumn = configHeadings.FreezeColPos + 1;
|
||||
Params.HomeColumn = configHeadings.FreezeColPos + 1;
|
||||
Params.HomeRow = Params.FirstDataRow;
|
||||
|
||||
ExportCommoditiesToExcel(spreadsheet);
|
||||
|
||||
@@ -3,7 +3,6 @@ using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Core.Web.App
|
||||
{
|
||||
@@ -43,11 +42,26 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
|
||||
// Security.
|
||||
public class SecurityConfig
|
||||
{
|
||||
public class DemoConfig
|
||||
{
|
||||
public class AccountConfig
|
||||
{
|
||||
public class RegisterConfig
|
||||
{
|
||||
public int EmailLinkExpiresMins = Sbm.Config.Security.Demo.Register.EmailLinkExpiresMins_Default;
|
||||
}
|
||||
public RegisterConfig Register{ get; } = new RegisterConfig();
|
||||
}
|
||||
public AccountConfig Account { get; } = new AccountConfig();
|
||||
}
|
||||
public DemoConfig Demo{ get; } = new DemoConfig();
|
||||
// Password.
|
||||
public class PasswordConfig
|
||||
{
|
||||
public int MinLength { get; set; }
|
||||
}
|
||||
public PasswordConfig Password { get; } = new PasswordConfig();
|
||||
// Sign-up.
|
||||
public class SignUpConfig
|
||||
{
|
||||
public class ActivationConfig
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
|
||||
else
|
||||
ApplicationOptions_Disallowed.Add(option);
|
||||
}
|
||||
else SaLogger.Warn($"{SysUtil.Fn} Unrecognised application option: {itemParam.Name}.");
|
||||
else SaLogger.Warn($"{SysUtil.Fn} Unrecognised application 'Option Allowed': {itemParam.Name}.");
|
||||
}
|
||||
else if (itemParam.Context.EqualsCI(ParamContext_AffiliateTypeAllowed))
|
||||
{
|
||||
|
||||
@@ -5,6 +5,7 @@ using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Net;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -105,6 +106,15 @@ namespace Sarand.BusinessMgr.Net.Core.Web.App
|
||||
return new HtmlString(value);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Encode the text to avoid conflict with HTML document structure.
|
||||
/// </summary>
|
||||
public String HtmlEncode(string text)
|
||||
{
|
||||
return WebUtil.HtmlEncode(text);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Localised javascript string.
|
||||
|
||||
@@ -13,6 +13,7 @@ using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
@@ -44,6 +45,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SbmInternals_Control internals_Control;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Protected construction.
|
||||
@@ -58,6 +60,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (internals_Control != null) internals_Control.Dispose(); internals_Control = null;
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
@@ -65,6 +68,11 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected override SbmSessionContext SessionContext { get { return SessionData?.SessionContext ?? null; } }
|
||||
// Control database.
|
||||
protected SbmInternals_Control Internals_Control { get { if (internals_Control == null) { internals_Control = new SbmInternals_Control(); } return internals_Control; } }
|
||||
protected SbmcAccountMgr ControlAccountMgr { get { return Internals_Control.ControlAccountMgr; } }
|
||||
protected SbmcInstanceMgr ControlInstanceMgr { get { return Internals_Control.ControlInstanceMgr; } }
|
||||
protected SbmcItemMgr ControlItemMgr { get { return Internals_Control.ControlItemMgr; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Action execution events.
|
||||
@@ -134,7 +142,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
// Online encryption parameters.
|
||||
//-------------------------------------------------------------------
|
||||
// Portal Request Password encryption parameters (key & IV) are defined in
|
||||
// the base Controller so that they can be shared with the Admin application.
|
||||
// the base Controller so that they can be shared with the Control application.
|
||||
// NB IV value is generated from the key and fixed so that it doesn't change when the application restarts.
|
||||
// IV Must be regenerated if key is changed.
|
||||
protected static string Base64Key_RequestPassword_Portal { get; } = SacsEncryptionHelper.EncodePlainKey("[5Abus1neSSmGR~Request#Password}", SacsEncryptionHelper.KeyLength);
|
||||
|
||||
@@ -61,6 +61,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
protected SbmSessionContext SessionContext { get { return SessionData_Web?.SessionContext ?? null; } }
|
||||
protected DbUpdateInfo DbUpdateInfo { get { return SessionData_Web?.DbUpdateInfo ?? new DbUpdateInfo(null, "", Sarand.Net.Standard.Base.App.SacsSystem.ComputerName); } }
|
||||
protected SbmLocaliser Localiser { get; }
|
||||
protected virtual SbmInstanceSchemaConsole InstanceSchemaConsole { get; } = null;
|
||||
// Request properties.
|
||||
protected SbmController_Web Controller { get; private set; }
|
||||
internal void SetController(SbmController_Web controller) { Controller = controller; }
|
||||
@@ -88,14 +89,16 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
public int PasswordMaxLength { get; } = 32;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Control max lengths - based on database tabke column length.
|
||||
|
||||
/// <summary>
|
||||
/// Form control value max length - Security tables.
|
||||
/// <para>In many cases the database columns allow plenty of extra space for the value, in case they need to be encrypted.</para>
|
||||
/// <para>Hence, several cases where the value entered in the control isn't allowed the full database length.</para>
|
||||
/// </summary>
|
||||
public int GetControlMaxLength(SaSecurityDbDfn.ColumnIdx column)
|
||||
public virtual int GetControlMaxLength(SaSecurityDbDfn.ColumnIdx column)
|
||||
{
|
||||
int maxLength = (int)SaSecurityDbDfn.GetColTextLen(column);
|
||||
int maxLength = (int)(InstanceSchemaConsole?.GetColTextLen(column) ?? SaSecurityDbDfn.GetColTextLen(column));
|
||||
switch (column)
|
||||
{
|
||||
case SaSecurityDbDfn.ColumnIdx.SaSecItem_EmailAddress:
|
||||
@@ -105,13 +108,13 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Form control value max length - code type tables.
|
||||
/// Form control value max length - Code Type tables.
|
||||
/// <para>In many cases the database columns allow plenty of extra space for the value, in case they need to be encrypted.</para>
|
||||
/// <para>Hence, several cases where the value entered in the control isn't allowed the full database length.</para>
|
||||
/// </summary>
|
||||
public int GetControlMaxLength(SaCodeTypeDbDfn.ColumnIdx column)
|
||||
public virtual int GetControlMaxLength(SaCodeTypeDbDfn.ColumnIdx column)
|
||||
{
|
||||
int maxLength = (int)SaCodeTypeDbDfn.GetColTextLen(column);
|
||||
int maxLength = (int)(InstanceSchemaConsole?.GetColTextLen(column) ?? SaCodeTypeDbDfn.GetColTextLen(column));
|
||||
switch (column)
|
||||
{
|
||||
case SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Name:
|
||||
@@ -121,14 +124,31 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Components
|
||||
return maxLength;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Form control value max length - Item Option tables.
|
||||
/// <para>In many cases the database columns allow plenty of extra space for the value, in case they need to be encrypted.</para>
|
||||
/// <para>Hence, several cases where the value entered in the control isn't allowed the full database length.</para>
|
||||
/// </summary>
|
||||
public virtual int GetControlMaxLength(SaItemOptionDbDfn.ColumnIdx column)
|
||||
{
|
||||
int maxLength = (int)(InstanceSchemaConsole?.GetColTextLen(column) ?? SaItemOptionDbDfn.GetColTextLen(column));
|
||||
switch (column)
|
||||
{
|
||||
case SaItemOptionDbDfn.ColumnIdx.SaItemOption_Name:
|
||||
case SaItemOptionDbDfn.ColumnIdx.SaItemOption_Context:
|
||||
return Math.Min(maxLength, 100);
|
||||
}
|
||||
return maxLength;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Form control value max length - BusinessMgr tables.
|
||||
/// <para>In many cases the database columns allow plenty of extra space for the value, in case they need to be encrypted.</para>
|
||||
/// <para>Hence, several cases where the value entered in the control isn't allowed the full database length.</para>
|
||||
/// </summary>
|
||||
public int GetControlMaxLength(SbmDbDfn.ColumnIdx column)
|
||||
public virtual int GetControlMaxLength(SbmDbDfn.ColumnIdx column)
|
||||
{
|
||||
int maxLength = (int)SbmDbDfn.GetColTextLen(column);
|
||||
int maxLength = (int)(InstanceSchemaConsole?.GetColTextLen(column) ?? SbmDbDfn.GetColTextLen(column));
|
||||
switch (column)
|
||||
{
|
||||
case SbmDbDfn.ColumnIdx.Affiliate_Email:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.BusinessMgr.Net.Standard.Dbas.Consoles;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
@@ -14,7 +15,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmCodeTypeConsole_Web(ISbmUserOrganisationContext userContext) : base(userContext)
|
||||
public SbmCodeTypeConsole_Web(SbmInternals internals) : base(internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmInterfaceConsole_Web(ISbmUserOrganisationContext userContext) : base(userContext)
|
||||
public SbmInterfaceConsole_Web(SbmInternals internals) : base(internals)
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmItemOptionConsole_Web(ISbmUserOrganisationContext userContext) : base(userContext)
|
||||
public SbmItemOptionConsole_Web(SbmInternals internals) : base(internals)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmSecurityConsole_Web(ISbmUserOrganisationContext userContext) : base(userContext)
|
||||
public SbmSecurityConsole_Web(SbmInternals internals) : base(internals)
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmUpdateLogConsole_Web(ISbmUserOrganisationContext userContext) : base(userContext)
|
||||
public SbmUpdateLogConsole_Web(SbmInternals internals) : base(internals)
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
|
||||
@@ -84,7 +84,7 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Middleware
|
||||
|
||||
// Email addresses must be lowercase to ensure match to encrypted data.
|
||||
if (modelName.EqualsCI("EmailAddress") || modelName.EqualsCI("AccountEmailAddress"))
|
||||
value = value.ToLower();
|
||||
value = value.ToLowerInvariant();
|
||||
|
||||
// Uppercase selected values.
|
||||
if (modelName.EqualsCI("Postcode") || modelName.EqualsCI("AccountPostcode") || modelName.EqualsCI("RegisteredAddressPostcode"))
|
||||
|
||||
@@ -43,7 +43,9 @@ namespace Sarand.BusinessMgr.Net.Core.Web.Middleware
|
||||
{
|
||||
// Log action.
|
||||
//String rawTarget = context.Features.Get<IHttpRequestFeature>().RawTarget;
|
||||
if (SbmSystem.DebugMode) SaLogger.Debug($"{SysUtil.Fn} Action: '" + Regex.Replace(context.Request.Path.ToString(), "^/", "") + "'. Method: " + context.Request.Method);
|
||||
HashSet<String> pathsToIgnore = new HashSet<string>(StringComparer.InvariantCultureIgnoreCase) { "/Security/Ajax/ScorePassword" };
|
||||
if (SbmSystem.DebugMode && !pathsToIgnore.Contains($"{context.Request.Path}"))
|
||||
SaLogger.Debug($"{SysUtil.Fn} Action: '{Regex.Replace($"{context.Request.Path}", "^/", "")}'. Method: {context.Request.Method}.");
|
||||
|
||||
// Intercept POST requests and apply anti-forgery test.
|
||||
if (HttpMethods.IsPost(context.Request.Method))
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "3.0.0.0";
|
||||
private static String version { get; } = "3.0.0.1";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion() { return version; }
|
||||
public static String GetAppVersion()
|
||||
@@ -37,8 +37,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Version history.
|
||||
//-------------------------------------------------------------------
|
||||
// 3.0.0 ?-Jul-2021 Initial demo test version.
|
||||
// - .
|
||||
// 3.0.0 Jul-2021 Initial demo test version.
|
||||
// Initial deployment - Feb-25.
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
@@ -17,6 +17,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public static String Context_Defaults { get; } = "Defaults";
|
||||
public static class Security
|
||||
{
|
||||
public static class Demo
|
||||
{
|
||||
public static class Register
|
||||
{
|
||||
public static int EmailLinkExpiresMins_Default { get; } = 60;
|
||||
public static int EmailLinkExpiresMins_Min { get; } = 30;
|
||||
public static int EmailLinkExpiresMins_Max { get; } = 60 * 4;
|
||||
}
|
||||
}
|
||||
public static class Password
|
||||
{
|
||||
public static int MinLength { get; } = 8;
|
||||
@@ -59,7 +68,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public static class Cookie
|
||||
{
|
||||
/// <summary>Default cookie name: '.AspNetCore.Session'</summary>
|
||||
public static String Name { get; } = "BusinessMgr.Portal.Session";
|
||||
public static String Name { get; } = "BMPSN";
|
||||
public static bool HttpOnly { get; } = true;
|
||||
public static TimeSpan IdleTimeout { get; } = SacsSystem.DebugMode ? TimeSpan.FromMinutes(5) : TimeSpan.FromMinutes(60);
|
||||
public static long RememberMeTimeoutMilis { get; } = (long)(SacsSystem.DebugMode ? TimeSpan.FromMinutes(2) : TimeSpan.FromMinutes(10)).TotalMilliseconds;
|
||||
@@ -81,7 +90,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public static class Cookie
|
||||
{
|
||||
/// <summary>Default cookie name: '.AspNetCore.Session'</summary>
|
||||
public static String Name { get; } = "BusinessMgr.Control.Session";
|
||||
public static String Name { get; } = "BusMgr.Control.Session";
|
||||
public static bool HttpOnly { get; } = true;
|
||||
public static TimeSpan IdleTimeout { get; } = SacsSystem.DebugMode ? TimeSpan.FromMinutes(5) : TimeSpan.FromMinutes(15);
|
||||
public static long KeepLoggedInTimeoutMillis { get; } = (long)(SacsSystem.DebugMode ? TimeSpan.FromMinutes(2) : TimeSpan.FromMinutes(10)).TotalMilliseconds;
|
||||
@@ -112,6 +121,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
QC,
|
||||
Dev
|
||||
}
|
||||
public enum Database
|
||||
{
|
||||
Unknown,
|
||||
Control,
|
||||
Template,
|
||||
Demo,
|
||||
}
|
||||
public const String RepositoryContext_Template = "Template";
|
||||
public const String RepositoryContext_Demo= "Demo";
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Configuration console.
|
||||
|
||||
@@ -101,104 +101,77 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public virtual String LinkSuffix { get { return ""; } }
|
||||
//---------------------------------------------------------------
|
||||
// Utilities.
|
||||
public virtual bool Refresh(ISbmUserOrganisationContext userContext)
|
||||
public virtual bool Refresh(SbmInternals internals)
|
||||
{
|
||||
ItemCount = 0;
|
||||
switch (LinkType)
|
||||
{
|
||||
case Sbm.ConsoleLink.Assoc_Cust_Stats:
|
||||
{
|
||||
using (SbmAccountMgr accountMgr = SbmGlobals.System.CreateAccountMgr(userContext))
|
||||
{
|
||||
SbmAssociation.Params prm = new SbmAssociation.Params();
|
||||
prm.AssociationType = Sbm.AssociationType.Customer;
|
||||
ItemCount = (int)accountMgr.GetAssociationCount(prm);
|
||||
}
|
||||
SbmAssociation.Params prm = new SbmAssociation.Params();
|
||||
prm.AssociationType = Sbm.AssociationType.Customer;
|
||||
ItemCount = (int)internals.AccountMgr.GetAssociationCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Assoc_Supp_Stats:
|
||||
{
|
||||
using (SbmAccountMgr accountMgr = SbmGlobals.System.CreateAccountMgr(userContext))
|
||||
{
|
||||
SbmAssociation.Params prm = new SbmAssociation.Params();
|
||||
prm.AssociationType = Sbm.AssociationType.Supplier;
|
||||
ItemCount = (int)accountMgr.GetAssociationCount(prm);
|
||||
}
|
||||
SbmAssociation.Params prm = new SbmAssociation.Params();
|
||||
prm.AssociationType = Sbm.AssociationType.Supplier;
|
||||
ItemCount = (int)internals.AccountMgr.GetAssociationCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Comm_Stats:
|
||||
{
|
||||
using (SbmCommodityMgr commodityMgr = SbmGlobals.System.CreateCommodityMgr(userContext))
|
||||
{
|
||||
SbmCommodity.Params prm = new SbmCommodity.Params();
|
||||
ItemCount = (int)commodityMgr.GetCommodityCount(prm);
|
||||
}
|
||||
SbmCommodity.Params prm = new SbmCommodity.Params();
|
||||
ItemCount = (int)internals.CommodityMgr.GetCommodityCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesQuotes_Pend_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesQuote;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesQuote;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesQuotes_Open_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesQuote;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Open;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesQuote;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Open;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesOrders_Pend_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesOrder;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesOrder;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesOrders_Open_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesOrder;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Open;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesOrder;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Open;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesDispatches_Pend_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesDispatch;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesDispatch;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Trans_SalesInvoices_Pend_Stats:
|
||||
{
|
||||
using (SbmTransactionMgr transactionMgr = SbmGlobals.System.CreateTransactionMgr(userContext))
|
||||
{
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesInvoice;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)transactionMgr.GetTransactionCount(prm);
|
||||
}
|
||||
SbmTransaction.Params prm = new SbmTransaction.Params();
|
||||
prm.TransactionType = Sbm.TransactionType.SalesInvoice;
|
||||
prm.StatusCat = SbmTransaction.StatusCat.Pending;
|
||||
ItemCount = (int)internals.TransactionMgr.GetTransactionCount(prm);
|
||||
break;
|
||||
}
|
||||
case Sbm.ConsoleLink.Util_Codes_Stats:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Wed 4-Dec-2024 12:38:20
|
||||
// Code generated by Sarand Database Utilities Thu 6-Feb-2025 13:02:19
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
@@ -17,6 +17,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public enum TableIdx
|
||||
{
|
||||
Unknown = 0,
|
||||
AccountRegistration,
|
||||
ItemParam,
|
||||
Owner,
|
||||
Repository,
|
||||
@@ -28,6 +29,27 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public enum ColumnIdx
|
||||
{
|
||||
Unknown = 0,
|
||||
AccountRegistration_Id,
|
||||
AccountRegistration_EmailAddress,
|
||||
AccountRegistration_FirstName,
|
||||
AccountRegistration_LastName,
|
||||
AccountRegistration_PhoneMain,
|
||||
AccountRegistration_PhoneAlt,
|
||||
AccountRegistration_InstanceContext,
|
||||
AccountRegistration_RequestAccountAt,
|
||||
AccountRegistration_RegisterAccountToken,
|
||||
AccountRegistration_RegisterAccountAt,
|
||||
AccountRegistration_AccountPasswordSalt,
|
||||
AccountRegistration_AccountPasswordHash,
|
||||
AccountRegistration_Notes,
|
||||
AccountRegistration_Flags,
|
||||
AccountRegistration_Status,
|
||||
AccountRegistration_CreateOn,
|
||||
AccountRegistration_CreateBy,
|
||||
AccountRegistration_CreateHost,
|
||||
AccountRegistration_UpdateOn,
|
||||
AccountRegistration_UpdateBy,
|
||||
AccountRegistration_UpdateHost,
|
||||
ItemParam_Id,
|
||||
ItemParam_ItemType,
|
||||
ItemParam_ItemId,
|
||||
@@ -104,9 +126,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static readonly int tableCount = 4;
|
||||
private static readonly int columnCount = 72;
|
||||
private static ulong maxTextLen = 0;
|
||||
private static readonly int tableCount = 5;
|
||||
private static readonly int columnCount = 93;
|
||||
public static ulong MaxTextLen { get; private set; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve Table details (eg. name: 'Company').
|
||||
@@ -227,7 +249,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
}
|
||||
public static void SetMaxTextLen (ulong maxTextLen)
|
||||
{
|
||||
SbmDbDfn_Control.maxTextLen = maxTextLen;
|
||||
SbmDbDfn_Control.MaxTextLen = maxTextLen;
|
||||
}
|
||||
public static bool IsColFmtText (ColumnIdx column)
|
||||
{
|
||||
@@ -242,7 +264,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
if (columns[columnIdx].DataType == DbColumnDataType.VarChar)
|
||||
{
|
||||
ulong textLen = columns[columnIdx].DataLen;
|
||||
if (maxTextLen > 0 && textLen > maxTextLen) textLen = maxTextLen;
|
||||
if (MaxTextLen > 0 && textLen > MaxTextLen) textLen = MaxTextLen;
|
||||
return textLen;
|
||||
}
|
||||
return 0;
|
||||
@@ -285,6 +307,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
}
|
||||
private static readonly TableDfn[] tables =
|
||||
{
|
||||
new TableDfn("dbo","AccountRegistration"),
|
||||
new TableDfn("dbo","ItemParam"),
|
||||
new TableDfn("dbo","Owner"),
|
||||
new TableDfn("dbo","Repository"),
|
||||
@@ -314,11 +337,17 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
private static readonly ColumnDfn[] columns =
|
||||
{
|
||||
new ColumnDfn(1,"Id",4,4,true,10),
|
||||
new ColumnDfn(1,"ItemType",3,5,false,5),
|
||||
new ColumnDfn(1,"ItemId",5,-5,false,19),
|
||||
new ColumnDfn(1,"Context",0,-9,false,200),
|
||||
new ColumnDfn(1,"Name",0,-9,false,200),
|
||||
new ColumnDfn(1,"Value",0,-9,false,0),
|
||||
new ColumnDfn(1,"EmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(1,"FirstName",0,-9,false,100),
|
||||
new ColumnDfn(1,"LastName",0,-9,false,100),
|
||||
new ColumnDfn(1,"PhoneMain",0,-9,false,100),
|
||||
new ColumnDfn(1,"PhoneAlt",0,-9,false,100),
|
||||
new ColumnDfn(1,"InstanceContext",0,-9,false,100),
|
||||
new ColumnDfn(1,"RequestAccountAt",9,93,false,23),
|
||||
new ColumnDfn(1,"RegisterAccountToken",10,-11,false,36),
|
||||
new ColumnDfn(1,"RegisterAccountAt",9,93,false,23),
|
||||
new ColumnDfn(1,"AccountPasswordSalt",0,-9,false,100),
|
||||
new ColumnDfn(1,"AccountPasswordHash",0,-9,false,100),
|
||||
new ColumnDfn(1,"Notes",0,-9,false,4000),
|
||||
new ColumnDfn(1,"Flags",3,5,false,5),
|
||||
new ColumnDfn(1,"Status",0,12,false,3),
|
||||
@@ -329,11 +358,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
new ColumnDfn(1,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(1,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(2,"Id",4,4,true,10),
|
||||
new ColumnDfn(2,"ItemType",3,5,false,5),
|
||||
new ColumnDfn(2,"ItemId",5,-5,false,19),
|
||||
new ColumnDfn(2,"Context",0,-9,false,200),
|
||||
new ColumnDfn(2,"Name",0,-9,false,200),
|
||||
new ColumnDfn(2,"ContactName",0,-9,false,200),
|
||||
new ColumnDfn(2,"ContactEmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(2,"ContactPhoneMain",0,-9,false,100),
|
||||
new ColumnDfn(2,"ContactPhoneAlt",0,-9,false,100),
|
||||
new ColumnDfn(2,"Value",0,-9,false,0),
|
||||
new ColumnDfn(2,"Notes",0,-9,false,4000),
|
||||
new ColumnDfn(2,"Flags",3,5,false,5),
|
||||
new ColumnDfn(2,"Status",0,12,false,3),
|
||||
@@ -344,13 +373,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
new ColumnDfn(2,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(2,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(3,"Id",4,4,true,10),
|
||||
new ColumnDfn(3,"OwnerId",4,4,false,10),
|
||||
new ColumnDfn(3,"Context",0,-9,false,100),
|
||||
new ColumnDfn(3,"ServerName",0,-9,false,200),
|
||||
new ColumnDfn(3,"InstanceName",0,-9,false,200),
|
||||
new ColumnDfn(3,"DatabaseName",0,-9,false,200),
|
||||
new ColumnDfn(3,"UserName",0,-9,false,100),
|
||||
new ColumnDfn(3,"Password",0,-9,false,100),
|
||||
new ColumnDfn(3,"Name",0,-9,false,200),
|
||||
new ColumnDfn(3,"ContactName",0,-9,false,200),
|
||||
new ColumnDfn(3,"ContactEmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(3,"ContactPhoneMain",0,-9,false,100),
|
||||
new ColumnDfn(3,"ContactPhoneAlt",0,-9,false,100),
|
||||
new ColumnDfn(3,"Notes",0,-9,false,4000),
|
||||
new ColumnDfn(3,"Flags",3,5,false,5),
|
||||
new ColumnDfn(3,"Status",0,12,false,3),
|
||||
@@ -361,22 +388,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
new ColumnDfn(3,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(3,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(4,"Id",4,4,true,10),
|
||||
new ColumnDfn(4,"EmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(4,"Title",0,-9,false,20),
|
||||
new ColumnDfn(4,"FirstName",0,-9,false,100),
|
||||
new ColumnDfn(4,"Initials",0,-9,false,10),
|
||||
new ColumnDfn(4,"LastName",0,-9,false,100),
|
||||
new ColumnDfn(4,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(4,"PhoneMobile",0,-9,false,50),
|
||||
new ColumnDfn(4,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(4,"PasswordToken",0,12,false,32),
|
||||
new ColumnDfn(4,"PasswordHashed",0,-9,false,100),
|
||||
new ColumnDfn(4,"PasswordHistory",0,-9,false,0),
|
||||
new ColumnDfn(4,"PasswordChangedAt",9,93,false,16),
|
||||
new ColumnDfn(4,"LastLoginAt",9,93,false,16),
|
||||
new ColumnDfn(4,"LastInvalidLoginAt",9,93,false,16),
|
||||
new ColumnDfn(4,"InvalidLoginCount",3,5,false,5),
|
||||
new ColumnDfn(4,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(4,"OwnerId",4,4,false,10),
|
||||
new ColumnDfn(4,"Context",0,-9,false,100),
|
||||
new ColumnDfn(4,"ServerName",0,-9,false,200),
|
||||
new ColumnDfn(4,"InstanceName",0,-9,false,200),
|
||||
new ColumnDfn(4,"DatabaseName",0,-9,false,200),
|
||||
new ColumnDfn(4,"UserName",0,-9,false,100),
|
||||
new ColumnDfn(4,"Password",0,-9,false,100),
|
||||
new ColumnDfn(4,"Notes",0,-9,false,4000),
|
||||
new ColumnDfn(4,"Flags",3,5,false,5),
|
||||
new ColumnDfn(4,"Status",0,12,false,3),
|
||||
new ColumnDfn(4,"CreateOn",9,93,false,23),
|
||||
@@ -385,11 +404,36 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
new ColumnDfn(4,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(4,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(4,"UpdateHost",0,12,false,100),
|
||||
new ColumnDfn(5,"Id",4,4,true,10),
|
||||
new ColumnDfn(5,"EmailAddress",0,-9,false,200),
|
||||
new ColumnDfn(5,"Title",0,-9,false,20),
|
||||
new ColumnDfn(5,"FirstName",0,-9,false,100),
|
||||
new ColumnDfn(5,"Initials",0,-9,false,10),
|
||||
new ColumnDfn(5,"LastName",0,-9,false,100),
|
||||
new ColumnDfn(5,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(5,"PhoneMobile",0,-9,false,50),
|
||||
new ColumnDfn(5,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(5,"PasswordToken",0,12,false,32),
|
||||
new ColumnDfn(5,"PasswordHashed",0,-9,false,100),
|
||||
new ColumnDfn(5,"PasswordHistory",0,-9,false,0),
|
||||
new ColumnDfn(5,"PasswordChangedAt",9,93,false,16),
|
||||
new ColumnDfn(5,"LastLoginAt",9,93,false,16),
|
||||
new ColumnDfn(5,"LastInvalidLoginAt",9,93,false,16),
|
||||
new ColumnDfn(5,"InvalidLoginCount",3,5,false,5),
|
||||
new ColumnDfn(5,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(5,"Flags",3,5,false,5),
|
||||
new ColumnDfn(5,"Status",0,12,false,3),
|
||||
new ColumnDfn(5,"CreateOn",9,93,false,23),
|
||||
new ColumnDfn(5,"CreateBy",4,4,false,10),
|
||||
new ColumnDfn(5,"CreateHost",0,12,false,100),
|
||||
new ColumnDfn(5,"UpdateOn",9,93,false,23),
|
||||
new ColumnDfn(5,"UpdateBy",4,4,false,10),
|
||||
new ColumnDfn(5,"UpdateHost",0,12,false,100),
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Reserved words.
|
||||
private static readonly List<String> reservedWords = new List<String>()
|
||||
private static readonly HashSet<String> reservedWords = new HashSet<String>()
|
||||
{
|
||||
"ADD",
|
||||
"ALL",
|
||||
|
||||
@@ -60,7 +60,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly SbmSystem system = SbmGlobals.System;
|
||||
private SbmAccountsDfn accountsDfn;
|
||||
// Managers.
|
||||
private class Managers
|
||||
{
|
||||
@@ -77,7 +76,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// Consoles.
|
||||
private class Consoles
|
||||
{
|
||||
public SbmInstanceSchemaConsole instanceSchemaConsole;
|
||||
public SbmSessionConsole sessionConsole;
|
||||
public SbmAccountsConsole accountsConsole;
|
||||
public SaDiaryConsole diaryConsole;
|
||||
public SaSecurityConsole securityConsole;
|
||||
public SaCodeTypeConsole codeTypeConsole;
|
||||
@@ -137,6 +138,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
if (taxCodes != null) taxCodes.Values.ToList().ClearAndDispose();
|
||||
if (unitsOfMeasure != null) unitsOfMeasure.Values.ToList().ClearAndDispose();
|
||||
// Consoles.
|
||||
// Database console doesn't require disposal.
|
||||
if (con.sessionConsole != null) con.sessionConsole.Dispose();
|
||||
if (con.diaryConsole != null) con.diaryConsole.Dispose();
|
||||
if (con.securityConsole != null) con.securityConsole.Dispose();
|
||||
@@ -156,12 +158,46 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public SbmApplication Application { get { return SbmGlobals.Application; } }
|
||||
public bool ReadOnly { get; }
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
|
||||
public SbmSessionContext SessionContext { get { return UserContext?.SessionContext; } }
|
||||
public ISbmSecurityProfile_Core SecurityProfile { get { return UserContext.SecurityProfile; } }
|
||||
public SbmAccountsDfn AccountsDfn { get { if (accountsDfn == null) accountsDfn = new SbmAccountsDfn(UserContext); { return accountsDfn; } } }
|
||||
public SbmAccountsConsole AccountsConsole { get { if (con.accountsConsole == null) con.accountsConsole = new SbmAccountsConsole(this); { return con.accountsConsole; } } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Database.
|
||||
public ISacsDatabase BusMgrDatabase { get { return Application.GetBusMgrDatabase(SessionContext); } }
|
||||
public DbUpdateInfo DbUpdateInfo { get { return UserContext.DbUpdateInfo; } }
|
||||
// Schema.
|
||||
public bool TableExists(String tableName)
|
||||
{
|
||||
return BusMgrDatabase.TableExists(tableName);
|
||||
}
|
||||
public bool ColumnExists(String tableName, String columnName)
|
||||
{
|
||||
return BusMgrDatabase.ColumnExists(tableName, columnName);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Database Column lengths - taking into account current database schema for selected columns.
|
||||
// BusMgr tables.
|
||||
public ulong GetColTextLen(SbmDbDfn.ColumnIdx column)
|
||||
{
|
||||
return InstanceSchemaConsole.GetColTextLen(column);
|
||||
}
|
||||
// Security tables.
|
||||
public ulong GetColTextLen(SaSecurityDbDfn.ColumnIdx column)
|
||||
{
|
||||
return InstanceSchemaConsole.GetColTextLen(column);
|
||||
}
|
||||
// Code Type tables.
|
||||
public ulong GetColTextLen(SaCodeTypeDbDfn.ColumnIdx column)
|
||||
{
|
||||
return InstanceSchemaConsole.GetColTextLen(column);
|
||||
}
|
||||
// Item Option tables.
|
||||
public ulong GetColTextLen(SaItemOptionDbDfn.ColumnIdx column)
|
||||
{
|
||||
return InstanceSchemaConsole.GetColTextLen(column);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// System codes.
|
||||
@@ -328,12 +364,19 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Consoles.
|
||||
public SbmInstanceSchemaConsole InstanceSchemaConsole
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.instanceSchemaConsole == null) { con.instanceSchemaConsole = new SbmInstanceSchemaConsole(BusMgrDatabase); }
|
||||
return con.instanceSchemaConsole;
|
||||
}
|
||||
}
|
||||
public SbmSessionConsole SessionConsole
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.sessionConsole == null)
|
||||
con.sessionConsole = SbmGlobals.System.CreateSessionConsole(UserContext);
|
||||
if (con.sessionConsole == null) { con.sessionConsole = SbmGlobals.System.CreateSessionConsole(this); }
|
||||
return con.sessionConsole;
|
||||
}
|
||||
}
|
||||
@@ -341,8 +384,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.diaryConsole == null)
|
||||
con.diaryConsole = SbmGlobals.System.CreateDiaryConsole(UserContext);
|
||||
if (con.diaryConsole == null) { con.diaryConsole = SbmGlobals.System.CreateDiaryConsole(this); }
|
||||
return con.diaryConsole;
|
||||
}
|
||||
}
|
||||
@@ -350,8 +392,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.securityConsole == null)
|
||||
con.securityConsole = SbmGlobals.System.CreateSecurityConsole(UserContext);
|
||||
if (con.securityConsole == null) { con.securityConsole = SbmGlobals.System.CreateSecurityConsole(this); }
|
||||
return con.securityConsole;
|
||||
}
|
||||
}
|
||||
@@ -359,8 +400,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.codeTypeConsole == null)
|
||||
con.codeTypeConsole = SbmGlobals.System.CreateCodeTypeConsole(UserContext);
|
||||
if (con.codeTypeConsole == null) { con.codeTypeConsole = SbmGlobals.System.CreateCodeTypeConsole(this); }
|
||||
return con.codeTypeConsole;
|
||||
}
|
||||
}
|
||||
@@ -368,8 +408,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.referenceDataConsole == null)
|
||||
con.referenceDataConsole = SbmGlobals.System.CreateReferenceDataConsole(UserContext);
|
||||
if (con.referenceDataConsole == null) { con.referenceDataConsole = SbmGlobals.System.CreateReferenceDataConsole(this); }
|
||||
return con.referenceDataConsole;
|
||||
}
|
||||
}
|
||||
@@ -377,8 +416,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.updateLogConsole == null)
|
||||
con.updateLogConsole = SbmGlobals.System.CreateUpdateLogConsole(UserContext);
|
||||
if (con.updateLogConsole == null) { con.updateLogConsole = SbmGlobals.System.CreateUpdateLogConsole(this); }
|
||||
return con.updateLogConsole;
|
||||
}
|
||||
}
|
||||
@@ -386,8 +424,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.interfaceConsole == null)
|
||||
con.interfaceConsole = SbmGlobals.System.CreateInterfaceConsole(UserContext);
|
||||
if (con.interfaceConsole == null) { con.interfaceConsole = SbmGlobals.System.CreateInterfaceConsole(this); }
|
||||
return con.interfaceConsole;
|
||||
}
|
||||
}
|
||||
@@ -395,8 +432,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.itemDocConsole == null)
|
||||
con.itemDocConsole = SbmGlobals.System.CreateItemDocConsole(UserContext);
|
||||
if (con.itemDocConsole == null) { con.itemDocConsole = SbmGlobals.System.CreateItemDocConsole(this); }
|
||||
return con.itemDocConsole;
|
||||
}
|
||||
}
|
||||
@@ -405,7 +441,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
get
|
||||
{
|
||||
if (con.itemOptionConsole == null)
|
||||
con.itemOptionConsole = SbmGlobals.System.CreateItemOptionConsole(UserContext);
|
||||
con.itemOptionConsole = SbmGlobals.System.CreateItemOptionConsole(this);
|
||||
return con.itemOptionConsole;
|
||||
}
|
||||
}
|
||||
@@ -413,8 +449,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.itemDataConsole == null)
|
||||
con.itemDataConsole = SbmGlobals.System.CreateItemDataConsole(UserContext);
|
||||
if (con.itemDataConsole == null) { con.itemDataConsole = SbmGlobals.System.CreateItemDataConsole(this); }
|
||||
return con.itemDataConsole;
|
||||
}
|
||||
}
|
||||
@@ -426,8 +461,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (con.emailConsole == null)
|
||||
con.emailConsole = SbmGlobals.System.CreateEmailConsole(UserContext, EmailConfig);
|
||||
if (con.emailConsole == null) { con.emailConsole = SbmGlobals.System.CreateEmailConsole(EmailConfig); }
|
||||
return con.emailConsole;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,13 +45,22 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
protected readonly List<SbmSysParam> userSysParams = new List<SbmSysParam>();
|
||||
private class DataMembers
|
||||
{
|
||||
public DataMembers(SbmInternals internalsSupplied)
|
||||
{
|
||||
this.InternalsSupplied = internalsSupplied;
|
||||
}
|
||||
public SbmInternals InternalsSupplied { get; }
|
||||
public List<SbmSysParam> UserSysParams { get; } = new List<SbmSysParam>();
|
||||
}
|
||||
private DataMembers mbr { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmSysParamCache(ISbmUserOrganisationContext userContext, SysId affiliateIdUser)
|
||||
public SbmSysParamCache(SbmInternals internals, SysId affiliateIdUser)
|
||||
{
|
||||
this.UserContext = userContext;
|
||||
mbr = new DataMembers(internals);
|
||||
this.AffiliateIdUser = affiliateIdUser;
|
||||
}
|
||||
|
||||
@@ -64,7 +73,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
protected SbmInternals Internals { get { return mbr.InternalsSupplied; } }
|
||||
protected ISbmUserOrganisationContext UserContext { get { return Internals.UserContext; } }
|
||||
protected SbmSessionContext SessionContext { get { return Internals.SessionContext; } }
|
||||
public SysId AffiliateIdUser { get; }
|
||||
public bool Modified { get; private set; }
|
||||
|
||||
@@ -144,7 +155,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
/// <summary>Extract parameter from the cache list.</summary>
|
||||
private SbmSysParam FindParam(String name, SysId affiliateIdTarget = null, SysId associationId = null)
|
||||
{
|
||||
return userSysParams.Find
|
||||
return mbr.UserSysParams.Find
|
||||
(item => item.Category == Sbm.SysParamCategory.UserParam &&
|
||||
item.Name.EqualsCI(name) &&
|
||||
item.AffiliateIdOwner.Equals(AffiliateIdUser) &&
|
||||
@@ -157,27 +168,24 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SbmSysParam sysParam = FindParam(name, affiliateIdTarget, associationId);
|
||||
if (sysParam == null)
|
||||
{
|
||||
using (SbmAccountMgr accountMgr = CreateAccountMgr())
|
||||
// Retrieve a matching parameter from the database.
|
||||
sysParam = Internals.AccountMgr.GetSysParam(Sbm.SysParamCategory.UserParam, name, AffiliateIdUser, affiliateIdTarget, associationId);
|
||||
if (sysParam == null)
|
||||
{
|
||||
// Retrieve a matching parameter from the database.
|
||||
sysParam = accountMgr.GetSysParam(Sbm.SysParamCategory.UserParam, name, AffiliateIdUser, affiliateIdTarget, associationId);
|
||||
if (sysParam == null)
|
||||
{
|
||||
// Parameter not found - create a new one.
|
||||
sysParam = accountMgr.CreateSysParam(Sbm.SysParamCategory.UserParam, name);
|
||||
if (sysParam != null)
|
||||
{
|
||||
sysParam.AffiliateIdOwner = AffiliateIdUser;
|
||||
sysParam.AffiliateIdTarget = affiliateIdTarget;
|
||||
sysParam.AssociationId = associationId;
|
||||
}
|
||||
}
|
||||
// Parameter not found - create a new one.
|
||||
sysParam = Internals.AccountMgr.CreateSysParam(Sbm.SysParamCategory.UserParam, name);
|
||||
if (sysParam != null)
|
||||
{
|
||||
// Store parameter in the cache list.
|
||||
userSysParams.Add(sysParam);
|
||||
sysParam.AffiliateIdOwner = AffiliateIdUser;
|
||||
sysParam.AffiliateIdTarget = affiliateIdTarget;
|
||||
sysParam.AssociationId = associationId;
|
||||
}
|
||||
}
|
||||
if (sysParam != null)
|
||||
{
|
||||
// Store parameter in the cache list.
|
||||
mbr.UserSysParams.Add(sysParam);
|
||||
}
|
||||
}
|
||||
return sysParam;
|
||||
}
|
||||
@@ -187,27 +195,24 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
public bool Store()
|
||||
{
|
||||
bool success = true;
|
||||
using (SbmAccountMgr accountMgr = CreateAccountMgr())
|
||||
foreach (SbmSysParam sysParam in mbr.UserSysParams)
|
||||
{
|
||||
foreach (SbmSysParam sysParam in userSysParams)
|
||||
if (!SysId.IsValid(sysParam.Id))
|
||||
{
|
||||
if (!SysId.IsValid(sysParam.Id))
|
||||
// Parameter doesn't yet have a valid Id - create a new one.
|
||||
if (!Internals.AccountMgr.InsertSysParam(sysParam, UserContext.DbUpdateInfo))
|
||||
{
|
||||
// Parameter doesn't yet have a valid Id - create a new one.
|
||||
if (!accountMgr.InsertSysParam(sysParam, UserContext.DbUpdateInfo))
|
||||
{
|
||||
success = false;
|
||||
SaLogger.Warn($"{SysUtil.Fn} Failed to add parameter - {accountMgr.ErrorStateMessage}");
|
||||
}
|
||||
success = false;
|
||||
SaLogger.Warn($"{SysUtil.Fn} Failed to add parameter - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
// Parameter already has a valid Id - update it.
|
||||
if (!Internals.AccountMgr.UpdateSysParam(sysParam, UserContext.DbUpdateInfo))
|
||||
{
|
||||
// Parameter already has a valid Id - update it.
|
||||
if (!accountMgr.UpdateSysParam(sysParam, UserContext.DbUpdateInfo))
|
||||
{
|
||||
success = false;
|
||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update parameter - {accountMgr.ErrorStateMessage}");
|
||||
}
|
||||
success = false;
|
||||
SaLogger.Warn($"{SysUtil.Fn} Failed to update parameter - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -219,17 +224,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
/// <summary>Clear the params cached for the current user.</summary>
|
||||
public void Clear()
|
||||
{
|
||||
ListUtil.ClearAndDispose(userSysParams);
|
||||
ListUtil.ClearAndDispose(mbr.UserSysParams);
|
||||
Modified = false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data managers.
|
||||
protected SbmAccountMgr CreateAccountMgr()
|
||||
{
|
||||
return SbmGlobals.System.CreateAccountMgr(UserContext);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
@@ -5,6 +5,7 @@ using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
{
|
||||
@@ -35,7 +36,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// Commodity category.
|
||||
SaCodeTypeDfn codeTypeCommodityCategory = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CommodityCategory), codeTypes.GetDescForType(Sbm.ApplCodeType.CommodityCategory), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCommodityCategory);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityCategory.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityCategory));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityCategory.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityCategory));
|
||||
|
||||
// Commodity range.
|
||||
SaCodeTypeDfn codeTypeCommodityRange = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CommodityRange), codeTypes.GetDescForType(Sbm.ApplCodeType.CommodityRange), 12);
|
||||
@@ -66,21 +67,21 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
if (!commodityMaterialLabel.ContainsCI("Commodity")) commodityMaterialLabel = "Commodity " + commodityMaterialLabel;
|
||||
SaCodeTypeDfn codeTypeCommodityMaterial = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CommodityMaterial), commodityMaterialLabel, 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCommodityMaterial);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityMaterial.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityMaterial));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityMaterial.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityMaterial));
|
||||
|
||||
// Commodity finish.
|
||||
String commodityFinishLabel = sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_FinishCode, "Finish");
|
||||
if (!commodityFinishLabel.ContainsCI("Commodity")) commodityFinishLabel = "Commodity " + commodityFinishLabel;
|
||||
SaCodeTypeDfn codeTypeCommodityFinish = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CommodityFinish), commodityFinishLabel, 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCommodityFinish);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityFinish.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityFinish));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityFinish.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityFinish));
|
||||
|
||||
// Commodity promotion.
|
||||
String commodityPromotionLabel = sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "Promotion");
|
||||
if (!commodityPromotionLabel.ContainsCI("Commodity")) commodityPromotionLabel = "Commodity " + commodityPromotionLabel;
|
||||
SaCodeTypeDfn codeTypeCommodityPromotion = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CommodityPromotion), commodityPromotionLabel, 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCommodityPromotion);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityPromotion.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityPromotion));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCommodityPromotion.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CommodityPromotion));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -91,7 +92,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// Process type.
|
||||
SaCodeTypeDfn codeTypeProcessType = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.ProcessType), codeTypes.GetDescForType(Sbm.ApplCodeType.ProcessType), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeProcessType);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeProcessType.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.ProcessType));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeProcessType.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.ProcessType));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -103,7 +104,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SaCodeTypeDfn codeTypeReferType = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.ReferType), codeTypes.GetDescForType(Sbm.ApplCodeType.ReferType), 12);
|
||||
codeTypeReferType.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeReferType);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeReferType.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.ReferType));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeReferType.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.ReferType));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -115,7 +116,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SaCodeTypeDfn codeTypeTaskCategory = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.TaskCategory), codeTypes.GetDescForType(Sbm.ApplCodeType.TaskCategory), 12);
|
||||
codeTypeTaskCategory.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeTaskCategory);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeTaskCategory.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.TaskCategory));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeTaskCategory.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.TaskCategory));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -126,7 +127,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// Asset sell category.
|
||||
SaCodeTypeDfn codeTypeAssetSellCategory = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.AssetSellCategory), codeTypes.GetDescForType(Sbm.ApplCodeType.AssetSellCategory), 8);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeAssetSellCategory);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeAssetSellCategory.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.AssetSellCategory));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeAssetSellCategory.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.AssetSellCategory));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -137,22 +138,22 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// Vehicle category.
|
||||
SaCodeTypeDfn codeTypeVehicleCategory = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.VehicleCategory), codeTypes.GetDescForType(Sbm.ApplCodeType.VehicleCategory), 8);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeVehicleCategory);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleCategory.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleCategory));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleCategory.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleCategory));
|
||||
|
||||
// Vehicle make.
|
||||
SaCodeTypeDfn codeTypeVehicleMake = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.VehicleMake), codeTypes.GetDescForType(Sbm.ApplCodeType.VehicleMake), 8);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeVehicleMake);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleMake.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleMake));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleMake.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleMake));
|
||||
|
||||
// Vehicle service history.
|
||||
SaCodeTypeDfn codeTypeVehicleServiceHistory = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.VehicleServiceHistory), codeTypes.GetDescForType(Sbm.ApplCodeType.VehicleServiceHistory), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeVehicleServiceHistory);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleServiceHistory.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleServiceHistory));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleServiceHistory.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleServiceHistory));
|
||||
|
||||
// Vehicle insurance.
|
||||
SaCodeTypeDfn codeTypeVehicleInsurance = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.VehicleInsurance), codeTypes.GetDescForType(Sbm.ApplCodeType.VehicleInsurance), 3);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeVehicleInsurance);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleInsurance.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleInsurance));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeVehicleInsurance.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.VehicleInsurance));
|
||||
|
||||
// Vehicle tacho.
|
||||
SaCodeTypeDfn codeTypeVehicleTacho = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.VehicleTacho), codeTypes.GetDescForType(Sbm.ApplCodeType.VehicleTacho), 8);
|
||||
@@ -168,27 +169,27 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// HPI vehicle make.
|
||||
SaCodeTypeDfn codeTypeHpiVehicleMake = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.HpiVehicleMake), codeTypes.GetDescForType(Sbm.ApplCodeType.HpiVehicleMake), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeHpiVehicleMake);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleMake.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleMake));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleMake.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleMake));
|
||||
|
||||
// HPI vehicle model.
|
||||
SaCodeTypeDfn codeTypeHpiVehicleModel = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.HpiVehicleModel), codeTypes.GetDescForType(Sbm.ApplCodeType.HpiVehicleModel), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeHpiVehicleModel);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleModel.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleModel));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleModel.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleModel));
|
||||
|
||||
// HPI vehicle colour.
|
||||
SaCodeTypeDfn codeTypeHpiVehicleColour = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.HpiVehicleColour), codeTypes.GetDescForType(Sbm.ApplCodeType.HpiVehicleColour), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeHpiVehicleColour);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleColour.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleColour));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleColour.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleColour));
|
||||
|
||||
// HPI vehicle fuel.
|
||||
SaCodeTypeDfn codeTypeHpiVehicleFuel = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.HpiVehicleFuel), codeTypes.GetDescForType(Sbm.ApplCodeType.HpiVehicleFuel), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeHpiVehicleFuel);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleFuel.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleFuel));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleFuel.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleFuel));
|
||||
|
||||
// HPI vehicle transmission.
|
||||
SaCodeTypeDfn codeTypeHpiVehicleTrans = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.HpiVehicleTrans), codeTypes.GetDescForType(Sbm.ApplCodeType.HpiVehicleTrans), 12);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeHpiVehicleTrans);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleTrans.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleTrans));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeHpiVehicleTrans.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.HpiVehicleTrans));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -221,7 +222,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SaCodeTypeDfn codeTypeContactTitle = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.ContactTitle), contactTitleLabel, 12);
|
||||
codeTypeContactTitle.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeContactTitle);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeContactTitle.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.ContactTitle));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeContactTitle.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.ContactTitle));
|
||||
|
||||
// Contact area.
|
||||
String contactAreaLabel = sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area");
|
||||
@@ -264,14 +265,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
codeTypeCostPerUnit.FlagDefinitions.Add(new FlagDfn(4, "Flag 4", "#4"));
|
||||
#endif
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCostPerUnit);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCostPerUnit.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CostPerUnit));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCostPerUnit.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CostPerUnit));
|
||||
|
||||
// Cost per job.
|
||||
SaCodeTypeDfn codeTypeCostPerJob = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.CostPerJob), codeTypes.GetDescForType(Sbm.ApplCodeType.CostPerJob), 12);
|
||||
codeTypeCostPerJob.AllowSequence = true;
|
||||
codeTypeCostPerJob.FlagDefinitions.Add(estimateDefaultFlag);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeCostPerJob);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCostPerJob.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.CostPerJob));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeCostPerJob.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.CostPerJob));
|
||||
}
|
||||
|
||||
if (sessionConsole != null && sessionConsole.AllowOption(Sbm.ConfigOption.EstimateLabourByMinutes))
|
||||
@@ -281,14 +282,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
codeTypeLabourPerUnit.AllowSequence = true;
|
||||
codeTypeLabourPerUnit.FlagDefinitions.Add(estimateDefaultFlag);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeLabourPerUnit);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeLabourPerUnit.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.LabourPerUnit));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeLabourPerUnit.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.LabourPerUnit));
|
||||
|
||||
// Labour cost per job.
|
||||
SaCodeTypeDfn codeTypeLabourPerJob = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.LabourPerJob), codeTypes.GetDescForType(Sbm.ApplCodeType.LabourPerJob), 12);
|
||||
codeTypeLabourPerJob.AllowSequence = true;
|
||||
codeTypeLabourPerJob.FlagDefinitions.Add(estimateDefaultFlag);
|
||||
codeTypeConsole.RegisterCodeType(codeTypeLabourPerJob);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeLabourPerJob.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.LabourPerJob));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeLabourPerJob.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.LabourPerJob));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -300,25 +301,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SaCodeTypeDfn codeTypeDeliveryStatus = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DeliveryStatus), codeTypes.GetDescForType(Sbm.ApplCodeType.DeliveryStatus), 3);
|
||||
codeTypeDeliveryStatus.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDeliveryStatus);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryStatus.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryStatus));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryStatus.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryStatus));
|
||||
|
||||
// Delivery type.
|
||||
SaCodeTypeDfn codeTypeDeliveryType = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DeliveryType), codeTypes.GetDescForType(Sbm.ApplCodeType.DeliveryType), 12);
|
||||
codeTypeDeliveryType.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDeliveryType);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryType.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryType));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryType.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryType));
|
||||
|
||||
// Delivery method.
|
||||
SaCodeTypeDfn codeTypeDeliveryMethod = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DeliveryMethod), codeTypes.GetDescForType(Sbm.ApplCodeType.DeliveryMethod), 12);
|
||||
codeTypeDeliveryMethod.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDeliveryMethod);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryMethod.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryMethod));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryMethod.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryMethod));
|
||||
|
||||
// Delivery courier.
|
||||
SaCodeTypeDfn codeTypeDeliveryCourier = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DeliveryCourier), codeTypes.GetDescForType(Sbm.ApplCodeType.DeliveryCourier), 12);
|
||||
codeTypeDeliveryCourier.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDeliveryCourier);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryCourier.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryCourier));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDeliveryCourier.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DeliveryCourier));
|
||||
|
||||
// Delivery book-in.
|
||||
SaCodeTypeDfn codeTypeDeliveryBookIn = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DeliveryBookIn), codeTypes.GetDescForType(Sbm.ApplCodeType.DeliveryBookIn), 12);
|
||||
@@ -336,7 +337,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
SaCodeTypeDfn codeTypeStockPicker = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.StockPicker), codeTypes.GetDescForType(Sbm.ApplCodeType.StockPicker), 12);
|
||||
codeTypeStockPicker.AllowSequence = true;
|
||||
codeTypeConsole.RegisterCodeType(codeTypeStockPicker);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeStockPicker.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.StockPicker));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeStockPicker.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.StockPicker));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -350,7 +351,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
codeTypeDocType_Pdf.AllowMixedCode = true;
|
||||
codeTypeDocType_Pdf.FlagDefinitions.Add(new FlagDfn((Byte)Sbm.ApplCodeFlag.DocType_Pdf_WebPublish, "WebPublish", "Publish to Web"));
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDocType_Pdf);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDocType_Pdf.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DocType_Pdf));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDocType_Pdf.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DocType_Pdf));
|
||||
|
||||
// Image document types.
|
||||
SaCodeTypeDfn codeTypeDocType_Image = new SaCodeTypeDfn(codeTypes.GetCodeForType(Sbm.ApplCodeType.DocType_Image), codeTypes.GetDescForType(Sbm.ApplCodeType.DocType_Image), 12);
|
||||
@@ -358,12 +359,126 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
codeTypeDocType_Image.AllowMixedCode = true;
|
||||
codeTypeDocType_Image.FlagDefinitions.Add(new FlagDfn((Byte)Sbm.ApplCodeFlag.DocType_Image_WebPublish, "WebPublish", "Publish to Web"));
|
||||
codeTypeConsole.RegisterCodeType(codeTypeDocType_Image);
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDocType_Image.Code, sessionConsole.GetDefaultCodesOfType(Sbm.ApplCodeType.DocType_Image));
|
||||
codeTypeConsole.RegisterCodesOfType(codeTypeDocType_Image.Code, GetDefaultCodesOfType(Sbm.ApplCodeType.DocType_Image));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o d e T y p e s
|
||||
//-------------------------------------------------------------------
|
||||
// Application Code Types.
|
||||
public static List<CodeDesc> GetDefaultCodesOfType(Sbm.ApplCodeType type)
|
||||
{
|
||||
List<CodeDesc> codes = new List<CodeDesc>();
|
||||
switch (type)
|
||||
{
|
||||
case Sbm.ApplCodeType.ContactTitle:
|
||||
codes.Add("Mr", "Mr");
|
||||
codes.Add("Mrs", "Mrs");
|
||||
codes.Add("Ms", "Ms");
|
||||
codes.Add("Miss", "Miss");
|
||||
codes.Add("Mx", "Mx");
|
||||
codes.Add("Dr", "Dr");
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleCategory:
|
||||
/*
|
||||
codes.Add("10", "Mini");
|
||||
codes.Add("11", "Economy");
|
||||
codes.Add("12", "Compact");
|
||||
codes.Add("20", "Hatchback");
|
||||
codes.Add("21", "Saloon");
|
||||
codes.Add("22", "Estate");
|
||||
codes.Add("30", "Executive");
|
||||
codes.Add("50", "Intermediate");
|
||||
codes.Add("51", "Standard");
|
||||
codes.Add("52", "Full Size");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleMake:
|
||||
/*
|
||||
codes.Add("ACUR", "Acura");
|
||||
codes.Add("ALFA", "Alfa Romeo");
|
||||
codes.Add("ASTO", "Aston Martin");
|
||||
codes.Add("AUDI", "Audi");
|
||||
codes.Add("BMW", "BMW");
|
||||
codes.Add("BENT", "Bentley");
|
||||
codes.Add("BUIC", "Buick");
|
||||
codes.Add("CADI", "Cadillac");
|
||||
codes.Add("CATE", "Caterham");
|
||||
codes.Add("CHEV", "Chevrolet");
|
||||
codes.Add("CHRY", "Chrysler");
|
||||
codes.Add("CITR", "Citroen");
|
||||
codes.Add("DAEW", "Daewoo");
|
||||
codes.Add("DAF", "DAF");
|
||||
codes.Add("DAIH", "Daihatsu");
|
||||
codes.Add("DODG", "Dodge");
|
||||
codes.Add("FERR", "Ferrari");
|
||||
codes.Add("FIAT", "Fiat");
|
||||
codes.Add("FORD", "Ford");
|
||||
codes.Add("GENE", "General Motors");
|
||||
codes.Add("GEO", "Geo");
|
||||
codes.Add("GIBB", "Gibbs");
|
||||
codes.Add("HOND", "Honda");
|
||||
codes.Add("HYUN", "Hyundai");
|
||||
codes.Add("INFI", "Infiniti");
|
||||
codes.Add("ISUZ", "Isuzu");
|
||||
codes.Add("JAGU", "Jaguar");
|
||||
codes.Add("JEEP", "Jeep");
|
||||
codes.Add("JENS", "Jensen");
|
||||
codes.Add("KIA", "Kia");
|
||||
codes.Add("LDV", "LDV");
|
||||
codes.Add("LAND", "Land Rover");
|
||||
codes.Add("LEXU", "Lexus");
|
||||
codes.Add("LINC", "Lincoln");
|
||||
codes.Add("LOTU", "Lotus");
|
||||
codes.Add("MG R", "MG Rover");
|
||||
codes.Add("MAZD", "Mazda");
|
||||
codes.Add("MERB", "Mercedes");
|
||||
codes.Add("MERC", "Mercury");
|
||||
codes.Add("MINI", "Mini");
|
||||
codes.Add("MITS", "Mitsubishi");
|
||||
codes.Add("MORG", "Morgan");
|
||||
codes.Add("NISS", "Nissan");
|
||||
codes.Add("OLDS", "Oldsmobile");
|
||||
codes.Add("OPEL", "Opel");
|
||||
codes.Add("PEUG", "Peugeot");
|
||||
codes.Add("PLYM", "Plymouth");
|
||||
codes.Add("PONT", "Pontiac");
|
||||
codes.Add("PORS", "Porsche");
|
||||
codes.Add("RENA", "Renault");
|
||||
codes.Add("ROLL", "Rolls Royce");
|
||||
codes.Add("ROVE", "Rover");
|
||||
codes.Add("SAAB", "Saab");
|
||||
codes.Add("SATU", "Saturn");
|
||||
codes.Add("SEAT", "Seat");
|
||||
codes.Add("SKOD", "Skoda");
|
||||
codes.Add("SMAR", "Smart");
|
||||
codes.Add("SMIT", "Smith Electric Vehicles");
|
||||
codes.Add("SSAN", "SsangYong (Syuk Cars)");
|
||||
codes.Add("SUBA", "Subaru");
|
||||
codes.Add("SUZU", "Suzuki");
|
||||
codes.Add("TVR", "TVR");
|
||||
codes.Add("TATA", "Tata");
|
||||
codes.Add("TOYO", "Toyota");
|
||||
codes.Add("VAUX", "Vauxhall");
|
||||
codes.Add("VOLK", "Volkswagen");
|
||||
codes.Add("VOLV", "Volvo");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleServiceHistory:
|
||||
/*
|
||||
codes.Add("FMDSH", "Full main dealer service history");
|
||||
codes.Add("FSH", "Full service history");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleInsurance:
|
||||
break;
|
||||
}
|
||||
return codes;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
|
||||
@@ -99,21 +99,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
// D a t a M a n a g e r s
|
||||
//-------------------------------------------------------------------
|
||||
public abstract SbmAccountMgr CreateAccountMgr(SbmInternals internals);
|
||||
public abstract SbmAccountMgr CreateAccountMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmAssetMgr CreateAssetMgr(SbmInternals internals);
|
||||
public abstract SbmAssetMgr CreateAssetMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmCommodityMgr CreateCommodityMgr(SbmInternals internals);
|
||||
public abstract SbmCommodityMgr CreateCommodityMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmPriceMgr CreatePriceMgr(SbmInternals internals);
|
||||
public abstract SbmPriceMgr CreatePriceMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmDataItemMgr CreateDataItemMgr(SbmInternals internals);
|
||||
public abstract SbmDataItemMgr CreateDataItemMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmProcessMgr CreateProcessMgr(SbmInternals internals);
|
||||
public abstract SbmProcessMgr CreateProcessMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmStockMgr CreateStockMgr(SbmInternals internals);
|
||||
public abstract SbmStockMgr CreateStockMgr(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmTransactionMgr CreateTransactionMgr(SbmInternals internals);
|
||||
public abstract SbmTransactionMgr CreateTransactionMgr(ISbmUserOrganisationContext userContext);
|
||||
// Control.
|
||||
public abstract SbmcAccountMgr CreateControlAccountMgr();
|
||||
public abstract SbmcInstanceMgr CreateControlInstanceMgr();
|
||||
@@ -121,17 +113,17 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Consoles.
|
||||
public abstract SbmSessionConsole CreateSessionConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaDiaryConsole CreateDiaryConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaSecurityConsole CreateSecurityConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaCodeTypeConsole CreateCodeTypeConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaReferenceDataConsole CreateReferenceDataConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaItemDataConsole CreateItemDataConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaItemDocConsole CreateItemDocConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaItemOptionConsole CreateItemOptionConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaInterfaceConsole CreateInterfaceConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SaUpdateLogConsole CreateUpdateLogConsole(ISbmUserOrganisationContext userContext);
|
||||
public abstract SbmEmailConsole CreateEmailConsole(ISbmUserOrganisationContext userContext, SbmEmailConfig emailConfig);
|
||||
public abstract SbmSessionConsole CreateSessionConsole(SbmInternals internals);
|
||||
public abstract SaDiaryConsole CreateDiaryConsole(SbmInternals internals);
|
||||
public abstract SaSecurityConsole CreateSecurityConsole(SbmInternals internals);
|
||||
public abstract SaCodeTypeConsole CreateCodeTypeConsole(SbmInternals internals);
|
||||
public abstract SaReferenceDataConsole CreateReferenceDataConsole(SbmInternals internals);
|
||||
public abstract SaItemDataConsole CreateItemDataConsole(SbmInternals internals);
|
||||
public abstract SaItemDocConsole CreateItemDocConsole(SbmInternals internals);
|
||||
public abstract SaItemOptionConsole CreateItemOptionConsole(SbmInternals internals);
|
||||
public abstract SaInterfaceConsole CreateInterfaceConsole(SbmInternals internals);
|
||||
public abstract SaUpdateLogConsole CreateUpdateLogConsole(SbmInternals internals);
|
||||
public abstract SbmEmailConsole CreateEmailConsole(SbmEmailConfig emailConfig);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// A p p l i c a t i o n P r o p e r t i e s
|
||||
|
||||
@@ -0,0 +1,359 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmcAccountRegistration : SbmcHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Hidden,
|
||||
Pos,
|
||||
// Account Registration.
|
||||
Id,
|
||||
EmailAddress,
|
||||
DisplayName,
|
||||
FirstName,
|
||||
LastName,
|
||||
PhoneMain,
|
||||
PhoneAlt,
|
||||
InstanceContext,
|
||||
RequestAccountAt,
|
||||
RegisterAccountToken,
|
||||
RegisterAccountAt,
|
||||
// Common.
|
||||
Notes,
|
||||
Flag,
|
||||
Status,
|
||||
Status_Ind,
|
||||
Status_Desc,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
public String EmailAddress { get; set; } = "";
|
||||
public String FirstName { get; set; } = "";
|
||||
public String LastName { get; set; } = "";
|
||||
public String PhoneMain { get; set; } = "";
|
||||
public String PhoneAlt { get; set; } = "";
|
||||
public String InstanceContext { get; set; } = "";
|
||||
public DateTime RequestAccountAt { get; set; }
|
||||
public Guid RegisterAccountToken { get; set; }
|
||||
public DateTime? RegisterAccountAt { get; set; }
|
||||
public String AccountPasswordSalt { get; set; } = "";
|
||||
public String AccountPasswordHash { get; set; } = "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
//Status = SbmAccountMgr.AffiliateStatusDefault;
|
||||
}
|
||||
public String EmailAddress
|
||||
{
|
||||
get { return data.EmailAddress; }
|
||||
set { CheckChanged(data.EmailAddress, value); data.EmailAddress = value; }
|
||||
}
|
||||
public String FirstName
|
||||
{
|
||||
get { return data.FirstName; }
|
||||
set { CheckChanged(data.FirstName, value); data.FirstName = value; }
|
||||
}
|
||||
public String LastName
|
||||
{
|
||||
get { return data.LastName; }
|
||||
set { CheckChanged(data.LastName, value); data.LastName = value; }
|
||||
}
|
||||
public String PhoneMain
|
||||
{
|
||||
get { return data.PhoneMain; }
|
||||
set { CheckChanged(data.PhoneMain, value); data.PhoneMain = value; }
|
||||
}
|
||||
public String PhoneAlt
|
||||
{
|
||||
get { return data.PhoneAlt; }
|
||||
set { CheckChanged(data.PhoneAlt, value); data.PhoneAlt = value; }
|
||||
}
|
||||
public String InstanceContext
|
||||
{
|
||||
get { return data.InstanceContext; }
|
||||
set { CheckChanged(data.InstanceContext, value); data.InstanceContext = value; }
|
||||
}
|
||||
public DateTime RequestAccountAt
|
||||
{
|
||||
get { return data.RequestAccountAt; }
|
||||
set { CheckChanged(data.RequestAccountAt, value); data.RequestAccountAt = value; }
|
||||
}
|
||||
public Guid RegisterAccountToken
|
||||
{
|
||||
get { return data.RegisterAccountToken; }
|
||||
set { CheckChanged(data.RegisterAccountToken, value); data.RegisterAccountToken = value; }
|
||||
}
|
||||
public DateTime? RegisterAccountAt
|
||||
{
|
||||
get { return data.RegisterAccountAt; }
|
||||
set { CheckChangedNullable(data.RegisterAccountAt, value); data.RegisterAccountAt = value; }
|
||||
}
|
||||
public String AccountPasswordSalt
|
||||
{
|
||||
get { return data.AccountPasswordSalt; }
|
||||
set { CheckChanged(data.AccountPasswordSalt, value); data.AccountPasswordSalt = value; }
|
||||
}
|
||||
public String AccountPasswordHash
|
||||
{
|
||||
get { return data.AccountPasswordHash; }
|
||||
set { CheckChanged(data.AccountPasswordHash, value); data.AccountPasswordHash = value; }
|
||||
}
|
||||
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
EmailAddress = data.EmailAddress;
|
||||
LastName = data.LastName;
|
||||
FirstName = data.FirstName;
|
||||
PhoneMain = data.PhoneMain;
|
||||
PhoneAlt = data.PhoneAlt;
|
||||
InstanceContext = data.InstanceContext;
|
||||
RequestAccountAt = data.RequestAccountAt;
|
||||
RegisterAccountToken = data.RegisterAccountToken;
|
||||
RegisterAccountAt = data.RegisterAccountAt;
|
||||
AccountPasswordSalt = data.AccountPasswordSalt;
|
||||
AccountPasswordHash = data.AccountPasswordHash;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue EmailAddress { get; set; } = ValidValue.Valid;
|
||||
public ValidValue FirstName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue LastName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneAlt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue InstanceContext { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RequestAccountAt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegisterAccountToken { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegisterAccountAt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue AccountPasswordSalt { get; set; } = ValidValue.Valid;
|
||||
public ValidValue AccountPasswordHash { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
public static readonly Byte Flag_KeepPreviousPassword = 0x01;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcAccountRegistration(SysId id, String emailAddress, Guid registerAccountToken) : base(id)
|
||||
{
|
||||
base.SetData(data);
|
||||
this.EmailAddress = emailAddress;
|
||||
this.RegisterAccountToken = registerAccountToken;
|
||||
this.RequestAccountAt = DateTime.Now;
|
||||
this.Status = DefaultStatus;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Affiliate status.
|
||||
private static readonly List<SaStatus> accountRegistrationStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Awaiting,
|
||||
SaStatus.Completed,
|
||||
SaStatus.Cancelled,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Awaiting; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(accountRegistrationStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case SaStatus.Active:
|
||||
case SaStatus.Completed:
|
||||
return DataValue.TriStateType.Green;
|
||||
case SaStatus.Inactive:
|
||||
case SaStatus.Cancelled:
|
||||
return DataValue.TriStateType.Red;
|
||||
case SaStatus.Deleted:
|
||||
return DataValue.TriStateType.Purple;
|
||||
}
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
||||
if (!StringUtil.IsEmpty(EmailAddress) && !EmailAddress.EqualsCI(data.EmailAddress))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Email address cannot be changed");
|
||||
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
public String EmailAddress
|
||||
{
|
||||
get { return data.EmailAddress; }
|
||||
protected set { data.EmailAddress = value; }
|
||||
}
|
||||
|
||||
// Name.
|
||||
|
||||
public String FirstName
|
||||
{
|
||||
get { return data.FirstName; }
|
||||
set { data.FirstName = value; }
|
||||
}
|
||||
public String LastName
|
||||
{
|
||||
get { return data.LastName; }
|
||||
set { data.LastName = value; }
|
||||
}
|
||||
|
||||
public static String GetDisplayName(String firstName, String lastName)
|
||||
{
|
||||
// <LastName>, <FirstName>.
|
||||
List<String> Names = new List<string>();
|
||||
Names.Add(lastName);
|
||||
Names.Add(firstName);
|
||||
Names.RemoveBlanks();
|
||||
return Names.Concat(", ");
|
||||
}
|
||||
public String GetDisplayName()
|
||||
{
|
||||
return GetDisplayName(FirstName, LastName);
|
||||
}
|
||||
|
||||
// Phone numbers.
|
||||
|
||||
public String PhoneMain
|
||||
{
|
||||
get { return data.PhoneMain; }
|
||||
set { data.PhoneMain = value; }
|
||||
}
|
||||
public String PhoneAlt
|
||||
{
|
||||
get { return data.PhoneAlt; }
|
||||
set { data.PhoneAlt = value; }
|
||||
}
|
||||
|
||||
// Registration.
|
||||
|
||||
public String InstanceContext
|
||||
{
|
||||
get { return data.InstanceContext; }
|
||||
set { data.InstanceContext = value; }
|
||||
}
|
||||
public DateTime RequestAccountAt
|
||||
{
|
||||
get { return data.RequestAccountAt; }
|
||||
set { data.RequestAccountAt = value; }
|
||||
}
|
||||
public Guid RegisterAccountToken
|
||||
{
|
||||
get { return data.RegisterAccountToken; }
|
||||
protected set { data.RegisterAccountToken = value; }
|
||||
}
|
||||
public DateTime? RegisterAccountAt
|
||||
{
|
||||
get { return data.RegisterAccountAt; }
|
||||
set { data.RegisterAccountAt = value; }
|
||||
}
|
||||
|
||||
// Security.
|
||||
|
||||
public String AccountPasswordSalt
|
||||
{
|
||||
get { return data.AccountPasswordSalt; }
|
||||
set { data.AccountPasswordSalt = value; }
|
||||
}
|
||||
public String AccountPasswordHash
|
||||
{
|
||||
get { return data.AccountPasswordHash; }
|
||||
set { data.AccountPasswordHash = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags.
|
||||
public bool KeepPreviousPassword
|
||||
{
|
||||
get { return GetFlag(Flag_KeepPreviousPassword); }
|
||||
set { SetFlag(Flag_KeepPreviousPassword, value); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// List parameters.
|
||||
|
||||
/// <summary> Status filter options.</summary>
|
||||
public enum StatusCat
|
||||
{
|
||||
Any,
|
||||
AwaitingOnly,
|
||||
CompletedOnly,
|
||||
CancelledOnly,
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a list of items.</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
||||
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Generic search value - email, name, phone etc.</summary>
|
||||
public String Search { get; set; }
|
||||
public String EmailAddress { get; set; }
|
||||
public Guid RegisterAccountToken { get; set; }
|
||||
public String NotesPartial { get; set; }
|
||||
/// <summary>Contact status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
// Item list.
|
||||
public static class SbmcAccountRegistrationList
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -9,229 +9,229 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmcOwner : SbmcHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Hidden,
|
||||
Pos,
|
||||
// Owner.
|
||||
Id,
|
||||
Name,
|
||||
ContactName,
|
||||
ContactEmailAddress,
|
||||
ContactPhoneMain,
|
||||
ContactPhoneAlt,
|
||||
// Repositories.
|
||||
RepositoryCount,
|
||||
// Common.
|
||||
Notes,
|
||||
Flag,
|
||||
Status,
|
||||
Status_Ind,
|
||||
Status_Desc,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
//=======================================================================
|
||||
public class SbmcOwner : SbmcHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Hidden,
|
||||
Pos,
|
||||
// Owner.
|
||||
Id,
|
||||
Name,
|
||||
ContactName,
|
||||
ContactEmailAddress,
|
||||
ContactPhoneMain,
|
||||
ContactPhoneAlt,
|
||||
// Repositories.
|
||||
RepositoryCount,
|
||||
// Common.
|
||||
Notes,
|
||||
Flag,
|
||||
Status,
|
||||
Status_Ind,
|
||||
Status_Desc,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
public String Name { get; set; } = "";
|
||||
public String ContactName { get; set; } = "";
|
||||
public String ContactEmailAddress { get; set; } = "";
|
||||
public String ContactPhoneMain { get; set; } = "";
|
||||
public String ContactPhoneAlt { get; set; } = "";
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
public String Name { get; set; } = "";
|
||||
public String ContactName { get; set; } = "";
|
||||
public String ContactEmailAddress { get; set; } = "";
|
||||
public String ContactPhoneMain { get; set; } = "";
|
||||
public String ContactPhoneAlt { get; set; } = "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
Status = SbmcOwner.DefaultStatus;
|
||||
}
|
||||
public String Name
|
||||
{
|
||||
get { return data.Name; }
|
||||
set { CheckChanged(data.Name, value); data.Name = value; }
|
||||
}
|
||||
public String ContactName
|
||||
{
|
||||
get { return data.ContactName; }
|
||||
set { CheckChanged(data.ContactName, value); data.ContactName = value; }
|
||||
}
|
||||
public String ContactEmailAddress
|
||||
{
|
||||
get { return data.ContactEmailAddress; }
|
||||
set { CheckChanged(data.ContactEmailAddress, value); data.ContactEmailAddress = value; }
|
||||
}
|
||||
public String ContactPhoneMain
|
||||
{
|
||||
get { return data.ContactPhoneMain; }
|
||||
set { CheckChanged(data.ContactPhoneMain, value); data.ContactPhoneMain = value; }
|
||||
}
|
||||
public String ContactPhoneAlt
|
||||
{
|
||||
get { return data.ContactPhoneAlt; }
|
||||
set { CheckChanged(data.ContactPhoneAlt, value); data.ContactPhoneAlt = value; }
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
Status = SbmcOwner.DefaultStatus;
|
||||
}
|
||||
public String Name
|
||||
{
|
||||
get { return data.Name; }
|
||||
set { CheckChanged(data.Name, value); data.Name = value; }
|
||||
}
|
||||
public String ContactName
|
||||
{
|
||||
get { return data.ContactName; }
|
||||
set { CheckChanged(data.ContactName, value); data.ContactName = value; }
|
||||
}
|
||||
public String ContactEmailAddress
|
||||
{
|
||||
get { return data.ContactEmailAddress; }
|
||||
set { CheckChanged(data.ContactEmailAddress, value); data.ContactEmailAddress = value; }
|
||||
}
|
||||
public String ContactPhoneMain
|
||||
{
|
||||
get { return data.ContactPhoneMain; }
|
||||
set { CheckChanged(data.ContactPhoneMain, value); data.ContactPhoneMain = value; }
|
||||
}
|
||||
public String ContactPhoneAlt
|
||||
{
|
||||
get { return data.ContactPhoneAlt; }
|
||||
set { CheckChanged(data.ContactPhoneAlt, value); data.ContactPhoneAlt = value; }
|
||||
}
|
||||
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
Name = data.Name;
|
||||
ContactName = data.ContactName;
|
||||
ContactEmailAddress = data.ContactEmailAddress;
|
||||
ContactPhoneMain = data.ContactPhoneMain;
|
||||
ContactPhoneAlt = data.ContactPhoneAlt;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue Name { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactEmailAddress { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactPhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactPhoneAlt { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
Name = data.Name;
|
||||
ContactName = data.ContactName;
|
||||
ContactEmailAddress = data.ContactEmailAddress;
|
||||
ContactPhoneMain = data.ContactPhoneMain;
|
||||
ContactPhoneAlt = data.ContactPhoneAlt;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue Name { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactEmailAddress { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactPhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ContactPhoneAlt { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcOwner(SysId id) : base(id)
|
||||
{
|
||||
base.SetData(data);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcOwner(SysId id) : base(id)
|
||||
{
|
||||
base.SetData(data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Owner status.
|
||||
private static readonly List<SaStatus> ownerStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
SaStatus.OnHold,
|
||||
SaStatus.Inactive,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(ownerStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case SaStatus.Active:
|
||||
return DataValue.TriStateType.Green;
|
||||
case SaStatus.OnHold:
|
||||
return DataValue.TriStateType.Amber;
|
||||
case SaStatus.Inactive:
|
||||
return DataValue.TriStateType.Red;
|
||||
case SaStatus.Deleted:
|
||||
return DataValue.TriStateType.Purple;
|
||||
}
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Owner status.
|
||||
private static readonly List<SaStatus> ownerStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
SaStatus.OnHold,
|
||||
SaStatus.Inactive,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(ownerStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case SaStatus.Active:
|
||||
return DataValue.TriStateType.Green;
|
||||
case SaStatus.OnHold:
|
||||
return DataValue.TriStateType.Amber;
|
||||
case SaStatus.Inactive:
|
||||
return DataValue.TriStateType.Red;
|
||||
case SaStatus.Deleted:
|
||||
return DataValue.TriStateType.Purple;
|
||||
}
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
||||
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
||||
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
// Owner.
|
||||
// Owner.
|
||||
|
||||
public String Name
|
||||
{
|
||||
get { return data.Name; }
|
||||
set { data.Name = value; }
|
||||
}
|
||||
public String ContactName
|
||||
{
|
||||
get { return data.ContactName; }
|
||||
set { data.ContactName = value; }
|
||||
}
|
||||
public String ContactEmailAddress
|
||||
{
|
||||
get { return data.ContactEmailAddress; }
|
||||
set { data.ContactEmailAddress = value; }
|
||||
}
|
||||
public String ContactPhoneMain
|
||||
{
|
||||
get { return data.ContactPhoneMain; }
|
||||
set { data.ContactPhoneMain = value; }
|
||||
}
|
||||
public String ContactPhoneAlt
|
||||
{
|
||||
get { return data.ContactPhoneAlt; }
|
||||
set { data.ContactPhoneAlt = value; }
|
||||
}
|
||||
public String Name
|
||||
{
|
||||
get { return data.Name; }
|
||||
set { data.Name = value; }
|
||||
}
|
||||
public String ContactName
|
||||
{
|
||||
get { return data.ContactName; }
|
||||
set { data.ContactName = value; }
|
||||
}
|
||||
public String ContactEmailAddress
|
||||
{
|
||||
get { return data.ContactEmailAddress; }
|
||||
set { data.ContactEmailAddress = value; }
|
||||
}
|
||||
public String ContactPhoneMain
|
||||
{
|
||||
get { return data.ContactPhoneMain; }
|
||||
set { data.ContactPhoneMain = value; }
|
||||
}
|
||||
public String ContactPhoneAlt
|
||||
{
|
||||
get { return data.ContactPhoneAlt; }
|
||||
set { data.ContactPhoneAlt = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags.
|
||||
//-------------------------------------------------------------------
|
||||
// Flags.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// List parameters.
|
||||
//-------------------------------------------------------------------
|
||||
// List parameters.
|
||||
|
||||
/// <summary> Status filter options.</summary>
|
||||
public enum StatusCat
|
||||
{
|
||||
Any,
|
||||
ActiveOnly,
|
||||
/// <summary> Status filter options.</summary>
|
||||
public enum StatusCat
|
||||
{
|
||||
Any,
|
||||
ActiveOnly,
|
||||
OnHoldOnly,
|
||||
InactiveOnly,
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a list of items.</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
||||
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a list of items.</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
||||
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Generic search value - name, contact, email, phone etc.</summary>
|
||||
public String Search { get; set; }
|
||||
public String NotesPartial { get; set; }
|
||||
/// <summary>Contact status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
// Item list.
|
||||
public static class SbmcOwnerList
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
public String NotesPartial { get; set; }
|
||||
/// <summary>Contact status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
// Item list.
|
||||
public static class SbmcOwnerList
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -9,63 +9,63 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
{
|
||||
//=======================================================================
|
||||
public class SbmcRepository : SbmcHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Hidden,
|
||||
Pos,
|
||||
// Repository.
|
||||
Id,
|
||||
Context,
|
||||
ServerName,
|
||||
InstanceName,
|
||||
DatabaseName,
|
||||
UserName,
|
||||
// Owner.
|
||||
OwnerId,
|
||||
OwnerName,
|
||||
ContactName,
|
||||
ContactEmailAddress,
|
||||
ContactPhoneMain,
|
||||
ContactPhoneAlt,
|
||||
// Common properties.
|
||||
Notes,
|
||||
Flag,
|
||||
Status,
|
||||
Status_Ind,
|
||||
Status_Desc,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
//=======================================================================
|
||||
public class SbmcRepository : SbmcHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Columns.
|
||||
public enum Column
|
||||
{
|
||||
Hidden,
|
||||
Pos,
|
||||
// Repository.
|
||||
Id,
|
||||
Context,
|
||||
ServerName,
|
||||
InstanceName,
|
||||
DatabaseName,
|
||||
UserName,
|
||||
// Owner.
|
||||
OwnerId,
|
||||
OwnerName,
|
||||
ContactName,
|
||||
ContactEmailAddress,
|
||||
ContactPhoneMain,
|
||||
ContactPhoneAlt,
|
||||
// Common properties.
|
||||
Notes,
|
||||
Flag,
|
||||
Status,
|
||||
Status_Ind,
|
||||
Status_Desc,
|
||||
CreateOn_Date,
|
||||
UpdateOn_Date,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Properties other than common.</summary>
|
||||
public class DataProperties
|
||||
{
|
||||
public SysId OwnerId { get; set; }
|
||||
public String Context { get; set; } = "";
|
||||
public String ServerName { get; set; } = "";
|
||||
public String InstanceName { get; set; } = "";
|
||||
public String DatabaseName { get; set; }
|
||||
public String UserName { get; set; } = "";
|
||||
public String Password { get; set; } = "";
|
||||
}
|
||||
public String InstanceName { get; set; } = "";
|
||||
public String DatabaseName { get; set; }
|
||||
public String UserName { get; set; } = "";
|
||||
public String Password { get; set; } = "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
Status = SbmcRepository.DefaultStatus;
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Data.
|
||||
public new class Data : SacsHierarchyItem.Data
|
||||
{
|
||||
// Data members.
|
||||
private readonly DataProperties data = new DataProperties();
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
Status = SbmcRepository.DefaultStatus;
|
||||
}
|
||||
public SysId OwnerId
|
||||
{
|
||||
get { return data.OwnerId; }
|
||||
@@ -77,113 +77,113 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
set { CheckChanged(data.Context, value); data.Context = value; }
|
||||
}
|
||||
public String ServerName
|
||||
{
|
||||
get { return data.ServerName; }
|
||||
set { CheckChanged(data.ServerName, value); data.ServerName = value; }
|
||||
}
|
||||
public String InstanceName
|
||||
{
|
||||
get { return data.InstanceName; }
|
||||
set { CheckChanged(data.InstanceName, value); data.InstanceName = value; }
|
||||
}
|
||||
public String DatabaseName
|
||||
{
|
||||
get { return data.DatabaseName; }
|
||||
set { CheckChanged(data.DatabaseName, value); data.DatabaseName = value; }
|
||||
}
|
||||
public String UserName
|
||||
{
|
||||
get { return data.UserName; }
|
||||
set { CheckChanged(data.UserName, value); data.UserName = value; }
|
||||
}
|
||||
public String Password
|
||||
{
|
||||
get { return data.Password; }
|
||||
set { CheckChanged(data.Password, value); data.Password = value; }
|
||||
}
|
||||
{
|
||||
get { return data.ServerName; }
|
||||
set { CheckChanged(data.ServerName, value); data.ServerName = value; }
|
||||
}
|
||||
public String InstanceName
|
||||
{
|
||||
get { return data.InstanceName; }
|
||||
set { CheckChanged(data.InstanceName, value); data.InstanceName = value; }
|
||||
}
|
||||
public String DatabaseName
|
||||
{
|
||||
get { return data.DatabaseName; }
|
||||
set { CheckChanged(data.DatabaseName, value); data.DatabaseName = value; }
|
||||
}
|
||||
public String UserName
|
||||
{
|
||||
get { return data.UserName; }
|
||||
set { CheckChanged(data.UserName, value); data.UserName = value; }
|
||||
}
|
||||
public String Password
|
||||
{
|
||||
get { return data.Password; }
|
||||
set { CheckChanged(data.Password, value); data.Password = value; }
|
||||
}
|
||||
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
OwnerId = data.OwnerId;
|
||||
Context = data.Context;
|
||||
ServerName = data.ServerName;
|
||||
InstanceName = data.InstanceName;
|
||||
DatabaseName = data.DatabaseName;
|
||||
UserName = data.UserName;
|
||||
Password = data.Password;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
InstanceName = data.InstanceName;
|
||||
DatabaseName = data.DatabaseName;
|
||||
UserName = data.UserName;
|
||||
Password = data.Password;
|
||||
base.PopulateFrom(data);
|
||||
}
|
||||
public Data Clone()
|
||||
{
|
||||
Data data = new Data();
|
||||
data.PopulateFrom(this);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
public new class ErrField : SacsHierarchyItem.ErrField
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue OwnerId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Context { get; set; } = ValidValue.Valid;
|
||||
public ValidValue ServerName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue InstanceName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DatabaseName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue UserName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Password { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
public ValidValue InstanceName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DatabaseName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue UserName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Password { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private readonly Data data = new Data();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcRepository(SysId id) : base(id)
|
||||
{
|
||||
base.SetData(data);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmcRepository(SysId id) : base(id)
|
||||
{
|
||||
base.SetData(data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository status.
|
||||
private static readonly List<SaStatus> repositoryStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
SaStatus.OnHold,
|
||||
SaStatus.Inactive,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(repositoryStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case SaStatus.Active:
|
||||
return DataValue.TriStateType.Green;
|
||||
case SaStatus.OnHold:
|
||||
return DataValue.TriStateType.Amber;
|
||||
case SaStatus.Inactive:
|
||||
return DataValue.TriStateType.Red;
|
||||
case SaStatus.Deleted:
|
||||
return DataValue.TriStateType.Purple;
|
||||
}
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Repository status.
|
||||
private static readonly List<SaStatus> repositoryStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
SaStatus.OnHold,
|
||||
SaStatus.Inactive,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(repositoryStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case SaStatus.Active:
|
||||
return DataValue.TriStateType.Green;
|
||||
case SaStatus.OnHold:
|
||||
return DataValue.TriStateType.Amber;
|
||||
case SaStatus.Inactive:
|
||||
return DataValue.TriStateType.Red;
|
||||
case SaStatus.Deleted:
|
||||
return DataValue.TriStateType.Purple;
|
||||
}
|
||||
return DataValue.TriStateType.Unknown;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
||||
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Data GetData() { return data.Clone(); }
|
||||
public void SetData(Data data)
|
||||
{
|
||||
// Properties that cannot be changed if previously specified.
|
||||
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
||||
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
||||
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
||||
this.data.PopulateFrom(data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
@@ -204,77 +204,77 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
set { data.Context = value; }
|
||||
}
|
||||
public String ServerName
|
||||
{
|
||||
get { return data.ServerName; }
|
||||
set { data.ServerName = value; }
|
||||
}
|
||||
public String InstanceName
|
||||
{
|
||||
get { return data.InstanceName; }
|
||||
set { data.InstanceName = value; }
|
||||
}
|
||||
public String DatabaseName
|
||||
{
|
||||
get { return data.DatabaseName; }
|
||||
set { data.DatabaseName = value; }
|
||||
}
|
||||
{
|
||||
get { return data.ServerName; }
|
||||
set { data.ServerName = value; }
|
||||
}
|
||||
public String InstanceName
|
||||
{
|
||||
get { return data.InstanceName; }
|
||||
set { data.InstanceName = value; }
|
||||
}
|
||||
public String DatabaseName
|
||||
{
|
||||
get { return data.DatabaseName; }
|
||||
set { data.DatabaseName = value; }
|
||||
}
|
||||
|
||||
// Credentials.
|
||||
// Credentials.
|
||||
|
||||
public String UserName
|
||||
{
|
||||
get { return data.UserName; }
|
||||
set { data.UserName = value; }
|
||||
}
|
||||
public String Password
|
||||
{
|
||||
get { return data.Password; }
|
||||
set { data.Password = value; }
|
||||
}
|
||||
public String UserName
|
||||
{
|
||||
get { return data.UserName; }
|
||||
set { data.UserName = value; }
|
||||
}
|
||||
public String Password
|
||||
{
|
||||
get { return data.Password; }
|
||||
set { data.Password = value; }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Flags.
|
||||
//-------------------------------------------------------------------
|
||||
// Flags.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// List parameters.
|
||||
//-------------------------------------------------------------------
|
||||
// List parameters.
|
||||
|
||||
/// <summary> Status filter options.</summary>
|
||||
public enum StatusCat
|
||||
{
|
||||
Any,
|
||||
ActiveOnly,
|
||||
/// <summary> Status filter options.</summary>
|
||||
public enum StatusCat
|
||||
{
|
||||
Any,
|
||||
ActiveOnly,
|
||||
OnHoldOnly,
|
||||
InactiveOnly,
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a list of items.</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
||||
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Repository owners.</summary>
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a list of items.</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
{
|
||||
// List filtering.
|
||||
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
||||
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Repository owners.</summary>
|
||||
public HashSet<SysId> OwnerIdsIncluded { get; } = new HashSet<SysId>();
|
||||
/// <summary>Repository contexts.</summary>
|
||||
public HashSet<String> ContextsIncluded { get; set; } = new HashSet<String>();
|
||||
/// <summary>Generic search value - context, server, instance, database etc.</summary>
|
||||
public String Search { get; set; }
|
||||
public String NotesPartial { get; set; }
|
||||
/// <summary>Contact status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
// Table alises.
|
||||
public String Alias_Owner { get; set; }
|
||||
/// <summary>Generic search value - context, server, instance, database etc.</summary>
|
||||
public String Search { get; set; }
|
||||
public String NotesPartial { get; set; }
|
||||
/// <summary>Contact status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
// Table alises.
|
||||
public String Alias_Owner { get; set; }
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
// Item list.
|
||||
public static class SbmcRepositoryList
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
//=======================================================================
|
||||
// Item list.
|
||||
public static class SbmcRepositoryList
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
|
||||
@@ -78,7 +78,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
// Construction.
|
||||
public Data()
|
||||
{
|
||||
//Status = SbmAccountMgr.AffiliateStatusDefault;
|
||||
}
|
||||
public String EmailAddress
|
||||
{
|
||||
@@ -223,14 +222,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus.Control
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Affiliate status.
|
||||
private static readonly List<SaStatus> affiliateStatuses = new List<SaStatus>()
|
||||
private static readonly List<SaStatus> userAccountStatuses = new List<SaStatus>()
|
||||
{
|
||||
SaStatus.Active,
|
||||
SaStatus.Inactive,
|
||||
SaStatus.Deleted,
|
||||
};
|
||||
public static SaStatus DefaultStatus { get { return SaStatus.Active; } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(affiliateStatuses); } }
|
||||
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(userAccountStatuses); } }
|
||||
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
||||
{
|
||||
switch (status)
|
||||
|
||||
@@ -596,26 +596,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
get { return data.Name; }
|
||||
set { data.Name = value; }
|
||||
}
|
||||
public void SetName(String name)
|
||||
{
|
||||
if (IsIndividual())
|
||||
{
|
||||
name = name.ReplaceAll(",,", ",").ReplaceAll(" ", " ");
|
||||
if (name.IndexOf(",", 0) >= 0)
|
||||
{
|
||||
String[] nameParts = name.Split(',');
|
||||
LastName = nameParts[0].TrimAll().CapitaliseFirst().Left((int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
FirstName = nameParts[1].TrimAll().CapitaliseFirst().Left((int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName));
|
||||
}
|
||||
else if (name.IndexOf(" ", 0) >= 0)
|
||||
{
|
||||
String[] nameParts = name.Split(' ');
|
||||
FirstName = nameParts[0].TrimAll().CapitaliseFirst().Left((int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName));
|
||||
LastName = nameParts[1].TrimAll().CapitaliseFirst().Left((int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
}
|
||||
else LastName = name.TrimAll().CapitaliseFirst().Left((int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
}
|
||||
}
|
||||
public String Abbr
|
||||
{
|
||||
get { return data.Abbr; }
|
||||
|
||||
@@ -851,12 +851,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
public enum StatusCat
|
||||
{
|
||||
Any = 0,
|
||||
NotDeleted,
|
||||
Current,
|
||||
OnHold,
|
||||
CurrentOnly,
|
||||
OnHoldOnly,
|
||||
/// <summary>Current or On-hold</summary>
|
||||
Active,
|
||||
Disabled,
|
||||
DisabledOnly,
|
||||
NotDeleted,
|
||||
DeletedOnly,
|
||||
}
|
||||
/// <summary>Parameters - used to define the filters that should be applied to a List of Association</summary>
|
||||
public new class Params : SacsHierarchyItem.Params
|
||||
|
||||
@@ -1858,95 +1858,82 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
/// <summary>Commodity status.</summary>
|
||||
public StatusCat StatusCat { get; set; } = StatusCat.NotDeleted;
|
||||
// Utilities.
|
||||
public List<StringPair> GetDisplayValues(ISbmUserOrganisationContext userContext)
|
||||
public List<StringPair> GetDisplayValues(SbmInternals internals)
|
||||
{
|
||||
SbmAccountMgr accountMgr = null;
|
||||
List<StringPair> lValue = new List<StringPair>();
|
||||
using (SbmSessionConsole sessionConsole = SbmGlobals.System.CreateSessionConsole(userContext))
|
||||
{
|
||||
// Commodities to exclude.
|
||||
if (IdsIncluded.Count > 0) lValue.Add("Included commodities", IdsIncluded.Count.ToString());
|
||||
if (IdsExcluded.Count > 0) lValue.Add("Excluded commodities", IdsExcluded.Count.ToString());
|
||||
// Commodity type.
|
||||
if (CommodityType > 0) lValue.Add("Type", SbmSystem.GetSystemCodes(Sbm.SystemCode.CommodityType).GetDescForType(CommodityType, CommodityType.ToString()));
|
||||
else if (CommodityType == Sbm.CommodityType.AnyProduct) lValue.Add("Type", "Any product");
|
||||
if (StockItemsOnly) lValue.Add("Stock items only", "True");
|
||||
// Commodity code.
|
||||
if (!StringUtil.IsEmpty(CodeFull)) lValue.Add("Code", CodeFull);
|
||||
else if (!StringUtil.IsEmpty(CodePartial)) lValue.Add("Code contains", CodePartial);
|
||||
// Drawing number.
|
||||
if (!StringUtil.IsEmpty(DrawingNoFull)) lValue.Add("Drawing no", DrawingNoFull);
|
||||
else if (!StringUtil.IsEmpty(DrawingNoPartial)) lValue.Add("Drawing no starts", DrawingNoPartial);
|
||||
if (!StringUtil.IsEmpty(DrawingIssueFull)) lValue.Add("Drawing issue", DrawingIssueFull);
|
||||
else if (!StringUtil.IsEmpty(DrawingIssuePartial)) lValue.Add("Drawing issue starts", DrawingIssuePartial);
|
||||
// Commodity description.
|
||||
if (!StringUtil.IsEmpty(DescBriefFull)) lValue.Add("Description", DescBriefFull);
|
||||
if (!StringUtil.IsEmpty(DescBriefPartial)) lValue.Add("Description starts", DescBriefPartial);
|
||||
// Category.
|
||||
if (Categories.Count > 0) lValue.Add("Categories", Categories.Concat(","));
|
||||
// Catalog reference.
|
||||
if (!StringUtil.IsEmpty(CatalogRefPartial)) lValue.Add("Catalog ref start", CatalogRefPartial);
|
||||
// Codings.
|
||||
if (!StringUtil.IsEmpty(RangeCode)) lValue.Add("Range code", RangeCode);
|
||||
if (!StringUtil.IsEmpty(ColourCode)) lValue.Add("Colour code", ColourCode);
|
||||
if (!StringUtil.IsEmpty(SourceCode)) lValue.Add("Source code", SourceCode);
|
||||
if (!StringUtil.IsEmpty(SupplyMethodCode)) lValue.Add("SupplyMethod code", SupplyMethodCode);
|
||||
if (!StringUtil.IsEmpty(HandlingCode)) lValue.Add("Handling code", HandlingCode);
|
||||
if (!StringUtil.IsEmpty(DeliveryCode)) lValue.Add("Delivery code", DeliveryCode);
|
||||
if (!StringUtil.IsEmpty(MaterialCode)) lValue.Add(sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCode, "Material") + " code", MaterialCode);
|
||||
if (!StringUtil.IsEmpty(FinishCode)) lValue.Add(sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_FinishCode, "Finish") + " code", FinishCode);
|
||||
if (!StringUtil.IsEmpty(PromotionCode)) lValue.Add(sessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "Promotion") + " code", PromotionCode);
|
||||
// Price sets.
|
||||
if (PriceSetIdsIncluded.Count > 0) lValue.Add("Included in price sets", PriceSetIdsIncluded.Count.ToString());
|
||||
if (PriceSetIdsExcluded.Count > 0) lValue.Add("Excluded from price sets", PriceSetIdsExcluded.Count.ToString());
|
||||
// Customer.
|
||||
if (SysId.IsValid(AssociationIdCustomer))
|
||||
{
|
||||
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
|
||||
lValue.Add("Customer", accountMgr.GetAssociationTargetName(AssociationIdCustomer));
|
||||
}
|
||||
if (!StringUtil.IsEmpty(CustomerName)) lValue.Add("Customer name starts", CustomerName);
|
||||
if (!StringUtil.IsEmpty(SupplierName)) lValue.Add("Supplier name starts", SupplierName);
|
||||
if (!StringUtil.IsEmpty(SalesOrderRef)) lValue.Add("SO reference starts", SalesOrderRef);
|
||||
if (!StringUtil.IsEmpty(PurchaseOrderRef)) lValue.Add("PO reference starts", PurchaseOrderRef);
|
||||
List<StringPair> values = new List<StringPair>();
|
||||
// Commodities to exclude.
|
||||
if (IdsIncluded.Count > 0) values.Add("Included commodities", IdsIncluded.Count.ToString());
|
||||
if (IdsExcluded.Count > 0) values.Add("Excluded commodities", IdsExcluded.Count.ToString());
|
||||
// Commodity type.
|
||||
if (CommodityType > 0) values.Add("Type", SbmSystem.GetSystemCodes(Sbm.SystemCode.CommodityType).GetDescForType(CommodityType, CommodityType.ToString()));
|
||||
else if (CommodityType == Sbm.CommodityType.AnyProduct) values.Add("Type", "Any product");
|
||||
if (StockItemsOnly) values.Add("Stock items only", "True");
|
||||
// Commodity code.
|
||||
if (!StringUtil.IsEmpty(CodeFull)) values.Add("Code", CodeFull);
|
||||
else if (!StringUtil.IsEmpty(CodePartial)) values.Add("Code contains", CodePartial);
|
||||
// Drawing number.
|
||||
if (!StringUtil.IsEmpty(DrawingNoFull)) values.Add("Drawing no", DrawingNoFull);
|
||||
else if (!StringUtil.IsEmpty(DrawingNoPartial)) values.Add("Drawing no starts", DrawingNoPartial);
|
||||
if (!StringUtil.IsEmpty(DrawingIssueFull)) values.Add("Drawing issue", DrawingIssueFull);
|
||||
else if (!StringUtil.IsEmpty(DrawingIssuePartial)) values.Add("Drawing issue starts", DrawingIssuePartial);
|
||||
// Commodity description.
|
||||
if (!StringUtil.IsEmpty(DescBriefFull)) values.Add("Description", DescBriefFull);
|
||||
if (!StringUtil.IsEmpty(DescBriefPartial)) values.Add("Description starts", DescBriefPartial);
|
||||
// Category.
|
||||
if (Categories.Count > 0) values.Add("Categories", Categories.Concat(","));
|
||||
// Catalog reference.
|
||||
if (!StringUtil.IsEmpty(CatalogRefPartial)) values.Add("Catalog ref start", CatalogRefPartial);
|
||||
// Codings.
|
||||
if (!StringUtil.IsEmpty(RangeCode)) values.Add("Range code", RangeCode);
|
||||
if (!StringUtil.IsEmpty(ColourCode)) values.Add("Colour code", ColourCode);
|
||||
if (!StringUtil.IsEmpty(SourceCode)) values.Add("Source code", SourceCode);
|
||||
if (!StringUtil.IsEmpty(SupplyMethodCode)) values.Add("SupplyMethod code", SupplyMethodCode);
|
||||
if (!StringUtil.IsEmpty(HandlingCode)) values.Add("Handling code", HandlingCode);
|
||||
if (!StringUtil.IsEmpty(DeliveryCode)) values.Add("Delivery code", DeliveryCode);
|
||||
if (!StringUtil.IsEmpty(MaterialCode)) values.Add(internals.SessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCode, "Material") + " code", MaterialCode);
|
||||
if (!StringUtil.IsEmpty(FinishCode)) values.Add(internals.SessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_FinishCode, "Finish") + " code", FinishCode);
|
||||
if (!StringUtil.IsEmpty(PromotionCode)) values.Add(internals.SessionConsole.GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "Promotion") + " code", PromotionCode);
|
||||
// Price sets.
|
||||
if (PriceSetIdsIncluded.Count > 0) values.Add("Included in price sets", PriceSetIdsIncluded.Count.ToString());
|
||||
if (PriceSetIdsExcluded.Count > 0) values.Add("Excluded from price sets", PriceSetIdsExcluded.Count.ToString());
|
||||
// Customer.
|
||||
if (SysId.IsValid(AssociationIdCustomer))
|
||||
values.Add("Customer", internals.AccountMgr.GetAssociationTargetName(AssociationIdCustomer));
|
||||
if (!StringUtil.IsEmpty(CustomerName)) values.Add("Customer name starts", CustomerName);
|
||||
if (!StringUtil.IsEmpty(SupplierName)) values.Add("Supplier name starts", SupplierName);
|
||||
if (!StringUtil.IsEmpty(SalesOrderRef)) values.Add("SO reference starts", SalesOrderRef);
|
||||
if (!StringUtil.IsEmpty(PurchaseOrderRef)) values.Add("PO reference starts", PurchaseOrderRef);
|
||||
|
||||
// Transaction.
|
||||
if (!StringUtil.IsEmpty(OrderRef)) lValue.Add("Transaction reference", OrderRef);
|
||||
// Transaction.
|
||||
if (!StringUtil.IsEmpty(OrderRef)) values.Add("Transaction reference", OrderRef);
|
||||
|
||||
// Stock:
|
||||
if (StockLocationFilter == Sbm.LocationFilter.Sales) lValue.Add("Stock location", "Sales locations only");
|
||||
else if (StockLocationFilter == Sbm.LocationFilter.Calc) lValue.Add("Stock location", "Calculated locations only");
|
||||
else if (StockLocationFilter == Sbm.LocationFilter.All) lValue.Add("Stock location", "All locations");
|
||||
if (SysId.IsValid(LocationIdStock)) lValue.Add("Stock location", SysId.ToString(LocationIdStock));
|
||||
if (DateUtil.IsValid(StockSoldFrom)) lValue.Add("Stock sold from", DateUtil.Format(StockSoldFrom, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(StockSoldTo)) lValue.Add("Stock sold to", DateUtil.Format(StockSoldTo, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(ProjectedSalesFrom)) lValue.Add("Proj sales from", DateUtil.Format(ProjectedSalesFrom, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(ProjectedSalesTo)) lValue.Add("Proj sales to", DateUtil.Format(ProjectedSalesTo, "d-MMM-yyyy"));
|
||||
// Stock:
|
||||
if (StockLocationFilter == Sbm.LocationFilter.Sales) values.Add("Stock location", "Sales locations only");
|
||||
else if (StockLocationFilter == Sbm.LocationFilter.Calc) values.Add("Stock location", "Calculated locations only");
|
||||
else if (StockLocationFilter == Sbm.LocationFilter.All) values.Add("Stock location", "All locations");
|
||||
if (SysId.IsValid(LocationIdStock)) values.Add("Stock location", SysId.ToString(LocationIdStock));
|
||||
if (DateUtil.IsValid(StockSoldFrom)) values.Add("Stock sold from", DateUtil.Format(StockSoldFrom, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(StockSoldTo)) values.Add("Stock sold to", DateUtil.Format(StockSoldTo, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(ProjectedSalesFrom)) values.Add("Proj sales from", DateUtil.Format(ProjectedSalesFrom, "d-MMM-yyyy"));
|
||||
if (DateUtil.IsValid(ProjectedSalesTo)) values.Add("Proj sales to", DateUtil.Format(ProjectedSalesTo, "d-MMM-yyyy"));
|
||||
|
||||
if (StockLevelMin > decimal.MinValue) lValue.Add("Stock level >= ", StockLevelMin.ToString("N2"));
|
||||
if (StockLevelMax > decimal.MinValue) lValue.Add("Stock level <= ", StockLevelMax.ToString("N2"));
|
||||
if (StockLevelMin > decimal.MinValue) values.Add("Stock level >= ", StockLevelMin.ToString("N2"));
|
||||
if (StockLevelMax > decimal.MinValue) values.Add("Stock level <= ", StockLevelMax.ToString("N2"));
|
||||
|
||||
// Commodities with definitions for Customer.
|
||||
if (SysId.IsValid(AssociationIdCommodityCustomer))
|
||||
{
|
||||
if (accountMgr == null) accountMgr = SbmGlobals.System.CreateAccountMgr(userContext);
|
||||
lValue.Add("Commodity definitions for customer", accountMgr.GetAssociationTargetName(AssociationIdCommodityCustomer));
|
||||
}
|
||||
if (!StringUtil.IsEmpty(AccountCodeCommodityCustomer))
|
||||
lValue.Add("Commodity definitions for customer", AccountCodeCommodityCustomer);
|
||||
// Commodities with definitions for Customer.
|
||||
if (SysId.IsValid(AssociationIdCommodityCustomer))
|
||||
values.Add("Commodity definitions for customer", internals.AccountMgr.GetAssociationTargetName(AssociationIdCommodityCustomer));
|
||||
if (!StringUtil.IsEmpty(AccountCodeCommodityCustomer))
|
||||
values.Add("Commodity definitions for customer", AccountCodeCommodityCustomer);
|
||||
|
||||
// Commodity status category.
|
||||
if (StatusCat == StatusCat.Current)
|
||||
lValue.Add("Status", "Current");
|
||||
}
|
||||
// Commodity status category.
|
||||
if (StatusCat == StatusCat.Current)
|
||||
values.Add("Status", "Current");
|
||||
|
||||
// Portfolio:
|
||||
//PortfolioIdInclude;
|
||||
//PortfolioIdExclude;
|
||||
|
||||
// Clean-up.
|
||||
if (accountMgr != null) accountMgr.Dispose();
|
||||
return lValue;
|
||||
return values;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,8 +98,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SbmTransactionMgr transMgr = null;
|
||||
private SbmDataItemMgr itemMgr = null;
|
||||
private class DataMembers
|
||||
{
|
||||
public DataMembers(SbmInternals internalsSupplied)
|
||||
{
|
||||
this.InternalsSupplied = internalsSupplied;
|
||||
}
|
||||
public SbmInternals InternalsSupplied { get; }
|
||||
}
|
||||
private DataMembers mbr { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
@@ -140,14 +147,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmRequirementCosts(ISbmUserOrganisationContext userContext)
|
||||
public SbmRequirementCosts(SbmInternals internals)
|
||||
{
|
||||
UserContext = userContext;
|
||||
mbr = new DataMembers(internals);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
protected SbmInternals Internals { get { return mbr.InternalsSupplied; } }
|
||||
private ISbmUserOrganisationContext UserContext { get { return Internals.UserContext; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Calculation.
|
||||
@@ -251,7 +259,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
if (SysId.IsValid(RequirementId))
|
||||
{
|
||||
// Refresh purchase costs from db.
|
||||
if (itemMgr != null) itemMgr = SbmGlobals.System.CreateDataItemMgr(UserContext);
|
||||
|
||||
// Configure Item Links for this requirement as the 'child' ('To') item.
|
||||
SbmItemLink.Params prmItemLink = new SbmItemLink.Params();
|
||||
@@ -260,7 +267,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
prmItemLink.ItemIdTo = RequirementId;
|
||||
|
||||
// Retrieve links to this requirement as a 'child'
|
||||
itemLinks = itemMgr.GetItemLinkList(prmItemLink);
|
||||
itemLinks = Internals.DataItemMgr.GetItemLinkList(prmItemLink);
|
||||
}
|
||||
PopulatePurchaseCosts(itemLinks);
|
||||
if (itemLinks == null)
|
||||
@@ -271,8 +278,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
public void PopulatePurchaseCosts(List<SbmItemLink> itemLinks)
|
||||
{
|
||||
// SbmRequirementCosts > PopulatePurchaseCosts(itemLinks) - require database in the CreateTransactionMgr & CreateDataItemMgr?
|
||||
//if (transMgr != null) transMgr = SbmGlobals.System.CreateTransactionMgr;
|
||||
if (itemMgr != null) itemMgr = SbmGlobals.System.CreateDataItemMgr(UserContext);
|
||||
|
||||
// Clear previous purchase costs.
|
||||
PurchaseCosts.Clear();
|
||||
@@ -289,7 +294,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
if (itemLink.ItemTypeFrom != Sbm.ItemType.Requirement) continue;
|
||||
|
||||
// Retrieve the 'Parent' requirement.
|
||||
SbmRequirement requirement = transMgr.GetRequirementById(itemLink.ItemIdFrom);
|
||||
SbmRequirement requirement = Internals.TransactionMgr.GetRequirementById(itemLink.ItemIdFrom);
|
||||
if (requirement == null)
|
||||
{
|
||||
// Calculate 'proportion' of cost to apply to this item.
|
||||
@@ -301,7 +306,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
prmLinkPurchase.ItemLinkType = Sbm.ItemLinkType.Requirement_AssociatedItem;
|
||||
prmLinkPurchase.ItemTypeFrom = Sbm.ItemType.Requirement;
|
||||
prmLinkPurchase.ItemIdFrom = requirement.Id;
|
||||
List<SbmItemLink> LinkPurchases = itemMgr.GetItemLinkList(prmLinkPurchase);
|
||||
List<SbmItemLink> LinkPurchases = Internals.DataItemMgr.GetItemLinkList(prmLinkPurchase);
|
||||
if (LinkPurchases != null && LinkPurchases.Count > 0)
|
||||
{
|
||||
// Split cost equally between the associated items.
|
||||
|
||||
@@ -8,6 +8,7 @@ using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Transactions;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
{
|
||||
@@ -1000,31 +1001,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public DateTime GetTaxEffectiveDate()
|
||||
{
|
||||
return GetTaxEffectiveDate(UserContext, TransactionType, Status, Raised, InProgress, Closed);
|
||||
}
|
||||
public static DateTime GetTaxEffectiveDate(ISbmUserOrganisationContext userContext, Sbm.TransactionType transactionType, SaStatus status, DateTime raised, DateTime inProgress, DateTime closed)
|
||||
{
|
||||
// Original thinking was that the status would have an effect on the tax point.
|
||||
SbmTransaction.StatusCat transactionStatusCat = GetCategoryForStatus(status);
|
||||
|
||||
// Nov-08 Current thinking is that the only differences is whether the 'In Progress' date has been specified and whether that should be used in preference to the 'Raised' date.
|
||||
if (DateUtil.IsValid(inProgress) && (transactionStatusCat == SbmTransaction.StatusCat.Open || transactionStatusCat == SbmTransaction.StatusCat.Closed))
|
||||
{
|
||||
using (SbmSessionConsole sessionConsole = SbmGlobals.System.CreateSessionConsole(userContext))
|
||||
{
|
||||
if (sessionConsole != null && sessionConsole.UseInProgressTaxDateAsTaxPoint(transactionType))
|
||||
return inProgress;
|
||||
}
|
||||
}
|
||||
// Otherwise, use 'Raised' date.
|
||||
if (DateUtil.IsValid(raised))
|
||||
return raised;
|
||||
return DateTime.Today;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public bool RefreshTotals(List<SbmRequirement> requirements)
|
||||
{
|
||||
@@ -1070,7 +1046,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
TimeEst = newTimeEst;
|
||||
TimeAct = newTimeAct;
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -1111,7 +1087,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
}
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -1148,7 +1124,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
}
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -1167,7 +1143,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
if (!DateUtil.IsValid(Closed)) Closed = DateTime.Today;
|
||||
}
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
+7
-4
@@ -1,4 +1,5 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Accounts.QuickBooks.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
@@ -9,12 +10,12 @@ using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
// A c c o u n t s - Q u i c k B o o k s
|
||||
//=======================================================================
|
||||
partial class SbmAccountsDfn
|
||||
partial class SbmAccountsConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>QuickBooks Interface Item Options.</summary>
|
||||
@@ -155,9 +156,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
private class QBooksParams
|
||||
{
|
||||
public QBooksParams(ISbmUserOrganisationContext userContext)
|
||||
public QBooksParams(SbmInternals internals)
|
||||
{
|
||||
this.Internals = internals;
|
||||
}
|
||||
private SbmInternals Internals { get; }
|
||||
// QuickBooks interface definitions.
|
||||
public SaInterface.Data dfnInt_QBooks { get; set; } = new SaInterface.Data();
|
||||
public SysId InterfaceId { get { return dfnInt_QBooks != null ? dfnInt_QBooks.Id : new SysId(); } }
|
||||
@@ -324,7 +327,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
itemOption.DisplayOptions.Group = OptionGroup_Data;
|
||||
itemOption.Name = sageStatics.InterfaceOptions.GetCodeForType(QuickBooksInterfaceOption.TaxCodeColumn);
|
||||
itemOption.DisplayOptions.Caption = sageStatics.InterfaceOptions.GetDescForType(QuickBooksInterfaceOption.TaxCodeColumn);
|
||||
itemOption.DisplayOptions.Values.AddRange(internals.GetSystemCodes(Sbm.SystemCode.OrgOption_TaxCodeColumn));
|
||||
itemOption.DisplayOptions.Values.AddRange(Internals.GetSystemCodes(Sbm.SystemCode.OrgOption_TaxCodeColumn));
|
||||
//itemOption.DefaultValue = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.TaxCode_CodeAlt1);
|
||||
interfaceItemOptionDfns.Add(itemOption);
|
||||
|
||||
+14
-37
@@ -1,4 +1,5 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Accounts.Sage.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
@@ -10,12 +11,12 @@ using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
// A c c o u n t s - S a g e
|
||||
//=======================================================================
|
||||
partial class SbmAccountsDfn
|
||||
partial class SbmAccountsConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Sage Interface Item Options.</summary>
|
||||
@@ -175,31 +176,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
private class SageParams
|
||||
{
|
||||
public SageParams(ISbmUserOrganisationContext userContext, SbmInternals internals)
|
||||
public SageParams(SbmInternals internals)
|
||||
{
|
||||
UserContext = userContext;
|
||||
this.internals = internals;
|
||||
this.Internals = internals;
|
||||
// Data types.
|
||||
// NB Don't change the codes - these are used on the database:
|
||||
DataTypes.Add(Sage.ItemType.Customer, "CUST", "Customers");
|
||||
DataTypes.Add(Sage.ItemType.Supplier, "SUPP", "Suppliers");
|
||||
DataTypes.Add(Sage.ItemType.Product, "PROD", "Products");
|
||||
DataTypes.Add(Sage.ItemType.PriceList, "PRCLST", "Pricing");
|
||||
DataTypes.Add(Sage.ItemType.StockLevel, "STKLVL", "Stock levels");
|
||||
DataTypes.Add(Sage.ItemType.StockTake, "STKTAK", "Stock takes");
|
||||
DataTypes.Add(Sage.ItemType.StockBom, "STKBOM", "Stock BOM");
|
||||
DataTypes.Add(Sage.ItemType.StockCategory, "STKCAT", "Stock categories");
|
||||
DataTypes.Add(Sage.ItemType.StockTransfer, "STKTRA", "Stock transfers");
|
||||
DataTypes.Add(Sage.ItemType.PurchaseOrder, "PURO", "Purchase orders");
|
||||
DataTypes.Add(Sage.ItemType.PopItemAllocation, "PURALL", "POP allocations");
|
||||
DataTypes.Add(Sage.ItemType.SalesOrder, "SALO", "Sales orders");
|
||||
DataTypes.Add(Sage.ItemType.SopItemAllocation, "SALALL", "SOP allocations");
|
||||
DataTypes.Add(Sage.ItemType.Invoice_Product, "INVPRD", "Product invoice");
|
||||
DataTypes.Add(Sage.ItemType.Invoice_Product_Allocation, "PRIALL", "Product invoice allocation");
|
||||
DataTypes.Add(Sage.ItemType.Invoice_SalesOrder, "INVSAL", "Sales order invoice");
|
||||
DataTypes.Add(Sage.ItemType.Invoice_Service, "INVSRV", "Service invoice");
|
||||
DataTypes.Add(Sage.ItemType.Invoice_Service_Allocation, "SRIALL", "Service invoice allocation");
|
||||
DataTypes.Add(Sage.ItemType.InvoiceItem, "INVITM", "Invoice item");
|
||||
DataTypes.AddRange(SageConsole.ItemTypeCodes);
|
||||
// Item types - import.
|
||||
Contexts_ImportItemType.Add(DataTypes.GetCodeDescForType(Sage.ItemType.Customer));
|
||||
Contexts_ImportItemType.Add(DataTypes.GetCodeDescForType(Sage.ItemType.Supplier));
|
||||
@@ -249,8 +230,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
SalesOrderColumnSources.Add(SageDbDfn.GetColumnName(SageDbDfn.ColumnIdx.SalesOrder_Notes1), "Notes line 1");
|
||||
}
|
||||
//---------------------------------------------------------------
|
||||
private ISbmUserOrganisationContext UserContext { get; }
|
||||
private readonly SbmInternals internals;
|
||||
private SbmInternals Internals { get; }
|
||||
// Sage interface definitions.
|
||||
public SaInterface.Data dfnInt_Sage { get; set; } = new SaInterface.Data();
|
||||
public SysId InterfaceId { get { return dfnInt_Sage != null ? dfnInt_Sage.Id : new SysId(); } }
|
||||
@@ -281,9 +261,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
{
|
||||
// Only populated when needed as reads Code Types from db.
|
||||
contexts_StockCategoryAction = new List<CodeDesc>();
|
||||
using (SaCodeTypeConsole codeTypeConsole = SbmGlobals.System.CreateCodeTypeConsole(UserContext))
|
||||
{
|
||||
codes_StockCategoryAction = codeTypeConsole.GetCodeDescsForCodeType(SbmSystem.GetCodeTypeCode(Sbm.ApplCodeType.CommodityCategory));
|
||||
codes_StockCategoryAction = Internals.CodeTypeConsole.GetCodeDescsForCodeType(SbmSystem.GetCodeTypeCode(Sbm.ApplCodeType.CommodityCategory));
|
||||
foreach (CodeDesc commodityCategory in codes_StockCategoryAction)
|
||||
{
|
||||
// Ignore categories where code is same as description.
|
||||
@@ -291,7 +269,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
if (commodityCategory.Code.EqualsCI(commodityCategory.Desc)) continue;
|
||||
contexts_StockCategoryAction.Add(commodityCategory);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new List<CodeDesc>(contexts_StockCategoryAction);
|
||||
}
|
||||
@@ -314,7 +291,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
prmLocation.LocationCategory = Sbm.LocationCategory.Stock;
|
||||
prmLocation.RestrictToSalesStock = true;
|
||||
prmLocation.StatusCat = SbmLocation.StatusCat.ActiveOnly;
|
||||
foreach (SbmLocation location in internals.StockMgr.GetLocationList(prmLocation))
|
||||
foreach (SbmLocation location in Internals.StockMgr.GetLocationList(prmLocation))
|
||||
salesLocations.Add(SysId.ToString(location.Id), location.Name);
|
||||
}
|
||||
return new List<CodeDesc>(salesLocations);
|
||||
@@ -329,8 +306,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
// Data members.
|
||||
// Interfce item option contexts.
|
||||
private static readonly SageStatics sageStatics = new SageStatics();
|
||||
private readonly SageParams sageParams;
|
||||
// ToDo Duplicate of SageParams.DataTypes
|
||||
private SageParams sageParams { get; }
|
||||
// Sage data types.
|
||||
private static List<TypeCodeDesc> DataTypes_Sage { get; } = new List<TypeCodeDesc>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -360,11 +337,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
public bool GetSageImportOption(Sage.ItemType itemType)
|
||||
{
|
||||
return StringUtil.ToBool(GetSageOptionValue(SageInterfaceOption.ImportProcessItemType, SbmAccountsDfn.GetCodeForSageItemType(itemType)));
|
||||
return StringUtil.ToBool(GetSageOptionValue(SageInterfaceOption.ImportProcessItemType, SbmAccountsConsole.GetCodeForSageItemType(itemType)));
|
||||
}
|
||||
public bool GetSageExportOption(Sage.ItemType itemType)
|
||||
{
|
||||
return StringUtil.ToBool(GetSageOptionValue(SageInterfaceOption.ExportProcessItemType, SbmAccountsDfn.GetCodeForSageItemType(itemType)));
|
||||
return StringUtil.ToBool(GetSageOptionValue(SageInterfaceOption.ExportProcessItemType, SbmAccountsConsole.GetCodeForSageItemType(itemType)));
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -579,7 +556,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
itemOption.DisplayOptions.Group = OptionGroup_Stock;
|
||||
itemOption.Name = sageStatics.InterfaceOptions.GetCodeForType(SageInterfaceOption.TaxCodeColumn);
|
||||
itemOption.DisplayOptions.Caption = sageStatics.InterfaceOptions.GetDescForType(SageInterfaceOption.TaxCodeColumn);
|
||||
itemOption.DisplayOptions.Values.AddRange(internals.GetSystemCodes(Sbm.SystemCode.OrgOption_TaxCodeColumn));
|
||||
itemOption.DisplayOptions.Values.AddRange(Internals.GetSystemCodes(Sbm.SystemCode.OrgOption_TaxCodeColumn));
|
||||
//itemOption.DefaultValue = SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.TaxCode_CodeAlt1);
|
||||
interfaceItemOptionDfns.Add(itemOption);
|
||||
|
||||
+45
-38
@@ -13,10 +13,10 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
public partial class SbmAccountsDfn : SacsHierarchyItem
|
||||
public partial class SbmAccountsConsole : SacsHierarchyItem
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Configuration.
|
||||
@@ -48,13 +48,21 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
private static String OptionGroup_Data { get; } = "Data";
|
||||
private static String OptionGroup_Stock { get; } = "Stock";
|
||||
private static String OptionGroup_Process { get; } = "Process";
|
||||
private readonly SbmInternals internals;
|
||||
private readonly List<TypeCodeDesc> interfaceOptions = new List<TypeCodeDesc>();
|
||||
private readonly SaInterfaceItemCache itemCache = new SaInterfaceItemCache();
|
||||
private class DataMembers
|
||||
{
|
||||
public DataMembers(SbmInternals internalsSupplied)
|
||||
{
|
||||
this.InternalsSupplied = internalsSupplied;
|
||||
}
|
||||
public SbmInternals InternalsSupplied { get; set; }
|
||||
public List<TypeCodeDesc> InterfaceOptions { get; } = new List<TypeCodeDesc>();
|
||||
public SaInterfaceItemCache ItemCache { get; } = new SaInterfaceItemCache();
|
||||
}
|
||||
private DataMembers mbr { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Static initialisation.
|
||||
static SbmAccountsDfn()
|
||||
static SbmAccountsConsole()
|
||||
{
|
||||
InitialiseStatics_SageLine50();
|
||||
InitialiseStatics_QuickBooks();
|
||||
@@ -62,29 +70,28 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmAccountsDfn(ISbmUserOrganisationContext userContext)
|
||||
public SbmAccountsConsole(SbmInternals internalsSupplied)
|
||||
{
|
||||
UserContext = userContext;
|
||||
internals = new SbmInternals(userContext);
|
||||
sageParams = new SageParams(userContext, internals);
|
||||
qbkParams = new QBooksParams(userContext);
|
||||
interfaceOptions = internals.GetSystemCodes(Sbm.SystemCode.InterfaceOption);
|
||||
mbr = new DataMembers(internalsSupplied);
|
||||
sageParams = new SageParams(Internals);
|
||||
qbkParams = new QBooksParams(Internals);
|
||||
mbr.InterfaceOptions.AddRange(Internals.GetSystemCodes(Sbm.SystemCode.InterfaceOption));
|
||||
Reset();
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
internals.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
protected SaInterfaceConsole InterfaceConsole { get { return internals.InterfaceConsole; } }
|
||||
protected SaItemOptionConsole ItemOptionConsole { get { return internals.ItemOptionConsole; } }
|
||||
private SbmInternals Internals { get { return mbr.InternalsSupplied; } }
|
||||
public ISbmUserOrganisationContext UserContext { get { return Internals.UserContext; } }
|
||||
protected SaInterfaceConsole InterfaceConsole { get { return Internals.InterfaceConsole; } }
|
||||
protected SaItemOptionConsole ItemOptionConsole { get { return Internals.ItemOptionConsole; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// I n t e r f a c e I t e m O p t i o n s
|
||||
@@ -158,7 +165,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
else if (accountsType == Sbm.InterfaceType_Accounts.QuickBooks)
|
||||
{
|
||||
String hostPcs = GetOptionValue(accountsType, interfaceOptions.GetCodeForType(Sbm.InterfaceOption.HostPc), "");
|
||||
String hostPcs = GetOptionValue(accountsType, mbr.InterfaceOptions.GetCodeForType(Sbm.InterfaceOption.HostPc), "");
|
||||
if (StringUtil.IsEmpty(hostPcs) || new List<String>(hostPcs.Split(',')).ContainsCI(computerName))
|
||||
return true;
|
||||
}
|
||||
@@ -209,14 +216,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
public void PopulateItemCache(ItemId itemId, bool force = false)
|
||||
{
|
||||
if (!ItemId.IsValid(itemId)) return;
|
||||
if (force || (short)itemCache.itemType != itemId.Type || itemCache.idItem != itemId.Id)
|
||||
if (force || (short)mbr.ItemCache.itemType != itemId.Type || mbr.ItemCache.idItem != itemId.Id)
|
||||
{
|
||||
itemCache.itemType = (Sbm.ItemType)itemId.Type;
|
||||
itemCache.idItem = itemId.Id;
|
||||
itemCache.importedFromSage = false;
|
||||
itemCache.importedFromQBooks = false;
|
||||
itemCache.exportedFromSage = false;
|
||||
itemCache.exportedFromQBooks = false;
|
||||
mbr.ItemCache.itemType = (Sbm.ItemType)itemId.Type;
|
||||
mbr.ItemCache.idItem = itemId.Id;
|
||||
mbr.ItemCache.importedFromSage = false;
|
||||
mbr.ItemCache.importedFromQBooks = false;
|
||||
mbr.ItemCache.exportedFromSage = false;
|
||||
mbr.ItemCache.exportedFromQBooks = false;
|
||||
if (InterfaceConsole != null)
|
||||
{
|
||||
// Retrieve the 'Sage' interface data item for this item.
|
||||
@@ -226,8 +233,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
List<SaInterfaceDataItem> plIntItm = InterfaceConsole.GetInterfaceDataItemsByItem(sageParams.InterfaceId, SaInterfaceProcessDirection.Unknown, itemId);
|
||||
foreach (SaInterfaceDataItem pIntItm in plIntItm)
|
||||
{
|
||||
if (pIntItm.Direction == SaInterfaceProcessDirection.Inbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) itemCache.importedFromSage = true;
|
||||
else if (pIntItm.Direction == SaInterfaceProcessDirection.Outbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) itemCache.exportedFromSage = true;
|
||||
if (pIntItm.Direction == SaInterfaceProcessDirection.Inbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) mbr.ItemCache.importedFromSage = true;
|
||||
else if (pIntItm.Direction == SaInterfaceProcessDirection.Outbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) mbr.ItemCache.exportedFromSage = true;
|
||||
}
|
||||
}
|
||||
// Retrieve the 'QuickBooks' interface data item for this item.
|
||||
@@ -237,8 +244,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
List<SaInterfaceDataItem> plIntItm = InterfaceConsole.GetInterfaceDataItemsByItem(qbkParams.InterfaceId, SaInterfaceProcessDirection.Unknown, itemId);
|
||||
foreach (SaInterfaceDataItem pIntItm in plIntItm)
|
||||
{
|
||||
if (pIntItm.Direction == SaInterfaceProcessDirection.Inbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) itemCache.importedFromQBooks = true;
|
||||
else if (pIntItm.Direction == SaInterfaceProcessDirection.Outbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) itemCache.exportedFromQBooks = true;
|
||||
if (pIntItm.Direction == SaInterfaceProcessDirection.Inbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) mbr.ItemCache.importedFromQBooks = true;
|
||||
else if (pIntItm.Direction == SaInterfaceProcessDirection.Outbound || pIntItm.Direction == SaInterfaceProcessDirection.Both) mbr.ItemCache.exportedFromQBooks = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -250,16 +257,16 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
if (!ItemId.IsValid(itemId)) return false;
|
||||
|
||||
PopulateItemCache(itemId);
|
||||
if ((short)itemCache.itemType == itemId.Type && itemCache.idItem == itemId.Id)
|
||||
if ((short)mbr.ItemCache.itemType == itemId.Type && mbr.ItemCache.idItem == itemId.Id)
|
||||
{
|
||||
switch (accounts)
|
||||
{
|
||||
case Sbm.InterfaceType_Accounts.Unknown:
|
||||
return (itemCache.importedFromSage || itemCache.importedFromQBooks);
|
||||
return (mbr.ItemCache.importedFromSage || mbr.ItemCache.importedFromQBooks);
|
||||
case Sbm.InterfaceType_Accounts.SageLine50:
|
||||
return itemCache.importedFromSage;
|
||||
return mbr.ItemCache.importedFromSage;
|
||||
case Sbm.InterfaceType_Accounts.QuickBooks:
|
||||
return itemCache.importedFromQBooks;
|
||||
return mbr.ItemCache.importedFromQBooks;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -279,16 +286,16 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
{
|
||||
if (!ItemId.IsValid(itemId)) return false;
|
||||
PopulateItemCache(itemId);
|
||||
if ((short)itemCache.itemType == itemId.Type && itemCache.idItem == itemId.Id)
|
||||
if ((short)mbr.ItemCache.itemType == itemId.Type && mbr.ItemCache.idItem == itemId.Id)
|
||||
{
|
||||
switch (accounts)
|
||||
{
|
||||
case Sbm.InterfaceType_Accounts.Unknown:
|
||||
return (itemCache.exportedFromSage || itemCache.exportedFromQBooks);
|
||||
return (mbr.ItemCache.exportedFromSage || mbr.ItemCache.exportedFromQBooks);
|
||||
case Sbm.InterfaceType_Accounts.SageLine50:
|
||||
return itemCache.exportedFromSage;
|
||||
return mbr.ItemCache.exportedFromSage;
|
||||
case Sbm.InterfaceType_Accounts.QuickBooks:
|
||||
return itemCache.exportedFromQBooks;
|
||||
return mbr.ItemCache.exportedFromQBooks;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -496,7 +503,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
if (IsUsingQBooksInterface())
|
||||
{
|
||||
String flag = interfaceOptions.GetCodeForType(Sbm.InterfaceOption.Flag);
|
||||
String flag = mbr.InterfaceOptions.GetCodeForType(Sbm.InterfaceOption.Flag);
|
||||
return GetOptionValue(Sbm.InterfaceType_Accounts.QuickBooks, flag, qbkStatics.OptionContexts_Flag.GetCodeForType(QBooksFlag.UseLocalCustomerPricing)).ToBool();
|
||||
}
|
||||
return true;
|
||||
@@ -511,7 +518,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
||||
}
|
||||
if (IsUsingQBooksInterface())
|
||||
{
|
||||
String flag = interfaceOptions.GetCodeForType(Sbm.InterfaceOption.Flag);
|
||||
String flag = mbr.InterfaceOptions.GetCodeForType(Sbm.InterfaceOption.Flag);
|
||||
return GetOptionValue(Sbm.InterfaceType_Accounts.QuickBooks, flag, qbkStatics.OptionContexts_Flag.GetCodeForType(QBooksFlag.UseLocalSupplierPricing)).ToBool();
|
||||
}
|
||||
return true;
|
||||
+230
-103
@@ -1,8 +1,11 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Data;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Security;
|
||||
@@ -12,16 +15,19 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.Data.SbmRepositoryPopulationData;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Utilitiy function relating to a core BusinessMgr database instance.
|
||||
/// Utilitiy functions relating to a core BusinessMgr database instance.
|
||||
/// <para>For instance:</para>
|
||||
/// <para>- Verifying repository status.</para>
|
||||
/// <para>- Initialisation of new repository.</para>
|
||||
/// <para>- Bringing static (tax codes etc) and reference data up to date.</para>
|
||||
/// </summary>
|
||||
public abstract class SbmCoreInstanceConsole_Base : SaErrorStateItem
|
||||
public abstract class SbmCoreInstanceConsole : SaErrorStateItem, ISbmCoreInstanceConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
@@ -38,43 +44,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
public const String col_UserId = "UserId";
|
||||
public const String col_UserCode = "UserCode";
|
||||
|
||||
/// <summary>
|
||||
/// Organisation and User info for Repository initialisation.
|
||||
/// </summary>
|
||||
public class RepositoryInitialisationData
|
||||
{
|
||||
public class UserData
|
||||
{
|
||||
public SysId AffiliateId { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public String Email { get; set; }
|
||||
public SysId SecurityItemId { get; set; }
|
||||
public String Code { get; set; }
|
||||
public String Password { get; set; }
|
||||
public bool PasswordSet { get; set; }
|
||||
}
|
||||
public UserData User { get; private set; } = new UserData();
|
||||
public void ClearUser() { User = new UserData(); }
|
||||
public class OrganisationData
|
||||
{
|
||||
public String Name { get; set; }
|
||||
public String VatReg { get; set; }
|
||||
public String CompanyNo { get; set; }
|
||||
public String Website { get; set; }
|
||||
public SysId AffiliateId { get; set; }
|
||||
public SysId AssociationId { get; set; }
|
||||
}
|
||||
public OrganisationData Organisation { get; private set; } = new OrganisationData();
|
||||
public void ClearOrganisation() { Organisation = new OrganisationData(); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmCoreInstanceConsole_Base()
|
||||
protected SbmCoreInstanceConsole()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
@@ -89,9 +64,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
// Properties.
|
||||
public String SecurityGroupCode_Super { get; } = SaSecurityConsole.GroupCode_Super;
|
||||
// Core instance.
|
||||
public abstract ISacsDatabase Database_Core { get; }
|
||||
public abstract SbmInternals Internals_Core { get; }
|
||||
public abstract DbUpdateInfo DbUpdateInfo_Core { get; }
|
||||
public abstract SbmInternals Internals { get; }
|
||||
public SaSecurityConsole SecurityConsole { get { return Internals.SecurityConsole; } }
|
||||
public ISacsDatabase Database { get { return Internals.BusMgrDatabase; } }
|
||||
public DbUpdateInfo DbUpdateInfo { get { return Internals.DbUpdateInfo; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
@@ -101,8 +77,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
/// Is repository database valid.
|
||||
/// <para>- Contains core tables (Affiliate, Association, Commodity etc).</para>
|
||||
/// </summary>
|
||||
/// <param name="database"></param>
|
||||
/// <returns></returns>
|
||||
public bool IsRepositoryValid()
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -110,21 +84,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
String sql = $"Select {col_Name} From sys.tables";
|
||||
try
|
||||
{
|
||||
using (DbResultSet resultSet = Database_Core.ExecuteQuery(sql))
|
||||
HashSet<String> tablesFound = new HashSet<string>();
|
||||
using (DbResultSet resultSet = Database.ExecuteQuery(sql))
|
||||
{
|
||||
if (resultSet != null)
|
||||
{
|
||||
HashSet<String> tablesFound = new HashSet<string>();
|
||||
// Check for query error.
|
||||
if (resultSet.HasErrorState())
|
||||
return SetErrorState($"{resultSet.ErrorStateMessage.TrimEnd('.')}.");
|
||||
// Extract list of tables found.
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
tablesFound.Add(values.GetString(col_Name));
|
||||
}
|
||||
HashSet<String> tablesNotFound = new HashSet<string>(tablesExpected.Where(item => !tablesFound.ContainsCI(item)));
|
||||
if (tablesNotFound.Any())
|
||||
return SetErrorState($"Core tables not found: {String.Join(", ", tablesNotFound)}.");
|
||||
}
|
||||
}
|
||||
HashSet<String> tablesNotFound = new HashSet<string>(tablesExpected.Where(item => !tablesFound.ContainsCI(item)));
|
||||
if (tablesNotFound.Any())
|
||||
return SetErrorState($"Core tables not found: {String.Join(", ", tablesNotFound)}.");
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
@@ -144,7 +122,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
public bool IsRepositoryInitialised()
|
||||
{
|
||||
ClearErrorState();
|
||||
RepositoryInitialisationData initData = new RepositoryInitialisationData();
|
||||
SbmRepositoryInitialisationData initData = new SbmRepositoryInitialisationData();
|
||||
try
|
||||
{
|
||||
// Query first internal association.
|
||||
@@ -155,7 +133,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
$"Left Join Affiliate aff On aff.Id=ass.AffIdOwner And aff.Id=ass.AffIdTarget And aff.Type<>{(int)Sbm.AffiliateType.Individual}",
|
||||
$"Where ass.Type={(int)Sbm.AssociationType.Internal};"
|
||||
};
|
||||
using (DbResultSet resultSet = Database_Core.ExecuteQuery(String.Join(" ", sql)))
|
||||
using (DbResultSet resultSet = Database.ExecuteQuery(String.Join(" ", sql)))
|
||||
{
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
@@ -185,7 +163,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
$"Left Join SaSecItem seci On seci.Id=aff.UserId",
|
||||
$"Where ass.AffIdOwner={SysId.ToLong(initData.Organisation.AffiliateId)} And ass.Type={(int)Sbm.AssociationType.Member};"
|
||||
};
|
||||
using (DbResultSet resultSet = Database_Core.ExecuteQuery(String.Join(" ", sql)))
|
||||
using (DbResultSet resultSet = Database.ExecuteQuery(String.Join(" ", sql)))
|
||||
{
|
||||
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
|
||||
{
|
||||
@@ -206,7 +184,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
return SetErrorState("User security item not found.");
|
||||
}
|
||||
|
||||
if (Internals_Core.SecurityConsole.RequiresPopulation())
|
||||
if (SecurityConsole.RequiresPopulation())
|
||||
return SetErrorState("Security Database requires population.");
|
||||
}
|
||||
catch (Exception exc)
|
||||
@@ -221,51 +199,54 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Validate repository initialisation data.
|
||||
/// <para>- Organisation properties.</para>
|
||||
/// <para>- User properties.</para>
|
||||
/// <para>- User security properties.</para>
|
||||
/// </summary>
|
||||
public bool ValidateRepositoryInitialisionData(RepositoryInitialisationData initData)
|
||||
public bool ValidateRepositoryInitialisionData(SbmRepositoryInitialisationData initData)
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Organisation name.
|
||||
if (StringUtil.IsBlank(initData.Organisation.Name))
|
||||
return SetErrorState("Organisation name must be supplied.");
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.Name) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Name))
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.Name) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Name))
|
||||
return SetErrorState("Organisation name exceeds max chars.");
|
||||
|
||||
// Organisation VAT reg.
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.VatReg) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_VatReg))
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.VatReg) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_VatReg))
|
||||
return SetErrorState("Company VAT reg exceeds max chars.");
|
||||
|
||||
// Organisation Company Number.
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.CompanyNo) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_CompanyNo))
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.CompanyNo) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_CompanyNo))
|
||||
return SetErrorState("Company number exceeds max chars.");
|
||||
|
||||
// Organisation Company Number.
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.Website) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Website))
|
||||
if ((ulong)StringUtil.GetLength(initData.Organisation.Website) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Website))
|
||||
return SetErrorState("Company website address exceeds max chars.");
|
||||
|
||||
// User first name.
|
||||
if (StringUtil.IsBlank(initData.User.FirstName))
|
||||
return SetErrorState("User first name must be supplied.");
|
||||
if ((ulong)StringUtil.GetLength(initData.User.FirstName) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName))
|
||||
if ((ulong)StringUtil.GetLength(initData.User.FirstName) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName))
|
||||
return SetErrorState("User first name exceeds max chars.");
|
||||
|
||||
// User last name.
|
||||
if (StringUtil.IsBlank(initData.User.LastName))
|
||||
return SetErrorState("User last name must be supplied.");
|
||||
if ((ulong)StringUtil.GetLength(initData.User.LastName) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName))
|
||||
if ((ulong)StringUtil.GetLength(initData.User.LastName) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName))
|
||||
return SetErrorState("User last name exceeds max chars.");
|
||||
|
||||
// User email.
|
||||
if (StringUtil.IsBlank(initData.User.Email))
|
||||
return SetErrorState("User email must be supplied.");
|
||||
if ((ulong)StringUtil.GetLength(initData.User.Email) > SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Email) || (ulong)StringUtil.GetLength(initData.User.Email) > SaSecurityDbDfn.GetColTextLen(SaSecurityDbDfn.ColumnIdx.SaSecItem_EmailAddress))
|
||||
if ((ulong)StringUtil.GetLength(initData.User.Email) > Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Email) || (ulong)StringUtil.GetLength(initData.User.Email) > Internals.GetColTextLen(SaSecurityDbDfn.ColumnIdx.SaSecItem_EmailAddress))
|
||||
return SetErrorState("User email exceeds max chars.");
|
||||
|
||||
// User code.
|
||||
if (StringUtil.IsBlank(initData.User.Code))
|
||||
return SetErrorState("User code must be supplied.");
|
||||
if ((ulong)StringUtil.GetLength(initData.User.Code) > SaSecurityDbDfn.GetColTextLen(SaSecurityDbDfn.ColumnIdx.SaSecItem_Code))
|
||||
if ((ulong)StringUtil.GetLength(initData.User.Code) > Internals.GetColTextLen(SaSecurityDbDfn.ColumnIdx.SaSecItem_Code))
|
||||
return SetErrorState("User code exceeds max chars.");
|
||||
|
||||
// 'Super' security group.
|
||||
@@ -278,8 +259,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Initialise repository.
|
||||
/// <para>- Organisation contact.</para>
|
||||
/// <para>- Internal association.</para>
|
||||
/// <para>- Security item and 'Super' group.</para>
|
||||
/// <para>- User contact.</para>
|
||||
/// <para>- User member association.</para>
|
||||
/// </summary>
|
||||
public bool InitialiseRepository(RepositoryInitialisationData initData)
|
||||
public bool InitialiseRepository(SbmRepositoryInitialisationData initData)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!ValidateRepositoryInitialisionData(initData)) return false;
|
||||
@@ -290,17 +276,17 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
// Organisation Contact.
|
||||
|
||||
// Retrieve existing Organisation.
|
||||
SbmAffiliate affiliateOrganisation = Internals_Core.AccountMgr.GetAffiliateById(initData.Organisation.AffiliateId);
|
||||
SbmAffiliate affiliateOrganisation = Internals.AccountMgr.GetAffiliateById(initData.Organisation.AffiliateId);
|
||||
if (affiliateOrganisation == null && SysId.IsValid(initData.Organisation.AffiliateId))
|
||||
return SetErrorState("Identified Organisation Contact not found.");
|
||||
if (affiliateOrganisation != null && !affiliateOrganisation.IsOrganisation())
|
||||
return SetErrorState("Identified Contact is not an organisation.");
|
||||
if (affiliateOrganisation == null)
|
||||
affiliateOrganisation = Internals_Core.AccountMgr.GetAffiliateByTypeName(Sbm.AffiliateType.AnyOrganisation, initData.Organisation.Name);
|
||||
affiliateOrganisation = Internals.AccountMgr.GetAffiliateByTypeName(Sbm.AffiliateType.AnyOrganisation, initData.Organisation.Name);
|
||||
if (affiliateOrganisation == null)
|
||||
{
|
||||
// Create new organisation.
|
||||
affiliateOrganisation = Internals_Core.AccountMgr.CreateAffiliate(Sbm.AffiliateType.Commercial);
|
||||
affiliateOrganisation = Internals.AccountMgr.CreateAffiliate(Sbm.AffiliateType.Commercial);
|
||||
}
|
||||
disposables.Add(affiliateOrganisation);
|
||||
|
||||
@@ -316,20 +302,20 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
// Store Organisation Contact.
|
||||
if (!SysId.IsValid(affiliateOrganisation.Id))
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.InsertAffiliate(affiliateOrganisation, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to insert Organisation contact - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.InsertAffiliate(affiliateOrganisation, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert Organisation contact - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.UpdateAffiliate(affiliateOrganisation, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to update Organisation contact - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.UpdateAffiliate(affiliateOrganisation, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update Organisation contact - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Organisation Internal association.
|
||||
|
||||
// Retrieve existing Internal Association for Organisation.
|
||||
SbmAssociation associationInternal = Internals_Core.AccountMgr.GetAssociationByOwnerTypeTarget(affiliateOrganisation.Id, Sbm.AssociationType.Internal, affiliateOrganisation.Id);
|
||||
SbmAssociation associationInternal = Internals.AccountMgr.GetInternalAssociation(affiliateOrganisation.Id);
|
||||
disposables.Add(associationInternal);
|
||||
if (associationInternal != null && SysId.IsValid(initData.Organisation.AssociationId) && !associationInternal.Id.Equals(initData.Organisation.AssociationId))
|
||||
// Failed to validate existing Internal Association against supplied Association Id.
|
||||
@@ -337,7 +323,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
if (associationInternal == null && SysId.IsValid(initData.Organisation.AssociationId))
|
||||
{
|
||||
// No existing Internal Association found for Organisation - retrieve specified Association.
|
||||
associationInternal = Internals_Core.AccountMgr.GetAssociationById(initData.Organisation.AssociationId);
|
||||
associationInternal = Internals.AccountMgr.GetAssociationById(initData.Organisation.AssociationId);
|
||||
if (associationInternal == null)
|
||||
return SetErrorState($"Failed to retrieve supplied Internal Association. Id: {initData.Organisation.AssociationId}.");
|
||||
disposables.Add(associationInternal);
|
||||
@@ -347,37 +333,34 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
return SetErrorState($"Supplied Internal Association has different Target ({associationInternal.AffiliateIdTarget}) to Organisation ({affiliateOrganisation.Id}).");
|
||||
}
|
||||
if (associationInternal == null)
|
||||
associationInternal = Internals_Core.AccountMgr.CreateAssociation(affiliateOrganisation.Id, Sbm.AssociationType.Internal, affiliateOrganisation.Id);
|
||||
associationInternal = Internals.AccountMgr.CreateAssociation(affiliateOrganisation.Id, Sbm.AssociationType.Internal, affiliateOrganisation.Id);
|
||||
disposables.Add(associationInternal);
|
||||
|
||||
// Store Internal Association.
|
||||
if (!SysId.IsValid(associationInternal.Id))
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.InsertAssociation(associationInternal, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to insert Internal Association for Organisation - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.InsertAssociation(associationInternal, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert Internal Association for Organisation - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.UpdateAssociation(associationInternal, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to update Internal Association for Organisation - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.UpdateAssociation(associationInternal, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update Internal Association for Organisation - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Security.
|
||||
|
||||
// Core security console.
|
||||
SaSecurityConsole securityConsole = Internals_Core.SecurityConsole;
|
||||
|
||||
// Initialise security data if required.
|
||||
if (securityConsole.RequiresPopulation() && !securityConsole.PopulateSecurityRights(DbUpdateInfo_Core))
|
||||
return SetErrorState(securityConsole.ErrorStateMessage);
|
||||
if (SecurityConsole.RequiresPopulation() && !SecurityConsole.PopulateSecurityRights(DbUpdateInfo))
|
||||
return SetErrorState(SecurityConsole.ErrorStateMessage);
|
||||
|
||||
// User Security Item.
|
||||
SaSecurityItem securityItemUser = null;
|
||||
// Retrieve supplied Security Item.
|
||||
if (SysId.IsValid(initData.User.SecurityItemId))
|
||||
{
|
||||
securityItemUser = securityConsole.GetSecurityItemById(SaSecurity.ItemType.User, initData.User.SecurityItemId);
|
||||
securityItemUser = SecurityConsole.GetSecurityItemById(SaSecurity.ItemType.User, initData.User.SecurityItemId);
|
||||
if (securityItemUser == null)
|
||||
return SetErrorState($"Failed to retrieve supplied User Security Item. Id: {initData.User.SecurityItemId}.");
|
||||
disposables.Add(securityItemUser);
|
||||
@@ -387,15 +370,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
if (securityItemUser == null)
|
||||
{
|
||||
// Retrieve Security Item by code.
|
||||
securityItemUser = securityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, initData.User.Code);
|
||||
securityItemUser = SecurityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, initData.User.Code);
|
||||
disposables.Add(securityItemUser);
|
||||
}
|
||||
if (securityItemUser == null)
|
||||
{
|
||||
// Create User Security Item.
|
||||
if (!securityConsole.CreateUser(initData.User.Code, $"{initData.User.LastName}, {initData.User.FirstName}", DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to create User Security Item - {securityConsole.ErrorStateMessage}.");
|
||||
securityItemUser = securityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, initData.User.Code);
|
||||
if (!SecurityConsole.CreateUser(StringUtil.OnBlank(initData.User.Code, initData.User.Email), $"{initData.User.LastName}, {initData.User.FirstName}", DbUpdateInfo))
|
||||
return SetErrorState($"Failed to create User Security Item - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
securityItemUser = SecurityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, initData.User.Code);
|
||||
if (securityItemUser == null)
|
||||
return SetErrorState($"Failed to retrieve User Security Item after creation. Code: {initData.User.Code}.");
|
||||
disposables.Add(securityItemUser);
|
||||
@@ -403,17 +386,17 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
|
||||
// Populate User Security Item properties.
|
||||
securityItemUser.EmailAddress = initData.User.Email;
|
||||
if (initData.User.PasswordSet)
|
||||
securityConsole.SetPassword(securityItemUser, initData.User.Password);
|
||||
if (!securityConsole.UpdateSecurityItem(securityItemUser, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to update User Security Item - {securityConsole.ErrorStateMessage}.");
|
||||
if (initData.User.PasswordSet || SecurityConsole.PasswordIsBlank(securityItemUser))
|
||||
SecurityConsole.SetPassword(securityItemUser, initData.User.Password);
|
||||
if (!SecurityConsole.UpdateSecurityItem(securityItemUser, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update User Security Item - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
|
||||
// Assign to 'Super' Group.
|
||||
SysId securityGroupIdSuper = securityConsole.GetIdForItemCode(SaSecurity.ItemType.Group, SecurityGroupCode_Super);
|
||||
SysId securityGroupIdSuper = SecurityConsole.GetIdForItemCode(SaSecurity.ItemType.Group, SecurityGroupCode_Super);
|
||||
if (!SysId.IsValid(securityGroupIdSuper))
|
||||
return SetErrorState($"Failed to identify 'Super' security group. Code: '{SecurityGroupCode_Super}'.");
|
||||
if (!securityConsole.ItemsAreLinked(securityItemUser.Id, securityGroupIdSuper) && !securityConsole.AssignUserToGroup(securityItemUser.Code, SecurityGroupCode_Super, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to assign User Security Item to Super Group - {securityConsole.ErrorStateMessage}.");
|
||||
if (!SecurityConsole.ItemsAreLinked(securityItemUser.Id, securityGroupIdSuper) && !SecurityConsole.AssignUserToGroup(securityItemUser.Code, SecurityGroupCode_Super, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to assign User Security Item to Super Group - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// User Contact.
|
||||
@@ -422,7 +405,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
if (SysId.IsValid(initData.User.AffiliateId))
|
||||
{
|
||||
// Retrieve supplied User Contact.
|
||||
affiliateUser = Internals_Core.AccountMgr.GetAffiliateById(initData.User.AffiliateId);
|
||||
affiliateUser = Internals.AccountMgr.GetAffiliateById(initData.User.AffiliateId);
|
||||
if (affiliateUser == null)
|
||||
return SetErrorState($"Failed to retrieve User Contact. Id: {initData.User.AffiliateId}.");
|
||||
disposables.Add(affiliateUser);
|
||||
@@ -431,21 +414,21 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
if (affiliateUser == null)
|
||||
{
|
||||
// Retrieve User Contact by User Code.
|
||||
affiliateUser = Internals_Core.AccountMgr.GetAffiliateByUserId(securityItemUser.Id);
|
||||
affiliateUser = Internals.AccountMgr.GetAffiliateByUserId(securityItemUser.Id);
|
||||
disposables.Add(affiliateUser);
|
||||
}
|
||||
|
||||
if (affiliateUser == null)
|
||||
{
|
||||
// Retrieve User Contact by name.
|
||||
affiliateUser = Internals_Core.AccountMgr.GetIndividualByName(initData.User.FirstName, initData.User.LastName);
|
||||
affiliateUser = Internals.AccountMgr.GetIndividualByName(initData.User.FirstName, initData.User.LastName);
|
||||
disposables.Add(affiliateUser);
|
||||
}
|
||||
|
||||
if (affiliateUser == null)
|
||||
{
|
||||
// Create User Contact.
|
||||
affiliateUser = Internals_Core.AccountMgr.CreateAffiliate(Sbm.AffiliateType.Individual);
|
||||
affiliateUser = Internals.AccountMgr.CreateAffiliate(Sbm.AffiliateType.Individual);
|
||||
disposables.Add(affiliateUser);
|
||||
}
|
||||
|
||||
@@ -458,37 +441,50 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
// Store User Contact.
|
||||
if (!SysId.IsValid(affiliateUser.Id))
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.InsertAffiliate(affiliateUser, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to insert User contact - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.InsertAffiliate(affiliateUser, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert User contact - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.UpdateAffiliate(affiliateUser, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to update User contact - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.UpdateAffiliate(affiliateUser, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update User contact - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// User Member Association.
|
||||
|
||||
// Attempt to retrieve existing Member Association.
|
||||
SbmAssociation associationMember = Internals_Core.AccountMgr.GetAssociationByOwnerTypeTarget(affiliateOrganisation.Id, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
SbmAssociation associationMember = Internals.AccountMgr.GetAssociationByOwnerTypeTarget(affiliateOrganisation.Id, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
if (associationMember == null)
|
||||
// Create Member Association.
|
||||
associationMember = Internals_Core.AccountMgr.CreateAssociation(affiliateOrganisation.Id, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
associationMember = Internals.AccountMgr.CreateAssociation(affiliateOrganisation.Id, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
disposables.Add(associationMember);
|
||||
associationMember.Supervised = true;
|
||||
|
||||
// Store User Association.
|
||||
if (!SysId.IsValid(associationMember.Id))
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.InsertAssociation(associationMember, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to insert Member Association for User - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.InsertAssociation(associationMember, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert Member Association for User - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Internals_Core.AccountMgr.UpdateAssociation(associationMember, DbUpdateInfo_Core))
|
||||
return SetErrorState($"Failed to update Member Association for User - {Internals_Core.AccountMgr.ErrorStateMessage}");
|
||||
if (!Internals.AccountMgr.UpdateAssociation(associationMember, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update Member Association for User - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Populate reference data.
|
||||
PopulateReferenceData();
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Populate initialisation data Identifiers.
|
||||
|
||||
initData.Organisation.AffiliateId = affiliateOrganisation.Id;
|
||||
initData.Organisation.AssociationId = associationInternal.Id;
|
||||
initData.User.AffiliateId = affiliateUser.Id;
|
||||
initData.User.SecurityItemId = securityItemUser.Id;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
}
|
||||
|
||||
@@ -496,5 +492,136 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
/// <summary>
|
||||
/// Add User Account.
|
||||
/// </summary>
|
||||
public bool AddUserAccount(SbmRepositoryPopulationData.UserAccount userAccount)
|
||||
{
|
||||
// Logic is similar to setting up User Account during repository initialisation above, except:
|
||||
// - Owner must exist before user is populated.
|
||||
// - User Security Item must not exist.
|
||||
// - User is assigned to Security group by code rather than specifically to 'Super' group.
|
||||
// - User Affiliate and Member Association must not exist.
|
||||
ClearErrorState();
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Owner.
|
||||
if (!SysId.IsValid(userAccount.AffiliateIdOwner))
|
||||
return SetErrorState("Owner affiliate must be identified.");
|
||||
SbmAffiliate affiliateOwner = Internals.AccountMgr.GetAffiliateById(userAccount.AffiliateIdOwner);
|
||||
if (affiliateOwner == null)
|
||||
return SetErrorState("Owner affiliate not found.");
|
||||
if (affiliateOwner.Status != SaStatus.Current)
|
||||
return SetErrorState("Owner affiliate is not active.");
|
||||
|
||||
// Internal association.
|
||||
SbmAssociation associationOwner = Internals.AccountMgr.GetInternalAssociation(userAccount.AffiliateIdOwner);
|
||||
if (associationOwner == null)
|
||||
return SetErrorState("Internal Association not found.");
|
||||
if (associationOwner.Status != SaStatus.Current)
|
||||
return SetErrorState("Internal Association is not active.");
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// User Security Item.
|
||||
String userCode = StringUtil.OnBlank(userAccount.UserCode, userAccount.Email);
|
||||
|
||||
// Retrieve Security Item by code.
|
||||
SaSecurityItem securityItemUser = SecurityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, userCode);
|
||||
if (securityItemUser != null)
|
||||
return SetErrorState("User Security Item already exists.");
|
||||
|
||||
// Create User Security Item.
|
||||
if (!SecurityConsole.CreateUser(StringUtil.OnBlank(userCode), $"{userAccount.LastName}, {userAccount.FirstName}", DbUpdateInfo))
|
||||
return SetErrorState($"Failed to create User Security Item - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
securityItemUser = SecurityConsole.GetSecurityItemByCode(SaSecurity.ItemType.User, userCode);
|
||||
if (securityItemUser == null)
|
||||
return SetErrorState($"Failed to retrieve User Security Item after creation. Code: {userCode}.");
|
||||
|
||||
// Populate User Security Item properties.
|
||||
securityItemUser.EmailAddress = userAccount.Email;
|
||||
SecurityConsole.SetPassword(securityItemUser, userAccount.Password);
|
||||
if (!SecurityConsole.UpdateSecurityItem(securityItemUser, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to update User Security Item - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
|
||||
// Assign to Security Group.
|
||||
if (!StringUtil.IsBlank(userAccount.SecurityGroupCode))
|
||||
{
|
||||
SysId securityGroupId = SecurityConsole.GetIdForItemCode(SaSecurity.ItemType.Group, userAccount.SecurityGroupCode);
|
||||
if (!SysId.IsValid(securityGroupId))
|
||||
return SetErrorState($"Failed to identify security group. Code: '{userAccount.SecurityGroupCode}'.");
|
||||
if (!SecurityConsole.ItemsAreLinked(securityItemUser.Id, securityGroupId) && !SecurityConsole.AssignUserToGroup(securityItemUser.Code, SecurityGroupCode_Super, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to assign User Security Item to Group '{userAccount.SecurityGroupCode}' - {SecurityConsole.ErrorStateMessage.TrimEnd('.')}.");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// User Contact.
|
||||
|
||||
// Retrieve User Contact by User Code.
|
||||
SbmAffiliate affiliateUser = Internals.AccountMgr.GetAffiliateByUserId(securityItemUser.Id);
|
||||
if (affiliateUser != null)
|
||||
return SetErrorState($"User Affiliate already exists for the Security User.");
|
||||
|
||||
// Retrieve User Contact by name.
|
||||
affiliateUser = Internals.AccountMgr.GetIndividualByName(userAccount.FirstName, userAccount.LastName);
|
||||
if (affiliateUser != null)
|
||||
return SetErrorState($"User Affiliate already exists for the Security User.");
|
||||
|
||||
// Create User Contact.
|
||||
affiliateUser = Internals.AccountMgr.CreateAffiliate(Sbm.AffiliateType.Individual);
|
||||
affiliateUser.FirstName = userAccount.FirstName;
|
||||
affiliateUser.LastName = userAccount.LastName;
|
||||
affiliateUser.Email = userAccount.Email;
|
||||
affiliateUser.UserId = securityItemUser.Id;
|
||||
|
||||
// Store User Contact.
|
||||
if (!Internals.AccountMgr.InsertAffiliate(affiliateUser, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert User contact - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// User Member Association.
|
||||
|
||||
// Attempt to retrieve existing Member Association.
|
||||
SbmAssociation associationMember = Internals.AccountMgr.GetAssociationByOwnerTypeTarget(userAccount.AffiliateIdOwner, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
if (associationMember != null)
|
||||
return SetErrorState($"User Member Association already exists.");
|
||||
|
||||
// Create Member Association.
|
||||
associationMember = Internals.AccountMgr.CreateAssociation(userAccount.AffiliateIdOwner, Sbm.AssociationType.Member, affiliateUser.Id);
|
||||
associationMember.Code = userAccount.MemberCode;
|
||||
associationMember.Supervised = true;
|
||||
|
||||
// Store Member Association.
|
||||
if (!Internals.AccountMgr.InsertAssociation(associationMember, DbUpdateInfo))
|
||||
return SetErrorState($"Failed to insert Member Association for User - {Internals.AccountMgr.ErrorStateMessage}");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// POpulate reference data.
|
||||
/// <br/>- Code Types.
|
||||
/// </summary>
|
||||
public bool PopulateReferenceData()
|
||||
{
|
||||
ClearErrorState();
|
||||
|
||||
// Code types.
|
||||
List<SaCodeTypeDfn> codeTypeDfns = Internals.CodeTypeConsole.CodeTypeDefinitions;
|
||||
foreach (SaCodeTypeDfn codeTypeDfn in codeTypeDfns)
|
||||
{
|
||||
if (Internals.CodeTypeConsole.PopulateCodeType(codeTypeDfn.Code, DbUpdateInfo))
|
||||
{
|
||||
//foreach (var code in codeTypeDfn.Codes)
|
||||
// Internals.CodeTypeConsole.PopulateCode(codeTypeDfn.sCode, code.Code, code.Desc);
|
||||
}
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Data;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Security;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.Core.ISbmDemoInstanceConsole;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Utilitiy functions relating to the Demo BusinessMgr database instance.
|
||||
/// <para>For instance:</para>
|
||||
/// <para>- Database initialisation.</para>
|
||||
/// <para>- Populate example data.</para>
|
||||
/// <para>- Populate Demo Account User.</para>
|
||||
/// </summary>
|
||||
public abstract class SbmDemoInstanceConsole : SaErrorStateItem, ISbmDemoInstanceConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmDemoInstanceConsole()
|
||||
{
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
protected abstract SbmInternals Internals { get; }
|
||||
protected DbUpdateInfo DbUpdateInfo { get { return Internals?.DbUpdateInfo ?? new DbUpdateInfo(null, "", ""); } }
|
||||
protected abstract SbmCoreInstanceConsole InstanceConsole { get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
|
||||
/// <summary>
|
||||
/// Security Group codes - as set up during initialisation.
|
||||
/// </summary>
|
||||
public String GetSecurityGroupCode(SecurityGroup group)
|
||||
{
|
||||
switch (group)
|
||||
{
|
||||
case SecurityGroup.Standard: return "Standard";
|
||||
case SecurityGroup.Super: return SaSecurityConsole.GroupCode_Super;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Verify Repository.
|
||||
|
||||
/// <summary>
|
||||
/// Is repository database valid.
|
||||
/// <para>- Contains core tables (Affiliate, Association, Commodity etc).</para>
|
||||
/// </summary>
|
||||
public bool IsRepositoryValid()
|
||||
{
|
||||
ClearErrorState();
|
||||
if (InstanceConsole == null)
|
||||
return SetErrorState("InstanceConsole not available.");
|
||||
if (!InstanceConsole.IsRepositoryValid())
|
||||
return SetErrorState(InstanceConsole.ErrorStateMessage);
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository population data preparation.
|
||||
|
||||
/// <summary>
|
||||
/// Prepare a suitable batch of data to populate the demo database.
|
||||
/// </summary>
|
||||
public abstract SbmRepositoryPopulationData PrepareDemoPopulationData();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Populate Repository.
|
||||
|
||||
/// <summary>
|
||||
/// Populate repository.
|
||||
/// <br/>- Initialise repository: Organisation contact, Internal association, Security item and 'Super' group, User contact, User member association.
|
||||
/// <br/>- Demo specific security.
|
||||
/// <br/>- Populate demo data, including Repository configuration.
|
||||
/// </summary>
|
||||
public abstract bool PopulateRepository(SbmRepositoryPopulationData data);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Get Affiliate Owner Ids for Internal Associations.
|
||||
/// </summary>
|
||||
public HashSet<SysId> GetInternalAssociationAffiliateIdsOwner()
|
||||
{
|
||||
return Internals.AccountMgr.GetInternalAssociationAffiliateIdsOwner();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// User Accounts.
|
||||
|
||||
/// <summary>
|
||||
/// Add User Account.
|
||||
/// </summary>
|
||||
public bool AddUserAccount(SbmRepositoryPopulationData.UserAccount userAccount)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!InstanceConsole.AddUserAccount(userAccount))
|
||||
return SetErrorState(InstanceConsole.ErrorStateMessage);
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
;
|
||||
@@ -0,0 +1,163 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.ItemOptions;
|
||||
using Sarand.Net.Standard.Base.Security;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Determine the correct length to use for text columns in the current database.
|
||||
/// <br/>- Primarily determined by the relevant database definition.
|
||||
/// <br/>- For selected columns, use the db schema length instead.
|
||||
/// <br/>- Allows for certain column lengths to be adjusted in the database.
|
||||
/// </summary>
|
||||
public class SbmInstanceSchemaConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
private readonly ISacsDatabase db;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmInstanceSchemaConsole(ISacsDatabase db)
|
||||
{
|
||||
this.db = db;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// BusMgr Column lengths - taking into account current database schema for selected columns.
|
||||
public ulong GetColTextLen(SbmDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Intercept columns that may have different lengths on the database.
|
||||
if (db != null && BusMgrColumnLengths.ContainsKey(column))
|
||||
{
|
||||
if (BusMgrColumnLengths[column] == 0)
|
||||
BusMgrColumnLengths[column] = GetDbColTextLen(column);
|
||||
return BusMgrColumnLengths[column];
|
||||
}
|
||||
return SbmDbDfn.GetColTextLen(column);
|
||||
}
|
||||
// BusMgr columns that may differ in length on the db.
|
||||
private readonly Dictionary<SbmDbDfn.ColumnIdx, ulong> BusMgrColumnLengths = new Dictionary<SbmDbDfn.ColumnIdx, ulong>()
|
||||
{
|
||||
{ SbmDbDfn.ColumnIdx.Address_Name, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Commodity_Code, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Commodity_DrawingNo, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Commodity_DescBrief, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Commodity_Notes, 0},
|
||||
{ SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode, 0},
|
||||
{ SbmDbDfn.ColumnIdx.PortfolioItem_Code, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Transaction_Notes, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Requirement_ProductCode, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Requirement_Notes, 0},
|
||||
{ SbmDbDfn.ColumnIdx.Constituent_Notes, 0},
|
||||
};
|
||||
public ulong GetDbColTextLen(SbmDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Get the column's length from the currently open database:
|
||||
if (SbmDbDfn.GetColDataType(column) != DbColumnDataType.VarChar) return 0;
|
||||
DbDfnTable dfnTable = db.GetTableDfn(SbmDbDfn.GetTableName(SbmDbDfn.GetTableForColumn(column), false));
|
||||
ulong columnLength = (ulong)(dfnTable.Columns.Find(col => col.Name.EqualsCI(SbmDbDfn.GetColumnName(column, false)))?.Size ?? 0);
|
||||
return (SbmDbDfn.MaxTextLen > 1 ? Math.Min(SbmDbDfn.MaxTextLen, columnLength) : columnLength);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Security Column lengths - taking into account current database schema for selected columns.
|
||||
public ulong GetColTextLen(SaSecurityDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Intercept columns that may have different lengths on the database.
|
||||
if (db != null && SecurityColumnLengths.ContainsKey(column))
|
||||
{
|
||||
if (SecurityColumnLengths[column] == 0)
|
||||
SecurityColumnLengths[column] = GetDbColTextLen(column);
|
||||
return SecurityColumnLengths[column];
|
||||
}
|
||||
return SaSecurityDbDfn.GetColTextLen(column);
|
||||
}
|
||||
// Security columns that may differ in length on the db.
|
||||
private readonly Dictionary<SaSecurityDbDfn.ColumnIdx, ulong> SecurityColumnLengths = new Dictionary<SaSecurityDbDfn.ColumnIdx, ulong>()
|
||||
{
|
||||
{ SaSecurityDbDfn.ColumnIdx.SaSecItem_Code, 0},
|
||||
{ SaSecurityDbDfn.ColumnIdx.SaSecItem_Description, 0},
|
||||
{ SaSecurityDbDfn.ColumnIdx.SaSecItem_EmailAddress, 0}
|
||||
};
|
||||
public ulong GetDbColTextLen(SaSecurityDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Get the column's length from the currently open database:
|
||||
if (SaSecurityDbDfn.GetColDataType(column) != DbColumnDataType.VarChar) return 0;
|
||||
DbDfnTable dfnTable = db.GetTableDfn(SaSecurityDbDfn.GetTableName(SaSecurityDbDfn.GetTableForColumn(column), false));
|
||||
ulong columnLength = (ulong)(dfnTable.Columns.Find(col => col.Name.EqualsCI(SaSecurityDbDfn.GetColumnName(column, false)))?.Size ?? 0);
|
||||
return (SaSecurityDbDfn.MaxTextLen > 1 ? Math.Min(SaSecurityDbDfn.MaxTextLen, columnLength) : columnLength);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// CodeType Column lengths - taking into account current database schema for selected columns.
|
||||
public ulong GetColTextLen(SaCodeTypeDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Intercept columns that may have different lengths on the database.
|
||||
if (db != null && CodeTypeColumnLengths.ContainsKey(column))
|
||||
{
|
||||
if (CodeTypeColumnLengths[column] == 0)
|
||||
CodeTypeColumnLengths[column] = GetDbColTextLen(column);
|
||||
return CodeTypeColumnLengths[column];
|
||||
}
|
||||
return SaCodeTypeDbDfn.GetColTextLen(column);
|
||||
}
|
||||
// CodeType columns that may differ in length on the db.
|
||||
private readonly Dictionary<SaCodeTypeDbDfn.ColumnIdx, ulong> CodeTypeColumnLengths = new Dictionary<SaCodeTypeDbDfn.ColumnIdx, ulong>()
|
||||
{
|
||||
{ SaCodeTypeDbDfn.ColumnIdx.SaCodeType_Code, 0},
|
||||
{ SaCodeTypeDbDfn.ColumnIdx.SaCode_Code, 0},
|
||||
{ SaCodeTypeDbDfn.ColumnIdx.SaCode_Data, 0},
|
||||
{ SaCodeTypeDbDfn.ColumnIdx.SaCode_Description, 0}
|
||||
};
|
||||
public ulong GetDbColTextLen(SaCodeTypeDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Get the column's length from the currently open database:
|
||||
if (SaCodeTypeDbDfn.GetColDataType(column) != DbColumnDataType.VarChar) return 0;
|
||||
DbDfnTable dfnTable = db.GetTableDfn(SaCodeTypeDbDfn.GetTableName(SaCodeTypeDbDfn.GetTableForColumn(column), false));
|
||||
ulong columnLength = (ulong)(dfnTable.Columns.Find(col => col.Name.EqualsCI(SaCodeTypeDbDfn.GetColumnName(column, false)))?.Size ?? 0);
|
||||
return 0;// (SaCodeTypeDbDfn.MaxTextLen > 1 ? Math.Min(SaCodeTypeDbDfn.MaxTextLen, columnLength) : columnLength);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// ItemOption Column lengths - taking into account current database schema for selected columns.
|
||||
public ulong GetColTextLen(SaItemOptionDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Intercept columns that may have different lengths on the database.
|
||||
if (db != null && ItemOptionColumnLengths.ContainsKey(column))
|
||||
{
|
||||
if (ItemOptionColumnLengths[column] == 0)
|
||||
ItemOptionColumnLengths[column] = GetDbColTextLen(column);
|
||||
return ItemOptionColumnLengths[column];
|
||||
}
|
||||
return SaItemOptionDbDfn.GetColTextLen(column);
|
||||
}
|
||||
// ItemOption columns that may differ in length on the db.
|
||||
private readonly Dictionary<SaItemOptionDbDfn.ColumnIdx, ulong> ItemOptionColumnLengths = new Dictionary<SaItemOptionDbDfn.ColumnIdx, ulong>()
|
||||
{
|
||||
{ SaItemOptionDbDfn.ColumnIdx.SaItemOption_Name, 0},
|
||||
{ SaItemOptionDbDfn.ColumnIdx.SaItemOption_Context, 0},
|
||||
{ SaItemOptionDbDfn.ColumnIdx.SaItemOption_Value, 0},
|
||||
{ SaItemOptionDbDfn.ColumnIdx.SaItemOption_Notes, 0}
|
||||
};
|
||||
public ulong GetDbColTextLen(SaItemOptionDbDfn.ColumnIdx column)
|
||||
{
|
||||
// Get the column's length from the currently open database:
|
||||
if (SaItemOptionDbDfn.GetColDataType(column) != DbColumnDataType.VarChar) return 0;
|
||||
DbDfnTable dfnTable = db.GetTableDfn(SaItemOptionDbDfn.GetTableName(SaItemOptionDbDfn.GetTableForColumn(column), false));
|
||||
ulong columnLength = (ulong)(dfnTable.Columns.Find(col => col.Name.EqualsCI(SaItemOptionDbDfn.GetColumnName(column, false)))?.Size ?? 0);
|
||||
return 0;// (SaItemOptionDbDfn.MaxTextLen > 1 ? Math.Min(SaItemOptionDbDfn.MaxTextLen, columnLength) : columnLength);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -56,36 +56,36 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
dfnQBooksInt.ClearConfig();
|
||||
dfnQBooksInt.AffiliateId_Owner = UserContext.OrganisationAffiliateId;
|
||||
// Identify the interfaces.
|
||||
dfnSageInt.InterfaceId = Internals.AccountsDfn.GetAccountInterfaceId(Sbm.InterfaceType_Accounts.SageLine50);
|
||||
dfnQBooksInt.InterfaceId = Internals.AccountsDfn.GetAccountInterfaceId(Sbm.InterfaceType_Accounts.QuickBooks);
|
||||
dfnSageInt.InterfaceId = Internals.AccountsConsole.GetAccountInterfaceId(Sbm.InterfaceType_Accounts.SageLine50);
|
||||
dfnQBooksInt.InterfaceId = Internals.AccountsConsole.GetAccountInterfaceId(Sbm.InterfaceType_Accounts.QuickBooks);
|
||||
|
||||
// Sales and purchase orders/invoices can only be created locally if they are not imported from one of these interfaces.
|
||||
if (SysId.IsValid(dfnSageInt.InterfaceId))
|
||||
{
|
||||
// Interpret interface options.
|
||||
dfnSageInt.importPurchaseOrder = Internals.AccountsDfn.GetSageImportOption(Sage.ItemType.PurchaseOrder);
|
||||
dfnSageInt.importSalesOrder = Internals.AccountsDfn.GetSageImportOption(Sage.ItemType.SalesOrder);
|
||||
dfnSageInt.importProductInvoice = Internals.AccountsDfn.GetSageImportOption(Sage.ItemType.Invoice_Product);
|
||||
dfnSageInt.importServiceInvoice = Internals.AccountsDfn.GetSageImportOption(Sage.ItemType.Invoice_Service);
|
||||
dfnSageInt.importSalesOrderInvoice = Internals.AccountsDfn.GetSageImportOption(Sage.ItemType.Invoice_SalesOrder);
|
||||
dfnSageInt.exportPurchaseOrder = Internals.AccountsDfn.GetSageExportOption(Sage.ItemType.PurchaseOrder);
|
||||
dfnSageInt.exportSalesOrder = Internals.AccountsDfn.GetSageExportOption(Sage.ItemType.SalesOrder);
|
||||
dfnSageInt.exportProductInvoice = Internals.AccountsDfn.GetSageExportOption(Sage.ItemType.Invoice_Product);
|
||||
dfnSageInt.exportServiceInvoice = Internals.AccountsDfn.GetSageExportOption(Sage.ItemType.Invoice_Service);
|
||||
dfnSageInt.exportSalesOrder = Internals.AccountsDfn.GetSageExportOption(Sage.ItemType.Invoice_SalesOrder);
|
||||
dfnSageInt.importPurchaseOrder = Internals.AccountsConsole.GetSageImportOption(Sage.ItemType.PurchaseOrder);
|
||||
dfnSageInt.importSalesOrder = Internals.AccountsConsole.GetSageImportOption(Sage.ItemType.SalesOrder);
|
||||
dfnSageInt.importProductInvoice = Internals.AccountsConsole.GetSageImportOption(Sage.ItemType.Invoice_Product);
|
||||
dfnSageInt.importServiceInvoice = Internals.AccountsConsole.GetSageImportOption(Sage.ItemType.Invoice_Service);
|
||||
dfnSageInt.importSalesOrderInvoice = Internals.AccountsConsole.GetSageImportOption(Sage.ItemType.Invoice_SalesOrder);
|
||||
dfnSageInt.exportPurchaseOrder = Internals.AccountsConsole.GetSageExportOption(Sage.ItemType.PurchaseOrder);
|
||||
dfnSageInt.exportSalesOrder = Internals.AccountsConsole.GetSageExportOption(Sage.ItemType.SalesOrder);
|
||||
dfnSageInt.exportProductInvoice = Internals.AccountsConsole.GetSageExportOption(Sage.ItemType.Invoice_Product);
|
||||
dfnSageInt.exportServiceInvoice = Internals.AccountsConsole.GetSageExportOption(Sage.ItemType.Invoice_Service);
|
||||
dfnSageInt.exportSalesOrder = Internals.AccountsConsole.GetSageExportOption(Sage.ItemType.Invoice_SalesOrder);
|
||||
}
|
||||
if (SysId.IsValid(dfnQBooksInt.InterfaceId))
|
||||
{
|
||||
// Interpret interface options.
|
||||
dfnQBooksInt.importPurchaseOrder = Internals.AccountsDfn.GetQuickBooksImportOption(Qbk.EntityType.PurchaseOrder);
|
||||
dfnQBooksInt.importSalesOrder = Internals.AccountsDfn.GetQuickBooksImportOption(Qbk.EntityType.SalesOrder);
|
||||
dfnQBooksInt.importProductInvoice = Internals.AccountsDfn.GetQuickBooksImportOption(Qbk.EntityType.Invoice_Product);
|
||||
dfnQBooksInt.importServiceInvoice = Internals.AccountsDfn.GetQuickBooksImportOption(Qbk.EntityType.Invoice_Service);
|
||||
dfnQBooksInt.importPurchaseOrder = Internals.AccountsConsole.GetQuickBooksImportOption(Qbk.EntityType.PurchaseOrder);
|
||||
dfnQBooksInt.importSalesOrder = Internals.AccountsConsole.GetQuickBooksImportOption(Qbk.EntityType.SalesOrder);
|
||||
dfnQBooksInt.importProductInvoice = Internals.AccountsConsole.GetQuickBooksImportOption(Qbk.EntityType.Invoice_Product);
|
||||
dfnQBooksInt.importServiceInvoice = Internals.AccountsConsole.GetQuickBooksImportOption(Qbk.EntityType.Invoice_Service);
|
||||
dfnQBooksInt.importSalesOrderInvoice = false;
|
||||
dfnQBooksInt.exportPurchaseOrder = Internals.AccountsDfn.GetQuickBooksExportOption(Qbk.EntityType.PurchaseOrder);
|
||||
dfnQBooksInt.exportSalesOrder = Internals.AccountsDfn.GetQuickBooksExportOption(Qbk.EntityType.SalesOrder);
|
||||
dfnQBooksInt.exportProductInvoice = Internals.AccountsDfn.GetQuickBooksExportOption(Qbk.EntityType.Invoice_Product);
|
||||
dfnQBooksInt.exportServiceInvoice = Internals.AccountsDfn.GetQuickBooksExportOption(Qbk.EntityType.Invoice_Service);
|
||||
dfnQBooksInt.exportPurchaseOrder = Internals.AccountsConsole.GetQuickBooksExportOption(Qbk.EntityType.PurchaseOrder);
|
||||
dfnQBooksInt.exportSalesOrder = Internals.AccountsConsole.GetQuickBooksExportOption(Qbk.EntityType.SalesOrder);
|
||||
dfnQBooksInt.exportProductInvoice = Internals.AccountsConsole.GetQuickBooksExportOption(Qbk.EntityType.Invoice_Product);
|
||||
dfnQBooksInt.exportServiceInvoice = Internals.AccountsConsole.GetQuickBooksExportOption(Qbk.EntityType.Invoice_Service);
|
||||
dfnQBooksInt.bexport_SalesOrderInvoice = false;
|
||||
}
|
||||
|
||||
@@ -319,7 +319,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
// Build the list of transaction types that are allowed to be raised from the specified type.
|
||||
List<TypeCodeDesc> transTypes = new List<TypeCodeDesc>();
|
||||
if (transactionTypes_Full.Count == 0) transactionTypes_Full = internals.GetSystemCodes(Sbm.SystemCode.TransactionType);
|
||||
if (transactionTypes_Full.Count == 0) transactionTypes_Full = Internals.GetSystemCodes(Sbm.SystemCode.TransactionType);
|
||||
foreach (TypeCodeDesc transTypeTo in transactionTypes_Full)
|
||||
{
|
||||
//if ((Sbm.TransactionType)typeTo.iType == typeFrom) continue;
|
||||
@@ -334,7 +334,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
// Build the list of transaction types that are allowed to be raised to the specified type.
|
||||
List<TypeCodeDesc> transTypes = new List<TypeCodeDesc>();
|
||||
if (transactionTypes_Full.Count == 0) transactionTypes_Full = internals.GetSystemCodes(Sbm.SystemCode.TransactionType);
|
||||
if (transactionTypes_Full.Count == 0) transactionTypes_Full = Internals.GetSystemCodes(Sbm.SystemCode.TransactionType);
|
||||
//transTypes_Full.GotoStart();
|
||||
foreach (TypeCodeDesc transTypeTo in transactionTypes_Full)
|
||||
{
|
||||
|
||||
@@ -71,7 +71,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private SbmInternals internals;
|
||||
private class DataMembers
|
||||
{
|
||||
public DataMembers(SbmInternals internalsSupplied)
|
||||
{
|
||||
this.InternalsSupplied = internalsSupplied;
|
||||
}
|
||||
public SbmInternals InternalsSupplied { get; }
|
||||
}
|
||||
private DataMembers mbr { get; }
|
||||
private List<TypeCodeDesc> transactionTypes_Full = new List<TypeCodeDesc>();
|
||||
private SbmInstanceConfig instanceConfig;
|
||||
private SbmOrganisationConfig organisationConfig;
|
||||
@@ -82,40 +90,39 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmSessionConsole(Sbm.SessionConfig sessionConfig, SbmVersion consoleVersion, ISbmUserOrganisationContext userContext)
|
||||
protected SbmSessionConsole(Sbm.SessionConfig sessionConfig, SbmVersion consoleVersion, SbmInternals internals)
|
||||
{
|
||||
mbr = new DataMembers(internals);
|
||||
this.SessionConfig = sessionConfig;
|
||||
this.AppVersion = new SbmVersion("BusinessMgr", Sbm.Version.GetFullVersion(), SacsSystem.AssemblyBuildAt);
|
||||
this.ConsoleVersion = consoleVersion;
|
||||
this.UserContext = userContext;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
if (internals != null) internals.Dispose(); internals = null;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public Sbm.SessionConfig SessionConfig { get; }
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
|
||||
public SbmVersion AppVersion { get; }
|
||||
public SbmVersion ConsoleVersion { get; }
|
||||
private SbmInternals Internals { get { return mbr.InternalsSupplied; } }
|
||||
public ISbmUserOrganisationContext UserContext { get { return Internals.UserContext; } }
|
||||
public SbmSessionContext SessionContext { get { return Internals.SessionContext; } }
|
||||
public SbmInstanceConfig InstanceConfig { get { if (instanceConfig == null) instanceConfig = SbmGlobals.Application.GetInstanceConfig(SessionContext); return instanceConfig; } }
|
||||
public SbmOrganisationConfig OrganisationConfig { get { if (organisationConfig == null) organisationConfig = SbmGlobals.Application.GetOrganisationConfig(UserContext); return organisationConfig; } }
|
||||
private SbmInternals Internals { get { if (internals == null) internals = new SbmInternals(UserContext); return internals; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C r e a t e C o n s o l e
|
||||
//-------------------------------------------------------------------
|
||||
public static SbmSessionConsole CreateConsole(ISbmUserOrganisationContext userContext)
|
||||
public static SbmSessionConsole CreateConsole(SbmInternals internals)
|
||||
{
|
||||
// Initialise console.
|
||||
SbmVersion consoleVersion = new SbmVersion("Standard", Sbm.Version.GetFullVersion(), SacsSystem.AssemblyBuildAt);
|
||||
return new SbmSessionConsole(Sbm.SessionConfig.Generic, consoleVersion, userContext);
|
||||
return new SbmSessionConsole(Sbm.SessionConfig.Generic, consoleVersion, internals);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -247,14 +254,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
{
|
||||
if (InstanceConfig.AllowApplicationOption(option, false))
|
||||
return true;
|
||||
return Internals.AccountsDfn.IsUsingSageInterface() && Internals.AccountsDfn.IsAssociationTypeManagedByAccounts(Sbm.AssociationType.Customer) && !Internals.AccountsDfn.UseLocalCustomerPricing();
|
||||
return Internals.AccountsConsole.IsUsingSageInterface() && Internals.AccountsConsole.IsAssociationTypeManagedByAccounts(Sbm.AssociationType.Customer) && !Internals.AccountsConsole.UseLocalCustomerPricing();
|
||||
}
|
||||
case Sbm.ConfigOption.SupplierPriceSet:
|
||||
case Sbm.ConfigOption.SupplierDiscount:
|
||||
{
|
||||
if (InstanceConfig.AllowApplicationOption(option, false))
|
||||
return true;
|
||||
return Internals.AccountsDfn.IsUsingSageInterface() && Internals.AccountsDfn.IsAssociationTypeManagedByAccounts(Sbm.AssociationType.Supplier) && !Internals.AccountsDfn.UseLocalSupplierPricing();
|
||||
return Internals.AccountsConsole.IsUsingSageInterface() && Internals.AccountsConsole.IsAssociationTypeManagedByAccounts(Sbm.AssociationType.Supplier) && !Internals.AccountsConsole.UseLocalSupplierPricing();
|
||||
}
|
||||
default:
|
||||
// Other options are not allowed by default.
|
||||
@@ -285,120 +292,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Consoles
|
||||
return new List<SaItemOptionDfn>();
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// C o d e T y p e s
|
||||
//-------------------------------------------------------------------
|
||||
// Application Code Types.
|
||||
public virtual List<CodeDesc> GetDefaultCodesOfType(Sbm.ApplCodeType type)
|
||||
{
|
||||
List<CodeDesc> codes = new List<CodeDesc>();
|
||||
switch (type)
|
||||
{
|
||||
case Sbm.ApplCodeType.ContactTitle:
|
||||
codes.Add("Mr", "Mr");
|
||||
codes.Add("Mrs", "Mrs");
|
||||
codes.Add("Ms", "Ms");
|
||||
codes.Add("Miss", "Miss");
|
||||
codes.Add("Mx", "Mx");
|
||||
codes.Add("Dr", "Dr");
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleCategory:
|
||||
/*
|
||||
codes.Add("10", "Mini");
|
||||
codes.Add("11", "Economy");
|
||||
codes.Add("12", "Compact");
|
||||
codes.Add("20", "Hatchback");
|
||||
codes.Add("21", "Saloon");
|
||||
codes.Add("22", "Estate");
|
||||
codes.Add("30", "Executive");
|
||||
codes.Add("50", "Intermediate");
|
||||
codes.Add("51", "Standard");
|
||||
codes.Add("52", "Full Size");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleMake:
|
||||
/*
|
||||
codes.Add("ACUR", "Acura");
|
||||
codes.Add("ALFA", "Alfa Romeo");
|
||||
codes.Add("ASTO", "Aston Martin");
|
||||
codes.Add("AUDI", "Audi");
|
||||
codes.Add("BMW", "BMW");
|
||||
codes.Add("BENT", "Bentley");
|
||||
codes.Add("BUIC", "Buick");
|
||||
codes.Add("CADI", "Cadillac");
|
||||
codes.Add("CATE", "Caterham");
|
||||
codes.Add("CHEV", "Chevrolet");
|
||||
codes.Add("CHRY", "Chrysler");
|
||||
codes.Add("CITR", "Citroen");
|
||||
codes.Add("DAEW", "Daewoo");
|
||||
codes.Add("DAF", "DAF");
|
||||
codes.Add("DAIH", "Daihatsu");
|
||||
codes.Add("DODG", "Dodge");
|
||||
codes.Add("FERR", "Ferrari");
|
||||
codes.Add("FIAT", "Fiat");
|
||||
codes.Add("FORD", "Ford");
|
||||
codes.Add("GENE", "General Motors");
|
||||
codes.Add("GEO", "Geo");
|
||||
codes.Add("GIBB", "Gibbs");
|
||||
codes.Add("HOND", "Honda");
|
||||
codes.Add("HYUN", "Hyundai");
|
||||
codes.Add("INFI", "Infiniti");
|
||||
codes.Add("ISUZ", "Isuzu");
|
||||
codes.Add("JAGU", "Jaguar");
|
||||
codes.Add("JEEP", "Jeep");
|
||||
codes.Add("JENS", "Jensen");
|
||||
codes.Add("KIA", "Kia");
|
||||
codes.Add("LDV", "LDV");
|
||||
codes.Add("LAND", "Land Rover");
|
||||
codes.Add("LEXU", "Lexus");
|
||||
codes.Add("LINC", "Lincoln");
|
||||
codes.Add("LOTU", "Lotus");
|
||||
codes.Add("MG R", "MG Rover");
|
||||
codes.Add("MAZD", "Mazda");
|
||||
codes.Add("MERB", "Mercedes");
|
||||
codes.Add("MERC", "Mercury");
|
||||
codes.Add("MINI", "Mini");
|
||||
codes.Add("MITS", "Mitsubishi");
|
||||
codes.Add("MORG", "Morgan");
|
||||
codes.Add("NISS", "Nissan");
|
||||
codes.Add("OLDS", "Oldsmobile");
|
||||
codes.Add("OPEL", "Opel");
|
||||
codes.Add("PEUG", "Peugeot");
|
||||
codes.Add("PLYM", "Plymouth");
|
||||
codes.Add("PONT", "Pontiac");
|
||||
codes.Add("PORS", "Porsche");
|
||||
codes.Add("RENA", "Renault");
|
||||
codes.Add("ROLL", "Rolls Royce");
|
||||
codes.Add("ROVE", "Rover");
|
||||
codes.Add("SAAB", "Saab");
|
||||
codes.Add("SATU", "Saturn");
|
||||
codes.Add("SEAT", "Seat");
|
||||
codes.Add("SKOD", "Skoda");
|
||||
codes.Add("SMAR", "Smart");
|
||||
codes.Add("SMIT", "Smith Electric Vehicles");
|
||||
codes.Add("SSAN", "SsangYong (Syuk Cars)");
|
||||
codes.Add("SUBA", "Subaru");
|
||||
codes.Add("SUZU", "Suzuki");
|
||||
codes.Add("TVR", "TVR");
|
||||
codes.Add("TATA", "Tata");
|
||||
codes.Add("TOYO", "Toyota");
|
||||
codes.Add("VAUX", "Vauxhall");
|
||||
codes.Add("VOLK", "Volkswagen");
|
||||
codes.Add("VOLV", "Volvo");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleServiceHistory:
|
||||
/*
|
||||
codes.Add("FMDSH", "Full main dealer service history");
|
||||
codes.Add("FSH", "Full service history");
|
||||
*/
|
||||
break;
|
||||
case Sbm.ApplCodeType.VehicleInsurance:
|
||||
break;
|
||||
}
|
||||
return codes;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// I t e m s
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Data;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Core
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Utilitiy functions relating to a core BusinessMgr database instance.
|
||||
/// <para>For instance:</para>
|
||||
/// <para>- Verifying repository status.</para>
|
||||
/// <para>- Initialisation of new repository.</para>
|
||||
/// <para>- Bringing static (tax codes etc) and reference data up to date.</para>
|
||||
/// </summary>
|
||||
public interface ISbmCoreInstanceConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Methods.
|
||||
|
||||
/// <summary>
|
||||
/// Is repository database valid.
|
||||
/// <para>- Contains core tables (Affiliate, Association, Commodity etc).</para>
|
||||
/// </summary>
|
||||
bool IsRepositoryValid();
|
||||
|
||||
/// <summary>
|
||||
/// Is repository database initialised.
|
||||
/// <para>- Has a valid internal association.</para>
|
||||
/// <para>- Has at least one user.</para>
|
||||
/// </summary>
|
||||
bool IsRepositoryInitialised();
|
||||
|
||||
/// <summary>
|
||||
/// Validate repository initialisation data.
|
||||
/// <para>- Organisation properties.</para>
|
||||
/// <para>- User properties.</para>
|
||||
/// <para>- User security properties.</para>
|
||||
/// </summary>
|
||||
bool ValidateRepositoryInitialisionData(SbmRepositoryInitialisationData initData);
|
||||
|
||||
/// <summary>
|
||||
/// Initialise repository.
|
||||
/// <para>- Organisation contact.</para>
|
||||
/// <para>- Internal association.</para>
|
||||
/// <para>- Security item and 'Super' group.</para>
|
||||
/// <para>- User contact.</para>
|
||||
/// <para>- User member association.</para>
|
||||
/// </summary>
|
||||
bool InitialiseRepository(SbmRepositoryInitialisationData initData);
|
||||
|
||||
/// <summary>
|
||||
/// Add User Account.
|
||||
/// </summary>
|
||||
bool AddUserAccount(SbmRepositoryPopulationData.UserAccount userAccount);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Data;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Core
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Utilitiy functions relating to the Demo BusinessMgr database instance.
|
||||
/// <para>For instance:</para>
|
||||
/// <para>- Database initialisation.</para>
|
||||
/// <para>- Populate example data.</para>
|
||||
/// <para>- Populate Demo Account User.</para>
|
||||
/// </summary>
|
||||
public interface ISbmDemoInstanceConsole
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
/// <summary>
|
||||
/// Is repository database valid.
|
||||
/// <para>- Contains core tables (Affiliate, Association, Commodity etc).</para>
|
||||
/// </summary>
|
||||
abstract bool IsRepositoryValid();
|
||||
|
||||
/// <summary>
|
||||
/// Prepare a suitable batch of data to populate the demo database.
|
||||
/// <br/>- Randomly crafted.
|
||||
/// <br/>- Selected from data stored on the Control database.
|
||||
/// </summary>
|
||||
abstract SbmRepositoryPopulationData PrepareDemoPopulationData();
|
||||
|
||||
/// <summary>
|
||||
/// Populate repository.
|
||||
/// <br/>- Initialise repository: Organisation contact, Internal association, Security item and 'Super' group, User contact, User member association.
|
||||
/// <br/>- Demo specific security.
|
||||
/// <br/>- Populate demo data, including Repository configuration.
|
||||
/// </summary>
|
||||
abstract bool PopulateRepository(SbmRepositoryPopulationData data);
|
||||
|
||||
public enum SecurityGroup { Standard, Super }
|
||||
/// <summary>
|
||||
/// Security Group codes - as set up during initialisation.
|
||||
/// </summary>
|
||||
abstract String GetSecurityGroupCode(SecurityGroup group);
|
||||
|
||||
/// <summary>
|
||||
/// Get Affiliate Owner Ids for Internal Associations.
|
||||
/// </summary>
|
||||
abstract HashSet<SysId> GetInternalAssociationAffiliateIdsOwner();
|
||||
|
||||
/// <summary>
|
||||
/// Add User Account.
|
||||
/// </summary>
|
||||
abstract bool AddUserAccount(SbmRepositoryPopulationData.UserAccount userAccount);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Organisation and User info for Repository initialisation.
|
||||
/// </summary>
|
||||
public class SbmRepositoryInitialisationData
|
||||
{
|
||||
// Organisation.
|
||||
public class OrganisationData
|
||||
{
|
||||
public String Name { get; set; }
|
||||
public String VatReg { get; set; }
|
||||
public String CompanyNo { get; set; }
|
||||
public String Website { get; set; }
|
||||
public SysId AffiliateId { get; set; }
|
||||
public SysId AssociationId { get; set; }
|
||||
}
|
||||
public OrganisationData Organisation { get; private set; } = new OrganisationData();
|
||||
public void ClearOrganisation() { Organisation = new OrganisationData(); }
|
||||
|
||||
// User.
|
||||
public class UserData
|
||||
{
|
||||
public SysId AffiliateId { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public String Email { get; set; }
|
||||
public SysId SecurityItemId { get; set; }
|
||||
public String Code { get; set; }
|
||||
public String Password { get; set; }
|
||||
public bool PasswordSet { get; set; }
|
||||
}
|
||||
public UserData User { get; private set; } = new UserData();
|
||||
public void ClearUser() { User = new UserData(); }
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,208 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Data
|
||||
{
|
||||
//=======================================================================
|
||||
/// <summary>
|
||||
/// Organisation and User info for Repository initialisation.
|
||||
/// </summary>
|
||||
public class SbmRepositoryPopulationData
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
public SbmRepositoryPopulationData() { }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Definitions.
|
||||
|
||||
// Repository configuration
|
||||
public class RepositoryConfigurationData
|
||||
{
|
||||
}
|
||||
|
||||
// Owner Organisation configuration
|
||||
public class OwnerConfigurationData
|
||||
{
|
||||
}
|
||||
|
||||
// User Account.
|
||||
public class UserAccount
|
||||
{
|
||||
public SysId AffiliateIdOwner { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public String Email { get; set; }
|
||||
public String MemberCode { get; set; }
|
||||
/// <summary>
|
||||
/// User (security) code defaults to Email if not specified.
|
||||
/// </summary>
|
||||
public String UserCode { get; set; }
|
||||
public String Password { get; set; }
|
||||
public String SecurityGroupCode { get; set; }
|
||||
}
|
||||
|
||||
// Contacts.
|
||||
public class AffiliateData
|
||||
{
|
||||
protected AffiliateData(Sbm.AffiliateType type) { this.Type = type; }
|
||||
public Sbm.AffiliateType Type { get; }
|
||||
|
||||
// Addresses.
|
||||
public List<AddressData> Addresses { get; } = new List<AddressData>();
|
||||
|
||||
// Associations - Customer.
|
||||
public CustomerData Customer { get; private set; }
|
||||
public void SetCustomer(String code)
|
||||
{
|
||||
Customer = new CustomerData() { Code = code };
|
||||
}
|
||||
public void ClearCustomer() { Customer = null; }
|
||||
|
||||
// Associations - Supplier.
|
||||
public SupplierData Supplier { get; private set; }
|
||||
public void SetSupplier(String code)
|
||||
{
|
||||
Supplier = new SupplierData() { Code = code };
|
||||
}
|
||||
public void ClearSupplier() { Supplier = null; }
|
||||
|
||||
// Associations - Member.
|
||||
public MemberData Member { get; private set; }
|
||||
public void SetMember(String code, String role)
|
||||
{
|
||||
Member = new MemberData() { Code = code, Role = role };
|
||||
}
|
||||
public void ClearMember() { Member = null; }
|
||||
}
|
||||
public class IndividualData : AffiliateData
|
||||
{
|
||||
public IndividualData() : base(Sbm.AffiliateType.Individual) { }
|
||||
public String Title { get; set; }
|
||||
public String Initials { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public String Email { get; set; }
|
||||
public String PhoneMain { get; set; }
|
||||
public String PhoneMobile { get; set; }
|
||||
}
|
||||
public class OrganisationData : AffiliateData
|
||||
{
|
||||
protected OrganisationData(Sbm.AffiliateType type) : base(type) { }
|
||||
public String Name { get; set; }
|
||||
public String Abbr { get; set; }
|
||||
public String Nature { get; set; }
|
||||
public String Contact { get; set; }
|
||||
public String PhoneMain { get; set; }
|
||||
public String PhoneAlt { get; set; }
|
||||
public String VatReg { get; set; }
|
||||
public String CompanyNo { get; set; }
|
||||
public String Website { get; set; }
|
||||
}
|
||||
public class CommercialOrganisationData : OrganisationData
|
||||
{
|
||||
public CommercialOrganisationData() : base(Sbm.AffiliateType.Commercial) { }
|
||||
}
|
||||
public class CharityOrganisationData : OrganisationData
|
||||
{
|
||||
public CharityOrganisationData() : base(Sbm.AffiliateType.Charity) { }
|
||||
}
|
||||
|
||||
// Addresses.
|
||||
public class AddressData
|
||||
{
|
||||
protected AddressData(Sbm.AddressType type)
|
||||
{
|
||||
this.Type = type;
|
||||
}
|
||||
public Sbm.AddressType Type { get; }
|
||||
public String Line1 { get; set; }
|
||||
public String Line2 { get; set; }
|
||||
public String Line3 { get; set; }
|
||||
public String City { get; set; }
|
||||
public String Province { get; set; }
|
||||
public String Postcode { get; set; }
|
||||
public String Country { get; set; }
|
||||
}
|
||||
|
||||
// Associations.
|
||||
public class AssociationData
|
||||
{
|
||||
protected AssociationData(Sbm.AssociationType type)
|
||||
{
|
||||
this.Type = type;
|
||||
}
|
||||
public Sbm.AssociationType Type { get; }
|
||||
public String Code { get; set; }
|
||||
public String Location { get; set; }
|
||||
public String Role { get; set; }
|
||||
public String PhoneMain { get; set; }
|
||||
}
|
||||
public class CustomerData : AssociationData
|
||||
{
|
||||
public CustomerData() : base(Sbm.AssociationType.Customer) { }
|
||||
}
|
||||
public class SupplierData : AssociationData
|
||||
{
|
||||
public SupplierData() : base(Sbm.AssociationType.Supplier) { }
|
||||
}
|
||||
public class MemberData : AssociationData
|
||||
{
|
||||
public MemberData() : base(Sbm.AssociationType.Member) { }
|
||||
}
|
||||
|
||||
// Commodities.
|
||||
public class CommodityData
|
||||
{
|
||||
protected CommodityData(Sbm.CommodityType type)
|
||||
{
|
||||
this.Type = type;
|
||||
}
|
||||
public Sbm.CommodityType Type { get; }
|
||||
public String Code { get; set; }
|
||||
public String Caption { get; set; }
|
||||
public decimal SalePrice { get; set; }
|
||||
}
|
||||
public class StockCommodityData : CommodityData
|
||||
{
|
||||
public StockCommodityData() : base(Sbm.CommodityType.Stock) { }
|
||||
}
|
||||
public class NonStockCommodityData : CommodityData
|
||||
{
|
||||
public NonStockCommodityData() : base(Sbm.CommodityType.NonStock) { }
|
||||
}
|
||||
public class ServiceCommodityData : CommodityData
|
||||
{
|
||||
public ServiceCommodityData() : base(Sbm.CommodityType.Service) { }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
/// <summary>Repository initialisation data.</summary>
|
||||
public SbmRepositoryInitialisationData InitData { get; } = new SbmRepositoryInitialisationData();
|
||||
public SysId AffiliateIdOrganisation { get { return InitData.Organisation.AffiliateId; } }
|
||||
|
||||
/// <summary>Repository congiruation options.</summary>
|
||||
public RepositoryConfigurationData RepositoryConfiguration { get; } = new RepositoryConfigurationData();
|
||||
|
||||
/// <summary>Owner configuration options.</summary>
|
||||
public OwnerConfigurationData OwnerConfiguration { get; } = new OwnerConfigurationData();
|
||||
|
||||
/// <summary>Individuals.</summary>
|
||||
public List<IndividualData> Individuals { get; } = new List<IndividualData>();
|
||||
|
||||
/// <summary>Organisations.</summary>
|
||||
public List<OrganisationData> Organisations { get; } = new List<OrganisationData>();
|
||||
|
||||
/// <summary>Commodities.</summary>
|
||||
public List<CommodityData> Commodities { get; } = new List<CommodityData>();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -28,6 +28,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Helpers
|
||||
Email_Header_Html,
|
||||
Email_Footer_Html,
|
||||
// Email templates.
|
||||
Email_DemoAccountRequest_Html,
|
||||
Email_DemoAccountRegister_Html,
|
||||
Email_RequestPassword_Html,
|
||||
// Data - CSV files etc.
|
||||
}
|
||||
@@ -48,7 +50,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Helpers
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public static Assembly Assembly { get { return typeof(SacsResourceHelper).GetTypeInfo().Assembly; } }
|
||||
public static Assembly Assembly { get { return typeof(SbmResourceHelper).GetTypeInfo().Assembly; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Text resources.
|
||||
@@ -76,20 +78,32 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Helpers
|
||||
|
||||
// Email stylesheet.
|
||||
case TextResource.Email_Main_Css:
|
||||
partialPath = "Email.Style";
|
||||
resourceFilename = "sbm-email-main.css";
|
||||
break;
|
||||
// Email partial content.
|
||||
case TextResource.Email_Header_Html:
|
||||
partialPath = "Email.Shared";
|
||||
resourceFilename = "sbm-email-header.html";
|
||||
break;
|
||||
case TextResource.Email_Footer_Html:
|
||||
partialPath = "Email.Shared";
|
||||
resourceFilename = "sbm-email-footer.html";
|
||||
break;
|
||||
// Email templates.
|
||||
case TextResource.Email_DemoAccountRequest_Html:
|
||||
partialPath = "Email.Security";
|
||||
resourceFilename = "sbm-email-demo-account-request.html";
|
||||
break;
|
||||
case TextResource.Email_DemoAccountRegister_Html:
|
||||
partialPath = "Email.Security";
|
||||
resourceFilename = "sbm-email-demo-account-register.html";
|
||||
break;
|
||||
case TextResource.Email_RequestPassword_Html:
|
||||
partialPath = "Email.Security";
|
||||
resourceFilename = "sbm-email-request-password.html";
|
||||
break;
|
||||
// Data.
|
||||
// Data.
|
||||
}
|
||||
if (!StringUtil.IsEmpty(resourceFilename))
|
||||
{
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Account manager - Account Registrations.
|
||||
//=======================================================================
|
||||
partial class SbmcAccountMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual items.
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool AccountRegistrationExistsById(SysId accountRegistrationId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(accountRegistrationId)) return false;
|
||||
SbmcAccountRegistration.Params prmAccountRegistration = new SbmcAccountRegistration.Params();
|
||||
prmAccountRegistration.IdsIncluded.Add(accountRegistrationId);
|
||||
prmAccountRegistration.StatusCat = SbmcAccountRegistration.StatusCat.Any;
|
||||
return GetAccountRegistrationCount(prmAccountRegistration) == 1;
|
||||
}
|
||||
public bool AccountRegistrationExistsByRegisterAccountToken(Guid registerAccountToken)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (registerAccountToken == Guid.Empty) return false;
|
||||
SbmcAccountRegistration.Params prmAccountRegistration = new SbmcAccountRegistration.Params();
|
||||
prmAccountRegistration.RegisterAccountToken = registerAccountToken;
|
||||
prmAccountRegistration.StatusCat = SbmcAccountRegistration.StatusCat.NotDeleted;
|
||||
return GetAccountRegistrationCount(prmAccountRegistration) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
public abstract SbmcAccountRegistration GetAccountRegistration(SbmcAccountRegistration.Params prm);
|
||||
public SbmcAccountRegistration GetAccountRegistrationById(SysId accountRegistrationId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(accountRegistrationId)) return null;
|
||||
SbmcAccountRegistration.Params prmAccountRegistration = new SbmcAccountRegistration.Params();
|
||||
prmAccountRegistration.IdsIncluded.Add(accountRegistrationId);
|
||||
prmAccountRegistration.StatusCat = SbmcAccountRegistration.StatusCat.Any;
|
||||
return GetAccountRegistration(prmAccountRegistration);
|
||||
}
|
||||
/// <summary>
|
||||
/// Retrieve the most recent registration details for the email address with the specified status.
|
||||
/// <para>- Awaiting: registration is incomplete and can potentially be reused.</para>
|
||||
/// </summary>
|
||||
public SbmcAccountRegistration GetAccountRegistrationByEmailStatus(String emailAddress, SbmcAccountRegistration.StatusCat statusCat = SbmcAccountRegistration.StatusCat.AwaitingOnly)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (StringUtil.IsBlank(emailAddress)) return null;
|
||||
SbmcAccountRegistration.Params prmAccountRegistration = new SbmcAccountRegistration.Params();
|
||||
prmAccountRegistration.EmailAddress = emailAddress;
|
||||
prmAccountRegistration.StatusCat = statusCat;
|
||||
prmAccountRegistration.SortColumns.Add(GetAccountRegistrationColumnDfn(SbmcAccountRegistration.Column.Id));
|
||||
prmAccountRegistration.SortColumns.First().SortAscending = false;
|
||||
prmAccountRegistration.ResultsPaging.Set(1, 1);
|
||||
return GetAccountRegistrationList(prmAccountRegistration).FirstOrDefault();
|
||||
}
|
||||
public SbmcAccountRegistration GetAccountRegistrationByRegisterAccountToken(Guid registerAccountToken)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (registerAccountToken == Guid.Empty) return null;
|
||||
SbmcAccountRegistration.Params prmAccountRegistration = new SbmcAccountRegistration.Params();
|
||||
prmAccountRegistration.RegisterAccountToken = registerAccountToken;
|
||||
prmAccountRegistration.StatusCat = SbmcAccountRegistration.StatusCat.NotDeleted;
|
||||
return GetAccountRegistration(prmAccountRegistration);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Item.
|
||||
public abstract SbmcAccountRegistration CreateAccountRegistration(String emailAddress, Guid registerAccountToken);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Item data.
|
||||
public bool IsValidAccountRegistration(SbmcAccountRegistration accountRegistration)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (accountRegistration == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
return IsValidAccountRegistrationData(accountRegistration.GetData(), new SbmcAccountRegistration.ErrField());
|
||||
}
|
||||
public virtual bool IsValidAccountRegistrationData(SbmcAccountRegistration.Data data, SbmcAccountRegistration.ErrField errField)
|
||||
{
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
|
||||
// Name.
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_FirstName)))
|
||||
{
|
||||
errField.FirstName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_LastName)))
|
||||
{
|
||||
errField.LastName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Phone numbers.
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone number", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt number", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_PhoneAlt)))
|
||||
{
|
||||
errField.PhoneAlt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Registration.
|
||||
if (errField.RequestAccountAt != SacsHierarchyItem.ValidValue.Ignore && !DateUtil.IsValid(data.RequestAccountAt))
|
||||
{
|
||||
errField.AccountPasswordSalt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("request account time missing");
|
||||
}
|
||||
if (errField.RegisterAccountToken != SacsHierarchyItem.ValidValue.Ignore && data.RegisterAccountToken == Guid.Empty)
|
||||
{
|
||||
errField.AccountPasswordSalt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("register account token missing");
|
||||
}
|
||||
|
||||
// Security.
|
||||
if (errField.AccountPasswordSalt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountPasswordSalt, "account password salt", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_AccountPasswordSalt)))
|
||||
{
|
||||
errField.AccountPasswordSalt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountPasswordHash != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountPasswordHash, "account password hash", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_AccountPasswordHash)))
|
||||
{
|
||||
errField.AccountPasswordHash = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.AccountRegistration_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmcAccountRegistration.ValidStatuses.Contains(data.Status))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState(ErrorMessage.InvalidStatus);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item database interface.
|
||||
public abstract bool InsertAccountRegistration(SbmcAccountRegistration accountRegistration, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateAccountRegistration(SbmcAccountRegistration accountRegistration, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool AccountRegistrationCanBeDeleted(SbmcAccountRegistration accountRegistration)
|
||||
{
|
||||
if (accountRegistration == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteAccountRegistration(SbmcAccountRegistration accountRegistration, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetAccountRegistrationColumnDfn(SbmcAccountRegistration.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetAccountRegistrationQueryFilter(SbmcAccountRegistration.Params prm);
|
||||
public abstract long GetAccountRegistrationCount(SbmcAccountRegistration.Params prm);
|
||||
public abstract List<SbmcAccountRegistration> GetAccountRegistrationList(SbmcAccountRegistration.Params prm);
|
||||
public abstract DbResultSet ExecuteAccountRegistrationQuery(List<ColumnDfn> columns, SbmcAccountRegistration.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Data values.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public DataValue GetAccountRegistrationDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SbmcAccountRegistration.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SbmcAccountRegistration.Column.Notes:
|
||||
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
|
||||
break;
|
||||
|
||||
// Status.
|
||||
case SbmcAccountRegistration.Column.Status_Desc:
|
||||
case SbmcAccountRegistration.Column.Status_Ind:
|
||||
{
|
||||
String statusCode = values.GetValue(column.DataName).ToString();
|
||||
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
|
||||
if (column.Id == (int)SbmcAccountRegistration.Column.Status_Desc)
|
||||
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
|
||||
else if (column.Id == (int)SbmcAccountRegistration.Column.Status_Ind)
|
||||
value = new DataValue(SbmcAccountRegistration.GetStatusTriState(status));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
default:
|
||||
value = values.GetValue(column.DataName);
|
||||
break;
|
||||
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -11,13 +11,15 @@ using System.Net.Mail;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Account manager - User Accounts.
|
||||
//=======================================================================
|
||||
partial class SbmcAccountMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual userAccounts.
|
||||
// Retrieve individual items.
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount exists.
|
||||
// Item exists.
|
||||
public bool UserAccountExistsById(SysId userAccountId)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -27,39 +29,18 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool UserAccountExistsByUserId(SysId userAccountIdOwner)
|
||||
public bool UserAccountExistsByEmailAddress(String emailAddress)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(userAccountIdOwner)) return false;
|
||||
if (StringUtil.IsBlank(emailAddress)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.IdsIncluded.Add(userAccountIdOwner);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool OrganisationExistsByName(String organisationName, SysId userAccountIdExclude)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StringUtil.IsEmpty(organisationName) || !SysId.IsValid(userAccountIdExclude)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.Name = organisationName;
|
||||
prmUserAccount.IdsExcluded.Add(userAccountIdExclude);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
public bool IndividualExistsByName(String firstName, String lastName, SysId userAccountIdExclude)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!StringUtil.IsEmpty(firstName) || !StringUtil.IsEmpty(lastName) || !SysId.IsValid(userAccountIdExclude)) return false;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.Name = firstName;
|
||||
prmUserAccount.Name = lastName;
|
||||
prmUserAccount.IdsExcluded.Add(userAccountIdExclude);
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
prmUserAccount.EmailAddress = emailAddress;
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.NotDeleted;
|
||||
return GetUserAccountCount(prmUserAccount) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get UserAccount.
|
||||
// Get Item.
|
||||
public abstract SbmcUserAccount GetUserAccount(SbmcUserAccount.Params prm);
|
||||
public SbmcUserAccount GetUserAccountById(SysId userAccountId)
|
||||
{
|
||||
@@ -76,16 +57,16 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
if (StringUtil.IsBlank(emailAddress)) return null;
|
||||
SbmcUserAccount.Params prmUserAccount = new SbmcUserAccount.Params();
|
||||
prmUserAccount.EmailAddress = emailAddress;
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.Any;
|
||||
prmUserAccount.StatusCat = SbmcUserAccount.StatusCat.NotDeleted;
|
||||
return GetUserAccount(prmUserAccount);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create UserAccount.
|
||||
// Create Item.
|
||||
public abstract SbmcUserAccount CreateUserAccount();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate UserAccount data.
|
||||
// Validate Item data.
|
||||
public bool IsValidUserAccount(SbmcUserAccount userAccount)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -94,9 +75,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
public virtual bool IsValidUserAccountData(SbmcUserAccount.Data data, SbmcUserAccount.ErrField errField)
|
||||
{
|
||||
// UserAccount properties.
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
|
||||
// Name.
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "title", (long)SbmDbDfn_Control.GetColTextLen(SbmDbDfn_Control.ColumnIdx.UserAccount_Title)))
|
||||
@@ -160,19 +141,19 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount database interface.
|
||||
// Item database interface.
|
||||
public abstract bool InsertUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool UserAccountCanBeDeleted(SbmcUserAccount userAccount)
|
||||
{
|
||||
if (userAccount == null) return SetErrorState("item not specified");
|
||||
if (userAccount == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteUserAccount(SbmcUserAccount userAccount, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// UserAccount list.
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetUserAccountColumnDfn(SbmcUserAccount.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetUserAccountQueryFilter(SbmcUserAccount.Params prm);
|
||||
public abstract long GetUserAccountCount(SbmcUserAccount.Params prm);
|
||||
@@ -180,7 +161,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
public abstract DbResultSet ExecuteUserAccountQuery(List<ColumnDfn> columns, SbmcUserAccount.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
// Data values.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
|
||||
@@ -12,13 +12,13 @@ using System.Net.Mail;
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Instance Manager - Owners.
|
||||
// Control Instance manager - Owners.
|
||||
//=======================================================================
|
||||
partial class SbmcInstanceMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Owner exists.
|
||||
public bool OwnerExistsById(SysId ownerId)
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool OwnerExistsById(SysId ownerId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(ownerId)) return false;
|
||||
@@ -28,9 +28,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return GetOwnerCount(prmOwner) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Owner.
|
||||
public abstract SbmcOwner GetOwner(SbmcOwner.Params prm);
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
public abstract SbmcOwner GetOwner(SbmcOwner.Params prm);
|
||||
public SbmcOwner GetOwnerById(SysId ownerId)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -41,13 +41,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return GetOwner(prmOwner);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Owner.
|
||||
public abstract SbmcOwner CreateOwner();
|
||||
//-------------------------------------------------------------------
|
||||
// Create Item.
|
||||
public abstract SbmcOwner CreateOwner();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Owner data.
|
||||
public bool IsValidOwner(SbmcOwner owner)
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Item data.
|
||||
public bool IsValidOwner(SbmcOwner owner)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (owner == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
@@ -55,9 +55,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
public virtual bool IsValidOwnerData(SbmcOwner.Data data, SbmcOwner.ErrField errField)
|
||||
{
|
||||
// Owner properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
|
||||
// Contact.
|
||||
|
||||
@@ -109,28 +109,28 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Owner owner interface.
|
||||
public abstract bool InsertOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
//-------------------------------------------------------------------
|
||||
// Owner Item interface.
|
||||
public abstract bool InsertOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool OwnerCanBeDeleted(SbmcOwner owner)
|
||||
{
|
||||
if (owner == null) return SetErrorState("item not specified");
|
||||
if (owner == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteOwner(SbmcOwner owner, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Owner list.
|
||||
public abstract ColumnDfn GetOwnerColumnDfn(SbmcOwner.Column columnId, String caption = "", int width = 0);
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetOwnerColumnDfn(SbmcOwner.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetOwnerQueryFilter(SbmcOwner.Params prm);
|
||||
public abstract long GetOwnerCount(SbmcOwner.Params prm);
|
||||
public abstract List<SbmcOwner> GetOwnerList(SbmcOwner.Params prm);
|
||||
public abstract DbResultSet ExecuteOwnerQuery(List<ColumnDfn> columns, SbmcOwner.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
// Data values.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
|
||||
@@ -12,13 +12,13 @@ using System.Net.Mail;
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control - Instance Manager - Repositories.
|
||||
// Control Instance manager - Repositories.
|
||||
//=======================================================================
|
||||
partial class SbmcInstanceMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Repository exists.
|
||||
public bool RepositoryExistsById(SysId repositoryId)
|
||||
//-------------------------------------------------------------------
|
||||
// Item exists.
|
||||
public bool RepositoryExistsById(SysId repositoryId)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (!SysId.IsValid(repositoryId)) return false;
|
||||
@@ -37,9 +37,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return GetRepositoryCount(prmRepository) == 1;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get Repository.
|
||||
public abstract SbmcRepository GetRepository(SbmcRepository.Params prm);
|
||||
//-------------------------------------------------------------------
|
||||
// Get Item.
|
||||
public abstract SbmcRepository GetRepository(SbmcRepository.Params prm);
|
||||
public SbmcRepository GetRepositoryById(SysId repositoryId)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -59,13 +59,13 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return GetRepository(prmRepository);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create Repository.
|
||||
public abstract SbmcRepository CreateRepository();
|
||||
//-------------------------------------------------------------------
|
||||
// Create Item.
|
||||
public abstract SbmcRepository CreateRepository();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Repository data.
|
||||
public bool IsValidRepository(SbmcRepository repository)
|
||||
//-------------------------------------------------------------------
|
||||
// Validate Item data.
|
||||
public bool IsValidRepository(SbmcRepository repository)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (repository == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
@@ -73,9 +73,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
public virtual bool IsValidRepositoryData(SbmcRepository.Data data, SbmcRepository.ErrField errField)
|
||||
{
|
||||
// Repository properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
|
||||
// Owner.
|
||||
if (!SysId.IsValid(data.OwnerId)) return SetErrorState("Owner must be specified");
|
||||
@@ -137,28 +137,28 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository repository interface.
|
||||
public abstract bool InsertRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
//-------------------------------------------------------------------
|
||||
// Repository Item interface.
|
||||
public abstract bool InsertRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool UpdateRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool RepositoryCanBeDeleted(SbmcRepository repository)
|
||||
{
|
||||
if (repository == null) return SetErrorState("item not specified");
|
||||
if (repository == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteRepository(SbmcRepository repository, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Repository list.
|
||||
public abstract ColumnDfn GetRepositoryColumnDfn(SbmcRepository.Column columnId, String caption = "", int width = 0);
|
||||
//-------------------------------------------------------------------
|
||||
// Item list.
|
||||
public abstract ColumnDfn GetRepositoryColumnDfn(SbmcRepository.Column columnId, String caption = "", int width = 0);
|
||||
public abstract List<String> GetRepositoryQueryFilter(SbmcRepository.Params prm);
|
||||
public abstract long GetRepositoryCount(SbmcRepository.Params prm);
|
||||
public abstract List<SbmcRepository> GetRepositoryList(SbmcRepository.Params prm);
|
||||
public abstract DbResultSet ExecuteRepositoryQuery(List<ColumnDfn> columns, SbmcRepository.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
// Data values.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
|
||||
@@ -12,7 +12,7 @@ using System.Net.Mail;
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
//=======================================================================
|
||||
// Control Item Manager - ItemParams.
|
||||
// Control Item manager - Item Params.
|
||||
//=======================================================================
|
||||
partial class SbmcItemMgr
|
||||
{
|
||||
@@ -29,7 +29,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get item.
|
||||
// Get Item.
|
||||
public abstract SbmcItemParam GetItemParam(SbmcItemParam.Params prm);
|
||||
public SbmcItemParam GetItemParamById(SysId id)
|
||||
{
|
||||
@@ -42,11 +42,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Create item.
|
||||
// Create Item.
|
||||
public abstract SbmcItemParam CreateItemParam(ItemId itemId);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate item data.
|
||||
// Validate Item data.
|
||||
public bool IsValidItemParam(SbmcItemParam itemParam)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -57,7 +57,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
{
|
||||
// Item properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
|
||||
// Item.
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
if (!ItemId.IsValid(data.ItemId))
|
||||
{
|
||||
errField.Context = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item Id must be specified");
|
||||
return SetErrorState(Msg_ItemIdNotSpecified);
|
||||
}
|
||||
if (!SbmcItemParam.ValidItemTypes.Contains((SbmcHierarchyItem.ItemType)data.ItemId.Type))
|
||||
{
|
||||
@@ -121,7 +121,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
public abstract bool UpdateItemParam(SbmcItemParam itemParam, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool ItemParamCanBeDeleted(SbmcItemParam itemParam)
|
||||
{
|
||||
if (itemParam == null) return SetErrorState("item not specified");
|
||||
if (itemParam == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
//ClearErrorState();
|
||||
return true;
|
||||
}
|
||||
@@ -136,7 +136,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control
|
||||
public abstract DbResultSet ExecuteItemParamQuery(List<ColumnDfn> columns, SbmcItemParam.Params prm);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// D a t a V a l u e s
|
||||
// Data values.
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ItemType < 1)
|
||||
{
|
||||
errField.ItemType = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item type must be supplied");
|
||||
return SetErrorState(Msg_ItemTypeNotSpecified);
|
||||
}
|
||||
}
|
||||
if (errField.ItemId != SacsHierarchyItem.ValidValue.Ignore)
|
||||
@@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (!SysId.IsValid(data.ItemId))
|
||||
{
|
||||
errField.ItemId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item Id must be specified");
|
||||
return SetErrorState(Msg_ItemIdNotSpecified);
|
||||
}
|
||||
}
|
||||
if (errField.AddressType != SacsHierarchyItem.ValidValue.Ignore)
|
||||
@@ -91,102 +91,102 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Address type must be supplied");
|
||||
}
|
||||
}
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "reference", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_RefExt)))
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_RefExt)))
|
||||
{
|
||||
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Name)))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Name)))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DescBrief)))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DescBrief)))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Line1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line1, "line 1", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line1), true))
|
||||
if (errField.Line1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line1, "line 1", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line1), true))
|
||||
{
|
||||
errField.Line1 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Line2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line2, "line 2", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line2)))
|
||||
if (errField.Line2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line2, "line 2", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line2)))
|
||||
{
|
||||
errField.Line2 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Line3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line3, "line 3", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line3)))
|
||||
if (errField.Line3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Line3, "line 3", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Line3)))
|
||||
{
|
||||
errField.Line3 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.City != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.City, "city", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_City)))
|
||||
if (errField.City != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.City, "city", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_City)))
|
||||
{
|
||||
errField.City = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Province != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Province, "province", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Province)))
|
||||
if (errField.Province != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Province, "province", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Province)))
|
||||
{
|
||||
errField.Province = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Postcode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Postcode, "postcode", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Postcode)))
|
||||
if (errField.Postcode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Postcode, "postcode", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Postcode)))
|
||||
{
|
||||
errField.Postcode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Country != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Country, "country", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Country)))
|
||||
if (errField.Country != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Country, "country", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Country)))
|
||||
{
|
||||
errField.Country = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Contact != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Contact, "contact", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Contact)))
|
||||
if (errField.Contact != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Contact, "contact", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Contact)))
|
||||
{
|
||||
errField.Contact = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Phone != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Phone, "phone", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Phone)))
|
||||
if (errField.Phone != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Phone, "phone", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Phone)))
|
||||
{
|
||||
errField.Phone = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Fax != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Fax, "fax", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Fax)))
|
||||
if (errField.Fax != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Fax, "fax", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Fax)))
|
||||
{
|
||||
errField.Fax = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Email)))
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Email)))
|
||||
{
|
||||
errField.Email = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountManagerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountManagerCode, " account manager phone", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_AccountManagerCode)))
|
||||
if (errField.AccountManagerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountManagerCode, " account manager phone", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_AccountManagerCode)))
|
||||
{
|
||||
errField.AccountManagerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountHandlerCode, "account handler phone", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode)))
|
||||
if (errField.AccountHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountHandlerCode, "account handler phone", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_AccountHandlerCode)))
|
||||
{
|
||||
errField.AccountHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area phone", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_ContactAreaCode)))
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area phone", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_ContactAreaCode)))
|
||||
{
|
||||
errField.ContactAreaCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactHandlerCode, "contact handler phone", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode)))
|
||||
if (errField.ContactHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactHandlerCode, "contact handler phone", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_ContactHandlerCode)))
|
||||
{
|
||||
errField.ContactHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DeliveryTypeCode)))
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DeliveryTypeCode)))
|
||||
{
|
||||
errField.DeliveryTypeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book-in code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DeliveryBookInCode)))
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book-in code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_DeliveryBookInCode)))
|
||||
{
|
||||
errField.DeliveryBookInCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -200,14 +200,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Address_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -7,7 +7,6 @@ using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm.Config;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
@@ -28,6 +27,28 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return "";
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public void SetAffiliateName(SbmAffiliate affiliate, String name)
|
||||
{
|
||||
if (affiliate.IsIndividual())
|
||||
{
|
||||
name = name.ReplaceAll(",,", ",").ReplaceAll(" ", " ");
|
||||
if (name.IndexOf(",", 0) >= 0)
|
||||
{
|
||||
String[] nameParts = name.Split(',');
|
||||
affiliate.LastName = nameParts[0].TrimAll().CapitaliseFirst().Left((int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
affiliate.FirstName = nameParts[1].TrimAll().CapitaliseFirst().Left((int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName));
|
||||
}
|
||||
else if (name.IndexOf(" ", 0) >= 0)
|
||||
{
|
||||
String[] nameParts = name.Split(' ');
|
||||
affiliate.FirstName = nameParts[0].TrimAll().CapitaliseFirst().Left((int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName));
|
||||
affiliate.LastName = nameParts[1].TrimAll().CapitaliseFirst().Left((int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
}
|
||||
else affiliate.LastName = name.TrimAll().CapitaliseFirst().Left((int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName));
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Child affiliates (subordinate organisations).
|
||||
public abstract long GetChildAffiliateCount(SysId affiliateId);
|
||||
@@ -189,7 +210,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
// Affiliate properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
// Validate the type:
|
||||
if (errField.Type != SacsHierarchyItem.ValidValue.Ignore && (short)data.AffiliateType < 1)
|
||||
{
|
||||
@@ -201,95 +222,95 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
// Validate the user id.
|
||||
if (!SbmAffiliate.IsIndividual(data.AffiliateType) && SysId.IsValid(data.UserId)) return SetErrorState("only individuals can have user ids");
|
||||
if (errField.Abbr != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Abbr, "abbreviation", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Abbrev)))
|
||||
if (errField.Abbr != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Abbr, "abbreviation", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Abbrev)))
|
||||
{
|
||||
errField.Abbr = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Validate the affiliate names.
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Name), !SbmAffiliate.IsIndividual(data.AffiliateType)))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Name), !SbmAffiliate.IsIndividual(data.AffiliateType)))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (!SbmAffiliate.IsIndividual(data.AffiliateType) && !data.Title.IsEmpty()) return SetErrorState("only individuals can have a Title");
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "title", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Title)))
|
||||
if (errField.Title != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Title, "title", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Title)))
|
||||
{
|
||||
errField.Title = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Initials != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Initials, "initials", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Initials)))
|
||||
if (errField.Initials != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Initials, "initials", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Initials)))
|
||||
{
|
||||
errField.Initials = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName), SbmAffiliate.IsIndividual(data.AffiliateType)))
|
||||
if (errField.LastName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.LastName, "last name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_LastName), SbmAffiliate.IsIndividual(data.AffiliateType)))
|
||||
{
|
||||
errField.LastName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName)))
|
||||
if (errField.FirstName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FirstName, "first name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_FirstName)))
|
||||
{
|
||||
errField.FirstName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Validate the text attributes.
|
||||
if (errField.Salutation != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Salutation, "salutation", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Salutation)))
|
||||
if (errField.Salutation != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Salutation, "salutation", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Salutation)))
|
||||
{
|
||||
errField.Salutation = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Nature != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Nature, "nature", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Nature)))
|
||||
if (errField.Nature != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Nature, "nature", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Nature)))
|
||||
{
|
||||
errField.Nature = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.CompanyNo != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CompanyNo, "company no", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_CompanyNo)))
|
||||
if (errField.CompanyNo != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CompanyNo, "company no", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_CompanyNo)))
|
||||
{
|
||||
errField.CompanyNo = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.VatReg != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.VatReg, "vat no", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_VatReg)))
|
||||
if (errField.VatReg != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.VatReg, "vat no", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_VatReg)))
|
||||
{
|
||||
errField.Nature = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Contact != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Contact, "contact", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Contact)))
|
||||
if (errField.Contact != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Contact, "contact", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Contact)))
|
||||
{
|
||||
errField.Contact = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneMain)))
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneAlt)))
|
||||
if (errField.PhoneAlt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneAlt, "alt number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneAlt)))
|
||||
{
|
||||
errField.PhoneAlt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneFax != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneFax, "fax number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneFax)))
|
||||
if (errField.PhoneFax != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneFax, "fax number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneFax)))
|
||||
{
|
||||
errField.PhoneFax = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneMobile != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMobile, "mobile number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile)))
|
||||
if (errField.PhoneMobile != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMobile, "mobile number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneMobile)))
|
||||
{
|
||||
errField.PhoneMobile = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneDirect != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneDirect, "direct number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneDirect)))
|
||||
if (errField.PhoneDirect != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneDirect, "direct number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_PhoneDirect)))
|
||||
{
|
||||
errField.PhoneDirect = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Email)))
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Email)))
|
||||
{
|
||||
errField.Email = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Website != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Website, "website", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Website)))
|
||||
if (errField.Website != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Website, "website", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Website)))
|
||||
{
|
||||
errField.Website = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -309,36 +330,36 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.BirthYear = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Birth year must not be negative");
|
||||
}
|
||||
if (errField.MaritalStatus != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MaritalStatus, "marital status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_MaritalStatus)))
|
||||
if (errField.MaritalStatus != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MaritalStatus, "marital status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_MaritalStatus)))
|
||||
{
|
||||
errField.MaritalStatus = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Spouse != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Spouse, "Partner", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Spouse)))
|
||||
if (errField.Spouse != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Spouse, "Partner", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Spouse)))
|
||||
{
|
||||
errField.Spouse = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Children != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Children, "Children", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Children)))
|
||||
if (errField.Children != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Children, "Children", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Children)))
|
||||
{
|
||||
errField.Children = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Hometown != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Hometown, "Hometown", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Hometown)))
|
||||
if (errField.Hometown != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Hometown, "Hometown", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Hometown)))
|
||||
{
|
||||
errField.Hometown = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Affiliate_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -374,7 +395,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public abstract bool UpdateAffiliate(SbmAffiliate affiliate, DbUpdateInfo dbUpdateInfo);
|
||||
public virtual bool AffiliateCanBeDeleted(SbmAffiliate affiliate)
|
||||
{
|
||||
if (affiliate == null) return SetErrorState("item not specified");
|
||||
if (affiliate == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
if (AffiliateHasChildAffiliates(affiliate.Id)) return SetErrorState("item has child organisations");
|
||||
if (AffiliateOwnerHasAssociations(affiliate.Id, Sbm.AssociationType.Any, false)) return SetErrorState("item own associations");
|
||||
if (AffiliateTargetHasAssociations(affiliate.Id, Sbm.AssociationType.Any, false)) return SetErrorState("item is the target of associations");
|
||||
@@ -407,6 +428,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
List<SysIdString> affiliateIdNames = new List<SysIdString>();
|
||||
SbmAffiliate.Params prmAffiliate = new SbmAffiliate.Params();
|
||||
prmAffiliate.AffiliateIdAssocTarget = affiliateIdSupervisor;
|
||||
prmAffiliate.AssociationType = Sbm.AssociationType.Member;
|
||||
prmAffiliate.TargetSupervised = SbmAffiliate.Params.Supervised.Yes;
|
||||
foreach (SbmAffiliate affiliate in GetAffiliateList(prmAffiliate))
|
||||
{
|
||||
|
||||
@@ -0,0 +1,511 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.ReferenceData;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.Data.SbmRepositoryPopulationData;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
//=======================================================================
|
||||
// Account manager - Associations - Utilities.
|
||||
//=======================================================================
|
||||
partial class SbmAccountMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
public static bool IsValidCode(String code)
|
||||
{
|
||||
if (StringUtil.IsEmpty(code)) return false;
|
||||
if (code != code.Trim()) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Association types in use.
|
||||
public abstract List<Sbm.AssociationType> GetAssociationTypesInUse();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Internal associations.
|
||||
public abstract HashSet<SysId> GetInternalAssociationAffiliateIdsOwner();
|
||||
public SbmAssociation GetInternalAssociation(SysId affiliateIdOwner)
|
||||
{
|
||||
return GetAssociationByOwnerTypeTarget(affiliateIdOwner, Sbm.AssociationType.Internal, affiliateIdOwner);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Association Targets.
|
||||
public abstract List<SysId> GetMemberTargetIds(SysId affiliateIdOwner);
|
||||
public abstract List<SysId> GetCustomerTargetIds(List<SysId> affiliateIdsInclude, List<SysId> affiliateIdsExclude);
|
||||
public abstract List<SysId> GetCustomerAssocIdsForTargets(List<SysId> affiliateIdsTarget);
|
||||
public abstract List<SysId> GetAssocIdsForTargets(SysId affiliateIdOwner, Sbm.AssociationType associationType, List<SysId> affiliateIdsTarget);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
public abstract bool AssociationHasTransactions(SysId associationId);
|
||||
public abstract bool AssociationHasRequirements(SysId associationId);
|
||||
public abstract bool AssociationHasConstituents(SysId associationId);
|
||||
// Is associated with transaction for delivery.
|
||||
public abstract bool AssociationIsDeliveryContractor(SysId associationId);
|
||||
// Dependent data should only be cleared when removing an association.
|
||||
public abstract bool ClearAssociationDependentData(SbmAssociation association, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Association interface rules.
|
||||
public bool AllowColumnImport(SbmAssociation.Column column)
|
||||
{
|
||||
SbmDbDfn.ColumnIdx columnDb = GetDbCol(column);
|
||||
if (column.Equals(SbmDbDfn.ColumnIdx.Unknown) && SessionConsole.DisplayAttribute(columnDb))
|
||||
{
|
||||
switch (column)
|
||||
{
|
||||
/*case SbmAssociation.Column.Id:
|
||||
case SbmAssociation.Column.Type:
|
||||
case SbmAssociation.Column.TypeDesc:*/
|
||||
case SbmAssociation.Column.Code:
|
||||
case SbmAssociation.Column.ExtRef:
|
||||
case SbmAssociation.Column.Role:
|
||||
case SbmAssociation.Column.Location:
|
||||
case SbmAssociation.Column.PhoneMain:
|
||||
case SbmAssociation.Column.Email:
|
||||
case SbmAssociation.Column.Group:
|
||||
case SbmAssociation.Column.DescDetail:
|
||||
case SbmAssociation.Column.AnnualSalesTarget:
|
||||
case SbmAssociation.Column.PriceSetId:
|
||||
/*case SbmAssociation.Column.PriceSet_Ref:
|
||||
case SbmAssociation.Column.PriceSet_Type:
|
||||
case SbmAssociation.Column.PriceSet_Name:
|
||||
case SbmAssociation.Column.TaxCodeId:*/
|
||||
return true;
|
||||
|
||||
case SbmAssociation.Column.AccountManagerCode:
|
||||
//case SbmAssociation.Column.AccountManagerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountManager);
|
||||
case SbmAssociation.Column.AccountHandlerCode:
|
||||
//case SbmAssociation.Column.AccountHandlerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountHandler);
|
||||
case SbmAssociation.Column.AccountTypeCode:
|
||||
//case SbmAssociation.Column.AccountTypeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountType);
|
||||
case SbmAssociation.Column.AccountRatingCode:
|
||||
//case SbmAssociation.Column.AccountRatingDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountRating);
|
||||
case SbmAssociation.Column.ContactAreaCode:
|
||||
//case SbmAssociation.Column.ContactAreaDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactArea);
|
||||
case SbmAssociation.Column.ContactHandlerCode:
|
||||
//case SbmAssociation.Column.ContactHandlerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactHandler);
|
||||
case SbmAssociation.Column.ContactMethodCode:
|
||||
//case SbmAssociation.Column.ContactMethodDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactMethod);
|
||||
case SbmAssociation.Column.ContactCallCycleCode:
|
||||
//case SbmAssociation.Column.ContactCallCycleDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactCallCycle);
|
||||
|
||||
case SbmAssociation.Column.CallsPerYear:
|
||||
case SbmAssociation.Column.LastCall:
|
||||
return true;
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc1:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc2:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc3:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.SeasonalCategory);
|
||||
|
||||
case SbmAssociation.Column.OrderLeadTimeCode:
|
||||
//case SbmAssociation.Column.OrderLeadTimeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.OrderLeadTime);
|
||||
case SbmAssociation.Column.DeliveryTypeCode:
|
||||
//case SbmAssociation.Column.DeliveryTypeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryType);
|
||||
case SbmAssociation.Column.DeliveryMethodCode:
|
||||
//case SbmAssociation.Column.DeliveryMethodDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryMethod);
|
||||
case SbmAssociation.Column.DeliveryBookInCode:
|
||||
//case SbmAssociation.Column.DeliveryBookInDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryBookIn);
|
||||
|
||||
case SbmAssociation.Column.Terminated:
|
||||
case SbmAssociation.Column.Notes:
|
||||
case SbmAssociation.Column.Target_Name:
|
||||
case SbmAssociation.Column.Target_Nature:
|
||||
case SbmAssociation.Column.Target_PhoneMain:
|
||||
case SbmAssociation.Column.Target_PhoneAlt:
|
||||
case SbmAssociation.Column.Target_PhoneFax:
|
||||
case SbmAssociation.Column.Target_PhoneMobile:
|
||||
case SbmAssociation.Column.Target_Email:
|
||||
case SbmAssociation.Column.Target_Website:
|
||||
case SbmAssociation.Column.Target_Notes:
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode:
|
||||
//case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
||||
case SbmAssociation.Column.Member_Code:
|
||||
case SbmAssociation.Column.Member_ExtRef:
|
||||
case SbmAssociation.Column.Member_Role:
|
||||
case SbmAssociation.Column.Member_Location:
|
||||
case SbmAssociation.Column.Member_PhoneMain:
|
||||
case SbmAssociation.Column.Member_Email:
|
||||
case SbmAssociation.Column.Member_Target_Name:
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain:
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt:
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax:
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile:
|
||||
case SbmAssociation.Column.Member_Target_Email:
|
||||
case SbmAssociation.Column.Member_Target_Website:
|
||||
case SbmAssociation.Column.Member_Target_Notes:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public String GetColumnCode(SbmAssociation.Column column)
|
||||
{
|
||||
switch (column)
|
||||
{
|
||||
//case SbmAssociation.Column.Unknown: return "";
|
||||
case SbmAssociation.Column.Pos: return "Assoc_Pos";
|
||||
case SbmAssociation.Column.Id: return "Assoc_Id";
|
||||
case SbmAssociation.Column.Type: return "Assoc_Type";
|
||||
case SbmAssociation.Column.Type_Desc: return "Assoc_TypeDesc";
|
||||
case SbmAssociation.Column.Code: return "Assoc_Code";
|
||||
case SbmAssociation.Column.ExtRef: return "Assoc_ExtRef";
|
||||
case SbmAssociation.Column.Role: return "Assoc_Role";
|
||||
case SbmAssociation.Column.Location: return "Assoc_Location";
|
||||
case SbmAssociation.Column.PhoneMain: return "Assoc_PhoneMain";
|
||||
case SbmAssociation.Column.Email: return "Assoc_Email";
|
||||
case SbmAssociation.Column.Group: return "Assoc_Group";
|
||||
case SbmAssociation.Column.DescDetail: return "Assoc_DescDetail";
|
||||
case SbmAssociation.Column.DefaultNominalCode: return "Assoc_DefaultNominalCode";
|
||||
case SbmAssociation.Column.AmountTransMax: return "Assoc_AmountTransMax";
|
||||
case SbmAssociation.Column.AnnualSalesTarget: return "Assoc_AnnualSalesTarget";
|
||||
case SbmAssociation.Column.CreditLimit: return "Assoc_CreditLimit";
|
||||
case SbmAssociation.Column.AccountBalance: return "Assoc_AccountBalance";
|
||||
case SbmAssociation.Column.DiscountType: return "Assoc_DiscountType";
|
||||
case SbmAssociation.Column.DiscountType_Desc: return "Assoc_DiscountTypeDesc";
|
||||
case SbmAssociation.Column.DiscountRate: return "Assoc_DiscountRate";
|
||||
case SbmAssociation.Column.PriceSetId: return "Assoc_PriceSetId";
|
||||
case SbmAssociation.Column.PriceSet_Ref: return "Assoc_PriceSet_Ref";
|
||||
case SbmAssociation.Column.PriceSet_Type: return "Assoc_PriceSet_Type";
|
||||
case SbmAssociation.Column.PriceSet_TypeDesc: return "Assoc_PriceSet_TypeDesc";
|
||||
case SbmAssociation.Column.PriceSet_Name: return "Assoc_PriceSet_Name";
|
||||
case SbmAssociation.Column.TaxCodeId: return "Assoc_TaxCodeId";
|
||||
case SbmAssociation.Column.PaymentTerms: return "Assoc_PaymentTerms";
|
||||
case SbmAssociation.Column.InvoiceDesc: return "Assoc_InvoiceDesc";
|
||||
case SbmAssociation.Column.AccountManagerCode: return "Assoc_AccountManagerCode";
|
||||
case SbmAssociation.Column.AccountManagerDesc: return "Assoc_AccountManagerDesc";
|
||||
case SbmAssociation.Column.AccountHandlerCode: return "Assoc_AccountHandlerCode";
|
||||
case SbmAssociation.Column.AccountHandlerDesc: return "Assoc_AccountHandlerDesc";
|
||||
case SbmAssociation.Column.AccountTypeCode: return "Assoc_AccountTypeCode";
|
||||
case SbmAssociation.Column.AccountTypeDesc: return "Assoc_AccountTypeDesc";
|
||||
case SbmAssociation.Column.AccountRatingCode: return "Assoc_AccountRatingCode";
|
||||
case SbmAssociation.Column.AccountRatingDesc: return "Assoc_AccountRatingDesc";
|
||||
case SbmAssociation.Column.ContactAreaCode: return "Assoc_ContactAreaCode";
|
||||
case SbmAssociation.Column.ContactAreaDesc: return "Assoc_ContactAreaDesc";
|
||||
case SbmAssociation.Column.ContactHandlerCode: return "Assoc_ContactHandlerCode";
|
||||
case SbmAssociation.Column.ContactHandlerDesc: return "Assoc_ContactHandlerDesc";
|
||||
case SbmAssociation.Column.ContactMethodCode: return "Assoc_ContactMethodCode";
|
||||
case SbmAssociation.Column.ContactMethodDesc: return "Assoc_ContactMethodDesc";
|
||||
case SbmAssociation.Column.ContactCallCycleCode: return "Assoc_ContactCallCycleCode";
|
||||
case SbmAssociation.Column.ContactCallCycleDesc: return "Assoc_ContactCallCycleDesc";
|
||||
case SbmAssociation.Column.CallsPerYear: return "Assoc_CallsPerYear";
|
||||
case SbmAssociation.Column.LastCall: return "Assoc_LastCall";
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes: return "Assoc_SeasonalCatCodes";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1: return "Assoc_SeasonalCatCode1";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc1: return "Assoc_SeasonalCatDesc1";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2: return "Assoc_SeasonalCatCode2";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc2: return "Assoc_SeasonalCatDesc2";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3: return "Assoc_SeasonalCatCode3";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc3: return "Assoc_SeasonalCatDesc3";
|
||||
case SbmAssociation.Column.OrderLeadTimeCode: return "Assoc_OrderLeadTimeCode";
|
||||
case SbmAssociation.Column.OrderLeadTimeDesc: return "Assoc_OrderLeadTimeDesc";
|
||||
case SbmAssociation.Column.DeliveryTypeCode: return "Assoc_DeliveryTypeCode";
|
||||
case SbmAssociation.Column.DeliveryTypeDesc: return "Assoc_DeliveryTypeDesc";
|
||||
case SbmAssociation.Column.DeliveryMethodCode: return "Assoc_DeliveryMethodCode";
|
||||
case SbmAssociation.Column.DeliveryMethodDesc: return "Assoc_DeliveryMethodDesc";
|
||||
case SbmAssociation.Column.DeliveryBookInCode: return "Assoc_DeliveryBookInCode";
|
||||
case SbmAssociation.Column.DeliveryBookInDesc: return "Assoc_DeliveryBookInDesc";
|
||||
case SbmAssociation.Column.Terminated: return "Assoc_Terminated";
|
||||
case SbmAssociation.Column.Primary: return "Assoc_Primary";
|
||||
case SbmAssociation.Column.Technician: return "Assoc_Technician";
|
||||
case SbmAssociation.Column.Notes: return "Assoc_Notes";
|
||||
case SbmAssociation.Column.Status_Desc: return "Assoc_StatusDesc";
|
||||
case SbmAssociation.Column.Status_Ind: return "Assoc_StatusInd";
|
||||
case SbmAssociation.Column.AffIdOwner: return "Assoc_AffIdOwner";
|
||||
case SbmAssociation.Column.Owner_Name: return "Assoc_Owner_Name";
|
||||
case SbmAssociation.Column.AffIdTarget: return "Assoc_AffIdTarget";
|
||||
case SbmAssociation.Column.Target_Type: return "Assoc_Target_Type";
|
||||
case SbmAssociation.Column.Target_TypeDesc: return "Assoc_Target_TypeDesc";
|
||||
case SbmAssociation.Column.Target_Name: return "Assoc_Target_Name";
|
||||
case SbmAssociation.Column.Target_Nature: return "Assoc_Target_Nature";
|
||||
case SbmAssociation.Column.Target_PhoneMain: return "Assoc_Target_PhoneMain";
|
||||
case SbmAssociation.Column.Target_PhoneAlt: return "Assoc_Target_PhoneAlt";
|
||||
case SbmAssociation.Column.Target_PhoneFax: return "Assoc_Target_PhoneFax";
|
||||
case SbmAssociation.Column.Target_PhoneMobile: return "Assoc_Target_PhoneMobile";
|
||||
case SbmAssociation.Column.Target_Email: return "Assoc_Target_Email";
|
||||
case SbmAssociation.Column.Target_Website: return "Assoc_Target_Website";
|
||||
case SbmAssociation.Column.Target_Notes: return "Assoc_Target_Notes";
|
||||
case SbmAssociation.Column.Target_Address_Type: return "Assoc_Target_Address_Type";
|
||||
case SbmAssociation.Column.Target_Address_TypeDesc: return "Assoc_Target_Address_TypeDesc";
|
||||
case SbmAssociation.Column.Target_Address_RefExt: return "Assoc_Target_Address_RefExt";
|
||||
case SbmAssociation.Column.Target_Address_Name: return "Assoc_Target_Address_Name";
|
||||
case SbmAssociation.Column.Target_Address_DescBrief: return "Assoc_Target_Address_DescBrief";
|
||||
case SbmAssociation.Column.Target_Address_Summary: return "Assoc_Target_Address_Summary";
|
||||
case SbmAssociation.Column.Target_Address_Line1: return "Assoc_Target_Address_Line1";
|
||||
case SbmAssociation.Column.Target_Address_Line2: return "Assoc_Target_Address_Line2";
|
||||
case SbmAssociation.Column.Target_Address_City: return "Assoc_Target_Address_City";
|
||||
case SbmAssociation.Column.Target_Address_Province: return "Assoc_Target_Address_Province";
|
||||
case SbmAssociation.Column.Target_Address_Postcode: return "Assoc_Target_Address_Postcode";
|
||||
case SbmAssociation.Column.Target_Address_Country: return "Assoc_Target_Address_Country";
|
||||
case SbmAssociation.Column.Target_Address_Contact: return "Assoc_Target_Address_Contact";
|
||||
case SbmAssociation.Column.Target_Address_Phone: return "Assoc_Target_Address_Phone";
|
||||
case SbmAssociation.Column.Target_Address_Email: return "Assoc_Target_Address_Email";
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerCode: return "Assoc_Target_Address_AccountManagerCode";
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerDesc: return "Assoc_Target_Address_AccountManagerDesc";
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerCode: return "Assoc_Target_Address_AccountHandlerCode";
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerDesc: return "Assoc_Target_Address_AccountHandlerDesc";
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaCode: return "Assoc_Target_Address_ContactAreaCode";
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaDesc: return "Assoc_Target_Address_ContactAreaDesc";
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerCode: return "Assoc_Target_Address_ContactHandlerCode";
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerDesc: return "Assoc_Target_Address_ContactHandlerDesc";
|
||||
case SbmAssociation.Column.Target_Address_LastVisitOn: return "Assoc_Target_Address_LastVisitOn";
|
||||
case SbmAssociation.Column.Target_Address_NextVisitOn: return "Assoc_Target_Address_NextVisitOn";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: return "Assoc_Target_DelAddr_Postcode";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode: return "Assoc_Target_DelAddr_AccountManagerCode";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode: return "Assoc_Target_DelAddr_ContactAreaCode";
|
||||
case SbmAssociation.Column.Member_Type: return "Assoc_Member_Type";
|
||||
case SbmAssociation.Column.Member_TypeDesc: return "Assoc_Member_TypeDesc";
|
||||
case SbmAssociation.Column.Member_Code: return "Assoc_Member_Code";
|
||||
case SbmAssociation.Column.Member_ExtRef: return "Assoc_Member_ExtRef";
|
||||
case SbmAssociation.Column.Member_Role: return "Assoc_Member_Role";
|
||||
case SbmAssociation.Column.Member_Location: return "Assoc_Member_Location";
|
||||
case SbmAssociation.Column.Member_PhoneMain: return "Assoc_Member_PhoneMain";
|
||||
case SbmAssociation.Column.Member_Email: return "Assoc_Member_Email";
|
||||
case SbmAssociation.Column.Member_Target_Name: return "Assoc_Member_Target_Name";
|
||||
case SbmAssociation.Column.Member_Target_Nature: return "Assoc_Member_Target_Nature";
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain: return "Assoc_Member_Target_PhoneMain";
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt: return "Assoc_Member_Target_PhoneAlt";
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax: return "Assoc_Member_Target_PhoneFax";
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile: return "Assoc_Member_Target_PhoneMobile";
|
||||
case SbmAssociation.Column.Member_Target_Email: return "Assoc_Member_Target_Email";
|
||||
case SbmAssociation.Column.Member_Target_Website: return "Assoc_Member_Target_Website";
|
||||
case SbmAssociation.Column.Member_Target_Notes: return "Assoc_Member_Target_Notes";
|
||||
case SbmAssociation.Column.Member_Target_Address_Summary: return "Assoc_Member_Target_Address_Summary";
|
||||
case SbmAssociation.Column.Member_Target_Address_Line1: return "Assoc_Member_Target_Address_Line1";
|
||||
case SbmAssociation.Column.Member_Target_Address_Line2: return "Assoc_Member_Target_Address_Line2";
|
||||
case SbmAssociation.Column.Member_Target_Address_City: return "Assoc_Member_Target_Address_City";
|
||||
case SbmAssociation.Column.Member_Target_Address_Province: return "Assoc_Member_Target_Address_Province";
|
||||
case SbmAssociation.Column.Member_Target_Address_Postcode: return "Assoc_Member_Target_Address_Postcode";
|
||||
case SbmAssociation.Column.Member_Target_Address_Country: return "Assoc_Member_Target_Address_Country";
|
||||
case SbmAssociation.Column.Trans_LastSaleRaised: return "Assoc_Trans_LastSaleRaised";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Open: return "Assoc_Trans_SalesValue_Open";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Cytd: return "Assoc_Trans_SalesValue_Cytd";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Lcy: return "Assoc_Trans_SalesValue_Lcy";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
public String GetColumnCaption(SbmAssociation.Column column)
|
||||
{
|
||||
String caption = "";
|
||||
switch (column)
|
||||
{
|
||||
//case SbmAssociation.Column.Unknown: caption = ""; break;
|
||||
case SbmAssociation.Column.Pos: caption = "Pos"; break; // Position in list (derived).
|
||||
case SbmAssociation.Column.Id: caption = "Id"; break;
|
||||
//-----------------------------------------------------------// Association details.
|
||||
case SbmAssociation.Column.Type: caption = "Type"; break;
|
||||
case SbmAssociation.Column.Type_Desc: caption = "Type desc"; break;
|
||||
case SbmAssociation.Column.Code: caption = "Code"; break;
|
||||
case SbmAssociation.Column.ExtRef:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ExtRef, "Ext ref"); break;
|
||||
case SbmAssociation.Column.Role:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Role, "Role"); break;
|
||||
case SbmAssociation.Column.Location:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Location, "Location"); break;
|
||||
case SbmAssociation.Column.PhoneMain: caption = "Phone main"; break;
|
||||
case SbmAssociation.Column.Email: caption = "Email"; break;
|
||||
case SbmAssociation.Column.Group: caption = "Group"; break;
|
||||
case SbmAssociation.Column.DescDetail:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DescDetail, "Detail desc"); break;
|
||||
case SbmAssociation.Column.DefaultNominalCode:
|
||||
caption = "Default nominal code"; break;
|
||||
case SbmAssociation.Column.AmountTransMax: caption = "Trans max amount"; break;
|
||||
case SbmAssociation.Column.AnnualSalesTarget: caption = "Annual sales target"; break;
|
||||
case SbmAssociation.Column.CreditLimit: caption = "Credit Limit"; break;
|
||||
case SbmAssociation.Column.AccountBalance: caption = "Account balance"; break;
|
||||
case SbmAssociation.Column.DiscountType: caption = "Discount type"; break;
|
||||
case SbmAssociation.Column.DiscountType_Desc: caption = "Discount type"; break;
|
||||
case SbmAssociation.Column.DiscountRate: caption = "Discount rate"; break;
|
||||
//-----------------------------------------------------------// part of PriceSet details
|
||||
case SbmAssociation.Column.PriceSetId: caption = "Price set #"; break;
|
||||
case SbmAssociation.Column.PriceSet_Ref: caption = "Price set ref"; break;
|
||||
case SbmAssociation.Column.PriceSet_Type: caption = "Price set type"; break;
|
||||
case SbmAssociation.Column.PriceSet_TypeDesc: caption = "Price set type"; break;
|
||||
case SbmAssociation.Column.PriceSet_Name: caption = "Price set"; break;
|
||||
case SbmAssociation.Column.TaxCodeId: caption = "Tax code #"; break;
|
||||
case SbmAssociation.Column.PaymentTerms: caption = "Payment terms"; break;
|
||||
case SbmAssociation.Column.InvoiceDesc: caption = "Invoice desc"; break;
|
||||
case SbmAssociation.Column.AccountManagerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
||||
case SbmAssociation.Column.AccountManagerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.AccountHandlerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
||||
case SbmAssociation.Column.AccountHandlerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
||||
case SbmAssociation.Column.AccountTypeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type") + " code"; break;
|
||||
case SbmAssociation.Column.AccountTypeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type"); break;
|
||||
case SbmAssociation.Column.AccountRatingCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating") + " code"; break;
|
||||
case SbmAssociation.Column.AccountRatingDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating"); break;
|
||||
case SbmAssociation.Column.ContactAreaCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
||||
case SbmAssociation.Column.ContactAreaDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
case SbmAssociation.Column.ContactHandlerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
||||
case SbmAssociation.Column.ContactHandlerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
||||
case SbmAssociation.Column.ContactMethodCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method") + " code"; break;
|
||||
case SbmAssociation.Column.ContactMethodDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method"); break;
|
||||
case SbmAssociation.Column.ContactCallCycleCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle") + " code"; break;
|
||||
case SbmAssociation.Column.ContactCallCycleDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle"); break;
|
||||
case SbmAssociation.Column.CallsPerYear: caption = "Calls per year"; break;
|
||||
case SbmAssociation.Column.LastCall: caption = "Last call"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes: caption = "Seasonal category codes"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1: caption = "Seasonal category code 1"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc1: caption = "Seasonal category 1"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2: caption = "Seasonal category code 2"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc2: caption = "Seasonal category 2"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3: caption = "Seasonal category code 3"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc3: caption = "Seasonal category 3"; break;
|
||||
case SbmAssociation.Column.OrderLeadTimeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time") + " code"; break;
|
||||
case SbmAssociation.Column.OrderLeadTimeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time"); break;
|
||||
case SbmAssociation.Column.DeliveryTypeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryTypeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type"); break;
|
||||
case SbmAssociation.Column.DeliveryMethodCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryMethodDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method"); break;
|
||||
case SbmAssociation.Column.DeliveryBookInCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryBookInDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in"); break;
|
||||
case SbmAssociation.Column.Terminated: caption = "Terminated"; break;
|
||||
case SbmAssociation.Column.Primary: caption = "Primary"; break;
|
||||
case SbmAssociation.Column.Technician: caption = "Technician"; break;
|
||||
case SbmAssociation.Column.Notes: caption = "Notes"; break;
|
||||
case SbmAssociation.Column.Status_Desc: caption = "Status"; break;
|
||||
case SbmAssociation.Column.Status_Ind: caption = "Status ind"; break;
|
||||
//-----------------------------------------------------------//Association's owner details
|
||||
case SbmAssociation.Column.AffIdOwner: caption = "Owner #"; break;
|
||||
case SbmAssociation.Column.Owner_Name: caption = "Owner name"; break;
|
||||
case SbmAssociation.Column.AffIdTarget: caption = "Target #"; break;
|
||||
//-----------------------------------------------------------// Association's target details
|
||||
case SbmAssociation.Column.Target_Type: caption = "Contact type"; break;
|
||||
case SbmAssociation.Column.Target_TypeDesc: caption = "Contact type"; break;
|
||||
case SbmAssociation.Column.Target_Name: caption = "Contact name"; break;
|
||||
case SbmAssociation.Column.Target_Nature: caption = "Contact nature"; break;
|
||||
case SbmAssociation.Column.Target_PhoneMain: caption = "Contact main phone"; break;
|
||||
case SbmAssociation.Column.Target_PhoneAlt: caption = "Contact alt phone"; break;
|
||||
case SbmAssociation.Column.Target_PhoneFax: caption = "Contact fax"; break;
|
||||
case SbmAssociation.Column.Target_PhoneMobile: caption = "Contact mobile phone"; break;
|
||||
case SbmAssociation.Column.Target_Email: caption = "Contact email"; break;
|
||||
case SbmAssociation.Column.Target_Website: caption = "Contact website"; break;
|
||||
case SbmAssociation.Column.Target_Notes: caption = "Contact notes"; break;
|
||||
case SbmAssociation.Column.Target_Address_Type: caption = "Contact addr. type"; break;
|
||||
case SbmAssociation.Column.Target_Address_TypeDesc: caption = "Contact address type"; break;
|
||||
case SbmAssociation.Column.Target_Address_RefExt: caption = "Contact address ref ext"; break;
|
||||
case SbmAssociation.Column.Target_Address_Name: caption = "Contact address name"; break;
|
||||
case SbmAssociation.Column.Target_Address_DescBrief: caption = "Contact address desc"; break;
|
||||
//-----------------------------------------------------------// Association's target address details
|
||||
case SbmAssociation.Column.Target_Address_Summary: caption = "Contact address"; break;
|
||||
case SbmAssociation.Column.Target_Address_Line1: caption = "Contact address line 1"; break;
|
||||
case SbmAssociation.Column.Target_Address_Line2: caption = "Contact address line 2"; break;
|
||||
case SbmAssociation.Column.Target_Address_City: caption = "Contact address city"; break;
|
||||
case SbmAssociation.Column.Target_Address_Province: caption = "Contact address province"; break;
|
||||
case SbmAssociation.Column.Target_Address_Postcode: caption = "Contact address postcode"; break;
|
||||
case SbmAssociation.Column.Target_Address_Country: caption = "Contact address country"; break;
|
||||
case SbmAssociation.Column.Target_Address_Contact: caption = "Contact address Contact"; break;
|
||||
case SbmAssociation.Column.Target_Address_Phone: caption = "Contact address Phone"; break;
|
||||
case SbmAssociation.Column.Target_Address_Email: caption = "Contact address Email"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
||||
case SbmAssociation.Column.Target_Address_LastVisitOn: caption = "Contact address last visit"; break;
|
||||
case SbmAssociation.Column.Target_Address_NextVisitOn: caption = "Contact address next visit"; break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: caption = "Delivery address - Postcode"; break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
||||
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
||||
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
//-----------------------------------------------------------// part of ... Members details
|
||||
case SbmAssociation.Column.Member_Type: caption = "Member type"; break;
|
||||
case SbmAssociation.Column.Member_TypeDesc: caption = "Member type desc"; break;
|
||||
case SbmAssociation.Column.Member_Code: caption = "Member code"; break;
|
||||
case SbmAssociation.Column.Member_ExtRef: caption = "Member ext ref"; break;
|
||||
case SbmAssociation.Column.Member_Role: caption = "Member role"; break;
|
||||
case SbmAssociation.Column.Member_Location: caption = "Member location"; break;
|
||||
case SbmAssociation.Column.Member_PhoneMain: caption = "Member phone main"; break;
|
||||
case SbmAssociation.Column.Member_Email: caption = "Member email"; break;
|
||||
case SbmAssociation.Column.Member_Target_Name: caption = "Member contact name"; break;
|
||||
case SbmAssociation.Column.Member_Target_Nature: caption = "Member contact nature"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain: caption = "Member contact phone main"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt: caption = "Member contact phone alt"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax: caption = "Member contact phone fax"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile: caption = "Member contact phone mobile"; break;
|
||||
case SbmAssociation.Column.Member_Target_Email: caption = "Member contact email"; break;
|
||||
case SbmAssociation.Column.Member_Target_Website: caption = "Member contact website"; break;
|
||||
case SbmAssociation.Column.Member_Target_Notes: caption = "Member contact notes"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Summary: caption = "Member contact address"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Line1: caption = "Member contact address line 1"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Line2: caption = "Member contact address line 2"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_City: caption = "Member contact city"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Province: caption = "Member contact address province"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Postcode: caption = "Member contact address postcode"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Country: caption = "Member contact address country"; break;
|
||||
case SbmAssociation.Column.Trans_LastSaleRaised: caption = "Last sale"; break;
|
||||
case SbmAssociation.Column.Trans_SalesValue_Open: caption = "SO value - open"; break; // Net open sales order value.
|
||||
case SbmAssociation.Column.Trans_SalesValue_Cytd: caption = "SO value - YDT"; break; // Net sales order value closed this calendar year.
|
||||
case SbmAssociation.Column.Trans_SalesValue_Lcy: caption = "SO value - LCY"; break; // Net sales order value closed last calendar year.
|
||||
}
|
||||
if (StringUtil.IsEmpty(caption))
|
||||
caption = GetAssociationColumnDfn(column).Caption;
|
||||
return caption;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -8,6 +8,8 @@ using Sarand.Net.Standard.Base.ReferenceData;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.Data.SbmRepositoryPopulationData;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
@@ -17,486 +19,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
partial class SbmAccountMgr
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Utilities.
|
||||
public static bool IsValidCode(String code)
|
||||
{
|
||||
if (StringUtil.IsEmpty(code)) return false;
|
||||
if (code != code.Trim()) return false;
|
||||
return true;
|
||||
}
|
||||
public abstract List<Sbm.AssociationType> GetAssociationTypesInUse();
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Association List Targets.
|
||||
public abstract List<SysId> GetMemberTargetIds(SysId affiliateIdOwner);
|
||||
public abstract List<SysId> GetCustomerTargetIds(List<SysId> affiliateIdsInclude, List<SysId> affiliateIdsExclude);
|
||||
public abstract List<SysId> GetCustomerAssocIdsForTargets(List<SysId> affiliateIdsTarget);
|
||||
public abstract List<SysId> GetAssocIdsForTargets(SysId affiliateIdOwner, Sbm.AssociationType associationType, List<SysId> affiliateIdsTarget);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
public abstract bool AssociationHasTransactions(SysId associationId);
|
||||
public abstract bool AssociationHasRequirements(SysId associationId);
|
||||
public abstract bool AssociationHasConstituents(SysId associationId);
|
||||
// Is associated with transaction for delivery.
|
||||
public abstract bool AssociationIsDeliveryContractor(SysId associationId);
|
||||
// Dependent data should only be cleared when removing an association.
|
||||
public abstract bool ClearAssociationDependentData(SbmAssociation association, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Association interface rules.
|
||||
public bool AllowColumnImport(SbmAssociation.Column column)
|
||||
{
|
||||
SbmDbDfn.ColumnIdx columnDb = GetDbCol(column);
|
||||
if (column.Equals(SbmDbDfn.ColumnIdx.Unknown) && SessionConsole.DisplayAttribute(columnDb))
|
||||
{
|
||||
switch (column)
|
||||
{
|
||||
/*case SbmAssociation.Column.Id:
|
||||
case SbmAssociation.Column.Type:
|
||||
case SbmAssociation.Column.TypeDesc:*/
|
||||
case SbmAssociation.Column.Code:
|
||||
case SbmAssociation.Column.ExtRef:
|
||||
case SbmAssociation.Column.Role:
|
||||
case SbmAssociation.Column.Location:
|
||||
case SbmAssociation.Column.PhoneMain:
|
||||
case SbmAssociation.Column.Email:
|
||||
case SbmAssociation.Column.Group:
|
||||
case SbmAssociation.Column.DescDetail:
|
||||
case SbmAssociation.Column.AnnualSalesTarget:
|
||||
case SbmAssociation.Column.PriceSetId:
|
||||
/*case SbmAssociation.Column.PriceSet_Ref:
|
||||
case SbmAssociation.Column.PriceSet_Type:
|
||||
case SbmAssociation.Column.PriceSet_Name:
|
||||
case SbmAssociation.Column.TaxCodeId:*/
|
||||
return true;
|
||||
|
||||
case SbmAssociation.Column.AccountManagerCode:
|
||||
//case SbmAssociation.Column.AccountManagerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountManager);
|
||||
case SbmAssociation.Column.AccountHandlerCode:
|
||||
//case SbmAssociation.Column.AccountHandlerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountHandler);
|
||||
case SbmAssociation.Column.AccountTypeCode:
|
||||
//case SbmAssociation.Column.AccountTypeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountType);
|
||||
case SbmAssociation.Column.AccountRatingCode:
|
||||
//case SbmAssociation.Column.AccountRatingDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountRating);
|
||||
case SbmAssociation.Column.ContactAreaCode:
|
||||
//case SbmAssociation.Column.ContactAreaDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactArea);
|
||||
case SbmAssociation.Column.ContactHandlerCode:
|
||||
//case SbmAssociation.Column.ContactHandlerDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactHandler);
|
||||
case SbmAssociation.Column.ContactMethodCode:
|
||||
//case SbmAssociation.Column.ContactMethodDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactMethod);
|
||||
case SbmAssociation.Column.ContactCallCycleCode:
|
||||
//case SbmAssociation.Column.ContactCallCycleDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactCallCycle);
|
||||
|
||||
case SbmAssociation.Column.CallsPerYear:
|
||||
case SbmAssociation.Column.LastCall:
|
||||
return true;
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc1:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc2:
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3:
|
||||
//case SbmAssociation.Column.SeasonalCategoryDesc3:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.SeasonalCategory);
|
||||
|
||||
case SbmAssociation.Column.OrderLeadTimeCode:
|
||||
//case SbmAssociation.Column.OrderLeadTimeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.OrderLeadTime);
|
||||
case SbmAssociation.Column.DeliveryTypeCode:
|
||||
//case SbmAssociation.Column.DeliveryTypeDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryType);
|
||||
case SbmAssociation.Column.DeliveryMethodCode:
|
||||
//case SbmAssociation.Column.DeliveryMethodDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryMethod);
|
||||
case SbmAssociation.Column.DeliveryBookInCode:
|
||||
//case SbmAssociation.Column.DeliveryBookInDesc:
|
||||
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryBookIn);
|
||||
|
||||
case SbmAssociation.Column.Terminated:
|
||||
case SbmAssociation.Column.Notes:
|
||||
case SbmAssociation.Column.Target_Name:
|
||||
case SbmAssociation.Column.Target_Nature:
|
||||
case SbmAssociation.Column.Target_PhoneMain:
|
||||
case SbmAssociation.Column.Target_PhoneAlt:
|
||||
case SbmAssociation.Column.Target_PhoneFax:
|
||||
case SbmAssociation.Column.Target_PhoneMobile:
|
||||
case SbmAssociation.Column.Target_Email:
|
||||
case SbmAssociation.Column.Target_Website:
|
||||
case SbmAssociation.Column.Target_Notes:
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode:
|
||||
//case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
||||
case SbmAssociation.Column.Member_Code:
|
||||
case SbmAssociation.Column.Member_ExtRef:
|
||||
case SbmAssociation.Column.Member_Role:
|
||||
case SbmAssociation.Column.Member_Location:
|
||||
case SbmAssociation.Column.Member_PhoneMain:
|
||||
case SbmAssociation.Column.Member_Email:
|
||||
case SbmAssociation.Column.Member_Target_Name:
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain:
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt:
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax:
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile:
|
||||
case SbmAssociation.Column.Member_Target_Email:
|
||||
case SbmAssociation.Column.Member_Target_Website:
|
||||
case SbmAssociation.Column.Member_Target_Notes:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public String GetColumnCode(SbmAssociation.Column column)
|
||||
{
|
||||
switch (column)
|
||||
{
|
||||
//case SbmAssociation.Column.Unknown: return "";
|
||||
case SbmAssociation.Column.Pos: return "Assoc_Pos";
|
||||
case SbmAssociation.Column.Id: return "Assoc_Id";
|
||||
case SbmAssociation.Column.Type: return "Assoc_Type";
|
||||
case SbmAssociation.Column.Type_Desc: return "Assoc_TypeDesc";
|
||||
case SbmAssociation.Column.Code: return "Assoc_Code";
|
||||
case SbmAssociation.Column.ExtRef: return "Assoc_ExtRef";
|
||||
case SbmAssociation.Column.Role: return "Assoc_Role";
|
||||
case SbmAssociation.Column.Location: return "Assoc_Location";
|
||||
case SbmAssociation.Column.PhoneMain: return "Assoc_PhoneMain";
|
||||
case SbmAssociation.Column.Email: return "Assoc_Email";
|
||||
case SbmAssociation.Column.Group: return "Assoc_Group";
|
||||
case SbmAssociation.Column.DescDetail: return "Assoc_DescDetail";
|
||||
case SbmAssociation.Column.DefaultNominalCode: return "Assoc_DefaultNominalCode";
|
||||
case SbmAssociation.Column.AmountTransMax: return "Assoc_AmountTransMax";
|
||||
case SbmAssociation.Column.AnnualSalesTarget: return "Assoc_AnnualSalesTarget";
|
||||
case SbmAssociation.Column.CreditLimit: return "Assoc_CreditLimit";
|
||||
case SbmAssociation.Column.AccountBalance: return "Assoc_AccountBalance";
|
||||
case SbmAssociation.Column.DiscountType: return "Assoc_DiscountType";
|
||||
case SbmAssociation.Column.DiscountType_Desc: return "Assoc_DiscountTypeDesc";
|
||||
case SbmAssociation.Column.DiscountRate: return "Assoc_DiscountRate";
|
||||
case SbmAssociation.Column.PriceSetId: return "Assoc_PriceSetId";
|
||||
case SbmAssociation.Column.PriceSet_Ref: return "Assoc_PriceSet_Ref";
|
||||
case SbmAssociation.Column.PriceSet_Type: return "Assoc_PriceSet_Type";
|
||||
case SbmAssociation.Column.PriceSet_TypeDesc: return "Assoc_PriceSet_TypeDesc";
|
||||
case SbmAssociation.Column.PriceSet_Name: return "Assoc_PriceSet_Name";
|
||||
case SbmAssociation.Column.TaxCodeId: return "Assoc_TaxCodeId";
|
||||
case SbmAssociation.Column.PaymentTerms: return "Assoc_PaymentTerms";
|
||||
case SbmAssociation.Column.InvoiceDesc: return "Assoc_InvoiceDesc";
|
||||
case SbmAssociation.Column.AccountManagerCode: return "Assoc_AccountManagerCode";
|
||||
case SbmAssociation.Column.AccountManagerDesc: return "Assoc_AccountManagerDesc";
|
||||
case SbmAssociation.Column.AccountHandlerCode: return "Assoc_AccountHandlerCode";
|
||||
case SbmAssociation.Column.AccountHandlerDesc: return "Assoc_AccountHandlerDesc";
|
||||
case SbmAssociation.Column.AccountTypeCode: return "Assoc_AccountTypeCode";
|
||||
case SbmAssociation.Column.AccountTypeDesc: return "Assoc_AccountTypeDesc";
|
||||
case SbmAssociation.Column.AccountRatingCode: return "Assoc_AccountRatingCode";
|
||||
case SbmAssociation.Column.AccountRatingDesc: return "Assoc_AccountRatingDesc";
|
||||
case SbmAssociation.Column.ContactAreaCode: return "Assoc_ContactAreaCode";
|
||||
case SbmAssociation.Column.ContactAreaDesc: return "Assoc_ContactAreaDesc";
|
||||
case SbmAssociation.Column.ContactHandlerCode: return "Assoc_ContactHandlerCode";
|
||||
case SbmAssociation.Column.ContactHandlerDesc: return "Assoc_ContactHandlerDesc";
|
||||
case SbmAssociation.Column.ContactMethodCode: return "Assoc_ContactMethodCode";
|
||||
case SbmAssociation.Column.ContactMethodDesc: return "Assoc_ContactMethodDesc";
|
||||
case SbmAssociation.Column.ContactCallCycleCode: return "Assoc_ContactCallCycleCode";
|
||||
case SbmAssociation.Column.ContactCallCycleDesc: return "Assoc_ContactCallCycleDesc";
|
||||
case SbmAssociation.Column.CallsPerYear: return "Assoc_CallsPerYear";
|
||||
case SbmAssociation.Column.LastCall: return "Assoc_LastCall";
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes: return "Assoc_SeasonalCatCodes";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1: return "Assoc_SeasonalCatCode1";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc1: return "Assoc_SeasonalCatDesc1";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2: return "Assoc_SeasonalCatCode2";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc2: return "Assoc_SeasonalCatDesc2";
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3: return "Assoc_SeasonalCatCode3";
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc3: return "Assoc_SeasonalCatDesc3";
|
||||
case SbmAssociation.Column.OrderLeadTimeCode: return "Assoc_OrderLeadTimeCode";
|
||||
case SbmAssociation.Column.OrderLeadTimeDesc: return "Assoc_OrderLeadTimeDesc";
|
||||
case SbmAssociation.Column.DeliveryTypeCode: return "Assoc_DeliveryTypeCode";
|
||||
case SbmAssociation.Column.DeliveryTypeDesc: return "Assoc_DeliveryTypeDesc";
|
||||
case SbmAssociation.Column.DeliveryMethodCode: return "Assoc_DeliveryMethodCode";
|
||||
case SbmAssociation.Column.DeliveryMethodDesc: return "Assoc_DeliveryMethodDesc";
|
||||
case SbmAssociation.Column.DeliveryBookInCode: return "Assoc_DeliveryBookInCode";
|
||||
case SbmAssociation.Column.DeliveryBookInDesc: return "Assoc_DeliveryBookInDesc";
|
||||
case SbmAssociation.Column.Terminated: return "Assoc_Terminated";
|
||||
case SbmAssociation.Column.Primary: return "Assoc_Primary";
|
||||
case SbmAssociation.Column.Technician: return "Assoc_Technician";
|
||||
case SbmAssociation.Column.Notes: return "Assoc_Notes";
|
||||
case SbmAssociation.Column.Status_Desc: return "Assoc_StatusDesc";
|
||||
case SbmAssociation.Column.Status_Ind: return "Assoc_StatusInd";
|
||||
case SbmAssociation.Column.AffIdOwner: return "Assoc_AffIdOwner";
|
||||
case SbmAssociation.Column.Owner_Name: return "Assoc_Owner_Name";
|
||||
case SbmAssociation.Column.AffIdTarget: return "Assoc_AffIdTarget";
|
||||
case SbmAssociation.Column.Target_Type: return "Assoc_Target_Type";
|
||||
case SbmAssociation.Column.Target_TypeDesc: return "Assoc_Target_TypeDesc";
|
||||
case SbmAssociation.Column.Target_Name: return "Assoc_Target_Name";
|
||||
case SbmAssociation.Column.Target_Nature: return "Assoc_Target_Nature";
|
||||
case SbmAssociation.Column.Target_PhoneMain: return "Assoc_Target_PhoneMain";
|
||||
case SbmAssociation.Column.Target_PhoneAlt: return "Assoc_Target_PhoneAlt";
|
||||
case SbmAssociation.Column.Target_PhoneFax: return "Assoc_Target_PhoneFax";
|
||||
case SbmAssociation.Column.Target_PhoneMobile: return "Assoc_Target_PhoneMobile";
|
||||
case SbmAssociation.Column.Target_Email: return "Assoc_Target_Email";
|
||||
case SbmAssociation.Column.Target_Website: return "Assoc_Target_Website";
|
||||
case SbmAssociation.Column.Target_Notes: return "Assoc_Target_Notes";
|
||||
case SbmAssociation.Column.Target_Address_Type: return "Assoc_Target_Address_Type";
|
||||
case SbmAssociation.Column.Target_Address_TypeDesc: return "Assoc_Target_Address_TypeDesc";
|
||||
case SbmAssociation.Column.Target_Address_RefExt: return "Assoc_Target_Address_RefExt";
|
||||
case SbmAssociation.Column.Target_Address_Name: return "Assoc_Target_Address_Name";
|
||||
case SbmAssociation.Column.Target_Address_DescBrief: return "Assoc_Target_Address_DescBrief";
|
||||
case SbmAssociation.Column.Target_Address_Summary: return "Assoc_Target_Address_Summary";
|
||||
case SbmAssociation.Column.Target_Address_Line1: return "Assoc_Target_Address_Line1";
|
||||
case SbmAssociation.Column.Target_Address_Line2: return "Assoc_Target_Address_Line2";
|
||||
case SbmAssociation.Column.Target_Address_City: return "Assoc_Target_Address_City";
|
||||
case SbmAssociation.Column.Target_Address_Province: return "Assoc_Target_Address_Province";
|
||||
case SbmAssociation.Column.Target_Address_Postcode: return "Assoc_Target_Address_Postcode";
|
||||
case SbmAssociation.Column.Target_Address_Country: return "Assoc_Target_Address_Country";
|
||||
case SbmAssociation.Column.Target_Address_Contact: return "Assoc_Target_Address_Contact";
|
||||
case SbmAssociation.Column.Target_Address_Phone: return "Assoc_Target_Address_Phone";
|
||||
case SbmAssociation.Column.Target_Address_Email: return "Assoc_Target_Address_Email";
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerCode: return "Assoc_Target_Address_AccountManagerCode";
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerDesc: return "Assoc_Target_Address_AccountManagerDesc";
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerCode: return "Assoc_Target_Address_AccountHandlerCode";
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerDesc: return "Assoc_Target_Address_AccountHandlerDesc";
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaCode: return "Assoc_Target_Address_ContactAreaCode";
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaDesc: return "Assoc_Target_Address_ContactAreaDesc";
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerCode: return "Assoc_Target_Address_ContactHandlerCode";
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerDesc: return "Assoc_Target_Address_ContactHandlerDesc";
|
||||
case SbmAssociation.Column.Target_Address_LastVisitOn: return "Assoc_Target_Address_LastVisitOn";
|
||||
case SbmAssociation.Column.Target_Address_NextVisitOn: return "Assoc_Target_Address_NextVisitOn";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: return "Assoc_Target_DelAddr_Postcode";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode: return "Assoc_Target_DelAddr_AccountManagerCode";
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode: return "Assoc_Target_DelAddr_ContactAreaCode";
|
||||
case SbmAssociation.Column.Member_Type: return "Assoc_Member_Type";
|
||||
case SbmAssociation.Column.Member_TypeDesc: return "Assoc_Member_TypeDesc";
|
||||
case SbmAssociation.Column.Member_Code: return "Assoc_Member_Code";
|
||||
case SbmAssociation.Column.Member_ExtRef: return "Assoc_Member_ExtRef";
|
||||
case SbmAssociation.Column.Member_Role: return "Assoc_Member_Role";
|
||||
case SbmAssociation.Column.Member_Location: return "Assoc_Member_Location";
|
||||
case SbmAssociation.Column.Member_PhoneMain: return "Assoc_Member_PhoneMain";
|
||||
case SbmAssociation.Column.Member_Email: return "Assoc_Member_Email";
|
||||
case SbmAssociation.Column.Member_Target_Name: return "Assoc_Member_Target_Name";
|
||||
case SbmAssociation.Column.Member_Target_Nature: return "Assoc_Member_Target_Nature";
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain: return "Assoc_Member_Target_PhoneMain";
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt: return "Assoc_Member_Target_PhoneAlt";
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax: return "Assoc_Member_Target_PhoneFax";
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile: return "Assoc_Member_Target_PhoneMobile";
|
||||
case SbmAssociation.Column.Member_Target_Email: return "Assoc_Member_Target_Email";
|
||||
case SbmAssociation.Column.Member_Target_Website: return "Assoc_Member_Target_Website";
|
||||
case SbmAssociation.Column.Member_Target_Notes: return "Assoc_Member_Target_Notes";
|
||||
case SbmAssociation.Column.Member_Target_Address_Summary: return "Assoc_Member_Target_Address_Summary";
|
||||
case SbmAssociation.Column.Member_Target_Address_Line1: return "Assoc_Member_Target_Address_Line1";
|
||||
case SbmAssociation.Column.Member_Target_Address_Line2: return "Assoc_Member_Target_Address_Line2";
|
||||
case SbmAssociation.Column.Member_Target_Address_City: return "Assoc_Member_Target_Address_City";
|
||||
case SbmAssociation.Column.Member_Target_Address_Province: return "Assoc_Member_Target_Address_Province";
|
||||
case SbmAssociation.Column.Member_Target_Address_Postcode: return "Assoc_Member_Target_Address_Postcode";
|
||||
case SbmAssociation.Column.Member_Target_Address_Country: return "Assoc_Member_Target_Address_Country";
|
||||
case SbmAssociation.Column.Trans_LastSaleRaised: return "Assoc_Trans_LastSaleRaised";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Open: return "Assoc_Trans_SalesValue_Open";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Cytd: return "Assoc_Trans_SalesValue_Cytd";
|
||||
case SbmAssociation.Column.Trans_SalesValue_Lcy: return "Assoc_Trans_SalesValue_Lcy";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
public String GetColumnCaption(SbmAssociation.Column column)
|
||||
{
|
||||
String caption = "";
|
||||
switch (column)
|
||||
{
|
||||
//case SbmAssociation.Column.Unknown: caption = ""; break;
|
||||
case SbmAssociation.Column.Pos: caption = "Pos"; break; // Position in list (derived).
|
||||
case SbmAssociation.Column.Id: caption = "Id"; break;
|
||||
//-----------------------------------------------------------// Association details.
|
||||
case SbmAssociation.Column.Type: caption = "Type"; break;
|
||||
case SbmAssociation.Column.Type_Desc: caption = "Type desc"; break;
|
||||
case SbmAssociation.Column.Code: caption = "Code"; break;
|
||||
case SbmAssociation.Column.ExtRef:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ExtRef, "Ext ref"); break;
|
||||
case SbmAssociation.Column.Role:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Role, "Role"); break;
|
||||
case SbmAssociation.Column.Location:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Location, "Location"); break;
|
||||
case SbmAssociation.Column.PhoneMain: caption = "Phone main"; break;
|
||||
case SbmAssociation.Column.Email: caption = "Email"; break;
|
||||
case SbmAssociation.Column.Group: caption = "Group"; break;
|
||||
case SbmAssociation.Column.DescDetail:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DescDetail, "Detail desc"); break;
|
||||
case SbmAssociation.Column.DefaultNominalCode:
|
||||
caption = "Default nominal code"; break;
|
||||
case SbmAssociation.Column.AmountTransMax: caption = "Trans max amount"; break;
|
||||
case SbmAssociation.Column.AnnualSalesTarget: caption = "Annual sales target"; break;
|
||||
case SbmAssociation.Column.CreditLimit: caption = "Credit Limit"; break;
|
||||
case SbmAssociation.Column.AccountBalance: caption = "Account balance"; break;
|
||||
case SbmAssociation.Column.DiscountType: caption = "Discount type"; break;
|
||||
case SbmAssociation.Column.DiscountType_Desc: caption = "Discount type"; break;
|
||||
case SbmAssociation.Column.DiscountRate: caption = "Discount rate"; break;
|
||||
//-----------------------------------------------------------// part of PriceSet details
|
||||
case SbmAssociation.Column.PriceSetId: caption = "Price set #"; break;
|
||||
case SbmAssociation.Column.PriceSet_Ref: caption = "Price set ref"; break;
|
||||
case SbmAssociation.Column.PriceSet_Type: caption = "Price set type"; break;
|
||||
case SbmAssociation.Column.PriceSet_TypeDesc: caption = "Price set type"; break;
|
||||
case SbmAssociation.Column.PriceSet_Name: caption = "Price set"; break;
|
||||
case SbmAssociation.Column.TaxCodeId: caption = "Tax code #"; break;
|
||||
case SbmAssociation.Column.PaymentTerms: caption = "Payment terms"; break;
|
||||
case SbmAssociation.Column.InvoiceDesc: caption = "Invoice desc"; break;
|
||||
case SbmAssociation.Column.AccountManagerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
||||
case SbmAssociation.Column.AccountManagerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.AccountHandlerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
||||
case SbmAssociation.Column.AccountHandlerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
||||
case SbmAssociation.Column.AccountTypeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type") + " code"; break;
|
||||
case SbmAssociation.Column.AccountTypeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type"); break;
|
||||
case SbmAssociation.Column.AccountRatingCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating") + " code"; break;
|
||||
case SbmAssociation.Column.AccountRatingDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating"); break;
|
||||
case SbmAssociation.Column.ContactAreaCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
||||
case SbmAssociation.Column.ContactAreaDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
case SbmAssociation.Column.ContactHandlerCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
||||
case SbmAssociation.Column.ContactHandlerDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
||||
case SbmAssociation.Column.ContactMethodCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method") + " code"; break;
|
||||
case SbmAssociation.Column.ContactMethodDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method"); break;
|
||||
case SbmAssociation.Column.ContactCallCycleCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle") + " code"; break;
|
||||
case SbmAssociation.Column.ContactCallCycleDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle"); break;
|
||||
case SbmAssociation.Column.CallsPerYear: caption = "Calls per year"; break;
|
||||
case SbmAssociation.Column.LastCall: caption = "Last call"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCodes: caption = "Seasonal category codes"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode1: caption = "Seasonal category code 1"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc1: caption = "Seasonal category 1"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode2: caption = "Seasonal category code 2"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc2: caption = "Seasonal category 2"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryCode3: caption = "Seasonal category code 3"; break;
|
||||
case SbmAssociation.Column.SeasonalCategoryDesc3: caption = "Seasonal category 3"; break;
|
||||
case SbmAssociation.Column.OrderLeadTimeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time") + " code"; break;
|
||||
case SbmAssociation.Column.OrderLeadTimeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time"); break;
|
||||
case SbmAssociation.Column.DeliveryTypeCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryTypeDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type"); break;
|
||||
case SbmAssociation.Column.DeliveryMethodCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryMethodDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method"); break;
|
||||
case SbmAssociation.Column.DeliveryBookInCode:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in") + " code"; break;
|
||||
case SbmAssociation.Column.DeliveryBookInDesc:
|
||||
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in"); break;
|
||||
case SbmAssociation.Column.Terminated: caption = "Terminated"; break;
|
||||
case SbmAssociation.Column.Primary: caption = "Primary"; break;
|
||||
case SbmAssociation.Column.Technician: caption = "Technician"; break;
|
||||
case SbmAssociation.Column.Notes: caption = "Notes"; break;
|
||||
case SbmAssociation.Column.Status_Desc: caption = "Status"; break;
|
||||
case SbmAssociation.Column.Status_Ind: caption = "Status ind"; break;
|
||||
//-----------------------------------------------------------//Association's owner details
|
||||
case SbmAssociation.Column.AffIdOwner: caption = "Owner #"; break;
|
||||
case SbmAssociation.Column.Owner_Name: caption = "Owner name"; break;
|
||||
case SbmAssociation.Column.AffIdTarget: caption = "Target #"; break;
|
||||
//-----------------------------------------------------------// Association's target details
|
||||
case SbmAssociation.Column.Target_Type: caption = "Contact type"; break;
|
||||
case SbmAssociation.Column.Target_TypeDesc: caption = "Contact type"; break;
|
||||
case SbmAssociation.Column.Target_Name: caption = "Contact name"; break;
|
||||
case SbmAssociation.Column.Target_Nature: caption = "Contact nature"; break;
|
||||
case SbmAssociation.Column.Target_PhoneMain: caption = "Contact main phone"; break;
|
||||
case SbmAssociation.Column.Target_PhoneAlt: caption = "Contact alt phone"; break;
|
||||
case SbmAssociation.Column.Target_PhoneFax: caption = "Contact fax"; break;
|
||||
case SbmAssociation.Column.Target_PhoneMobile: caption = "Contact mobile phone"; break;
|
||||
case SbmAssociation.Column.Target_Email: caption = "Contact email"; break;
|
||||
case SbmAssociation.Column.Target_Website: caption = "Contact website"; break;
|
||||
case SbmAssociation.Column.Target_Notes: caption = "Contact notes"; break;
|
||||
case SbmAssociation.Column.Target_Address_Type: caption = "Contact addr. type"; break;
|
||||
case SbmAssociation.Column.Target_Address_TypeDesc: caption = "Contact address type"; break;
|
||||
case SbmAssociation.Column.Target_Address_RefExt: caption = "Contact address ref ext"; break;
|
||||
case SbmAssociation.Column.Target_Address_Name: caption = "Contact address name"; break;
|
||||
case SbmAssociation.Column.Target_Address_DescBrief: caption = "Contact address desc"; break;
|
||||
//-----------------------------------------------------------// Association's target address details
|
||||
case SbmAssociation.Column.Target_Address_Summary: caption = "Contact address"; break;
|
||||
case SbmAssociation.Column.Target_Address_Line1: caption = "Contact address line 1"; break;
|
||||
case SbmAssociation.Column.Target_Address_Line2: caption = "Contact address line 2"; break;
|
||||
case SbmAssociation.Column.Target_Address_City: caption = "Contact address city"; break;
|
||||
case SbmAssociation.Column.Target_Address_Province: caption = "Contact address province"; break;
|
||||
case SbmAssociation.Column.Target_Address_Postcode: caption = "Contact address postcode"; break;
|
||||
case SbmAssociation.Column.Target_Address_Country: caption = "Contact address country"; break;
|
||||
case SbmAssociation.Column.Target_Address_Contact: caption = "Contact address Contact"; break;
|
||||
case SbmAssociation.Column.Target_Address_Phone: caption = "Contact address Phone"; break;
|
||||
case SbmAssociation.Column.Target_Address_Email: caption = "Contact address Email"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountManagerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_AccountHandlerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_ContactAreaDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerCode:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
||||
case SbmAssociation.Column.Target_Address_ContactHandlerDesc:
|
||||
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
||||
case SbmAssociation.Column.Target_Address_LastVisitOn: caption = "Contact address last visit"; break;
|
||||
case SbmAssociation.Column.Target_Address_NextVisitOn: caption = "Contact address next visit"; break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: caption = "Delivery address - Postcode"; break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
||||
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
||||
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
||||
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
||||
//-----------------------------------------------------------// part of ... Members details
|
||||
case SbmAssociation.Column.Member_Type: caption = "Member type"; break;
|
||||
case SbmAssociation.Column.Member_TypeDesc: caption = "Member type desc"; break;
|
||||
case SbmAssociation.Column.Member_Code: caption = "Member code"; break;
|
||||
case SbmAssociation.Column.Member_ExtRef: caption = "Member ext ref"; break;
|
||||
case SbmAssociation.Column.Member_Role: caption = "Member role"; break;
|
||||
case SbmAssociation.Column.Member_Location: caption = "Member location"; break;
|
||||
case SbmAssociation.Column.Member_PhoneMain: caption = "Member phone main"; break;
|
||||
case SbmAssociation.Column.Member_Email: caption = "Member email"; break;
|
||||
case SbmAssociation.Column.Member_Target_Name: caption = "Member contact name"; break;
|
||||
case SbmAssociation.Column.Member_Target_Nature: caption = "Member contact nature"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneMain: caption = "Member contact phone main"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneAlt: caption = "Member contact phone alt"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneFax: caption = "Member contact phone fax"; break;
|
||||
case SbmAssociation.Column.Member_Target_PhoneMobile: caption = "Member contact phone mobile"; break;
|
||||
case SbmAssociation.Column.Member_Target_Email: caption = "Member contact email"; break;
|
||||
case SbmAssociation.Column.Member_Target_Website: caption = "Member contact website"; break;
|
||||
case SbmAssociation.Column.Member_Target_Notes: caption = "Member contact notes"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Summary: caption = "Member contact address"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Line1: caption = "Member contact address line 1"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Line2: caption = "Member contact address line 2"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_City: caption = "Member contact city"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Province: caption = "Member contact address province"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Postcode: caption = "Member contact address postcode"; break;
|
||||
case SbmAssociation.Column.Member_Target_Address_Country: caption = "Member contact address country"; break;
|
||||
case SbmAssociation.Column.Trans_LastSaleRaised: caption = "Last sale"; break;
|
||||
case SbmAssociation.Column.Trans_SalesValue_Open: caption = "SO value - open"; break; // Net open sales order value.
|
||||
case SbmAssociation.Column.Trans_SalesValue_Cytd: caption = "SO value - YDT"; break; // Net sales order value closed this calendar year.
|
||||
case SbmAssociation.Column.Trans_SalesValue_Lcy: caption = "SO value - LCY"; break; // Net sales order value closed last calendar year.
|
||||
}
|
||||
if (StringUtil.IsEmpty(caption))
|
||||
caption = GetAssociationColumnDfn(column).Caption;
|
||||
return caption;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Retrieve individual associations
|
||||
//-------------------------------------------------------------------
|
||||
// Association exists.
|
||||
// Item exists.
|
||||
public bool AssociationExistsById(SysId id)
|
||||
{
|
||||
ClearErrorState();
|
||||
@@ -533,7 +56,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Get association.
|
||||
// Get item.
|
||||
public abstract SbmAssociation GetAssociation(SbmAssociation.Params prm);
|
||||
|
||||
public SbmAssociation GetAssociationById(SysId associationId)
|
||||
@@ -603,93 +126,93 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Association type must be supplied");
|
||||
}
|
||||
}
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Code)))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Code)))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ExtRef)))
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ExtRef)))
|
||||
{
|
||||
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Role != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Role, "role", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Role)))
|
||||
if (errField.Role != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Role, "role", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Role)))
|
||||
{
|
||||
errField.Role = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Location)))
|
||||
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Location)))
|
||||
{
|
||||
errField.Location = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone main", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_PhoneMain)))
|
||||
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone main", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_PhoneMain)))
|
||||
{
|
||||
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Email)))
|
||||
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Email)))
|
||||
{
|
||||
errField.Email = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Group != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Group, "group", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Group)))
|
||||
if (errField.Group != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Group, "group", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Group)))
|
||||
{
|
||||
errField.Group = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "desc detail", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DescDetail)))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "desc detail", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DescDetail)))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DefaultNominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DefaultNominalCode, "default nominal code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DefaultNominalCode)))
|
||||
if (errField.DefaultNominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DefaultNominalCode, "default nominal code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DefaultNominalCode)))
|
||||
{
|
||||
errField.DefaultNominalCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.InvoiceDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InvoiceDesc, "invoice description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_InvoiceDesc)))
|
||||
if (errField.InvoiceDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InvoiceDesc, "invoice description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_InvoiceDesc)))
|
||||
{
|
||||
errField.InvoiceDesc = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Association codes.
|
||||
if (errField.AccountManagerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountManagerCode, " account manager code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountManagerCode)))
|
||||
if (errField.AccountManagerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountManagerCode, " account manager code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountManagerCode)))
|
||||
{
|
||||
errField.AccountManagerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountHandlerCode, "account handler code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode)))
|
||||
if (errField.AccountHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountHandlerCode, "account handler code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode)))
|
||||
{
|
||||
errField.AccountHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountTypeCode, " account type code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountTypeCode)))
|
||||
if (errField.AccountTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountTypeCode, " account type code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountTypeCode)))
|
||||
{
|
||||
errField.AccountTypeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AccountRatingCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountRatingCode, "account rating code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountRatingCode)))
|
||||
if (errField.AccountRatingCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountRatingCode, "account rating code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountRatingCode)))
|
||||
{
|
||||
errField.AccountRatingCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactAreaCode)))
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactAreaCode)))
|
||||
{
|
||||
errField.ContactAreaCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactHandlerCode, "contact handler code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode)))
|
||||
if (errField.ContactHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactHandlerCode, "contact handler code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode)))
|
||||
{
|
||||
errField.ContactHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactMethodCode, "contact method code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactMethodCode)))
|
||||
if (errField.ContactMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactMethodCode, "contact method code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactMethodCode)))
|
||||
{
|
||||
errField.ContactMethodCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactCallCycleCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactCallCycleCode, "contact call cycle code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode)))
|
||||
if (errField.ContactCallCycleCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactCallCycleCode, "contact call cycle code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode)))
|
||||
{
|
||||
errField.ContactCallCycleCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -702,27 +225,27 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Default sales Commodity can only be assigned to customers");
|
||||
}
|
||||
}
|
||||
if (errField.OrderLeadTimeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.OrderLeadTimeCode, "order lead time code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode)))
|
||||
if (errField.OrderLeadTimeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.OrderLeadTimeCode, "order lead time code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode)))
|
||||
{
|
||||
errField.OrderLeadTimeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode)))
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode)))
|
||||
{
|
||||
errField.DeliveryTypeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryMethodCode, "delivery method code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode)))
|
||||
if (errField.DeliveryMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryMethodCode, "delivery method code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode)))
|
||||
{
|
||||
errField.DeliveryMethodCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryCourierCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryCourierCode, "delivery courier code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryCourierCode)))
|
||||
if (errField.DeliveryCourierCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryCourierCode, "delivery courier code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryCourierCode)))
|
||||
{
|
||||
errField.DeliveryCourierCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book in code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode)))
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book in code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode)))
|
||||
{
|
||||
errField.DeliveryBookInCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -762,14 +285,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Payment terms must not be negative");
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -83,12 +83,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.Category = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Value != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Value, "value", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Value), true))
|
||||
if (errField.Value != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Value, "value", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Value), true))
|
||||
{
|
||||
errField.Value = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -96,7 +96,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
// Common properties.
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SysParam_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -113,30 +113,30 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (!SysId.IsValid(data.InterfaceId)) return SetErrorState("invalid system");
|
||||
if (!SysId.IsValid(data.AssociationId)) return SetErrorState("invalid association");
|
||||
// Validate the text attributes.
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Code), true))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Code), true))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AuthCodeEnc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AuthCodeEnc, "authorisation code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_AuthCodeEnc)))
|
||||
if (errField.AuthCodeEnc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AuthCodeEnc, "authorisation code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_AuthCodeEnc)))
|
||||
{
|
||||
errField.AuthCodeEnc = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccount_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -68,14 +68,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (!SysId.IsValid(data.UserId)) return SetErrorState("invalid user");
|
||||
// Validate the text attributes.
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccountUser_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccountUser_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccountUser_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemAccountUser_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -107,25 +107,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
//Validate the identity.
|
||||
if (!SysId.IsValid(data.AffiliateIdOwner)) return SetErrorState("invalid affiliate owner");
|
||||
// Validate the text attributes.
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Code), true))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Code), true))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AuthCodeEnc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AuthCodeEnc, "authorisation code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_AuthCodeEnc)))
|
||||
if (errField.AuthCodeEnc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AuthCodeEnc, "authorisation code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_AuthCodeEnc)))
|
||||
{
|
||||
errField.AuthCodeEnc = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SystemUser_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -116,17 +116,17 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.AssetCategoryId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Aff Id Owner must be supplied");
|
||||
}
|
||||
if (errField.SerialNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SerialNumber, "SerialNumber", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber), true))
|
||||
if (errField.SerialNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SerialNumber, "SerialNumber", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_SerialNumber), true))
|
||||
{
|
||||
errField.SerialNumber = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "RefExt", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_RefExt)))
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "RefExt", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_RefExt)))
|
||||
{
|
||||
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "DescBrief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_DescBrief)))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "DescBrief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_DescBrief)))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -147,7 +147,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (errField.AssocIdSupplier != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
if (errField.PurchaseInvoiceRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PurchaseInvoiceRef, "Purchase Invoice Ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_PurchaseInvoiceRef)))
|
||||
if (errField.PurchaseInvoiceRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PurchaseInvoiceRef, "Purchase Invoice Ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_PurchaseInvoiceRef)))
|
||||
{
|
||||
errField.PurchaseInvoiceRef = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -175,7 +175,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (errField.AssocIdCustomer != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
}
|
||||
if (errField.SellCategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SellCategoryCode, "Sell category code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_SellCategoryCode)))
|
||||
if (errField.SellCategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SellCategoryCode, "Sell category code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_SellCategoryCode)))
|
||||
{
|
||||
errField.SellCategoryCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -203,7 +203,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Disposal.
|
||||
if (errField.DisposeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DisposeCode, "dispose code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_DisposeCode)))
|
||||
if (errField.DisposeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DisposeCode, "dispose code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_DisposeCode)))
|
||||
{
|
||||
errField.DisposeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -241,14 +241,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Common.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAsset_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -128,12 +128,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Type must be supplied");
|
||||
}
|
||||
}
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Code), true))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Code), true))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -159,7 +159,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (errField.TaxCodeIdProfit != SacsHierarchyItem.ValidValue.Ignore && SysId.ToInt(data.TaxCodeIdProfit) < 1)
|
||||
{
|
||||
}
|
||||
if (errField.DisposeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DisposeCode, "dispose code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DisposeCode)))
|
||||
if (errField.DisposeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DisposeCode, "dispose code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_DisposeCode)))
|
||||
{
|
||||
errField.DisposeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -175,14 +175,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetCategory_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.AssetId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Aff Id Owner must be supplied");
|
||||
}
|
||||
if (errField.Seq != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Seq, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Seq), true))
|
||||
if (errField.Seq != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Seq, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Seq), true))
|
||||
{
|
||||
errField.Seq = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -93,14 +93,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaAssetProcess_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -90,45 +90,45 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.VehicleClassId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Aff Id Owner must be supplied");
|
||||
}
|
||||
if (errField.RegNumber != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.RegNumber, "registration Number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_RegNumber))))
|
||||
if (errField.RegNumber != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.RegNumber, "registration Number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_RegNumber))))
|
||||
{
|
||||
errField.RegNumber = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.RegNumberPrev != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.RegNumberPrev, "registration Number Previous", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_RegNumberPrev))))
|
||||
if (errField.RegNumberPrev != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.RegNumberPrev, "registration Number Previous", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_RegNumberPrev))))
|
||||
{
|
||||
errField.RegNumberPrev = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Vin != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.Vin, "VIN", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_VIN))))
|
||||
if (errField.Vin != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.Vin, "VIN", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_VIN))))
|
||||
{
|
||||
errField.Vin = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.TachoCode != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.TachoCode, "tacho code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_TachoCode))))
|
||||
if (errField.TachoCode != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.TachoCode, "tacho code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_TachoCode))))
|
||||
{
|
||||
errField.TachoCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.TachoId != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.TachoId, "tacho id", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_TachoId))))
|
||||
if (errField.TachoId != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.TachoId, "tacho id", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_TachoId))))
|
||||
{
|
||||
errField.TachoId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.MotNo != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.MotNo, "MOT", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_MotNo))))
|
||||
if (errField.MotNo != SacsHierarchyItem.ValidValue.Ignore && (IsValidValue(data.MotNo, "MOT", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_MotNo))))
|
||||
{
|
||||
errField.MotNo = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicle_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -98,45 +98,45 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
// VehicleClass properties.
|
||||
if (errField.MakeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "make", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode), true))
|
||||
if (errField.MakeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "make", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_MakeCode), true))
|
||||
{
|
||||
errField.MakeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Model != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Model, "model", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Model), true))
|
||||
if (errField.Model != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Model, "model", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Model), true))
|
||||
{
|
||||
errField.Model = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Derivative != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "derivative", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative), true))
|
||||
if (errField.Derivative != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MakeCode, "derivative", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Derivative), true))
|
||||
{
|
||||
errField.Derivative = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "desctiption brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "desctiption brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.VehicleCategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.VehicleCategoryCode, "vehicle category code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode)))
|
||||
if (errField.VehicleCategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.VehicleCategoryCode, "vehicle category code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_VehicleCategoryCode)))
|
||||
{
|
||||
errField.VehicleCategoryCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.InsuranceCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InsuranceCode, "insurance code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_InsuranceCode)))
|
||||
if (errField.InsuranceCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InsuranceCode, "insurance code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_InsuranceCode)))
|
||||
{
|
||||
errField.InsuranceCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleClass_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -84,25 +84,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
// VehicleEvent properties.return SetErrorState("Aff Id Owner must be supplied");
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "DescBrief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "DescBrief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "DescDetail", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescDetail), true))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "DescDetail", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_DescDetail), true))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleEvent_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -66,22 +66,22 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
ClearErrorState();
|
||||
// VehicleFeature properties.
|
||||
if (errField.CategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryCode, "CategoryCode", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryCode), true))
|
||||
if (errField.CategoryCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryCode, "CategoryCode", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryCode), true))
|
||||
{
|
||||
errField.CategoryCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.CategoryDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryDesc, "CategoryDesc", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryDesc), true))
|
||||
if (errField.CategoryDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CategoryDesc, "CategoryDesc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_CategoryDesc), true))
|
||||
{
|
||||
errField.CategoryDesc = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.FeatureCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureCode, "FeatureCode", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureCode), true))
|
||||
if (errField.FeatureCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureCode, "FeatureCode", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureCode), true))
|
||||
{
|
||||
errField.FeatureCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.FeatureDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureDesc, "FeatureDesc", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureDesc), true))
|
||||
if (errField.FeatureDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FeatureDesc, "FeatureDesc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_FeatureDesc), true))
|
||||
{
|
||||
errField.FeatureDesc = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -89,14 +89,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaVehicleFeature_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -124,131 +124,131 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Validate the text attributes.
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Code), true))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Code), true))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescOrder != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOrder, "description order", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescOrder)))
|
||||
if (errField.DescOrder != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOrder, "description order", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescOrder)))
|
||||
{
|
||||
errField.DescOrder = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "description detail", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescDetail)))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "description detail", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DescDetail)))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DrawingNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DrawingNumber, "drawing no", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DrawingNo)))
|
||||
if (errField.DrawingNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DrawingNumber, "drawing no", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DrawingNo)))
|
||||
{
|
||||
errField.DrawingNumber = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DrawingIssue != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DrawingIssue, "drawing issue", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue)))
|
||||
if (errField.DrawingIssue != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DrawingIssue, "drawing issue", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue)))
|
||||
{
|
||||
errField.DrawingIssue = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ImagePath != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ImagePath, "image path", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_ImagePath)))
|
||||
if (errField.ImagePath != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ImagePath, "image path", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_ImagePath)))
|
||||
{
|
||||
errField.ImagePath = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Category1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category1, "category1", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category)))
|
||||
if (errField.Category1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category1, "category1", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category)))
|
||||
{
|
||||
errField.Category1 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Category2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category2, "category2", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category2)))
|
||||
if (errField.Category2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category2, "category2", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category2)))
|
||||
{
|
||||
errField.Category2 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Category3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category3, "category3", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category3)))
|
||||
if (errField.Category3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category3, "category3", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Category3)))
|
||||
{
|
||||
errField.Category3 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Location)))
|
||||
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Location)))
|
||||
{
|
||||
errField.Location = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Department != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Department, "department", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Department)))
|
||||
if (errField.Department != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Department, "department", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Department)))
|
||||
{
|
||||
errField.Department = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.CatalogRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CatalogRef, "catalog ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_CatalogRef)))
|
||||
if (errField.CatalogRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CatalogRef, "catalog ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_CatalogRef)))
|
||||
{
|
||||
errField.CatalogRef = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Dimensions != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Dimensions, "dimensions", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Dimensions)))
|
||||
if (errField.Dimensions != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Dimensions, "dimensions", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Dimensions)))
|
||||
{
|
||||
errField.Dimensions = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.SpecSummary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SpecSummary, "spec summary", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_SpecSummary)))
|
||||
if (errField.SpecSummary != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SpecSummary, "spec summary", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_SpecSummary)))
|
||||
{
|
||||
errField.SpecSummary = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.MaterialCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MaterialCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCode, "material code"),
|
||||
(long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_MaterialCode)))
|
||||
(long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_MaterialCode)))
|
||||
{
|
||||
errField.MaterialCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.FinishCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.FinishCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_FinishCode, "finish code"),
|
||||
(long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_FinishCode)))
|
||||
(long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_FinishCode)))
|
||||
{
|
||||
errField.FinishCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PromotionCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PromotionCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "promotion code"), (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_PromotionCode)))
|
||||
if (errField.PromotionCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PromotionCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "promotion code"), (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_PromotionCode)))
|
||||
{
|
||||
errField.PromotionCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ICNTariffCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ICNTariffCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode, "ICN tariff code"), (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode)))
|
||||
if (errField.ICNTariffCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ICNTariffCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode, "ICN tariff code"), (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode)))
|
||||
{
|
||||
errField.ICNTariffCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.NominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCode, "nominal code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_NominalCode)))
|
||||
if (errField.NominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCode, "nominal code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_NominalCode)))
|
||||
{
|
||||
errField.NominalCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.NominalCodePurchase != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCodePurchase, "nominal code purchase", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase)))
|
||||
if (errField.NominalCodePurchase != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCodePurchase, "nominal code purchase", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase)))
|
||||
{
|
||||
errField.NominalCodePurchase = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.SupplierRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SupplierRef, "supplier ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_SupplierRef)))
|
||||
if (errField.SupplierRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.SupplierRef, "supplier ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_SupplierRef)))
|
||||
{
|
||||
errField.SupplierRef = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PlaceOfOrigin != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PlaceOfOrigin, "place of origin", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin)))
|
||||
if (errField.PlaceOfOrigin != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PlaceOfOrigin, "place of origin", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin)))
|
||||
{
|
||||
errField.PlaceOfOrigin = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Commodity_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -92,24 +92,24 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (!SysId.IsValid(data.AssocIdCustomer)) return SetErrorState("Customer must be specified");
|
||||
// Validate the text attributes.
|
||||
if (errField.ProductCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProductCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.CommodityCustomer_ProductCode, "finish code"),
|
||||
(long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_ProductCode), true))
|
||||
(long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_ProductCode), true))
|
||||
{
|
||||
errField.ProductCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.PromotionCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PromotionCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.CommodityCustomer_PromotionCode, "promotion code"), (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_PromotionCode), true))
|
||||
if (errField.PromotionCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PromotionCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.CommodityCustomer_PromotionCode, "promotion code"), (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_PromotionCode), true))
|
||||
{
|
||||
errField.PromotionCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "Notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_Notes), true))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "Notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_Notes), true))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommodityCustomer_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -69,29 +69,29 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (!SysId.IsValid(data.AssocIdSupplier)) return SetErrorState("Supplier must be specified");
|
||||
// Validate the text attributes.
|
||||
if (errField.ProductCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProductCode, GetAttributeCaption(SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode, "finish code"),
|
||||
(long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode), true))
|
||||
(long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_ProductCode), true))
|
||||
{
|
||||
errField.ProductCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.AmountCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AmountCost.ToString(), "AmountCost", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_AmountCost), true))
|
||||
if (errField.AmountCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AmountCost.ToString(), "AmountCost", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_AmountCost), true))
|
||||
{
|
||||
errField.AmountCost = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.CurrencyIdCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CurrencyIdCost.ToString(), "CurrencyIdCost", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_CurrencyIdCost), true))
|
||||
if (errField.CurrencyIdCost != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.CurrencyIdCost.ToString(), "CurrencyIdCost", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_CurrencyIdCost), true))
|
||||
{
|
||||
errField.CurrencyIdCost = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "Notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Notes), true))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "Notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Notes), true))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.CommoditySupplier_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -116,29 +116,29 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Validate the text attributes.
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Reference), true))
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Reference), true))
|
||||
{
|
||||
errField.Reference = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Container_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Container_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.TagId != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.TagId.ToString(), "tag Id", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Container_TagId), true))
|
||||
if (errField.TagId != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.TagId.ToString(), "tag Id", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Container_TagId), true))
|
||||
{
|
||||
errField.TagId = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("invalid TagId");
|
||||
}
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Container_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ItemType < 1)
|
||||
{
|
||||
errField.ItemType = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Item type must be supplied");
|
||||
return SetErrorState(Msg_ItemTypeNotSpecified);
|
||||
}
|
||||
}
|
||||
if (!SysId.IsValid(data.ItemId))
|
||||
@@ -110,14 +110,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Quantity must be supplied");
|
||||
}
|
||||
}
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ContainerItem_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ContainerItem_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ContainerItem_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ContainerItem_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -180,27 +180,27 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Validate the text attributes.
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Code), data.Type != Sbm.PortfolioItemType.Commodity))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Code), data.Type != Sbm.PortfolioItemType.Commodity))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ShortCut != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ShortCut, "short cut code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_ShortCut)))
|
||||
if (errField.ShortCut != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ShortCut, "short cut code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_ShortCut)))
|
||||
{
|
||||
errField.ShortCut = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Caption != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Caption, "caption", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Caption), data.Type != Sbm.PortfolioItemType.Commodity))
|
||||
if (errField.Caption != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Caption, "caption", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Caption), data.Type != Sbm.PortfolioItemType.Commodity))
|
||||
{
|
||||
errField.Caption = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "brief desc", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_DescBrief)))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "brief desc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_DescBrief)))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detail desc", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_DescDetail)))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detail desc", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_DescDetail)))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -218,14 +218,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Only hierarchy items can reference other items");
|
||||
}
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.PortfolioItem_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.CodeTypes;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
@@ -19,8 +18,6 @@ using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm.Config;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
@@ -192,7 +189,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
protected ISbmUserOrganisationContext UserContext { get; }
|
||||
protected SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
|
||||
public SysId AffiliateId_Owner { get { return UserContext.OrganisationAffiliateId; } }
|
||||
protected SbmAccountsDfn AccountsDfn { get { return Internals.AccountsDfn; } }
|
||||
protected SbmAccountsConsole AccountsDfn { get { return Internals.AccountsConsole; } }
|
||||
protected DbUpdateInfo DbUpdateInfo { get { return Internals.DbUpdateInfo; } }
|
||||
// User security profile.
|
||||
public bool UserCanViewCommoditySalesFinancials() { return UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySales); }
|
||||
|
||||
@@ -91,34 +91,34 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ItemBatchType < 1)
|
||||
{
|
||||
errField.ItemBatchType = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("ItemBatch type must be supplied");
|
||||
return SetErrorState(Msg_ItemTypeNotSpecified);
|
||||
}
|
||||
}
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Ref, "reference", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Ref), true))
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Ref, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Ref), true))
|
||||
{
|
||||
errField.Ref = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ProcessType != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProcessType, "process type", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_ProcessType), true))
|
||||
if (errField.ProcessType != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProcessType, "process type", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_ProcessType), true))
|
||||
{
|
||||
errField.ProcessType = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemBatch_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -139,7 +139,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public virtual bool ItemBatchCanBeDeleted(SbmItemBatch itemBatch)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (itemBatch == null) return SetErrorState("item not specified");
|
||||
if (itemBatch == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteItemBatch(SbmItemBatch itemBatch, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ItemLinkType < 1)
|
||||
{
|
||||
errField.ItemLinkType = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("ItemLink type must be supplied");
|
||||
return SetErrorState(Msg_ItemTypeNotSpecified);
|
||||
}
|
||||
}
|
||||
if (errField.ItemTypeFrom != SacsHierarchyItem.ValidValue.Ignore)
|
||||
@@ -107,20 +107,20 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
errField.Completed = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DataContent != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DataContent, "data content", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_DataContent), true))
|
||||
if (errField.DataContent != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DataContent, "data content", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_DataContent), true))
|
||||
{
|
||||
errField.DataContent = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -145,7 +145,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public virtual bool ItemLinkCanBeDeleted(SbmItemLink itemLink)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (itemLink == null) return SetErrorState("item not specified");
|
||||
if (itemLink == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeleteItemLink(SbmItemLink itemLink, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
@@ -43,17 +43,44 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
protected bool DebugMode { get; } = SacsSystem.DebugMode;
|
||||
protected ElapsedTimeLogger ElapsedLogger { get; }
|
||||
// Status.
|
||||
protected String StatusActive { get; } = SacsSystem.GetStatusCode(SaStatus.Active);
|
||||
protected String StatusProvisional { get; } = SacsSystem.GetStatusCode(SaStatus.Provisional);
|
||||
protected String StatusAwaiting { get; } = SacsSystem.GetStatusCode(SaStatus.Awaiting);
|
||||
protected String StatusCurrent { get; } = SacsSystem.GetStatusCode(SaStatus.Current);
|
||||
protected String StatusActioned { get; } = SacsSystem.GetStatusCode(SaStatus.Actioned);
|
||||
protected String StatusConfirmed { get; } = SacsSystem.GetStatusCode(SaStatus.Confirmed);
|
||||
protected String StatusQueried { get; } = SacsSystem.GetStatusCode(SaStatus.Queried);
|
||||
protected String StatusCompleted { get; } = SacsSystem.GetStatusCode(SaStatus.Completed);
|
||||
protected String StatusCancelled { get; } = SacsSystem.GetStatusCode(SaStatus.Cancelled);
|
||||
protected String StatusDisabled { get; } = SacsSystem.GetStatusCode(SaStatus.Disabled);
|
||||
protected String StatusDeleted { get; } = SacsSystem.GetStatusCode(SaStatus.Deleted);
|
||||
protected static String StatusCurrent { get; } = SacsSystem.GetStatusCode(SaStatus.Current);
|
||||
protected static String StatusRedundant { get; } = SacsSystem.GetStatusCode(SaStatus.Redundant);
|
||||
protected static String StatusSuperseded { get; } = SacsSystem.GetStatusCode(SaStatus.Superseded);
|
||||
protected static String StatusDiscontinued { get; } = SacsSystem.GetStatusCode(SaStatus.Discontinued);
|
||||
protected static String StatusProvisional { get; } = SacsSystem.GetStatusCode(SaStatus.Provisional);
|
||||
protected static String StatusConfirmed { get; } = SacsSystem.GetStatusCode(SaStatus.Confirmed);
|
||||
protected static String StatusEnabled { get; } = SacsSystem.GetStatusCode(SaStatus.Enabled);
|
||||
protected static String StatusDisabled { get; } = SacsSystem.GetStatusCode(SaStatus.Disabled);
|
||||
protected static String StatusCreated { get; } = SacsSystem.GetStatusCode(SaStatus.Created);
|
||||
protected static String StatusUpdated { get; } = SacsSystem.GetStatusCode(SaStatus.Updated);
|
||||
protected static String StatusReinstated { get; } = SacsSystem.GetStatusCode(SaStatus.Reinstated);
|
||||
protected static String StatusDeleted { get; } = SacsSystem.GetStatusCode(SaStatus.Deleted);
|
||||
protected static String StatusRequired { get; } = SacsSystem.GetStatusCode(SaStatus.Required);
|
||||
protected static String StatusAwaiting { get; } = SacsSystem.GetStatusCode(SaStatus.Awaiting);
|
||||
protected static String StatusPreparation { get; } = SacsSystem.GetStatusCode(SaStatus.Preparation);
|
||||
protected static String StatusRaised { get; } = SacsSystem.GetStatusCode(SaStatus.Raised);
|
||||
protected static String StatusInProgress { get; } = SacsSystem.GetStatusCode(SaStatus.InProgress);
|
||||
protected static String StatusActive { get; } = SacsSystem.GetStatusCode(SaStatus.Active);
|
||||
protected static String StatusInactive { get; } = SacsSystem.GetStatusCode(SaStatus.Inactive);
|
||||
protected static String StatusOnHold { get; } = SacsSystem.GetStatusCode(SaStatus.OnHold);
|
||||
protected static String StatusImported { get; } = SacsSystem.GetStatusCode(SaStatus.Imported);
|
||||
protected static String StatusExported { get; } = SacsSystem.GetStatusCode(SaStatus.Exported);
|
||||
protected static String StatusOpen { get; } = SacsSystem.GetStatusCode(SaStatus.Open);
|
||||
protected static String StatusClosed { get; } = SacsSystem.GetStatusCode(SaStatus.Closed);
|
||||
protected static String StatusCompleted { get; } = SacsSystem.GetStatusCode(SaStatus.Completed);
|
||||
protected static String StatusInvoiced { get; } = SacsSystem.GetStatusCode(SaStatus.Invoiced);
|
||||
protected static String StatusCancelled { get; } = SacsSystem.GetStatusCode(SaStatus.Cancelled);
|
||||
protected static String StatusSuccessful { get; } = SacsSystem.GetStatusCode(SaStatus.Successful);
|
||||
protected static String StatusFailed { get; } = SacsSystem.GetStatusCode(SaStatus.Failed);
|
||||
protected static String StatusActioned { get; } = SacsSystem.GetStatusCode(SaStatus.Actioned);
|
||||
protected static String StatusAuthorised { get; } = SacsSystem.GetStatusCode(SaStatus.Authorised);
|
||||
protected static String StatusAccepted { get; } = SacsSystem.GetStatusCode(SaStatus.Accepted);
|
||||
protected static String StatusRejected { get; } = SacsSystem.GetStatusCode(SaStatus.Rejected);
|
||||
protected static String StatusSubmitted { get; } = SacsSystem.GetStatusCode(SaStatus.Submitted);
|
||||
protected static String StatusQueried { get; } = SacsSystem.GetStatusCode(SaStatus.Queried);
|
||||
protected static String StatusGranted { get; } = SacsSystem.GetStatusCode(SaStatus.Granted);
|
||||
protected static String StatusDenied { get; } = SacsSystem.GetStatusCode(SaStatus.Denied);
|
||||
protected static String StatusLogged { get; } = SacsSystem.GetStatusCode(SaStatus.Logged);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
// Price properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
// Price set.
|
||||
if (errField.PriceSetId != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.PriceSetId))
|
||||
{
|
||||
@@ -77,14 +77,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPrice_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPrice_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPrice_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPrice_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -115,7 +115,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public virtual bool PriceCanBeDeleted(SbmPrice price)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (price == null) return SetErrorState("item not specified");
|
||||
if (price == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
return true;
|
||||
}
|
||||
public abstract bool DeletePrice(SbmPrice price, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
// PriceSet properties.
|
||||
ClearErrorState();
|
||||
if (data == null) return SetErrorState("item not specified");
|
||||
if (data == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
// Validate the type.
|
||||
if (errField.PriceType != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
@@ -90,25 +90,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
return SetErrorState("Price type must be supplied");
|
||||
}
|
||||
}
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Ref), true))
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Ref), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.SaPriceSet_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -129,7 +129,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public virtual bool PriceSetCanBeDeleted(SbmPriceSet priceSet)
|
||||
{
|
||||
ClearErrorState();
|
||||
if (priceSet == null) return SetErrorState("item not specified");
|
||||
if (priceSet == null) return SetErrorState(Msg_ItemNotSpecified);
|
||||
if (PriceMgr.PriceSetHasPrices(priceSet.Id)) return SetErrorState("item has prices");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ItemType < 1) return SetErrorState("invalid item type");
|
||||
if (SysId.IsValid(data.ProcessId)) return SetErrorState("invalid process id");
|
||||
// Validate the text attributes.
|
||||
if (errField.Seq != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Seq.ToString(), "sequence", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Seq), true))
|
||||
if (errField.Seq != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Seq.ToString(), "sequence", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Seq), true))
|
||||
{ // ColIdx.ItemProcess_Seq
|
||||
errField.Seq = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -54,14 +54,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.ItemLink_Notes)))
|
||||
{ //ColIdx.ItemProcess_Notes
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Unknown/*ItemProcess_Status*/), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Unknown/*ItemProcess_Status*/), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -6,7 +6,6 @@ using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.Bus.SbmProcess;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
@@ -23,23 +22,23 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated codes.
|
||||
public String GetItemDataCodeForProcessCostCode(SbmProcessCostCode processCostCode)
|
||||
public String GetItemDataCodeForProcessCostCode(SbmProcess.SbmProcessCostCode processCostCode)
|
||||
{
|
||||
List<TypeCodeDesc> itemDataTypes = Internals.GetSystemCodes(Sbm.SystemCode.ItemDataType);
|
||||
switch (processCostCode)
|
||||
{
|
||||
case SbmProcessCostCode.Fixed_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Unit);
|
||||
case SbmProcessCostCode.Fixed_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Job);
|
||||
case SbmProcessCostCode.Labour_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Unit);
|
||||
case SbmProcessCostCode.Labour_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Job);
|
||||
case SbmProcess.SbmProcessCostCode.Fixed_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Unit);
|
||||
case SbmProcess.SbmProcessCostCode.Fixed_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_FixedCost_Job);
|
||||
case SbmProcess.SbmProcessCostCode.Labour_Unit: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Unit);
|
||||
case SbmProcess.SbmProcessCostCode.Labour_Job: return itemDataTypes.GetCodeForType(Sbm.ItemDataType.Process_LabourCost_Job);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
public abstract bool ProcessHasAnyCostCodes(SysId processId);
|
||||
public abstract bool ProcessHasCostCodes(SysId processId, SbmProcessCostCode processCostCode);
|
||||
public abstract List<String> GetProcessCostCodes(SysId processId, SbmProcessCostCode processCostCode);
|
||||
public abstract bool StoreProcessCostCodes(SbmProcess process, SbmProcessCostCode processCostCode, List<String> costCodes, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool ClearProcessCostCodes(SbmProcess process, SbmProcessCostCode processCostCode, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool ProcessHasCostCodes(SysId processId, SbmProcess.SbmProcessCostCode processCostCode);
|
||||
public abstract List<String> GetProcessCostCodes(SysId processId, SbmProcess.SbmProcessCostCode processCostCode);
|
||||
public abstract bool StoreProcessCostCodes(SbmProcess process, SbmProcess.SbmProcessCostCode processCostCode, List<String> costCodes, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool ClearProcessCostCodes(SbmProcess process, SbmProcess.SbmProcessCostCode processCostCode, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool ClearAllProcessCostCodes(SbmProcess process, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -109,26 +108,26 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if ((int)data.ProcessCategory < 1) return SetErrorState("invalid category");
|
||||
if ((int)data.ProcessType < 1) return SetErrorState("invalid type");
|
||||
// Validate the text attributes.
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Process_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description brief", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Process_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "description outline", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Process_DescOutline), true))
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "description outline", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Process_DescOutline), true))
|
||||
{
|
||||
errField.DescOutline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Common properties.
|
||||
if (!IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Process_Notes)))
|
||||
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Process_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Process_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Process_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -157,7 +157,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
#endif
|
||||
List<SbmRequirement> requirements = TransactionMgr.GetRequirementsForTransaction(transaction.Id);
|
||||
RefreshAllocations(transaction, requirements, true, dbUpdateInfo);
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
public bool UnAllocateTransaction(SbmTransaction transaction, DbUpdateInfo dbUpdateInfo)
|
||||
@@ -181,7 +181,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
// Update the transaction:
|
||||
transaction.ClearAllocationStatus();
|
||||
TransactionMgr.UpdateTransaction(transaction, dbUpdateInfo);
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
@@ -220,7 +220,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
@@ -309,7 +309,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
CalculateStockLevels(commodityIdsToCalculate, dbUpdateInfo);
|
||||
}
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
@@ -354,7 +354,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
TransactionMgr.UpdateRequirement(requirement, dbUpdateInfo);
|
||||
}
|
||||
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
@@ -672,7 +672,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
{
|
||||
CalculateStockLevels(commodityIds, dbUpdateInfo);
|
||||
}
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -154,25 +154,25 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Validate the text attributes.
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Code), true))
|
||||
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Code), true))
|
||||
{
|
||||
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Name), true))
|
||||
if (errField.Name != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Name, "name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Name), true))
|
||||
{
|
||||
errField.Name = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Common properties.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Location_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -88,24 +88,24 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// Bays.
|
||||
if (errField.Bay1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay1, "bay 1", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay1)))
|
||||
if (errField.Bay1 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay1, "bay 1", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay1)))
|
||||
{
|
||||
errField.Bay1 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Bay2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay2, "bay 2", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay2)))
|
||||
if (errField.Bay2 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay2, "bay 2", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay2)))
|
||||
{
|
||||
errField.Bay2 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Bay3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay3, "bay 3", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay3)))
|
||||
if (errField.Bay3 != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Bay3, "bay 3", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Bay3)))
|
||||
{
|
||||
errField.Bay3 = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Notes.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Notes)))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Notes)))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -113,7 +113,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.StockLevel_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -121,41 +121,41 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
// NB Seq, Effective, Required, Started, Completed is optional.
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescOutline), true))
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescOutline), true))
|
||||
{
|
||||
errField.DescOutline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detailed description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescDetail), true))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detailed description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_DescDetail), true))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB TaskNumber, Priority is optional.
|
||||
if (errField.Category != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category, "ategory", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Category), true))
|
||||
if (errField.Category != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Category, "ategory", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Category), true))
|
||||
{
|
||||
errField.Category = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Reference), true))
|
||||
if (errField.Reference != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Reference, "reference", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Reference), true))
|
||||
{
|
||||
errField.Reference = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB Quantity, UomId, UnitCost, AmountEst, AmountNet, TaxCodeId, TaxRate, AmountTax, AmountTot, TaxRateRebate, AmountTaxRebate is optional.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Notes), true))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Notes), true))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Constituent_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -154,58 +154,58 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
}
|
||||
// NB Seq, ReqntIdSource, Required, Started, Completed is optional.
|
||||
if (errField.JobNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.JobNumber, "job number", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_JobNumber), true))
|
||||
if (errField.JobNumber != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.JobNumber, "job number", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_JobNumber), true))
|
||||
{
|
||||
errField.JobNumber = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB AssIdSubcontract, CommodityId is optional.
|
||||
if (errField.ProductCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProductCode, "product code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_ProductCode), true))
|
||||
if (errField.ProductCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ProductCode, "product code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_ProductCode), true))
|
||||
{
|
||||
errField.ProductCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB AssetId is optional.
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescBrief), true))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescBrief), true))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescIntro != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescIntro, "introduction", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescIntro), true))
|
||||
if (errField.DescIntro != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescIntro, "introduction", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescIntro), true))
|
||||
{
|
||||
errField.DescIntro = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescOutline), true))
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescOutline), true))
|
||||
{
|
||||
errField.DescOutline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detailed description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescDetail), true))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detailed description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_DescDetail), true))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB PromotionCode, Quantity, QuantityProd, UomId, Weight, UomIdWeight is optional.
|
||||
if (errField.NominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCode, "nominal code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_NominalCode), true))
|
||||
if (errField.NominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.NominalCode, "nominal code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_NominalCode), true))
|
||||
{
|
||||
errField.NominalCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.MaterialSourceCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MaterialSourceCode, "material source", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_MaterialSourceCode), true))
|
||||
if (errField.MaterialSourceCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.MaterialSourceCode, "material source", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_MaterialSourceCode), true))
|
||||
{
|
||||
errField.MaterialSourceCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB AmountUnit > LocationIdStock is optional.
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_Notes), true))
|
||||
if (errField.Notes != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_Notes), true))
|
||||
{
|
||||
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Requirement_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -44,6 +44,23 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
public abstract bool RefreshAssociatedData(SbmTransaction transaction, List<SbmRequirement> requirements, DbUpdateInfo dbUpdateInfo);
|
||||
public abstract bool RefreshAssociatedTransactions(SbmTransaction transaction, List<SbmRequirement> requirements, DbUpdateInfo dbUpdateInfo);
|
||||
|
||||
public DateTime GetTransactionTaxEffectiveDate(SbmTransaction transaction)
|
||||
{
|
||||
// Original thinking was that the status would have an effect on the tax point.
|
||||
SbmTransaction.StatusCat transactionStatusCat = SbmTransaction.GetCategoryForStatus(transaction.Status);
|
||||
|
||||
// Nov-08 Current thinking is that the only differences is whether the 'In Progress' date has been specified and whether that should be used in preference to the 'Raised' date.
|
||||
if (DateUtil.IsValid(transaction.InProgress) && (transactionStatusCat == SbmTransaction.StatusCat.Open || transactionStatusCat == SbmTransaction.StatusCat.Closed))
|
||||
{
|
||||
if (SessionConsole.UseInProgressTaxDateAsTaxPoint(transaction.TransactionType))
|
||||
return transaction.InProgress;
|
||||
}
|
||||
// Otherwise, use 'Raised' date.
|
||||
if (DateUtil.IsValid(transaction.Raised))
|
||||
return transaction.Raised;
|
||||
return DateTime.Today;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Associated data.
|
||||
public abstract bool TransactionIsReferencedByOtherTransactions(SysId transactionId/*, Sbm.TransactionStatusCat transactionStatusCat*/);
|
||||
@@ -152,7 +169,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (transaction == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
|
||||
if (!IsValidTransactionData(transaction.GetData(), new SbmTransaction.ErrField())) return false;
|
||||
// Transaction status category.
|
||||
if (!IsValidValue(TransactionStatusCats.GetCodeForType(transaction.TransactionStatusCat), "status cat", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_StatusCat), true, true))
|
||||
if (!IsValidValue(TransactionStatusCats.GetCodeForType(transaction.TransactionStatusCat), "status cat", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_StatusCat), true, true))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
@@ -180,134 +197,134 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
|
||||
// References.
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Ref)))
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Ref)))
|
||||
{
|
||||
errField.Ref = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_RefExt)))
|
||||
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_RefExt)))
|
||||
{
|
||||
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
// Raised by.
|
||||
if (errField.RaisedBy != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RaisedBy, "raised by", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_RaisedBy)))
|
||||
if (errField.RaisedBy != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RaisedBy, "raised by", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_RaisedBy)))
|
||||
{
|
||||
errField.RaisedBy = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB AffIdRaise, AssocIdOffice, TransIdSource is optional.
|
||||
if (errField.ContactName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactName, "contact name", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ContactName)))
|
||||
if (errField.ContactName != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactName, "contact name", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ContactName)))
|
||||
{
|
||||
errField.ContactName = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (errField.Likelihood != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Likelihood, "likelihood", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Likelihood)))
|
||||
if (errField.Likelihood != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Likelihood, "likelihood", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Likelihood)))
|
||||
{
|
||||
errField.Likelihood = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ReferCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ReferCode, "refer code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ReferCode)))
|
||||
if (errField.ReferCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ReferCode, "refer code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ReferCode)))
|
||||
{
|
||||
errField.ReferCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ReferSource != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ReferSource, "refer source", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ReferSource)))
|
||||
if (errField.ReferSource != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ReferSource, "refer source", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ReferSource)))
|
||||
{
|
||||
errField.ReferSource = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB AffIdRefer > Closed is optional.
|
||||
if (errField.Department != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Department, "department", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Department)))
|
||||
if (errField.Department != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Department, "department", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Department)))
|
||||
{
|
||||
errField.Department = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "brief description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescBrief)))
|
||||
if (errField.DescBrief != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescBrief, "brief description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescBrief)))
|
||||
{
|
||||
errField.DescBrief = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescIntro != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescIntro, "introduction description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescIntro)))
|
||||
if (errField.DescIntro != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescIntro, "introduction description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescIntro)))
|
||||
{
|
||||
errField.DescIntro = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescOutline)))
|
||||
if (errField.DescOutline != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescOutline, "outline description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescOutline)))
|
||||
{
|
||||
errField.DescOutline = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detail description", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescDetail)))
|
||||
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "detail description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DescDetail)))
|
||||
{
|
||||
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ContactAreaCode)))
|
||||
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ContactAreaCode)))
|
||||
{
|
||||
errField.ContactAreaCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.ResponseCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ResponseCode, "response", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ResponseCode)))
|
||||
if (errField.ResponseCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ResponseCode, "response", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_ResponseCode)))
|
||||
{
|
||||
errField.ResponseCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB CurrencyId > UomIdWeight is optional.
|
||||
if (errField.BoxCount != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.BoxCount, "box count", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_BoxCount)))
|
||||
if (errField.BoxCount != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.BoxCount, "box count", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_BoxCount)))
|
||||
{
|
||||
errField.BoxCount = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryStatusCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryStatusCode, "delivery status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryStatusCode)))
|
||||
if (errField.DeliveryStatusCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryStatusCode, "delivery status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryStatusCode)))
|
||||
{
|
||||
errField.DeliveryStatusCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryTypeCode)))
|
||||
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryTypeCode)))
|
||||
{
|
||||
errField.DeliveryTypeCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryMethodCode, "delivery method", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryMethodCode)))
|
||||
if (errField.DeliveryMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryMethodCode, "delivery method", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryMethodCode)))
|
||||
{
|
||||
errField.DeliveryMethodCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryCourierCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryCourierCode, "delivery courier", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryCourierCode)))
|
||||
if (errField.DeliveryCourierCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryCourierCode, "delivery courier", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryCourierCode)))
|
||||
{
|
||||
errField.DeliveryCourierCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book-in", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryBookInCode)))
|
||||
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book-in", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryBookInCode)))
|
||||
{
|
||||
errField.DeliveryBookInCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.StockPickerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.StockPickerCode, "stock picker", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_StockPickerCode)))
|
||||
if (errField.StockPickerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.StockPickerCode, "stock picker", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_StockPickerCode)))
|
||||
{
|
||||
errField.StockPickerCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryRef, "delivery ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryRef)))
|
||||
if (errField.DeliveryRef != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryRef, "delivery ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryRef)))
|
||||
{
|
||||
errField.DeliveryRef = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryComment != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryComment, "delivery comment", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryComment)))
|
||||
if (errField.DeliveryComment != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryComment, "delivery comment", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryComment)))
|
||||
{
|
||||
errField.DeliveryComment = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// NB DeliveryAmountNet, TaxCodeIdDelivery, DeliveryAmountTax, DeliveryAmountTot is optional.
|
||||
if (errField.DeliveryDepartment != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryDepartment, "delivery department", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryDepartment)))
|
||||
if (errField.DeliveryDepartment != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryDepartment, "delivery department", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryDepartment)))
|
||||
{
|
||||
errField.DeliveryDepartment = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
if (errField.DeliveryNominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryNominalCode, " delivery nominal code", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryNominalCode)))
|
||||
if (errField.DeliveryNominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryNominalCode, " delivery nominal code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_DeliveryNominalCode)))
|
||||
{
|
||||
errField.DeliveryNominalCode = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -317,7 +334,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
if (maxTranNotesLength < 1)
|
||||
{
|
||||
// Standard notes length:
|
||||
maxTranNotesLength = (int)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Notes);
|
||||
maxTranNotesLength = (int)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Notes);
|
||||
// Check if this database allows longer notes:
|
||||
ISacsDatabase db = SbmGlobals.Application.GetBusMgrDatabase(SessionContext);
|
||||
if (db != null)
|
||||
@@ -334,7 +351,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
||||
{
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Status), true, true))
|
||||
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Status), true, true))
|
||||
{
|
||||
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
@@ -375,7 +392,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
||||
}
|
||||
if (HasErrorState()) return false;
|
||||
}
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Ref, "Ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Ref), true))
|
||||
if (errField.Ref != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Ref, "Ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Transaction_Ref), true))
|
||||
{
|
||||
errField.Ref = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Demo Account Request</title>
|
||||
[#Email.MainStylesheet]
|
||||
</head>
|
||||
<body>
|
||||
[#Email.Header]
|
||||
<div class="sax-email-body">
|
||||
<div class="sax-email-panel-caption">
|
||||
<div class="sax-caption">Demo Account Registration</div>
|
||||
</div>
|
||||
<div class="sax-email-panel-content">
|
||||
<div class="sax-para">Thank you for registering your demo account details!</div>
|
||||
<div class="sax-para">Follow <span style="font-weight:bold;"><a href="[#Link.DemoAccountSignin]">this link</a></span> to login to the demo application.</div>
|
||||
<div class="sax-para">Thank you.</div>
|
||||
<div class="sax-para">BusinessMgr team</div>
|
||||
</div>
|
||||
</div>
|
||||
[#Email.Footer]
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Demo Account Request</title>
|
||||
[#Email.MainStylesheet]
|
||||
</head>
|
||||
<body>
|
||||
[#Email.Header]
|
||||
<div class="sax-email-body">
|
||||
<div class="sax-email-panel-caption">
|
||||
<div class="sax-caption">Demo Account Request</div>
|
||||
</div>
|
||||
<div class="sax-email-panel-content">
|
||||
<div class="sax-para">Thank you for requesting a demo account!</div>
|
||||
<div class="sax-para">Follow <span style="font-weight:bold;"><a href="[#Link.DemoAccountRegister]">this link</a></span> to complete registration for your account for the demo application.</div>
|
||||
<div class="sax-para">This link will expire in [#Link.ExpiresMinutes] minutes.</div>
|
||||
<div class="sax-para">Thank you.</div>
|
||||
<div class="sax-para">BusinessMgr team</div>
|
||||
</div>
|
||||
</div>
|
||||
[#Email.Footer]
|
||||
</body>
|
||||
</html>
|
||||
@@ -16,7 +16,7 @@
|
||||
<div class="sax-para">Follow <span style="font-weight:bold;"><a href="[#Link.RequestPassword]">this link</a></span> to set a new password against your account.</div>
|
||||
<div class="sax-para">This link will expire in [#Link.ExpiresMinutes] minutes.</div>
|
||||
<div class="sax-para">Thank you.</div>
|
||||
<div class="sax-para">Sarand BusinessMgr team</div>
|
||||
<div class="sax-para">BusinessMgr team</div>
|
||||
</div>
|
||||
</div>
|
||||
[#Email.Footer]
|
||||
|
||||
@@ -51,66 +51,34 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.App
|
||||
{
|
||||
return new SbmAccountMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmAccountMgr CreateAccountMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmAccountMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmAssetMgr CreateAssetMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmAssetMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmAssetMgr CreateAssetMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmAssetMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmCommodityMgr CreateCommodityMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmCommodityMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmCommodityMgr CreateCommodityMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmCommodityMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmPriceMgr CreatePriceMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmPriceMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmPriceMgr CreatePriceMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmPriceMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmDataItemMgr CreateDataItemMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmDataItemMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmDataItemMgr CreateDataItemMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmDataItemMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmProcessMgr CreateProcessMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmProcessMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmProcessMgr CreateProcessMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmProcessMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmStockMgr CreateStockMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmStockMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmStockMgr CreateStockMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmStockMgr_Dbas(userContext);
|
||||
}
|
||||
public override SbmTransactionMgr CreateTransactionMgr(SbmInternals internals)
|
||||
{
|
||||
return new SbmTransactionMgr_Dbas(internals);
|
||||
}
|
||||
public override SbmTransactionMgr CreateTransactionMgr(ISbmUserOrganisationContext userContext)
|
||||
{
|
||||
return new SbmTransactionMgr_Dbas(userContext);
|
||||
}
|
||||
|
||||
// Control.
|
||||
public override SbmcAccountMgr CreateControlAccountMgr()
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus.Control
|
||||
{
|
||||
//=======================================================================
|
||||
internal class SbmcAccountRegistration_Dbas : SbmcAccountRegistration
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
public SbmcAccountRegistration_Dbas(SysId id, string emailAddress, Guid registerAccountToken, ushort flags) :
|
||||
base(id, emailAddress, registerAccountToken)
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -22,13 +22,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus.Control
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
@@ -22,13 +22,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus.Control
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
@@ -22,13 +22,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus.Control
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
@@ -22,13 +22,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus.Control
|
||||
{
|
||||
Flags = flags;
|
||||
}
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
|
||||
using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Sarand.Net.Standard.Base.ItemData;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using static Sarand.BusinessMgr.Net.Standard.Base.App.Sbm;
|
||||
|
||||
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
|
||||
{
|
||||
|
||||
@@ -132,7 +132,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
|
||||
}
|
||||
}
|
||||
else SetErrorState("database is unavailable");
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -262,7 +262,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Bus
|
||||
}
|
||||
}
|
||||
else SetErrorState("database is unavailable");
|
||||
return !HasErrorState();
|
||||
return OK;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Consoles;
|
||||
using Sarand.BusinessMgr.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Dbas.Base;
|
||||
using Sarand.Net.Standard.Dbas.CodeTypes;
|
||||
@@ -9,16 +10,31 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Consoles
|
||||
public abstract class SbmCodeTypeConsole_Dbas : SaCodeTypeConsole_Dbas
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmCodeTypeConsole_Dbas(ISbmUserOrganisationContext userContext) : base(SbmGlobals.Application.GetBusMgrDatabase(userContext.SessionContext))
|
||||
// Data members.
|
||||
private class DataMembers
|
||||
{
|
||||
UserContext = userContext;
|
||||
public DataMembers (SbmInternals internalsSupplied)
|
||||
{
|
||||
this.InternalsSupplied = internalsSupplied;
|
||||
}
|
||||
public SbmInternals InternalsSupplied { get; }
|
||||
}
|
||||
private DataMembers mbr {get; }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Construction.
|
||||
protected SbmCodeTypeConsole_Dbas(SbmInternals internals) : base(internals.BusMgrDatabase)
|
||||
{
|
||||
mbr = new DataMembers(internals);
|
||||
SbmSystem.RegisterCodeTypes(SessionConsole, this);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
public ISbmUserOrganisationContext UserContext { get; }
|
||||
public SbmSessionContext SessionContext { get { return UserContext.SessionContext; } }
|
||||
private SbmInternals Internals { get { return mbr.InternalsSupplied; } }
|
||||
private SbmSessionContext SessionContext { get { return Internals.SessionContext; } }
|
||||
private ISbmUserOrganisationContext UserContext { get { return Internals.UserContext; } }
|
||||
private SbmSessionConsole SessionConsole { get{ return Internals.SessionConsole; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user