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
@@ -810,7 +810,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
public override ColumnDfn GetTransactionColumnDfn(SbmTransaction.Column column, string caption = "", int width = 0)
{
bool canViewFinancials = UserContext.SecurityProfile.Financial.CanViewFinancials;
bool canViewSupplyFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySupply);
bool canViewSalesFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySales);
ColumnDfn columnDfn = new ColumnDfn((int)column, caption, width);
switch (column)
{
@@ -909,11 +910,11 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetTransactionColDfn(columnDfn, "Stock picker", 120, SbmDbDfn.ColumnIdx.Transaction_StockPickerCode, ColumnAlignment.Center);
break;
case SbmTransaction.Column.DeliveryAmountNet:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery net amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountNet, ColumnAlignment.Center, DataValue.DataType.Double);
break;
case SbmTransaction.Column.DeliveryAmountNet_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery net amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountNet, ColumnAlignment.Center, DataValue.DataType.String);
break;
case SbmTransaction.Column.DeliveryTaxCodeId:
@@ -926,19 +927,19 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetTransactionColDfn(columnDfn, "Delivery tax rate", 90, SbmDbDfn.ColumnIdx.TaxCode_TaxRate, ColumnAlignment.Center, DataValue.DataType.Double, aliasTransaction_DeliveryTaxcode, prefixTransaction_DeliveryTaxcode);
break;
case SbmTransaction.Column.DeliveryAmountTax:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery tax amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTax, ColumnAlignment.Right, DataValue.DataType.Double);
break;
case SbmTransaction.Column.DeliveryAmountTax_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery tax amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTax, ColumnAlignment.Right, DataValue.DataType.String);
break;
case SbmTransaction.Column.DeliveryAmountTot:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery total amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTot, ColumnAlignment.Right, DataValue.DataType.Double);
break;
case SbmTransaction.Column.DeliveryAmountTot_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
SetTransactionColDfn(columnDfn, "Delivery total amount", 90, SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTot, ColumnAlignment.Right, DataValue.DataType.String);
break;
case SbmTransaction.Column.DeliveryNominalCode:
@@ -957,61 +958,61 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetTransactionColDfn(columnDfn, "Currency", 79, SbmDbDfn.ColumnIdx.Currency_Symbol, ColumnAlignment.Center, DataValue.DataType.String, aliasTransaction_Currency, prefixTransaction_Currency);
break;
case SbmTransaction.Column.AmountEst:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Amount(est)", 75, SbmDbDfn.ColumnIdx.Transaction_AmountEst, ColumnAlignment.Right, DataValue.DataType.Double);
}
break;
case SbmTransaction.Column.AmountEst_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Amount(est)", 80, SbmDbDfn.ColumnIdx.Transaction_AmountEst, ColumnAlignment.Right, DataValue.DataType.String);
}
break;
case SbmTransaction.Column.AmountMax:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Amount(max)", 75, SbmDbDfn.ColumnIdx.Transaction_AmountMax, ColumnAlignment.Right, DataValue.DataType.Double);
}
break;
case SbmTransaction.Column.AmountMax_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Amount(max)", 80, SbmDbDfn.ColumnIdx.Transaction_AmountMax, ColumnAlignment.Right, DataValue.DataType.String);
}
break;
case SbmTransaction.Column.AmountNet:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Net", 60, SbmDbDfn.ColumnIdx.Transaction_AmountNet, ColumnAlignment.Right, DataValue.DataType.Double);
}
break;
case SbmTransaction.Column.AmountNet_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Net", 80, SbmDbDfn.ColumnIdx.Transaction_AmountNet, ColumnAlignment.Right, DataValue.DataType.String);
}
break;
case SbmTransaction.Column.AmountTax:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Tax", 60, SbmDbDfn.ColumnIdx.Transaction_AmountTax, ColumnAlignment.Right, DataValue.DataType.Double);
}
break;
case SbmTransaction.Column.AmountTax_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Tax", 80, SbmDbDfn.ColumnIdx.Transaction_AmountTax, ColumnAlignment.Right, DataValue.DataType.String);
}
break;
case SbmTransaction.Column.AmountTot:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Total", 60, SbmDbDfn.ColumnIdx.Transaction_AmountTot, ColumnAlignment.Right, DataValue.DataType.Double);
}
break;
case SbmTransaction.Column.AmountTot_Fmt:
if (canViewFinancials)
if (canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Total", 80, SbmDbDfn.ColumnIdx.Transaction_AmountTot, ColumnAlignment.Right, DataValue.DataType.String);
}
@@ -1029,39 +1030,39 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
SetTransactionColDfn(columnDfn, "Labour rate", 90, SbmDbDfn.ColumnIdx.Transaction_CostLabourRateHour, ColumnAlignment.Right, DataValue.DataType.Double);
break;
case SbmTransaction.Column.CostTotal:
if (canViewFinancials)
if (canViewSupplyFinancials)
{
SetTransactionColDfn(columnDfn, "Total cost", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.DataName = colNameCostTotal;
}
break;
case SbmTransaction.Column.CostTotal_Fmt:
if (canViewFinancials)
if (canViewSupplyFinancials)
SetTransactionColDfn(columnDfn, "Total cost", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
break;
case SbmTransaction.Column.AmountMargin:
if (canViewFinancials)
if (canViewSupplyFinancials && canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Margin", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.ShowZeroValues = true;
}
break;
case SbmTransaction.Column.AmountMargin_Fmt:
if (canViewFinancials)
if (canViewSupplyFinancials && canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "Margin", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.ShowZeroValues = true;
}
break;
case SbmTransaction.Column.PercentMargin:
if (canViewFinancials)
if (canViewSupplyFinancials && canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "% Margin", 80, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right, DataValue.DataType.Double);
columnDfn.ShowZeroValues = true;
}
break;
case SbmTransaction.Column.PercentMargin_Fmt:
if (canViewFinancials)
if (canViewSupplyFinancials && canViewSalesFinancials)
{
SetTransactionColDfn(columnDfn, "% Margin", 90, SbmDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right);
columnDfn.ShowZeroValues = true;
@@ -1756,7 +1757,8 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
ClearErrorState();
bool canViewFinancials = UserContext.SecurityProfile.Financial.CanViewFinancials;
bool canViewSupplyFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySupply);
bool canViewSalesFinancials = UserContext.SecurityProfile.UserCanViewFinancials(Sbm.FinancialType.CommoditySales);
//---------------------------------------------------------------------
// Construct build database query.
DbQuery query = new DbQuery(db.DbmsType);
@@ -1790,23 +1792,26 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryBookInCode, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.StockPickerCode) || columns.HasId((int)SbmTransaction.Column.StockPicker))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_StockPickerCode, aliasTransaction));
if (canViewFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountNet) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountNet_Fmt)))
if (canViewSalesFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountNet) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountNet_Fmt)))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountNet, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.DeliveryTaxCodeId)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_TaxCodeIdDelivery));
if (canViewFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountTax) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountTax_Fmt)))
if (canViewSalesFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountTax) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountTax_Fmt)))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTax, aliasTransaction));
if (canViewFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountTot) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountTot_Fmt)))
if (canViewSalesFinancials && (columns.HasId((int)SbmTransaction.Column.DeliveryAmountTot) || columns.HasId((int)SbmTransaction.Column.DeliveryAmountTot_Fmt)))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryAmountTot, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.DeliveryNominalCode)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryNominalCode, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.DeliveryDepartment)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_DeliveryDepartment, aliasTransaction));
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_CurrencyId, aliasTransaction));
if (canViewFinancials)
if (canViewSalesFinancials)
{
if (columns.HasId((int)SbmTransaction.Column.AmountEst) || columns.HasId((int)SbmTransaction.Column.AmountEst_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AmountEst, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.AmountMax) || columns.HasId((int)SbmTransaction.Column.AmountMax_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AmountMax, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.AmountNet) || columns.HasId((int)SbmTransaction.Column.AmountNet_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AmountNet, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.AmountTax) || columns.HasId((int)SbmTransaction.Column.AmountTax_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AmountTax, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.AmountTot) || columns.HasId((int)SbmTransaction.Column.AmountTot_Fmt)) query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_AmountTot, aliasTransaction));
}
if (canViewSupplyFinancials)
{
if (ColumnExists(SbmDbDfn.ColumnIdx.Transaction_CostLabourRateHour) && columns.HasId((int)SbmTransaction.Column.CostLabourRateHour))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_CostLabourRateHour, aliasTransaction));
}
@@ -1822,6 +1827,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Flags, aliasTransaction));
if (columns.HasId((int)SbmTransaction.Column.Status) || columns.HasId((int)SbmTransaction.Column.Status_Desc) || columns.HasId((int)SbmTransaction.Column.Status_Ind) || columns.HasId((int)SbmTransaction.Column.Status_OnHold_Tick) || columns.HasId((int)SbmTransaction.Column.Status_OnHold_Cross) || columns.HasId((int)SbmTransaction.Column.Status_OnHold_Y))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.Transaction_Status, aliasTransaction));
//---------------------------------------------------------------------
// Association - Owner Aff - Target Affiliate - Target Address
bool hasAssocCols = false;