204 lines
9.6 KiB
C#
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;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|