Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/Mgr/SbmCommodityMgr_CommoditySupplier.cs
T
2021-05-05 21:00:33 +01:00

204 lines
9.6 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 System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
{
//=======================================================================
partial class SbmCommodityMgr
{
//*******************************************************************
// C o m m o d i t y S u p p l i e r s
//*******************************************************************
//-------------------------------------------------------------------
// Utilities.
public abstract bool CanManageCommoditySuppliers();
//-------------------------------------------------------------------
// Retrieve individual commoditySuppliers.
//-------------------------------------------------------------------
// CommoditySupplier exists.
public bool CommoditySupplierExistsById(SysId commoditySupplierId)
{
ClearErrorState();
if (!SysId.IsValid(commoditySupplierId)) return false;
SbmCommoditySupplier.Params prmCommoditySupplier = new SbmCommoditySupplier.Params();
prmCommoditySupplier.IncludedIds.Add(commoditySupplierId);
prmCommoditySupplier.StatusCat = SbmCommoditySupplier.StatusCat.Any;
return GetCommoditySupplierCount(prmCommoditySupplier) == 1;
}
//-------------------------------------------------------------------
// Get commoditySuppliers.
public abstract SbmCommoditySupplier GetCommoditySupplier(SbmCommoditySupplier.Params prm);
public SbmCommoditySupplier GetCommoditySupplierById(SysId commoditySupplierId)
{
ClearErrorState();
if (!SysId.IsValid(commoditySupplierId)) return null;
SbmCommoditySupplier.Params prmCommoditySupplier = new SbmCommoditySupplier.Params();
prmCommoditySupplier.IncludedIds.Add(commoditySupplierId);
prmCommoditySupplier.StatusCat = SbmCommoditySupplier.StatusCat.Any;
return GetCommoditySupplier(prmCommoditySupplier);
}
//-------------------------------------------------------------------
// Create commoditySuppliers.
public abstract SbmCommoditySupplier CreateCommoditySupplier(SysId commodityId, SysId assocIdSupplier);
//-------------------------------------------------------------------
// Validate CommoditySupplier data.
public bool IsValidCommoditySupplier(SbmCommoditySupplier commoditySupplier)
{
ClearErrorState();
//Validate the identity.
if (!SysId.IsValid(commoditySupplier.CommodityId)) return SetErrorState("Commodity Id must be specified");
if (!SysId.IsValid(commoditySupplier.AssocIdSupplier)) return SetErrorState("Supplier must be specified");
if (commoditySupplier == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
return IsValidCommoditySupplierData(commoditySupplier.GetData(), new SbmCommoditySupplier.ErrField());
}
public virtual bool IsValidCommoditySupplierData(SbmCommoditySupplier.Data data, SbmCommoditySupplier.ErrField errField)
{
ClearErrorState();
//Validate the identity.
if (!SysId.IsValid(data.CommodityId)) return SetErrorState("Commodity Id must be specified");
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))
{
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))
{
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))
{
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))
{
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))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (!SbmCommoditySupplier.CommoditySupplierStatuses.Contains(data.Status))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState(ErrorMessage.InvalidStatus);
}
}
return true;
}
//-------------------------------------------------------------------
// Store CommoditySupplier detail.
public abstract bool StoreCommoditySuppliers(List<SbmCommoditySupplier> commoditySuppliers);
public abstract bool Store(SbmCommoditySupplier commoditySupplier);
//-------------------------------------------------------------------
// CommoditySupplier database interface.
public abstract bool InsertCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo);
public abstract bool UpdateCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo);
public virtual bool CommoditySupplierCanBeDeleted(SbmCommoditySupplier commoditySupplier)
{
ClearErrorState();
return true;
}
public abstract bool DeleteCommoditySupplier(SbmCommoditySupplier commoditySupplier, DbUpdateInfo dbUpdateInfo);
//-------------------------------------------------------------------
// CommoditySupplier list.
public abstract ColumnDfn GetCommoditySupplierColumnDfn(SbmCommoditySupplier.Column columnId, String caption = "", int width = 0);
public abstract List<String> GetCommoditySupplierQueryFilter(SbmCommoditySupplier.Params prm);
public abstract long GetCommoditySupplierCount(SbmCommoditySupplier.Params prm);
public abstract List<SbmCommoditySupplier> GetCommoditySupplierList(SbmCommoditySupplier.Params prm);
public abstract DbResultSet ExecuteCommoditySupplierQuery(List<ColumnDfn> columns, SbmCommoditySupplier.Params prm);
//-------------------------------------------------------------------
// D a t a V a l u e s
//-------------------------------------------------------------------
/// <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 GetCommoditySupplierDataValue(ColumnDfn column, NamedValue.Map values)
{
DataValue value = new DataValue();
switch ((SbmCommoditySupplier.Column)column.Id)
{
//---------------------------------------------------------------
// Commodity Category.
case SbmCommoditySupplier.Column.Commodity_CategoryDesc:
{
String categoryCode = values.GetValue(GetCommoditySupplierColumnDfn(SbmCommoditySupplier.Column.Commodity_CategoryCode).DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.CommodityCategory, categoryCode));
break;
}
// ToDo is Commodity DescBrief needed in DataValue? only if its reference ...
case SbmCommoditySupplier.Column.Commodity_DescBrief:
{
//String cmdDescBrief = values.GetValue(column.DataName).ToString();
value = new DataValue(values.GetValue(column.DataName).ToString());
break;
}
// Commodity Status.
case SbmCommoditySupplier.Column.Commodity_StatusDesc:
case SbmCommoditySupplier.Column.Commodity_StatusInd:
{
SaStatus status = SacsSystem.GetStatusForCode(values.GetValue(column.DataName).ToString());
if (column.Id == (int)SbmCommoditySupplier.Column.Commodity_StatusDesc)
value = new DataValue(SacsSystem.GetStatusDesc(status));
else if (column.Id == (int)SbmCommoditySupplier.Column.Commodity_StatusInd)
value = new DataValue(SbmCommoditySupplier.GetStatusTriState(status));
}
break;
//---------------------------------------------------------------
// CmdCustomer Formatted currency values.
//---------------------------------------------------------------
// Notes.
case SbmCommoditySupplier.Column.Notes:
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
break;
// Status.
case SbmCommoditySupplier.Column.Status_Desc:
case SbmCommoditySupplier.Column.Status_Ind:
{
String statusCode = values.GetValue(column.DataName).ToString();
SaStatus status = SacsSystem.GetStatusForCode(statusCode);
if (column.Id == (int)SbmCommoditySupplier.Column.Status_Desc)
value = new DataValue(SacsSystem.GetStatusDescForCode(statusCode));
else if (column.Id == (int)SbmCommoditySupplier.Column.Status_Ind)
value = new DataValue(SbmCommoditySupplier.GetStatusTriState(status));
break;
}
//---------------------------------------------------------------
}
return value;
}
//-------------------------------------------------------------------
}
//=======================================================================
}