Consolidate User Context

This commit is contained in:
2021-08-04 21:32:35 +01:00
parent b8cfd87860
commit afd38cea03
126 changed files with 2240 additions and 634 deletions
@@ -593,9 +593,9 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//-------------------------------------------------------------------
// Create Commodity.
public override SbmCommodity CreateCommodity(SysId id, SysId affiliateIdOwner, Sbm.CommodityType commodityType, String code)
public override SbmCommodity CreateCommodity(SysId affiliateIdOwner, Sbm.CommodityType commodityType, String code)
{
return new SbmCommodity_Dbas(Internals, id, affiliateIdOwner, commodityType, code, 0);
return new SbmCommodity_Dbas(Internals, null, affiliateIdOwner, commodityType, code, 0);
}
private SbmCommodity_Dbas CreateCommodity(Commodity_Db dbCommodity)
{
@@ -1068,7 +1068,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
// Getting Commodity column definition.
public override ColumnDfn GetCommodityColumnDfn(SbmCommodity.Column columnId, string caption = "", int width = 0)
{
bool canViewFinancials = UserContext.SecurityProfile.Financial.CanViewFinancials;
bool canViewSalesFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySales);
bool canViewSupplyFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySupply);
ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width);
switch (columnId)
@@ -1084,9 +1085,15 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
columnDfn.ReadOnly = true;
break;
// Commodity Properties.
case SbmCommodity.Column.Type_Desc:
case SbmCommodity.Column.Type:
SetCommodityColDfn(columnDfn, "Type", 70, SbmDbDfn.ColumnIdx.Commodity_Type, ColumnAlignment.Center, DataValue.DataType.Long);
break;
case SbmCommodity.Column.Type_Code:
SetCommodityColDfn(columnDfn, "Type", 70, SbmDbDfn.ColumnIdx.Commodity_Type, ColumnAlignment.Center);
break;
case SbmCommodity.Column.Type_Desc:
SetCommodityColDfn(columnDfn, "Type", 90, SbmDbDfn.ColumnIdx.Commodity_Type, ColumnAlignment.Center);
break;
case SbmCommodity.Column.Code:
SetCommodityColDfn(columnDfn, "Code", 120, SbmDbDfn.ColumnIdx.Commodity_Code);
if (ConfigConsole != null && AllowConfigOption(Sbm.ConfigOption.CommodityDoubleColumnWidth))
@@ -1318,7 +1325,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetCommodityColDfn(columnDfn, "Part number", 90, SbmDbDfn.ColumnIdx.Commodity_SupplierRef, ColumnAlignment.Center);
break;
case SbmCommodity.Column.CostPrice:
if (canViewFinancials)
if (canViewSupplyFinancials)
{
String label = GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CostPrice, "Cost price");
SetCommodityColDfn(columnDfn, label, 70, SbmDbDfn.ColumnIdx.Commodity_CostPrice, ColumnAlignment.Right, DataValue.DataType.Double);
@@ -1327,7 +1334,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.CostPrice_Fmt:
if (canViewFinancials)
if (canViewSupplyFinancials)
{
String label = GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_CostPrice, "Cost price");
SetCommodityColDfn(columnDfn, label, 70, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
@@ -1338,7 +1345,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetCommodityColDfn(columnDfn, "Place of origin", 90, SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin);
break;
case SbmCommodity.Column.MaterialCost:
if (canViewFinancials)
if (canViewSupplyFinancials)
{
String label = GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCost, "Material cost");
SetCommodityColDfn(columnDfn, label, 80, SbmDbDfn.ColumnIdx.Commodity_MaterialCost, ColumnAlignment.Right, DataValue.DataType.Double, aliasCommodity_CurrencyMaterial, prefixCommodity_CurrencyMaterial);
@@ -1347,7 +1354,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.MaterialCost_Fmt:
if (canViewFinancials)
if (canViewSupplyFinancials)
{
String label = GetAttributeCaption(SbmDbDfn.ColumnIdx.Commodity_MaterialCost, "Material cost");
SetCommodityColDfn(columnDfn, label, 90, SbmDbDfn.ColumnIdx.Commodity_MaterialCost, ColumnAlignment.Right, DataValue.DataType.String, aliasCommodity_CurrencyMaterial, prefixCommodity_CurrencyMaterial);
@@ -1421,7 +1428,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetCommodityColDfn(columnDfn, "Customer", 100, SbmDbDfn.ColumnIdx.Affiliate_Name);
break;
case SbmCommodity.Column.SalesPrice:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Sales price", 80, SbmDbDfn.ColumnIdx.Commodity_SalesPrice, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = CurrencyDecimalsDefault;
@@ -1429,14 +1436,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.SalesPrice_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Sales price", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.String);
columnDfn.ShowZeroValues = false;
}
break;
case SbmCommodity.Column.RetailPrice:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "RRP", 80, SbmDbDfn.ColumnIdx.Commodity_RetailPrice, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = CurrencyDecimalsDefault;
@@ -1444,14 +1451,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.RetailPrice_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "RRP", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.String);
columnDfn.ShowZeroValues = false;
}
break;
case SbmCommodity.Column.RetailPricePlanned:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Planned RRP", 80, SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = CurrencyDecimalsDefault;
@@ -1459,14 +1466,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.RetailPricePlanned_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Planned RRP", 90, SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned, ColumnAlignment.Right, DataValue.DataType.String);
columnDfn.ShowZeroValues = false;
}
break;
case SbmCommodity.Column.GrossPrice:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Gross price", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = CurrencyDecimalsDefault;
@@ -1474,7 +1481,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.GrossPrice_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Gross price", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.String);
columnDfn.ShowZeroValues = false;
@@ -1484,7 +1491,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetCommodityColDfn(columnDfn, "Unit of Sale", 100, SbmDbDfn.ColumnIdx.UnitMeasure_Single, ColumnAlignment.Center);
break;
case SbmCommodity.Column.CarriageCostIndicative:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Carriage cost (ind)", 80, SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.NumDecimals = CurrencyDecimalsDefault;
@@ -1492,7 +1499,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
break;
case SbmCommodity.Column.CarriageCostIndicative_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetCommodityColDfn(columnDfn, "Carriage cost (ind)", 90, SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative, ColumnAlignment.Right, DataValue.DataType.String);
columnDfn.ShowZeroValues = false;
@@ -2267,23 +2274,41 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
String fn = GetType().Name + ".GetCommodityQueryFilter";
List<String> filter = new List<String>();
//---------------------------------------------------------------
// Common columns.
String colCommodity_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Id, aliasCommodity);
String colCommodity_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_AffIdOwner, aliasCommodity);
String colCommodity_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Type, aliasCommodity);
String colCommodity_Code = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Code, aliasCommodity);
String colCommodity_DescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DescBrief, aliasCommodity);
String colCommodity_DescDetail = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DescDetail, aliasCommodity);
String colCommodity_SpecSummary = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_SpecSummary, aliasCommodity);
String colCommodity_DrawingNo = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DrawingNo, aliasCommodity);
String colCommodity_DrawingIssue = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue, aliasCommodity);
//---------------------------------------------------------------
// Commodity Id.
String includedIds = prm.IncludedIds.Concat(",");
String colCommodity_Id = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Id, aliasCommodity);
if (!includedIds.IsEmpty()) filter.Add(colCommodity_Id + " IN (" + includedIds + ")");
String excludedIds = prm.ExcludedIds.Concat(",");
if (!excludedIds.IsEmpty()) filter.Add(colCommodity_Id + " NOT IN (" + excludedIds + ")");
//---------------------------------------------------------------
// Owner.
String colCommodity_AffIdOwner = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_AffIdOwner, aliasCommodity);
bool filterByOwner = !prm.IncludedIds.HasValidIds() && !prm.PriceSetIdsIncluded.HasValidIds() && !SysId.IsValid(prm.AssociationIdCustomer) && !SysId.IsValid(prm.AssociationIdCommodityCustomer);
if (filterByOwner) filter.Add(colCommodity_AffIdOwner + "=" + SysId.ToString(AffiliateId_Owner));
// Organisation.
if (SysId.IsValid(prm.AffiliateIdOrganisation))
filter.Add(colCommodity_AffIdOwner + "=" + SysId.ToString(prm.AffiliateIdOrganisation));
else
{
// Must filter by organisation if insufficient alternative filetrs.
if (!prm.IncludedIds.HasValidIds() && !prm.PriceSetIdsIncluded.HasValidIds() && !SysId.IsValid(prm.AssociationIdCustomer) && !SysId.IsValid(prm.AssociationIdCommodityCustomer))
{
if (!SysId.IsValid(AffiliateId_Owner)) throw new NotSupportedException("Commodity query filter - Organisation Id must be specified");
filter.Add(colCommodity_AffIdOwner + "=" + SysId.ToString(AffiliateId_Owner));
}
}
//---------------------------------------------------------------
// Type.
String colCommodity_Type = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Type, aliasCommodity);
if (prm.CommodityType == Sbm.CommodityType.AnyProduct)
filter.Add(colCommodity_Type + " In (" + ((int)Sbm.CommodityType.Stock).ToString() + "," + ((int)Sbm.CommodityType.NonStock).ToString() + ")");
else if ((int)prm.CommodityType > 0)
@@ -2293,7 +2318,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//---------------------------------------------------------------
// Code.
String colCommodity_Code = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Code, aliasCommodity);
if (!StringUtil.IsEmpty(prm.CodeFull))
filter.Add(colCommodity_Code + "='" + DbQuery.FormatForCondition(prm.CodeFull) + "'");
else if (!StringUtil.IsEmpty(prm.CodePartial))
@@ -2307,7 +2331,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
// Brief Desc.
bool allowEmbeddedTextSearch = true;
bool allowFullTextSearch = true;
String colCommodity_DescBrief = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DescBrief, aliasCommodity);
if (!StringUtil.IsEmpty(prm.DescBriefFull))
filter.Add(colCommodity_DescBrief + "='" + DbQuery.FormatForCondition(prm.DescBriefFull) + "'");
else if (!StringUtil.IsEmpty(prm.DescBriefPartial))
@@ -2327,7 +2350,6 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//---------------------------------------------------------------
// DrawingNumber.
String colCommodity_DrawingNo = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DrawingNo, aliasCommodity);
if (!StringUtil.IsEmpty(prm.DrawingNoFull))
{
filter.Add(colCommodity_DrawingNo + "='" + DbQuery.FormatForCondition(prm.DrawingNoFull) + "'");
@@ -2338,12 +2360,31 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
}
// DrawingIssue.
String colCommodity_DrawingIssue = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DrawingIssue, aliasCommodity);
if (!StringUtil.IsEmpty(prm.DrawingIssueFull))
filter.Add(colCommodity_DrawingIssue + "='" + DbQuery.FormatForCondition(prm.DrawingIssueFull) + "'");
else if (!StringUtil.IsEmpty(prm.DrawingIssuePartial))
filter.Add(DbQuery.FormatFn_Left(colCommodity_DrawingIssue, prm.DrawingIssuePartial.Length) + "='" + DbQuery.FormatForCondition(prm.DrawingIssuePartial) + "'");
//---------------------------------------------------------------
// Generic search.
if (!StringUtil.IsEmpty(prm.Search))
{
List<String> searchFilter = new List<string>();
foreach (String rawSearchValue in prm.Search.Split(new char[] { ' ', ',', ';' }))
{
String searchValue = DbQuery.FormatForLike(StringUtil.TrimAll(rawSearchValue));
if (StringUtil.IsEmpty(searchValue)) continue;
List<String> searchValueFilter = new List<string>();
searchValueFilter.Add(colCommodity_Code + " LIKE '%" + searchValue + "%'");
searchValueFilter.Add(colCommodity_DescBrief + " LIKE '%" + searchValue + "%'");
searchValueFilter.Add(colCommodity_DescDetail + " LIKE '%" + searchValue + "%'");
searchValueFilter.Add(colCommodity_SpecSummary + " LIKE '%" + searchValue + "%'");
searchValueFilter.Add(colCommodity_DrawingNo + " LIKE '%" + searchValue + "%'");
searchFilter.Add(searchValueFilter.Concat(" OR ", "(", ")"));
}
filter.AddRange(searchFilter);
}
//---------------------------------------------------------------
// Catalog.
String colCommodity_CatalogRef = SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_CatalogRef, aliasCommodity);
@@ -2670,7 +2711,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
ClearErrorState();
PopulateLocationIdLists();
bool canViewFinancials = UserContext.SecurityProfile.Financial.CanViewFinancials;
bool canViewSupplyFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySupply);
bool canViewSalesFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySales);
//---------------------------------------------------------------
// Construct query.
@@ -2693,8 +2735,10 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//---------------------------------------------------------------
// Commodity Properties - add columns as defined in query list.
if (columns.HasId(SbmCommodity.Column.Id)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Id, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.Type_Desc)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Type, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Id, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.Type) || columns.HasId(SbmCommodity.Column.Type_Code) || columns.HasId(SbmCommodity.Column.Type_Desc))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Type, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.Code)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_Code, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.DescBrief)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DescBrief, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.DescDetail)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_DescDetail, aliasCommodity));
@@ -2740,18 +2784,14 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (columns.HasId(SbmCommodity.Column.NominalCodePurchase)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_NominalCodePurchase, aliasCommodity));
//---------------------------------------------------------------
// Currency (to come).
if (canViewFinancials && (columns.HasId(SbmCommodity.Column.CostPrice_Fmt) ||
columns.HasId(SbmCommodity.Column.SalesPrice_Fmt) ||
columns.HasId(SbmCommodity.Column.RetailPrice_Fmt) ||
columns.HasId(SbmCommodity.Column.RetailPricePlanned_Fmt) ||
columns.HasId(SbmCommodity.Column.GrossPrice_Fmt) ||
columns.HasId(SbmCommodity.Column.CarriageCostIndicative_Fmt)))
if ((canViewSupplyFinancials && (columns.HasId(SbmCommodity.Column.CostPrice_Fmt))) ||
(canViewSalesFinancials && (columns.HasId(SbmCommodity.Column.SalesPrice_Fmt) || columns.HasId(SbmCommodity.Column.RetailPrice_Fmt) || columns.HasId(SbmCommodity.Column.RetailPricePlanned_Fmt) || columns.HasId(SbmCommodity.Column.GrossPrice_Fmt) || columns.HasId(SbmCommodity.Column.CarriageCostIndicative_Fmt))))
{
}
//---------------------------------------------------------------
// Purchasing.
if (columns.HasId(SbmCommodity.Column.Supplier_Ref)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_SupplierRef, aliasCommodity));
if (canViewFinancials && (columns.HasId(SbmCommodity.Column.CostPrice) ||
if (canViewSupplyFinancials && (columns.HasId(SbmCommodity.Column.CostPrice) ||
columns.HasId(SbmCommodity.Column.CostPrice_Fmt))) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_CostPrice, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.PlaceOfOrigin)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_PlaceOfOrigin, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.MaterialCost) || columns.HasId(SbmCommodity.Column.MaterialCost_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_MaterialCost, aliasCommodity));
@@ -2769,12 +2809,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (columns.HasId(SbmCommodity.Column.QtyOnOrder)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_QtyOnOrder, aliasCommodity));
//---------------------------------------------------------------
// Sales.
if (canViewFinancials && (columns.HasId(SbmCommodity.Column.SalesPrice) ||
if (canViewSalesFinancials && (columns.HasId(SbmCommodity.Column.SalesPrice) ||
columns.HasId(SbmCommodity.Column.SalesPrice_Fmt) ||
columns.HasId(SbmCommodity.Column.GrossPrice) || columns.HasId(SbmCommodity.Column.GrossPrice_Fmt))) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_SalesPrice, aliasCommodity));
if (canViewFinancials && (columns.HasId(SbmCommodity.Column.RetailPrice) ||
if (canViewSalesFinancials && (columns.HasId(SbmCommodity.Column.RetailPrice) ||
columns.HasId(SbmCommodity.Column.RetailPrice_Fmt))) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_RetailPrice, aliasCommodity));
if (canViewFinancials && (columns.HasId(SbmCommodity.Column.RetailPricePlanned) ||
if (canViewSalesFinancials && (columns.HasId(SbmCommodity.Column.RetailPricePlanned) ||
columns.HasId(SbmCommodity.Column.RetailPricePlanned_Fmt))) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_RetailPricePlanned, aliasCommodity));
if (columns.HasId(SbmCommodity.Column.CarriageCostIndicative) ||
columns.HasId(SbmCommodity.Column.CarriageCostIndicative_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_CarriageCostIndicative, aliasCommodity));
@@ -2973,7 +3013,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.TaxCode_Code, aliasCommodity_TaxCode_Sale), prefixCommodity_TaxCode_Sale + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.TaxCode_Code, false));
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.TaxCode_TaxRate, aliasCommodity_TaxCode_Sale), prefixCommodity_TaxCode_Sale + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.TaxCode_TaxRate, false));
}
if (canViewFinancials && columns.HasId(SbmCommodity.Column.GrossPrice))
if (canViewSalesFinancials && columns.HasId(SbmCommodity.Column.GrossPrice))
{
// Calculate RRP: SalesPrice + TaxRate%
String colCommodity_SalesPrice = "(" + SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Commodity_SalesPrice, aliasCommodity) + "*(1.0+(" + prefixCommodity_TaxCode_Sale + SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.TaxCode_TaxRate, false) + "/100.0)))";