Files
BusinessMgr-2019/SaBusMgrStandardBase/Base/Mgr/SbmAccountMgr_Association.cs
T

649 lines
29 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 Sarand.Net.Standard.Base.ReferenceData;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
{
//=======================================================================
// Account manager - Associations.
//=======================================================================
partial class SbmAccountMgr
{
//-------------------------------------------------------------------
// Item exists.
public bool AssociationExistsById(SysId id)
{
ClearErrorState();
if (!SysId.IsValid(id)) return false;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
prmAssociation.IdsIncluded.Add(id);
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
return GetAssociationCount(prmAssociation) == 1;
}
public bool AssociationExistsByOwnerTypeTarget(SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget)
{
ClearErrorState();
if (!SysId.IsValid(affiliateIdOwner) || (int)associationType < 1 || !SysId.IsValid(affiliateIdTarget)) return false;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params
{
AffiliateIdOwner = affiliateIdOwner,
AssociationType = associationType,
AffiliateIdTarget = affiliateIdTarget,
StatusCat = SbmAssociation.StatusCat.Any
};
return GetAssociationCount(prmAssociation) == 1;
}
public bool AssociationExistsByTypeCode(Sbm.AssociationType associationType, String code)
{
ClearErrorState();
if ((int)associationType < 1 || StringUtil.IsEmpty(code)) return false;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params
{
AssociationType = associationType,
Code = code,
StatusCat = SbmAssociation.StatusCat.Any
};
return GetAssociationCount(prmAssociation) == 1;
}
//-------------------------------------------------------------------
// Get item.
public abstract SbmAssociation GetAssociation(SbmAssociation.Params prm);
public SbmAssociation GetAssociationById(SysId associationId)
{
ClearErrorState();
if (!SysId.IsValid(associationId)) return null;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
prmAssociation.IdsIncluded.Add(associationId);
prmAssociation.AssociationType = Sbm.AssociationType.Any;
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
return GetAssociation(prmAssociation);
}
public SbmAssociation GetAssociationByOwnerTypeTarget(SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget)
{
ClearErrorState();
if (!SysId.IsValid(affiliateIdOwner) || (int)associationType < 1 || !SysId.IsValid(affiliateIdTarget)) return null;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
prmAssociation.AffiliateIdOwner = affiliateIdOwner;
prmAssociation.AssociationType = associationType;
prmAssociation.AffiliateIdTarget = affiliateIdTarget;
prmAssociation.StatusCat = SbmAssociation.StatusCat.NotDeleted;
return GetAssociation(prmAssociation);
}
public SbmAssociation GetAssociationByTypeCode(Sbm.AssociationType associationType, String associationCode)
{
ClearErrorState();
if ((int)associationType < 1 || !StringUtil.IsEmpty(associationCode)) return null;
SbmAssociation.Params prmAssociation = new SbmAssociation.Params
{
AssociationType = associationType,
Code = associationCode,
StatusCat = SbmAssociation.StatusCat.NotDeleted
};
return GetAssociation(prmAssociation);
}
//public abstract bool AssociationExistsByType(String type);
//public abstract SbmAssociation GetAssociationByType(String type);
public abstract SysId GetAssociationAffIdTarget(SysId idAssoc);
public abstract String GetAssociationCode(SysId idAssoc);
//-------------------------------------------------------------------
// Create association.
public abstract SbmAssociation CreateAssociation(SysId affiliateIdOwner, Sbm.AssociationType associationType, SysId affiliateIdTarget);
//-------------------------------------------------------------------
// Generic association list:
public abstract SbmDbDfn.ColumnIdx GetDbCol(SbmAssociation.Column column);
//-------------------------------------------------------------------
// Validate association data.
public bool IsValidAssociation(SbmAssociation association)
{
ClearErrorState();
if (association == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
return IsValidAssociationData(association.GetData(), new SbmAssociation.ErrField());
}
public virtual bool IsValidAssociationData(SbmAssociation.Data data, SbmAssociation.ErrField errField)
{
ClearErrorState();
// Association properties.
if (errField.AffiliateIdOwner != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.AffiliateIdOwner))
{
errField.AffiliateIdOwner = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Owner must be supplied");
}
if (errField.AffiliateIdTarget != SacsHierarchyItem.ValidValue.Ignore && !SysId.IsValid(data.AffiliateIdTarget))
{
errField.AffiliateIdTarget = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Target must be supplied");
}
if (errField.AssociationType != SacsHierarchyItem.ValidValue.Ignore && (short)data.AssociationType < 1)
{
if ((int)data.AssociationType < 1)
{
errField.AssociationType = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Association type must be supplied");
}
}
if (errField.Code != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Code, "code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Code)))
{
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ExtRef)))
{
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Role != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Role, "role", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Role)))
{
errField.Role = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Location)))
{
errField.Location = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone main", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_PhoneMain)))
{
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Email)))
{
errField.Email = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Group != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Group, "group", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Group)))
{
errField.Group = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "desc detail", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DescDetail)))
{
errField.DescDetail = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DefaultNominalCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DefaultNominalCode, "default nominal code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DefaultNominalCode)))
{
errField.DefaultNominalCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.InvoiceDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InvoiceDesc, "invoice description", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_InvoiceDesc)))
{
errField.InvoiceDesc = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
// Association codes.
if (errField.AccountManagerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountManagerCode, " account manager code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountManagerCode)))
{
errField.AccountManagerCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.AccountHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountHandlerCode, "account handler code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode)))
{
errField.AccountHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.AccountTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountTypeCode, " account type code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountTypeCode)))
{
errField.AccountTypeCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.AccountRatingCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.AccountRatingCode, "account rating code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_AccountRatingCode)))
{
errField.AccountRatingCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.ContactAreaCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactAreaCode, "contact area code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactAreaCode)))
{
errField.ContactAreaCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.ContactHandlerCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactHandlerCode, "contact handler code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode)))
{
errField.ContactHandlerCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.ContactMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactMethodCode, "contact method code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactMethodCode)))
{
errField.ContactMethodCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.ContactCallCycleCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.ContactCallCycleCode, "contact call cycle code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode)))
{
errField.ContactCallCycleCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.CommodityIdSalesDefault != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.CommodityIdSalesDefault))
{
if (data.AssociationType != Sbm.AssociationType.Customer)
{
errField.OrderLeadTimeCode = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Default sales Commodity can only be assigned to customers");
}
}
if (errField.OrderLeadTimeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.OrderLeadTimeCode, "order lead time code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode)))
{
errField.OrderLeadTimeCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DeliveryTypeCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryTypeCode, "delivery type code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode)))
{
errField.DeliveryTypeCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DeliveryMethodCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryMethodCode, "delivery method code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode)))
{
errField.DeliveryMethodCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DeliveryCourierCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryCourierCode, "delivery courier code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryCourierCode)))
{
errField.DeliveryCourierCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.DeliveryBookInCode != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DeliveryBookInCode, "delivery book in code", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode)))
{
errField.DeliveryBookInCode = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
// Numeric values.
if (errField.AmountTransMax != SacsHierarchyItem.ValidValue.Ignore && data.AmountTransMax < 0.0m)
{
errField.AmountTransMax = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Max transaction amount must not be negative");
}
if (errField.AnnualSalesTarget != SacsHierarchyItem.ValidValue.Ignore && data.AnnualSalesTarget < 0.0m)
{
errField.AnnualSalesTarget = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Annual Sales Target must not be negative");
}
if (errField.CreditLimit != SacsHierarchyItem.ValidValue.Ignore && data.CreditLimit < 0.0m)
{
errField.CreditLimit = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Credit Limit must not be negative");
}
if (errField.DiscountRate != SacsHierarchyItem.ValidValue.Ignore)
{
if (data.DiscountRate < 0.0m)
{
errField.DiscountRate = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Discount Rate must not be negative");
}
if (data.DiscountRate > 0.0m && (short)data.DiscountType < 1)
{
errField.DiscountRate = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Discount Type must be specified if a Rate is supplied");
}
}
if (errField.PaymentTerms != SacsHierarchyItem.ValidValue.Ignore && data.PaymentTerms < 0)
{
errField.PaymentTerms = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Payment terms must not be negative");
}
// Common properties.
if (!IsValidValue(data.Notes, "notes", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Notes)))
{
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
{
if (!IsValidValue(data.StatusCode, "status", (long)Internals.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Status), true, true))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return false;
}
if (!SbmAssociation.ValidStatuses.Contains(data.Status))
{
errField.Status = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState(ErrorMessage.InvalidStatus);
}
}
// Validate associated data.
if (errField.AffiliateIdOwner != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.AffiliateIdOwner))
{
SbmAffiliate.Params prmAffiliate = new SbmAffiliate.Params();
prmAffiliate.IdsIncluded.Add(data.AffiliateIdOwner);
prmAffiliate.StatusCat = SbmAffiliate.StatusCat.Any;
if (GetAffiliateCount(prmAffiliate) < 1)
{
errField.AffiliateIdOwner = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Owner Affiliate not found");
}
}
if (errField.AffiliateIdTarget != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.AffiliateIdTarget))
{
SbmAffiliate.Params prmAffiliate = new SbmAffiliate.Params();
prmAffiliate.IdsIncluded.Add(data.AffiliateIdTarget);
prmAffiliate.StatusCat = SbmAffiliate.StatusCat.Any;
if (GetAffiliateCount(prmAffiliate) < 1)
{
errField.AffiliateIdTarget = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Target Affiliate not found");
}
}
if (errField.PriceSetId != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.PriceSetId))
{
// Association PriceSet.
SbmPriceSet.Params prmPriceSet = new SbmPriceSet.Params();
prmPriceSet.IdsIncluded.Add(data.PriceSetId);
prmPriceSet.StatusCat = SbmPriceSet.StatusCat.Any;
if (PriceMgr.GetPriceSetCount(prmPriceSet) < 1)
{
errField.PriceSetId = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Price Set not found");
}
}
if (errField.TaxCodeId != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.TaxCodeId))
{
// Association TaxCode.
SaTaxCode taxCode = Internals.GetTaxCodeById(data.TaxCodeId);
if (taxCode == null)
{
errField.TaxCodeId = SacsHierarchyItem.ValidValue.Invalid;
return SetErrorState("Tax Code not found");
}
}
return true;
}
//-------------------------------------------------------------------
// Association database interface.
public abstract bool InsertAssociation(SbmAssociation association, DbUpdateInfo dbUpdateInfo);
public abstract bool UpdateAssociation(SbmAssociation association, DbUpdateInfo dbUpdateInfo);
public virtual bool AssociationCanBeDeleted(SbmAssociation association)
{
ClearErrorState();
return true;
}
public abstract bool DeleteAssociation(SbmAssociation association, DbUpdateInfo dbUpdateInfo);
//-------------------------------------------------------------------
// Association list.
public abstract ColumnDfn GetAssociationColumnDfn(SbmAssociation.Column columnId, String caption = "", int width = 0);
public abstract List<String> GetAssociationQueryFilter(SbmAssociation.Params prm);
public abstract long GetAssociationCount(SbmAssociation.Params prm);
public abstract List<SbmAssociation> GetAssociationList(SbmAssociation.Params prm);
public abstract DbResultSet ExecuteAssociationQuery(List<ColumnDfn> columns, SbmAssociation.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 GetAssociationDataValue(ColumnDfn column, NamedValue.Map values)
{
DataValue value = new DataValue();
switch ((SbmAssociation.Column)column.Id)
{
//-----------------------------------------------------------
// Association TypeDesc.
case SbmAssociation.Column.Type_Desc:
{
Sbm.AssociationType associationType = (Sbm.AssociationType)values.GetValue(column.DataName).AsLong();
value = new DataValue(AssociationTypes.GetDescForType(associationType, ((int)associationType).ToString()));
break;
}
//-----------------------------------------------------------
// Discount TypeDesc.
case SbmAssociation.Column.DiscountType_Desc:
{
Sbm.DiscountType discountType = (Sbm.DiscountType)values.GetValue(column.DataName).AsLong();
value = new DataValue(DiscountTypes.GetDescForType(discountType, ((int)discountType).ToString()));
break;
}
//-----------------------------------------------------------
// Association Coding.
case SbmAssociation.Column.AccountManagerDesc:
{
String accountManager = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountManager, accountManager));
break;
}
case SbmAssociation.Column.AccountHandlerDesc:
{
String accountHandler = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountHandler, accountHandler));
break;
}
case SbmAssociation.Column.AccountTypeDesc:
{
String accountType = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountType, accountType));
break;
}
case SbmAssociation.Column.AccountRatingDesc:
{
String accountRating = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountRating, accountRating));
break;
}
case SbmAssociation.Column.ContactAreaDesc:
{
String contactArea = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactArea, contactArea));
break;
}
case SbmAssociation.Column.ContactHandlerDesc:
{
String contactHandler = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactHandler, contactHandler));
break;
}
case SbmAssociation.Column.ContactMethodDesc:
{
String contactMethod = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactMethod, contactMethod));
break;
}
case SbmAssociation.Column.ContactCallCycleDesc:
{
String contactCallCycle = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactCallCycle, contactCallCycle));
break;
}
//-----------------------------------------------------------
// Association Seasonal Category.
case SbmAssociation.Column.SeasonalCategoryCode1:
case SbmAssociation.Column.SeasonalCategoryDesc1:
case SbmAssociation.Column.SeasonalCategoryCode2:
case SbmAssociation.Column.SeasonalCategoryDesc2:
case SbmAssociation.Column.SeasonalCategoryCode3:
case SbmAssociation.Column.SeasonalCategoryDesc3:
{
// Association Id.
ColumnDfn colId = GetAssociationColumnDfn(SbmAssociation.Column.Id);
SysId associationId = new SysId(StringUtil.ToInt(values.GetValue(colId.DataName).ToString()));
if (SysId.IsValid(associationId))
{
List<String> seasonalCategoryCodes = new List<string>(); // ToDo CodeTypeConsole.GetItemCodes(Sbm.ItemType.Association, assocId, Sbm.ApplCodeType.SeasonalCategory);
int codePos = 0;
bool descRequired = true;
switch (column.Id)
{
case (int)SbmAssociation.Column.SeasonalCategoryCode1:
descRequired = false;
codePos = 1;
break;
case (int)SbmAssociation.Column.SeasonalCategoryDesc1:
codePos = 1;
break;
case (int)SbmAssociation.Column.SeasonalCategoryCode2:
descRequired = false;
codePos = 2;
break;
case (int)SbmAssociation.Column.SeasonalCategoryDesc2:
codePos = 2;
break;
case (int)SbmAssociation.Column.SeasonalCategoryCode3:
descRequired = false;
codePos = 3;
break;
case (int)SbmAssociation.Column.SeasonalCategoryDesc3:
codePos = 3;
break;
}
if (codePos > 0 && codePos <= seasonalCategoryCodes.Count)
{
String seasonalCategoryCode = seasonalCategoryCodes[codePos];
if (descRequired)
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.SeasonalCategory, seasonalCategoryCode));
else value = new DataValue(seasonalCategoryCode);
}
}
break;
}
//-----------------------------------------------------------
case SbmAssociation.Column.OrderLeadTimeDesc:
{
String orderLeadTime = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.OrderLeadTime, orderLeadTime));
break;
}
case SbmAssociation.Column.DeliveryTypeDesc:
{
String deliveryType = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.DeliveryType, deliveryType));
break;
}
case SbmAssociation.Column.DeliveryMethodDesc:
{
String deliveryMethod = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.DeliveryMethod, deliveryMethod));
break;
}
case SbmAssociation.Column.DeliveryBookInDesc:
{
String deliveryBookIn = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.DeliveryBookIn, deliveryBookIn));
break;
}
//-----------------------------------------------------------
// Notes.
case SbmAssociation.Column.Notes:
{
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
break;
}
// Status.
case SbmAssociation.Column.Status_Desc:
case SbmAssociation.Column.Status_Ind:
{
SaStatus status = SacsSystem.GetStatusForCode(values.GetValue(column.DataName).ToString());
if (column.Id == (int)SbmAssociation.Column.Status_Desc)
value = new DataValue(SacsSystem.GetStatusDesc(status));
else if (column.Id == (int)SbmAssociation.Column.Status_Ind)
value = new DataValue(SbmAssociation.GetStatusTriState(status));
break;
}
// Flags.
case SbmAssociation.Column.Primary:
{
ushort flags = (ushort)StringUtil.ToInt(values.GetValue(column.DataName).ToString());
value = new DataValue(SacsHierarchyItem.GetFlag(flags, SbmAssociation.Flag_Primary));
break;
}
case SbmAssociation.Column.Technician:
{
ushort flags = (ushort)StringUtil.ToInt(values.GetValue(column.DataName).ToString());
value = new DataValue(SacsHierarchyItem.GetFlag(flags, SbmAssociation.Flag_Technician));
break;
}
//-----------------------------------------------------------
// Affiliate Type Desc.
case SbmAssociation.Column.Target_TypeDesc:
{
Sbm.AffiliateType affiliateType = (Sbm.AffiliateType)values.GetValue(column.DataName).AsLong();
value = new DataValue(AffiliateTypes.GetDescForType(affiliateType, ((int)affiliateType).ToString()));
break;
}
// Affiliate Notes.
case SbmAssociation.Column.Target_Notes:
{
value = new DataValue(SacsHierarchyItem.FormatForDisplay(values.GetValue(column.DataName).ToString(), 200));
break;
}
//-----------------------------------------------------------
// Address Type.
case SbmAssociation.Column.Target_Address_TypeDesc:
{
Sbm.AddressType addressType = (Sbm.AddressType)values.GetValue(column.DataName).AsLong();
value = new DataValue(AddressTypes.GetDescForType(addressType, ((int)addressType).ToString()));
break;
}
// Address Summary.
case SbmAssociation.Column.Target_Address_Summary:
{
String line1 = values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Line1).DataName).ToString();
String city = values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_City).DataName).ToString();
String province = values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Province).DataName).ToString();
String postcode = values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Postcode).DataName).ToString();
String country = values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Country).DataName).ToString();
value = new DataValue(SbmAddress.GetSummary(line1, city, province, postcode, country));
break;
}
// Address Coding.
case SbmAssociation.Column.Target_Address_AccountManagerDesc:
{
String accountManager = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountManager, accountManager));
break;
}
case SbmAssociation.Column.Target_Address_AccountHandlerDesc:
{
String accountHandler = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.AccountHandler, accountHandler));
break;
}
case SbmAssociation.Column.Target_Address_ContactAreaDesc:
{
String contactArea = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactArea, contactArea));
break;
}
case SbmAssociation.Column.Target_Address_ContactHandlerDesc:
{
String contactHandler = values.GetValue(column.DataName).ToString();
value = new DataValue(GetCodeTypeCodeDesc(Sbm.ApplCodeType.ContactHandler, contactHandler));
break;
}
//-----------------------------------------------------------
default:
value = values.GetValue(column.DataName);
break;
}
return value;
}
//-------------------------------------------------------------------
}
//=======================================================================
}