109 lines
4.6 KiB
C#
109 lines
4.6 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
|
{
|
|
//=======================================================================
|
|
public abstract partial class SbmTransactionMgr : SbmItemMgr
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
// Code types.
|
|
private List<Sbm.ApplCodeType> supportedCodeTypes = new List<Sbm.ApplCodeType>()
|
|
{
|
|
Sbm.ApplCodeType.AccountHandler,
|
|
Sbm.ApplCodeType.AccountManager,
|
|
Sbm.ApplCodeType.ContactArea,
|
|
Sbm.ApplCodeType.DeliveryStatus,
|
|
Sbm.ApplCodeType.DeliveryType,
|
|
Sbm.ApplCodeType.DeliveryMethod,
|
|
Sbm.ApplCodeType.DeliveryCourier,
|
|
Sbm.ApplCodeType.DeliveryBookIn,
|
|
Sbm.ApplCodeType.StockPicker,
|
|
Sbm.ApplCodeType.CommodityMaterial,
|
|
Sbm.ApplCodeType.CommodityFinish,
|
|
Sbm.ApplCodeType.CommodityPromotion
|
|
};
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
protected SbmTransactionMgr(SbmUserContext userContext) :
|
|
base(userContext)
|
|
{
|
|
}
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing)
|
|
{
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
public List<TypeCodeDesc> TransactionTypes { get { return GetCodesOfType(Sbm.SystemCode.TransactionType); } }
|
|
public List<TypeCodeDesc> TransactionStatusCats { get { return GetCodesOfType(Sbm.SystemCode.TransactionStatusCat); } }
|
|
public List<TypeCodeDesc> AssociationTypes { get { return GetCodesOfType(Sbm.SystemCode.AssociationType); } }
|
|
public List<TypeCodeDesc> RequirementStatusCats { get { return GetCodesOfType(Sbm.SystemCode.RequirementStatusCat); } }
|
|
public List<TypeCodeDesc> ConstituentTypes { get { return GetCodesOfType(Sbm.SystemCode.ConstituentType); } }
|
|
public List<TypeCodeDesc> ConstituentStatusCats { get { return GetCodesOfType(Sbm.SystemCode.ConstituentStatusCat); } }
|
|
// Code types.
|
|
public override List<Sbm.ApplCodeType> SupportedCodeTypes { get { return new List<Sbm.ApplCodeType>(supportedCodeTypes); } }
|
|
|
|
//-------------------------------------------------------------------
|
|
// Utilities.
|
|
public String GetTransactionTypeDesc(Sbm.TransactionType transactionType)
|
|
{
|
|
return TransactionTypes.GetDescForType(transactionType, "Transaction");
|
|
}
|
|
public List<TypeCodeDesc> GetAssociationTypes(Sbm.TransactionType transactionType)
|
|
{
|
|
List<TypeCodeDesc> associationTypes = new List<TypeCodeDesc>();
|
|
switch (transactionType)
|
|
{
|
|
case Sbm.TransactionType.Unknown:
|
|
break;
|
|
case Sbm.TransactionType.Any:
|
|
associationTypes.AddRange(this.AssociationTypes);
|
|
break;
|
|
case Sbm.TransactionType.Project:
|
|
associationTypes.AddRange(this.AssociationTypes.FindAll(item => item.Type.Equals(Sbm.AssociationType.Internal)));
|
|
associationTypes.AddRange(this.AssociationTypes.FindAll(item => item.Type.Equals(Sbm.AssociationType.Associate)));
|
|
associationTypes.AddRange(this.AssociationTypes.FindAll(item => item.Type.Equals(Sbm.AssociationType.Member)));
|
|
break;
|
|
case Sbm.TransactionType.SalesLead:
|
|
case Sbm.TransactionType.SalesQuote:
|
|
case Sbm.TransactionType.SalesPO:
|
|
case Sbm.TransactionType.ProformaSalesOrder:
|
|
case Sbm.TransactionType.SalesOrder:
|
|
case Sbm.TransactionType.SalesDispatch:
|
|
case Sbm.TransactionType.ProformaSalesInvoice:
|
|
case Sbm.TransactionType.SalesInvoice:
|
|
associationTypes.AddRange(this.AssociationTypes.FindAll(item => item.Type.Equals(Sbm.AssociationType.Customer)));
|
|
break;
|
|
case Sbm.TransactionType.PurchaseQuote:
|
|
case Sbm.TransactionType.PurchaseSO:
|
|
case Sbm.TransactionType.ProformaPurchaseOrder:
|
|
case Sbm.TransactionType.PurchaseOrder:
|
|
case Sbm.TransactionType.PurchaseDelivery:
|
|
case Sbm.TransactionType.ProformaPurchaseInvoice:
|
|
case Sbm.TransactionType.PurchaseInvoice:
|
|
associationTypes.AddRange(this.AssociationTypes.FindAll(item => item.Type.Equals(Sbm.AssociationType.Supplier)));
|
|
break;
|
|
}
|
|
return associationTypes;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Retrieve the list of transactions types that reference the specified commodity code.
|
|
public abstract List<Sbm.TransactionType> GetTransactionTypesForCommodity(SysId commodityId, SbmTransaction.StatusCat statusCat = SbmTransaction.StatusCat.NotCancelled);
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|