273 lines
9.8 KiB
C#
273 lines
9.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Dbas;
|
|
using Sarand.Net.Standard.Base.UpdateLog;
|
|
|
|
namespace Sarand.Net.Standard.Base.ReferenceData
|
|
{
|
|
//=====================================================================
|
|
// R e f e r e n c e D a t a
|
|
//=====================================================================
|
|
// Reference data item types.
|
|
public enum ReferenceDataItemType
|
|
{
|
|
Unknown = 0,
|
|
Language,
|
|
Region,
|
|
Currency,
|
|
TaxCode,
|
|
UnitMeasure,
|
|
}
|
|
//-------------------------------------------------------------------
|
|
// Reference data code types.
|
|
public enum ReferenceDataSystemCode
|
|
{
|
|
RegionType,
|
|
CurrencyCode,
|
|
TaxCodeType,
|
|
TaxCodeColumn,
|
|
UnitMeasureCategory,
|
|
UnitMeasureType,
|
|
}
|
|
//-------------------------------------------------------------------
|
|
// Region types.
|
|
public enum SaRegionType
|
|
{
|
|
Unknown = 0,
|
|
Continent, // 'CON'
|
|
Country, // 'COU'
|
|
Province, // 'PRO'
|
|
Town, // 'TWN'
|
|
};
|
|
//-------------------------------------------------------------------
|
|
// Currency code.
|
|
public enum SaCurrencyCode
|
|
{
|
|
Unknown = 0,
|
|
Sterling,
|
|
Euro,
|
|
};
|
|
//-------------------------------------------------------------------
|
|
// Tax code - with Sage equivalent.
|
|
public enum SaTaxCodeType
|
|
{
|
|
Zero, // 'T0'
|
|
Std, // 'T1'
|
|
Exempt, // 'T2' or 'T3'
|
|
};
|
|
//-------------------------------------------------------------------
|
|
// Tax code column.
|
|
public enum SaTaxCodeColumn
|
|
{
|
|
Unknown = 0,
|
|
Code = 10,
|
|
CodeAlt1,
|
|
CodeAlt2,
|
|
};
|
|
//-------------------------------------------------------------------
|
|
// NB Do not change these values - they are tied to the database.
|
|
public enum SaUomCategory
|
|
{
|
|
/// <summary>Allows all UOM categories, eg. in combobox.</summary>
|
|
Any = -1,
|
|
/// <summary>UOM category is not defined. Allows any in filters, but none in combobox.</summary>
|
|
Unknown = 0,
|
|
Time = 1,
|
|
Pack = 2,
|
|
Weight = 3,
|
|
Length = 4,
|
|
Area = 5,
|
|
Volume = 6,
|
|
Density = 7,
|
|
/// <summary>'BOX' - types of container, eg. box, pallet.</summary>
|
|
Box = 8,
|
|
};
|
|
//-------------------------------------------------------------------
|
|
// NB Do not change these values - they are tied to the database.
|
|
public enum SaUomType
|
|
{
|
|
Any = -1,
|
|
Unknown = 0,
|
|
// Time units.
|
|
Time_Second = 100,
|
|
Time_Minute = 101,
|
|
Time_Hour = 102,
|
|
Time_Day = 110,
|
|
Time_WorkingDay = 111,
|
|
Time_Week = 120,
|
|
Time_WorkingWeek = 121,
|
|
Time_Fortnight = 122,
|
|
Time_Month = 140,
|
|
Time_Quarter = 141,
|
|
Time_Year = 142,
|
|
// Pack units.
|
|
Pack_Each = 200,
|
|
Pack_Set = 201,
|
|
// Weight units.
|
|
Weight_Gram = 300,
|
|
Weight_Kilogram = 301,
|
|
Weight_Tonne = 302,
|
|
// Length units.
|
|
Length_Metre = 400,
|
|
Length_Kilometre = 401,
|
|
// Area units.
|
|
Length_SquareMetre = 500,
|
|
Length_Hectare = 501,
|
|
Length_Acre = 590,
|
|
// Volume units.
|
|
Volume_Litre = 600,
|
|
Volume_CubicMetre = 601,
|
|
// Density units.
|
|
Density_KilogramsPerCubicMetre = 700,
|
|
Density_GramsPerCubicCentimeter = 701,
|
|
// Box units.
|
|
Box_Box = 800,
|
|
Box_Carton = 801,
|
|
Box_Pallet = 802,
|
|
};
|
|
|
|
//=======================================================================
|
|
public abstract partial class SaReferenceDataConsole : SacsDisposableStateItem
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Definitions.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
private static List<TypeCodeDesc> regionTypes;
|
|
private static List<TypeCodeDesc> currencyCodes;
|
|
private static List<TypeCodeDesc> taxCodeTypes;
|
|
private static List<TypeCodeDesc> taxCodeColumns;
|
|
private static List<TypeCodeDesc> unitMeasureCategories;
|
|
private static List<TypeCodeDesc> unitMeasureTypes;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Static initialisation.
|
|
static SaReferenceDataConsole()
|
|
{
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
protected SaReferenceDataConsole()
|
|
{
|
|
}
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
public abstract SaUpdateLogConsole UpdateLogConsole { get; }
|
|
// Database.
|
|
public abstract bool CanUpdateDatabase { get; }
|
|
|
|
//---------------------------------------------------------------
|
|
// Manage reference data - displays dialog.
|
|
public abstract bool ManageReferenceData(bool userCanManageReferenceData, DbUpdateInfo dbUpdateInfo);
|
|
|
|
//---------------------------------------------------------------
|
|
// Reference data codes.
|
|
public static List<TypeCodeDesc> GetReferenceDataCodes(ReferenceDataSystemCode systemCode)
|
|
{
|
|
switch (systemCode)
|
|
{
|
|
case ReferenceDataSystemCode.RegionType:
|
|
if (regionTypes == null)
|
|
{
|
|
regionTypes = new List<TypeCodeDesc>();
|
|
regionTypes.Add(SaRegionType.Continent, "CON", "Continent");
|
|
regionTypes.Add(SaRegionType.Country, "COU", "Country");
|
|
regionTypes.Add(SaRegionType.Province, "PRO", "Province");
|
|
regionTypes.Add(SaRegionType.Town, "TWN", "Town");
|
|
}
|
|
return new List<TypeCodeDesc>(regionTypes);
|
|
case ReferenceDataSystemCode.CurrencyCode:
|
|
if (currencyCodes == null)
|
|
{
|
|
currencyCodes = new List<TypeCodeDesc>();
|
|
currencyCodes.Add(SaCurrencyCode.Sterling, "GBP", "GBP");
|
|
currencyCodes.Add(SaCurrencyCode.Euro, "EUR", "EUR");
|
|
}
|
|
return new List<TypeCodeDesc>(currencyCodes);
|
|
case ReferenceDataSystemCode.TaxCodeType:
|
|
if (taxCodeTypes == null)
|
|
{
|
|
taxCodeTypes = new List<TypeCodeDesc>();
|
|
taxCodeTypes.Add(SaTaxCodeType.Zero, "ZERO", "Zero");
|
|
taxCodeTypes.Add(SaTaxCodeType.Std, "STD", "Standard");
|
|
taxCodeTypes.Add(SaTaxCodeType.Exempt, "EXEMPT", "Exempt");
|
|
}
|
|
return new List<TypeCodeDesc>(taxCodeTypes);
|
|
case ReferenceDataSystemCode.TaxCodeColumn:
|
|
if (taxCodeColumns == null)
|
|
{
|
|
taxCodeColumns = new List<TypeCodeDesc>();
|
|
taxCodeColumns.Add(SaTaxCodeColumn.Code, SaReferenceDataDbDfn.GetColumnName(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, false), "Tax code");
|
|
taxCodeColumns.Add(SaTaxCodeColumn.CodeAlt1, SaReferenceDataDbDfn.GetColumnName(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt1, false), "Alt. tax code 1");
|
|
taxCodeColumns.Add(SaTaxCodeColumn.CodeAlt2, SaReferenceDataDbDfn.GetColumnName(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt2, false), "Alt. tax code 2");
|
|
}
|
|
return new List<TypeCodeDesc>(taxCodeColumns);
|
|
case ReferenceDataSystemCode.UnitMeasureCategory:
|
|
if (unitMeasureCategories == null)
|
|
{
|
|
unitMeasureCategories = new List<TypeCodeDesc>();
|
|
unitMeasureCategories.Add(SaUomCategory.Time, "TIM", "Time");
|
|
unitMeasureCategories.Add(SaUomCategory.Pack, "PCK", "Pack");
|
|
unitMeasureCategories.Add(SaUomCategory.Weight, "WEI", "Weight");
|
|
unitMeasureCategories.Add(SaUomCategory.Length, "LEN", "Length");
|
|
unitMeasureCategories.Add(SaUomCategory.Area, "ARE", "Area");
|
|
unitMeasureCategories.Add(SaUomCategory.Volume, "VOL", "Volume");
|
|
unitMeasureCategories.Add(SaUomCategory.Density, "DEN", "Density");
|
|
unitMeasureCategories.Add(SaUomCategory.Box, "BOX", "Box (container)");
|
|
}
|
|
return new List<TypeCodeDesc>(unitMeasureCategories);
|
|
case ReferenceDataSystemCode.UnitMeasureType:
|
|
if (unitMeasureTypes == null)
|
|
{
|
|
unitMeasureTypes = new List<TypeCodeDesc>();
|
|
unitMeasureTypes.Add(SaUomType.Time_Second, "SEC", "Second");
|
|
unitMeasureTypes.Add(SaUomType.Time_Minute, "MIN", "Minute");
|
|
unitMeasureTypes.Add(SaUomType.Time_Hour, "HR", "Hour");
|
|
unitMeasureTypes.Add(SaUomType.Time_Day, "DAY", "Day");
|
|
unitMeasureTypes.Add(SaUomType.Time_WorkingDay, "WDAY", "Working day");
|
|
unitMeasureTypes.Add(SaUomType.Time_Week, "WK", "Week");
|
|
unitMeasureTypes.Add(SaUomType.Time_WorkingWeek, "WWK", "Working week");
|
|
unitMeasureTypes.Add(SaUomType.Time_Fortnight, "FNT", "Fortnight");
|
|
unitMeasureTypes.Add(SaUomType.Time_Month, "MTH", "Month");
|
|
unitMeasureTypes.Add(SaUomType.Time_Quarter, "QTR", "Quarter");
|
|
unitMeasureTypes.Add(SaUomType.Time_Year, "YR", "Year");
|
|
unitMeasureTypes.Add(SaUomType.Pack_Each, "EACH", "Each");
|
|
unitMeasureTypes.Add(SaUomType.Pack_Set, "SET", "Set");
|
|
unitMeasureTypes.Add(SaUomType.Weight_Gram, "GRM", "Gram");
|
|
unitMeasureTypes.Add(SaUomType.Weight_Kilogram, "KG", "Kilogram");
|
|
unitMeasureTypes.Add(SaUomType.Weight_Tonne, "TON", "Tonne");
|
|
unitMeasureTypes.Add(SaUomType.Length_Metre, "METRE", "Metre");
|
|
unitMeasureTypes.Add(SaUomType.Length_Kilometre, "KMET", "Kilometre");
|
|
unitMeasureTypes.Add(SaUomType.Length_SquareMetre, "SQMET", "Square metre");
|
|
unitMeasureTypes.Add(SaUomType.Length_Hectare, "HECT", "Hectare");
|
|
unitMeasureTypes.Add(SaUomType.Length_Acre, "ACRE", "Acre");
|
|
unitMeasureTypes.Add(SaUomType.Volume_Litre, "LITRE", "Litre");
|
|
unitMeasureTypes.Add(SaUomType.Volume_CubicMetre, "CUBMET", "Cubic metre");
|
|
unitMeasureTypes.Add(SaUomType.Density_KilogramsPerCubicMetre, "KPCMET", "Kg/m3");
|
|
unitMeasureTypes.Add(SaUomType.Density_GramsPerCubicCentimeter, "GPCCMET", "g/cm3");
|
|
unitMeasureTypes.Add(SaUomType.Box_Box, "BOX", "Box");
|
|
unitMeasureTypes.Add(SaUomType.Box_Carton, "CARTON", "Carton");
|
|
unitMeasureTypes.Add(SaUomType.Box_Pallet, "PALLET", "Pallet");
|
|
}
|
|
return new List<TypeCodeDesc>(unitMeasureTypes);
|
|
}
|
|
throw new NotSupportedException(typeof(SaReferenceDataConsole).Name + ".GetReferenceDataCodes Invalid code type specified: " + systemCode.ToString());
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|