Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_Commodity-Utils.cs
T

330 lines
20 KiB
C#

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 System.IO;
using System.Threading.Tasks;
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
{
//=======================================================================
// Commodity Manager - Commodity - Utils.
//=======================================================================
partial class SbmCommodityMgr
{
//-------------------------------------------------------------------
// Commodity Associated data.
public abstract bool CommodityHasProcesses(SysId commodityId);
public abstract bool CommodityHasRequirements(SysId commodityId);
public abstract bool CommodityIsSalesBudgetTemplate(SysId commodityId);
public abstract bool CommodityHasComponents(SysId commodityId);
public abstract bool CommodityHasPortfolioItems(SysId commodityId);
public abstract bool CommodityHasContainers(SysId commodityId);
public abstract bool CommodityHasCustomerDetails(SysId commodityId);
public abstract bool CommodityHasSupplierDetails(SysId commodityId);
public abstract bool CommodityHasMovements(SysId commodityId);
public abstract bool CommodityHasStockLevels(SysId commodityId);
// Dependent data should only be cleared when removing a commodity.
// Data owned by this item is deleted (eg. interface data items & document references).
public abstract bool ClearCommodityDependentData(SysId commodityId);
//-------------------------------------------------------------------
// Commodity requirements.
/// <summary>
/// Update requirements for this commodity with the correct code.
/// </summary>
public abstract bool UpdateCommodityRequirements(SbmCommodity commodity);
//-------------------------------------------------------------------
// Commodity cost estimates.
public abstract List<SbmCostEstimate> GetCommodityCostEstimates(SbmCommodity commodity);
public abstract bool SetCommodityCostEstimates(SbmCommodity commodity, List<SbmCostEstimate> costEstimatesNew);
public abstract bool CommitCommodityCostEstimates(SbmCommodity commodity);
//-------------------------------------------------------------------
// Commodity processes.
public abstract List<SbmItemProcess> GetCommodityProcesses(SbmCommodity commodity, bool bActiveOnly = false);
public abstract bool SetCommodityProcesses(SbmCommodity commodity, List<SbmItemProcess> itemProcessesNew);
public abstract bool CommitCommodityProcesses(SbmCommodity commodity);
//-------------------------------------------------------------------
// Interfaces.
// Commodity interface rules.
public bool AllowColumnImport(SbmDbDfn.ColumnIdx column)
{
switch (column)
{
//case SbmDbDfn.ColumnIdx.Commodity_Id:
//case SbmDbDfn.ColumnIdx.Commodity_AffIdOwner:
//case SbmDbDfn.ColumnIdx.Commodity_Type:
case SbmDbDfn.ColumnIdx.Commodity_Code:
case SbmDbDfn.ColumnIdx.Commodity_DescBrief:
case SbmDbDfn.ColumnIdx.Commodity_DescOrder:
case SbmDbDfn.ColumnIdx.Commodity_DescDetail:
case SbmDbDfn.ColumnIdx.Commodity_DrawingNo:
case SbmDbDfn.ColumnIdx.Commodity_DrawingIssue:
case SbmDbDfn.ColumnIdx.Commodity_ImagePath:
case SbmDbDfn.ColumnIdx.Commodity_Category:
case SbmDbDfn.ColumnIdx.Commodity_Category2:
case SbmDbDfn.ColumnIdx.Commodity_Category3:
case SbmDbDfn.ColumnIdx.Commodity_Location:
case SbmDbDfn.ColumnIdx.Commodity_Department:
case SbmDbDfn.ColumnIdx.Commodity_CatalogRef:
case SbmDbDfn.ColumnIdx.Commodity_Weight:
case SbmDbDfn.ColumnIdx.Commodity_UomIdWeight:
case SbmDbDfn.ColumnIdx.Commodity_Length:
case SbmDbDfn.ColumnIdx.Commodity_UomIdLength:
case SbmDbDfn.ColumnIdx.Commodity_Volume:
case SbmDbDfn.ColumnIdx.Commodity_UomIdVolume:
case SbmDbDfn.ColumnIdx.Commodity_Density:
case SbmDbDfn.ColumnIdx.Commodity_UomIdDensity:
case SbmDbDfn.ColumnIdx.Commodity_BoxQuantity:
case SbmDbDfn.ColumnIdx.Commodity_UomIdBox:
case SbmDbDfn.ColumnIdx.Commodity_Dimensions:
case SbmDbDfn.ColumnIdx.Commodity_SpecSummary:
case SbmDbDfn.ColumnIdx.Commodity_NominalCode:
case SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase:
case SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode:
//case SbmDbDfn.ColumnIdx.Commodity_TimeProd:
//case SbmDbDfn.ColumnIdx.Commodity_UomIdTimeProd:
//case SbmDbDfn.ColumnIdx.Commodity_RangeCode:
//case SbmDbDfn.ColumnIdx.Commodity_ColourCode:
//case SbmDbDfn.ColumnIdx.Commodity_SourceCode:
//case SbmDbDfn.ColumnIdx.Commodity_SupplyMethodCode:
//case SbmDbDfn.ColumnIdx.Commodity_HandlingCode:
//case SbmDbDfn.ColumnIdx.Commodity_DeliveryCode:
case SbmDbDfn.ColumnIdx.Commodity_MaterialCode:
case SbmDbDfn.ColumnIdx.Commodity_FinishCode:
case SbmDbDfn.ColumnIdx.Commodity_PromotionCode:
case SbmDbDfn.ColumnIdx.Commodity_AssIdSupplier:
case SbmDbDfn.ColumnIdx.Commodity_SupplierRef:
case SbmDbDfn.ColumnIdx.Commodity_CostPrice:
case SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin:
case SbmDbDfn.ColumnIdx.Commodity_MaterialCost:
case SbmDbDfn.ColumnIdx.Commodity_CurrencyIdMaterial:
case SbmDbDfn.ColumnIdx.Commodity_ExWorksCost:
case SbmDbDfn.ColumnIdx.Commodity_CurrencyIdExWorks:
case SbmDbDfn.ColumnIdx.Commodity_ReorderLevel:
case SbmDbDfn.ColumnIdx.Commodity_ReorderQty:
//case SbmDbDfn.ColumnIdx.Commodity_QtyOnOrder:
case SbmDbDfn.ColumnIdx.Commodity_AssIdCustomer:
case SbmDbDfn.ColumnIdx.Commodity_SalesPrice:
case SbmDbDfn.ColumnIdx.Commodity_RetailPrice:
case SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned:
case SbmDbDfn.ColumnIdx.Commodity_UomIdSale:
case SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative:
//case SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative_Fmt:
case SbmDbDfn.ColumnIdx.Commodity_MinOrderQty:
case SbmDbDfn.ColumnIdx.Commodity_PackQty:
case SbmDbDfn.ColumnIdx.Commodity_TaxCodeId:
//case SbmDbDfn.ColumnIdx.Commodity_LastOrderDate:
//case SbmDbDfn.ColumnIdx.Commodity_LastOrderQty:
//case SbmDbDfn.ColumnIdx.Commodity_QtyInStock:
//case SbmDbDfn.ColumnIdx.Commodity_QtyAllocated:
//case SbmDbDfn.ColumnIdx.Commodity_FreeStock:
//case SbmDbDfn.ColumnIdx.Commodity_StockTakeDate:
//case SbmDbDfn.ColumnIdx.Commodity_StockTakeQty:
//case SbmDbDfn.ColumnIdx.Commodity_OrderQtyDecimals:
case SbmDbDfn.ColumnIdx.Commodity_CommodityIdSalesProj:
//case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonthlyProp:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjAnnual:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth01:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth02:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth03:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth04:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth05:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth06:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth07:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth08:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth09:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth10:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth11:
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth12:
case SbmDbDfn.ColumnIdx.Commodity_Notes:
//case SbmDbDfn.ColumnIdx.Commodity_Flags:
//case SbmDbDfn.ColumnIdx.Commodity_Status:
//case SbmDbDfn.ColumnIdx.Commodity_CreateOn:
//case SbmDbDfn.ColumnIdx.Commodity_CreateBy:
//case SbmDbDfn.ColumnIdx.Commodity_CreateHost:
//case SbmDbDfn.ColumnIdx.Commodity_UpdateOn:
//case SbmDbDfn.ColumnIdx.Commodity_UpdateBy:
//case SbmDbDfn.ColumnIdx.Commodity_UpdateHost:
return SessionConsole.DisplayAttribute(column);
}
return false;
}
public String GetColumnCaption(SbmDbDfn.ColumnIdx column)
{
switch (column)
{
case SbmDbDfn.ColumnIdx.Commodity_Type: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Type, "Type");
case SbmDbDfn.ColumnIdx.Commodity_Code: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Code, "Code");
case SbmDbDfn.ColumnIdx.Commodity_DescBrief: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_DescBrief, "Brief description");
case SbmDbDfn.ColumnIdx.Commodity_DescOrder: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_DescOrder, "Order description");
case SbmDbDfn.ColumnIdx.Commodity_DescDetail: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_DescDetail, "Detail description");
case SbmDbDfn.ColumnIdx.Commodity_DrawingNo: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_DrawingNo, "Drawing no");
case SbmDbDfn.ColumnIdx.Commodity_DrawingIssue: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue, "Drawing issue");
case SbmDbDfn.ColumnIdx.Commodity_ImagePath: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ImagePath, "Image path");
case SbmDbDfn.ColumnIdx.Commodity_Category: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Category, "Category");
case SbmDbDfn.ColumnIdx.Commodity_Location: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Location, "Location");
case SbmDbDfn.ColumnIdx.Commodity_Department: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Department, "Department");
case SbmDbDfn.ColumnIdx.Commodity_CatalogRef: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CatalogRef, "Catalog ref");
case SbmDbDfn.ColumnIdx.Commodity_Weight: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Weight, "Weight");
case SbmDbDfn.ColumnIdx.Commodity_UomIdWeight: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdWeight, "Weight unit");
case SbmDbDfn.ColumnIdx.Commodity_Length: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Length, "Length");
case SbmDbDfn.ColumnIdx.Commodity_UomIdLength: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdLength, "Length unit");
case SbmDbDfn.ColumnIdx.Commodity_Volume: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Volume, "Volume");
case SbmDbDfn.ColumnIdx.Commodity_UomIdVolume: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdVolume, "Volume unit");
case SbmDbDfn.ColumnIdx.Commodity_Density: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Density, "Density");
case SbmDbDfn.ColumnIdx.Commodity_UomIdDensity: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdDensity, "Density unit");
case SbmDbDfn.ColumnIdx.Commodity_BoxQuantity: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_BoxQuantity, "Box quantity");
case SbmDbDfn.ColumnIdx.Commodity_UomIdBox: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdBox, "Box unit");
case SbmDbDfn.ColumnIdx.Commodity_Dimensions: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_Dimensions, "Dimensions");
case SbmDbDfn.ColumnIdx.Commodity_SpecSummary: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SpecSummary, "Specification");
case SbmDbDfn.ColumnIdx.Commodity_NominalCode: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_NominalCode, "Nominal code - sales");
case SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase, "Nominal code - purchase");
case SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ICNTariffCode, "ICN Tariff code");
case SbmDbDfn.ColumnIdx.Commodity_MaterialCode: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCode, "Material");
case SbmDbDfn.ColumnIdx.Commodity_FinishCode: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_FinishCode, "Finish");
case SbmDbDfn.ColumnIdx.Commodity_PromotionCode: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PromotionCode, "Promotion");
case SbmDbDfn.ColumnIdx.Commodity_AssIdSupplier: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_AssIdSupplier, "Supplier");
case SbmDbDfn.ColumnIdx.Commodity_SupplierRef: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SupplierRef, "Supplier ref");
case SbmDbDfn.ColumnIdx.Commodity_CostPrice: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CostPrice, "Cost price");
case SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin, "Place of origin");
case SbmDbDfn.ColumnIdx.Commodity_MaterialCost: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCost, "Material cost");
case SbmDbDfn.ColumnIdx.Commodity_CurrencyIdMaterial: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CurrencyIdMaterial, "Material currency");
case SbmDbDfn.ColumnIdx.Commodity_ExWorksCost: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ExWorksCost, "Ex-works cost");
case SbmDbDfn.ColumnIdx.Commodity_CurrencyIdExWorks: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CurrencyIdExWorks, "Ex-works currency");
case SbmDbDfn.ColumnIdx.Commodity_ReorderLevel: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ReorderLevel, "Reorder level");
case SbmDbDfn.ColumnIdx.Commodity_ReorderQty: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_ReorderQty, "Reorder qty");
case SbmDbDfn.ColumnIdx.Commodity_AssIdCustomer: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_AssIdCustomer, "Customer");
case SbmDbDfn.ColumnIdx.Commodity_SalesPrice: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesPrice, "Sales price");
case SbmDbDfn.ColumnIdx.Commodity_RetailPrice: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_RetailPrice, "Retail price");
case SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned, "Retail price planned");
case SbmDbDfn.ColumnIdx.Commodity_UomIdSale: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_UomIdSale, "Sale unit");
case SbmDbDfn.ColumnIdx.Commodity_PackQty: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_PackQty, "Pack qty - sale");
case SbmDbDfn.ColumnIdx.Commodity_TaxCodeId: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_TaxCodeId, "Tax code");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjAnnual: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjAnnual, "Projected annual sales");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth01: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth01, "Projected sales - Jan");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth02: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth02, "Projected sales - Feb");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth03: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth03, "Projected sales - Mar");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth04: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth04, "Projected sales - Apr");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth05: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth05, "Projected sales - May");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth06: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth06, "Projected sales - Jun");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth07: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth07, "Projected sales - Jul");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth08: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth08, "Projected sales - Aug");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth09: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth09, "Projected sales - Sep");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth10: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth10, "Projected sales - Oct");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth11: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth11, "Projected sales - Nov");
case SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth12: return GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_SalesProjMonth12, "Projected sales - Dec");
}
return "";
}
//-------------------------------------------------------------------
// Image Paths.
public String GetImagePathPrefix()
{
String prefix = "";
if (AccountsDfn.IsItemTypeManagedByAccounts(Sbm.ItemType.Commodity))
{
if (AccountsDfn.IsUsingSageInterface())
prefix = "%SAGE%\\";
}
return prefix;
}
public String GetActualImagePath(String imagePath)
{
//SATRACE("SapCommodityMgr::GetActualImagePath '"+imagePath+"'\n");
if (StringUtil.IsEmpty(imagePath)) return imagePath;
String imagePathPrefix = GetImagePathPrefix();
String cmdImagePath = imagePath;
if (cmdImagePath.Left(imagePathPrefix.Length) == imagePathPrefix)
{
String imageFolder = "";
if (AccountsDfn.IsItemTypeManagedByAccounts(Sbm.ItemType.Commodity))
{
if (AccountsDfn.IsUsingSageInterface())
imageFolder = AccountsDfn.GetImageFolder(Sbm.InterfaceType_Accounts.SageLine50);
}
//ToDo SaSystem::GETPATHDELIM in SbmCmdMgr need to be created inorder to work
cmdImagePath = imageFolder + /*SaSystem::GetPathDelim(imageFolder) +*/ cmdImagePath.Right(cmdImagePath.Length - imagePathPrefix.Length);
}
#if _DEBUG_XXX
if (!sCmdImagePath.IsEmpty())
{
SATRACE("GetActualImagePath Path = '" + cmdImagePath + "'\n");
}
#endif
return cmdImagePath;
}
public String GetStandardImagePath(String commodityCode)
{
// Using organisation configuration image folder.
if (StringUtil.IsEmpty(commodityCode)) return commodityCode;
String path = "";
if (!StringUtil.IsEmpty(commodityCode))
{
String folder = SessionConsole.GetOwnerOption_Folder(Sbm.OrgOption_Folder.CommodityImage);
path = GetImagePath(folder, commodityCode);
}
return path;
}
public String GetBarcodeImagePath(String commodityCode)
{
// Using organisation configuration barcode image folder.
if (StringUtil.IsEmpty(commodityCode)) return commodityCode;
String path = "";
if (!StringUtil.IsEmpty(commodityCode))
{
String folder = SessionConsole.GetOwnerOption_Folder(Sbm.OrgOption_Folder.CommodityBarcodeImage);
path = GetImagePath(folder, commodityCode);
}
return path;
}
public String GetImagePath(String folder, String filenamePrefix)
{
String path = "";
//SATRACE("SapCommodityMgr::GetImagePath Locating image file '"+sFilenamePrefix+"' in folder '"+sFolder+"'\n");
if (!folder.IsEmpty() && Directory.Exists(folder) && !filenamePrefix.IsEmpty())
{
List<String> imageExtensions = StringListUtil.Split("jpg,jpeg,gif,png,tif,eps", ",");
foreach (String imageExtension in imageExtensions)
{
//ToDo SaSystem::GETPATHDELIM in SbmCmdMgr need to be created inorder to work
path = folder + /*SaSystem::GetPathDelim(folder) +*/ filenamePrefix + "." + imageExtension;
#if _DEBUG
if (Sys_Fn::FileExists(path))
{
SATRACE("GetImagePath Found image file: " + path + "\n");
}
#endif
if (!Directory.Exists(path)) path.IsEmpty();
}
}
return path;
}
//-------------------------------------------------------------------
public abstract List<Sbm.CommodityType> GetCommodityTypesInUse();
public abstract Sbm.CommodityType GetTypeForCommodityId(SysId commodityId);
public abstract double GetCostPriceForCommodityId(SysId commodityId);
public abstract List<SysIdString> GetSalesTemplateCommmodities();
public abstract bool UpdateReferencesToSalesTemplate(SbmCommodity commodity);
//-------------------------------------------------------------------
}
//=======================================================================
}