1112 lines
62 KiB
C#
1112 lines
62 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.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.Mgr
|
|
{
|
|
//=======================================================================
|
|
partial class SbmAccountMgr
|
|
{
|
|
//*******************************************************************
|
|
// A s s o c i a t i o n s
|
|
//*******************************************************************
|
|
|
|
//-------------------------------------------------------------------
|
|
// Association properties.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Utilities.
|
|
public static bool IsValidCode(String code)
|
|
{
|
|
if (StringUtil.IsEmpty(code)) return false;
|
|
if (code != code.Trim()) return false;
|
|
return true;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Association interface rules.
|
|
public bool AllowColumnImport(SbmAssociation.Column column)
|
|
{
|
|
SbmDbDfn.ColumnIdx columnDb = GetDbCol(column);
|
|
if (column.Equals(SbmDbDfn.ColumnIdx.Unknown) && ConfigConsole.DisplayAttribute(UserContext, columnDb))
|
|
{
|
|
switch (column)
|
|
{
|
|
/*case SbmAssociation.Column.Id:
|
|
case SbmAssociation.Column.Type:
|
|
case SbmAssociation.Column.TypeDesc:*/
|
|
case SbmAssociation.Column.Code:
|
|
case SbmAssociation.Column.ExtRef:
|
|
case SbmAssociation.Column.Role:
|
|
case SbmAssociation.Column.Location:
|
|
case SbmAssociation.Column.PhoneMain:
|
|
case SbmAssociation.Column.Email:
|
|
case SbmAssociation.Column.Group:
|
|
case SbmAssociation.Column.DescDetail:
|
|
case SbmAssociation.Column.AnnualSalesTarget:
|
|
case SbmAssociation.Column.PriceSetId:
|
|
/*case SbmAssociation.Column.PriceSet_Ref:
|
|
case SbmAssociation.Column.PriceSet_Type:
|
|
case SbmAssociation.Column.PriceSet_Name:
|
|
case SbmAssociation.Column.TaxCodeId:*/
|
|
return true;
|
|
|
|
case SbmAssociation.Column.AccountManagerCode:
|
|
//case SbmAssociation.Column.AccountManagerDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountManager);
|
|
case SbmAssociation.Column.AccountHandlerCode:
|
|
//case SbmAssociation.Column.AccountHandlerDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountHandler);
|
|
case SbmAssociation.Column.AccountTypeCode:
|
|
//case SbmAssociation.Column.AccountTypeDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountType);
|
|
case SbmAssociation.Column.AccountRatingCode:
|
|
//case SbmAssociation.Column.AccountRatingDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.AccountRating);
|
|
case SbmAssociation.Column.ContactAreaCode:
|
|
//case SbmAssociation.Column.ContactAreaDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactArea);
|
|
case SbmAssociation.Column.ContactHandlerCode:
|
|
//case SbmAssociation.Column.ContactHandlerDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactHandler);
|
|
case SbmAssociation.Column.ContactMethodCode:
|
|
//case SbmAssociation.Column.ContactMethodDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactMethod);
|
|
case SbmAssociation.Column.ContactCallCycleCode:
|
|
//case SbmAssociation.Column.ContactCallCycleDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.ContactCallCycle);
|
|
|
|
case SbmAssociation.Column.CallsPerYear:
|
|
case SbmAssociation.Column.LastCall:
|
|
return true;
|
|
case SbmAssociation.Column.SeasonalCategoryCodes:
|
|
case SbmAssociation.Column.SeasonalCategoryCode1:
|
|
//case SbmAssociation.Column.SeasonalCategoryDesc1:
|
|
case SbmAssociation.Column.SeasonalCategoryCode2:
|
|
//case SbmAssociation.Column.SeasonalCategoryDesc2:
|
|
case SbmAssociation.Column.SeasonalCategoryCode3:
|
|
//case SbmAssociation.Column.SeasonalCategoryDesc3:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.SeasonalCategory);
|
|
|
|
case SbmAssociation.Column.OrderLeadTimeCode:
|
|
//case SbmAssociation.Column.OrderLeadTimeDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.OrderLeadTime);
|
|
case SbmAssociation.Column.DeliveryTypeCode:
|
|
//case SbmAssociation.Column.DeliveryTypeDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryType);
|
|
case SbmAssociation.Column.DeliveryMethodCode:
|
|
//case SbmAssociation.Column.DeliveryMethodDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryMethod);
|
|
case SbmAssociation.Column.DeliveryBookInCode:
|
|
//case SbmAssociation.Column.DeliveryBookInDesc:
|
|
return CodeTypeHasCodes(Sbm.ApplCodeType.DeliveryBookIn);
|
|
|
|
case SbmAssociation.Column.Terminated:
|
|
case SbmAssociation.Column.Notes:
|
|
case SbmAssociation.Column.Target_Name:
|
|
case SbmAssociation.Column.Target_Nature:
|
|
case SbmAssociation.Column.Target_PhoneMain:
|
|
case SbmAssociation.Column.Target_PhoneAlt:
|
|
case SbmAssociation.Column.Target_PhoneFax:
|
|
case SbmAssociation.Column.Target_PhoneMobile:
|
|
case SbmAssociation.Column.Target_Email:
|
|
case SbmAssociation.Column.Target_Website:
|
|
case SbmAssociation.Column.Target_Notes:
|
|
case SbmAssociation.Column.Target_DeliveryAddress_Postcode:
|
|
//case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
|
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
|
case SbmAssociation.Column.Member_Code:
|
|
case SbmAssociation.Column.Member_ExtRef:
|
|
case SbmAssociation.Column.Member_Role:
|
|
case SbmAssociation.Column.Member_Location:
|
|
case SbmAssociation.Column.Member_PhoneMain:
|
|
case SbmAssociation.Column.Member_Email:
|
|
case SbmAssociation.Column.Member_Target_Name:
|
|
case SbmAssociation.Column.Member_Target_PhoneMain:
|
|
case SbmAssociation.Column.Member_Target_PhoneAlt:
|
|
case SbmAssociation.Column.Member_Target_PhoneFax:
|
|
case SbmAssociation.Column.Member_Target_PhoneMobile:
|
|
case SbmAssociation.Column.Member_Target_Email:
|
|
case SbmAssociation.Column.Member_Target_Website:
|
|
case SbmAssociation.Column.Member_Target_Notes:
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
public String GetColumnCode(SbmAssociation.Column column)
|
|
{
|
|
switch (column)
|
|
{
|
|
//case SbmAssociation.Column.Unknown: return "";
|
|
case SbmAssociation.Column.Pos: return "Assoc_Pos";
|
|
case SbmAssociation.Column.Id: return "Assoc_Id";
|
|
case SbmAssociation.Column.Type: return "Assoc_Type";
|
|
case SbmAssociation.Column.Type_Desc: return "Assoc_TypeDesc";
|
|
case SbmAssociation.Column.Code: return "Assoc_Code";
|
|
case SbmAssociation.Column.ExtRef: return "Assoc_ExtRef";
|
|
case SbmAssociation.Column.Role: return "Assoc_Role";
|
|
case SbmAssociation.Column.Location: return "Assoc_Location";
|
|
case SbmAssociation.Column.PhoneMain: return "Assoc_PhoneMain";
|
|
case SbmAssociation.Column.Email: return "Assoc_Email";
|
|
case SbmAssociation.Column.Group: return "Assoc_Group";
|
|
case SbmAssociation.Column.DescDetail: return "Assoc_DescDetail";
|
|
case SbmAssociation.Column.DefaultNominalCode: return "Assoc_DefaultNominalCode";
|
|
case SbmAssociation.Column.AmountTransMax: return "Assoc_AmountTransMax";
|
|
case SbmAssociation.Column.AnnualSalesTarget: return "Assoc_AnnualSalesTarget";
|
|
case SbmAssociation.Column.CreditLimit: return "Assoc_CreditLimit";
|
|
case SbmAssociation.Column.AccountBalance: return "Assoc_AccountBalance";
|
|
case SbmAssociation.Column.DiscountType: return "Assoc_DiscountType";
|
|
case SbmAssociation.Column.DiscountType_Desc: return "Assoc_DiscountTypeDesc";
|
|
case SbmAssociation.Column.DiscountRate: return "Assoc_DiscountRate";
|
|
case SbmAssociation.Column.PriceSetId: return "Assoc_PriceSetId";
|
|
case SbmAssociation.Column.PriceSet_Ref: return "Assoc_PriceSet_Ref";
|
|
case SbmAssociation.Column.PriceSet_Type: return "Assoc_PriceSet_Type";
|
|
case SbmAssociation.Column.PriceSet_TypeDesc: return "Assoc_PriceSet_TypeDesc";
|
|
case SbmAssociation.Column.PriceSet_Name: return "Assoc_PriceSet_Name";
|
|
case SbmAssociation.Column.TaxCodeId: return "Assoc_TaxCodeId";
|
|
case SbmAssociation.Column.PaymentTerms: return "Assoc_PaymentTerms";
|
|
case SbmAssociation.Column.InvoiceDesc: return "Assoc_InvoiceDesc";
|
|
case SbmAssociation.Column.AccountManagerCode: return "Assoc_AccountManagerCode";
|
|
case SbmAssociation.Column.AccountManagerDesc: return "Assoc_AccountManagerDesc";
|
|
case SbmAssociation.Column.AccountHandlerCode: return "Assoc_AccountHandlerCode";
|
|
case SbmAssociation.Column.AccountHandlerDesc: return "Assoc_AccountHandlerDesc";
|
|
case SbmAssociation.Column.AccountTypeCode: return "Assoc_AccountTypeCode";
|
|
case SbmAssociation.Column.AccountTypeDesc: return "Assoc_AccountTypeDesc";
|
|
case SbmAssociation.Column.AccountRatingCode: return "Assoc_AccountRatingCode";
|
|
case SbmAssociation.Column.AccountRatingDesc: return "Assoc_AccountRatingDesc";
|
|
case SbmAssociation.Column.ContactAreaCode: return "Assoc_ContactAreaCode";
|
|
case SbmAssociation.Column.ContactAreaDesc: return "Assoc_ContactAreaDesc";
|
|
case SbmAssociation.Column.ContactHandlerCode: return "Assoc_ContactHandlerCode";
|
|
case SbmAssociation.Column.ContactHandlerDesc: return "Assoc_ContactHandlerDesc";
|
|
case SbmAssociation.Column.ContactMethodCode: return "Assoc_ContactMethodCode";
|
|
case SbmAssociation.Column.ContactMethodDesc: return "Assoc_ContactMethodDesc";
|
|
case SbmAssociation.Column.ContactCallCycleCode: return "Assoc_ContactCallCycleCode";
|
|
case SbmAssociation.Column.ContactCallCycleDesc: return "Assoc_ContactCallCycleDesc";
|
|
case SbmAssociation.Column.CallsPerYear: return "Assoc_CallsPerYear";
|
|
case SbmAssociation.Column.LastCall: return "Assoc_LastCall";
|
|
case SbmAssociation.Column.SeasonalCategoryCodes: return "Assoc_SeasonalCatCodes";
|
|
case SbmAssociation.Column.SeasonalCategoryCode1: return "Assoc_SeasonalCatCode1";
|
|
case SbmAssociation.Column.SeasonalCategoryDesc1: return "Assoc_SeasonalCatDesc1";
|
|
case SbmAssociation.Column.SeasonalCategoryCode2: return "Assoc_SeasonalCatCode2";
|
|
case SbmAssociation.Column.SeasonalCategoryDesc2: return "Assoc_SeasonalCatDesc2";
|
|
case SbmAssociation.Column.SeasonalCategoryCode3: return "Assoc_SeasonalCatCode3";
|
|
case SbmAssociation.Column.SeasonalCategoryDesc3: return "Assoc_SeasonalCatDesc3";
|
|
case SbmAssociation.Column.OrderLeadTimeCode: return "Assoc_OrderLeadTimeCode";
|
|
case SbmAssociation.Column.OrderLeadTimeDesc: return "Assoc_OrderLeadTimeDesc";
|
|
case SbmAssociation.Column.DeliveryTypeCode: return "Assoc_DeliveryTypeCode";
|
|
case SbmAssociation.Column.DeliveryTypeDesc: return "Assoc_DeliveryTypeDesc";
|
|
case SbmAssociation.Column.DeliveryMethodCode: return "Assoc_DeliveryMethodCode";
|
|
case SbmAssociation.Column.DeliveryMethodDesc: return "Assoc_DeliveryMethodDesc";
|
|
case SbmAssociation.Column.DeliveryBookInCode: return "Assoc_DeliveryBookInCode";
|
|
case SbmAssociation.Column.DeliveryBookInDesc: return "Assoc_DeliveryBookInDesc";
|
|
case SbmAssociation.Column.Terminated: return "Assoc_Terminated";
|
|
case SbmAssociation.Column.Primary: return "Assoc_Primary";
|
|
case SbmAssociation.Column.Technician: return "Assoc_Technician";
|
|
case SbmAssociation.Column.Notes: return "Assoc_Notes";
|
|
case SbmAssociation.Column.Status_Desc: return "Assoc_StatusDesc";
|
|
case SbmAssociation.Column.Status_Ind: return "Assoc_StatusInd";
|
|
case SbmAssociation.Column.AffIdOwner: return "Assoc_AffIdOwner";
|
|
case SbmAssociation.Column.Owner_Name: return "Assoc_Owner_Name";
|
|
case SbmAssociation.Column.AffIdTarget: return "Assoc_AffIdTarget";
|
|
case SbmAssociation.Column.Target_Type: return "Assoc_Target_Type";
|
|
case SbmAssociation.Column.Target_TypeDesc: return "Assoc_Target_TypeDesc";
|
|
case SbmAssociation.Column.Target_Name: return "Assoc_Target_Name";
|
|
case SbmAssociation.Column.Target_Nature: return "Assoc_Target_Nature";
|
|
case SbmAssociation.Column.Target_PhoneMain: return "Assoc_Target_PhoneMain";
|
|
case SbmAssociation.Column.Target_PhoneAlt: return "Assoc_Target_PhoneAlt";
|
|
case SbmAssociation.Column.Target_PhoneFax: return "Assoc_Target_PhoneFax";
|
|
case SbmAssociation.Column.Target_PhoneMobile: return "Assoc_Target_PhoneMobile";
|
|
case SbmAssociation.Column.Target_Email: return "Assoc_Target_Email";
|
|
case SbmAssociation.Column.Target_Website: return "Assoc_Target_Website";
|
|
case SbmAssociation.Column.Target_Notes: return "Assoc_Target_Notes";
|
|
case SbmAssociation.Column.Target_Address_Type: return "Assoc_Target_Address_Type";
|
|
case SbmAssociation.Column.Target_Address_TypeDesc: return "Assoc_Target_Address_TypeDesc";
|
|
case SbmAssociation.Column.Target_Address_RefExt: return "Assoc_Target_Address_RefExt";
|
|
case SbmAssociation.Column.Target_Address_Name: return "Assoc_Target_Address_Name";
|
|
case SbmAssociation.Column.Target_Address_DescBrief: return "Assoc_Target_Address_DescBrief";
|
|
case SbmAssociation.Column.Target_Address_Summary: return "Assoc_Target_Address_Summary";
|
|
case SbmAssociation.Column.Target_Address_Line1: return "Assoc_Target_Address_Line1";
|
|
case SbmAssociation.Column.Target_Address_Line2: return "Assoc_Target_Address_Line2";
|
|
case SbmAssociation.Column.Target_Address_City: return "Assoc_Target_Address_City";
|
|
case SbmAssociation.Column.Target_Address_Province: return "Assoc_Target_Address_Province";
|
|
case SbmAssociation.Column.Target_Address_Postcode: return "Assoc_Target_Address_Postcode";
|
|
case SbmAssociation.Column.Target_Address_Country: return "Assoc_Target_Address_Country";
|
|
case SbmAssociation.Column.Target_Address_Contact: return "Assoc_Target_Address_Contact";
|
|
case SbmAssociation.Column.Target_Address_Phone: return "Assoc_Target_Address_Phone";
|
|
case SbmAssociation.Column.Target_Address_Email: return "Assoc_Target_Address_Email";
|
|
case SbmAssociation.Column.Target_Address_AccountManagerCode: return "Assoc_Target_Address_AccountManagerCode";
|
|
case SbmAssociation.Column.Target_Address_AccountManagerDesc: return "Assoc_Target_Address_AccountManagerDesc";
|
|
case SbmAssociation.Column.Target_Address_AccountHandlerCode: return "Assoc_Target_Address_AccountHandlerCode";
|
|
case SbmAssociation.Column.Target_Address_AccountHandlerDesc: return "Assoc_Target_Address_AccountHandlerDesc";
|
|
case SbmAssociation.Column.Target_Address_ContactAreaCode: return "Assoc_Target_Address_ContactAreaCode";
|
|
case SbmAssociation.Column.Target_Address_ContactAreaDesc: return "Assoc_Target_Address_ContactAreaDesc";
|
|
case SbmAssociation.Column.Target_Address_ContactHandlerCode: return "Assoc_Target_Address_ContactHandlerCode";
|
|
case SbmAssociation.Column.Target_Address_ContactHandlerDesc: return "Assoc_Target_Address_ContactHandlerDesc";
|
|
case SbmAssociation.Column.Target_Address_LastVisitOn: return "Assoc_Target_Address_LastVisitOn";
|
|
case SbmAssociation.Column.Target_Address_NextVisitOn: return "Assoc_Target_Address_NextVisitOn";
|
|
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: return "Assoc_Target_DelAddr_Postcode";
|
|
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode: return "Assoc_Target_DelAddr_AccountManagerCode";
|
|
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode: return "Assoc_Target_DelAddr_ContactAreaCode";
|
|
case SbmAssociation.Column.Member_Type: return "Assoc_Member_Type";
|
|
case SbmAssociation.Column.Member_TypeDesc: return "Assoc_Member_TypeDesc";
|
|
case SbmAssociation.Column.Member_Code: return "Assoc_Member_Code";
|
|
case SbmAssociation.Column.Member_ExtRef: return "Assoc_Member_ExtRef";
|
|
case SbmAssociation.Column.Member_Role: return "Assoc_Member_Role";
|
|
case SbmAssociation.Column.Member_Location: return "Assoc_Member_Location";
|
|
case SbmAssociation.Column.Member_PhoneMain: return "Assoc_Member_PhoneMain";
|
|
case SbmAssociation.Column.Member_Email: return "Assoc_Member_Email";
|
|
case SbmAssociation.Column.Member_Target_Name: return "Assoc_Member_Target_Name";
|
|
case SbmAssociation.Column.Member_Target_Nature: return "Assoc_Member_Target_Nature";
|
|
case SbmAssociation.Column.Member_Target_PhoneMain: return "Assoc_Member_Target_PhoneMain";
|
|
case SbmAssociation.Column.Member_Target_PhoneAlt: return "Assoc_Member_Target_PhoneAlt";
|
|
case SbmAssociation.Column.Member_Target_PhoneFax: return "Assoc_Member_Target_PhoneFax";
|
|
case SbmAssociation.Column.Member_Target_PhoneMobile: return "Assoc_Member_Target_PhoneMobile";
|
|
case SbmAssociation.Column.Member_Target_Email: return "Assoc_Member_Target_Email";
|
|
case SbmAssociation.Column.Member_Target_Website: return "Assoc_Member_Target_Website";
|
|
case SbmAssociation.Column.Member_Target_Notes: return "Assoc_Member_Target_Notes";
|
|
case SbmAssociation.Column.Member_Target_Address_Summary: return "Assoc_Member_Target_Address_Summary";
|
|
case SbmAssociation.Column.Member_Target_Address_Line1: return "Assoc_Member_Target_Address_Line1";
|
|
case SbmAssociation.Column.Member_Target_Address_Line2: return "Assoc_Member_Target_Address_Line2";
|
|
case SbmAssociation.Column.Member_Target_Address_City: return "Assoc_Member_Target_Address_City";
|
|
case SbmAssociation.Column.Member_Target_Address_Province: return "Assoc_Member_Target_Address_Province";
|
|
case SbmAssociation.Column.Member_Target_Address_Postcode: return "Assoc_Member_Target_Address_Postcode";
|
|
case SbmAssociation.Column.Member_Target_Address_Country: return "Assoc_Member_Target_Address_Country";
|
|
case SbmAssociation.Column.Trans_LastSaleRaised: return "Assoc_Trans_LastSaleRaised";
|
|
case SbmAssociation.Column.Trans_SalesValue_Open: return "Assoc_Trans_SalesValue_Open";
|
|
case SbmAssociation.Column.Trans_SalesValue_Cytd: return "Assoc_Trans_SalesValue_Cytd";
|
|
case SbmAssociation.Column.Trans_SalesValue_Lcy: return "Assoc_Trans_SalesValue_Lcy";
|
|
}
|
|
return "";
|
|
}
|
|
public String GetColumnCaption(SbmAssociation.Column column)
|
|
{
|
|
String caption = "";
|
|
switch (column)
|
|
{
|
|
//case SbmAssociation.Column.Unknown: caption = ""; break;
|
|
case SbmAssociation.Column.Pos: caption = "Pos"; break; // Position in list (derived).
|
|
case SbmAssociation.Column.Id: caption = "Id"; break;
|
|
//-----------------------------------------------------------// Association details.
|
|
case SbmAssociation.Column.Type: caption = "Type"; break;
|
|
case SbmAssociation.Column.Type_Desc: caption = "Type desc"; break;
|
|
case SbmAssociation.Column.Code: caption = "Code"; break;
|
|
case SbmAssociation.Column.ExtRef:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ExtRef, "Ext ref"); break;
|
|
case SbmAssociation.Column.Role:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Role, "Role"); break;
|
|
case SbmAssociation.Column.Location:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_Location, "Location"); break;
|
|
case SbmAssociation.Column.PhoneMain: caption = "Phone main"; break;
|
|
case SbmAssociation.Column.Email: caption = "Email"; break;
|
|
case SbmAssociation.Column.Group: caption = "Group"; break;
|
|
case SbmAssociation.Column.DescDetail:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DescDetail, "Detail desc"); break;
|
|
case SbmAssociation.Column.DefaultNominalCode:
|
|
caption = "Default nominal code"; break;
|
|
case SbmAssociation.Column.AmountTransMax: caption = "Trans max amount"; break;
|
|
case SbmAssociation.Column.AnnualSalesTarget: caption = "Annual sales target"; break;
|
|
case SbmAssociation.Column.CreditLimit: caption = "Credit Limit"; break;
|
|
case SbmAssociation.Column.AccountBalance: caption = "Account balance"; break;
|
|
case SbmAssociation.Column.DiscountType: caption = "Discount type"; break;
|
|
case SbmAssociation.Column.DiscountType_Desc: caption = "Discount type"; break;
|
|
case SbmAssociation.Column.DiscountRate: caption = "Discount rate"; break;
|
|
//-----------------------------------------------------------// part of PriceSet details
|
|
case SbmAssociation.Column.PriceSetId: caption = "Price set #"; break;
|
|
case SbmAssociation.Column.PriceSet_Ref: caption = "Price set ref"; break;
|
|
case SbmAssociation.Column.PriceSet_Type: caption = "Price set type"; break;
|
|
case SbmAssociation.Column.PriceSet_TypeDesc: caption = "Price set type"; break;
|
|
case SbmAssociation.Column.PriceSet_Name: caption = "Price set"; break;
|
|
case SbmAssociation.Column.TaxCodeId: caption = "Tax code #"; break;
|
|
case SbmAssociation.Column.PaymentTerms: caption = "Payment terms"; break;
|
|
case SbmAssociation.Column.InvoiceDesc: caption = "Invoice desc"; break;
|
|
case SbmAssociation.Column.AccountManagerCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
|
case SbmAssociation.Column.AccountManagerDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
|
case SbmAssociation.Column.AccountHandlerCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
|
case SbmAssociation.Column.AccountHandlerDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
|
case SbmAssociation.Column.AccountTypeCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type") + " code"; break;
|
|
case SbmAssociation.Column.AccountTypeDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountTypeCode, "Account type"); break;
|
|
case SbmAssociation.Column.AccountRatingCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating") + " code"; break;
|
|
case SbmAssociation.Column.AccountRatingDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountRatingCode, "Account rating"); break;
|
|
case SbmAssociation.Column.ContactAreaCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
|
case SbmAssociation.Column.ContactAreaDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
|
case SbmAssociation.Column.ContactHandlerCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
|
case SbmAssociation.Column.ContactHandlerDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
|
case SbmAssociation.Column.ContactMethodCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method") + " code"; break;
|
|
case SbmAssociation.Column.ContactMethodDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactMethodCode, "Conact method"); break;
|
|
case SbmAssociation.Column.ContactCallCycleCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle") + " code"; break;
|
|
case SbmAssociation.Column.ContactCallCycleDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactCallCycleCode, "Call cycle"); break;
|
|
case SbmAssociation.Column.CallsPerYear: caption = "Calls per year"; break;
|
|
case SbmAssociation.Column.LastCall: caption = "Last call"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryCodes: caption = "Seasonal category codes"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryCode1: caption = "Seasonal category code 1"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryDesc1: caption = "Seasonal category 1"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryCode2: caption = "Seasonal category code 2"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryDesc2: caption = "Seasonal category 2"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryCode3: caption = "Seasonal category code 3"; break;
|
|
case SbmAssociation.Column.SeasonalCategoryDesc3: caption = "Seasonal category 3"; break;
|
|
case SbmAssociation.Column.OrderLeadTimeCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time") + " code"; break;
|
|
case SbmAssociation.Column.OrderLeadTimeDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_OrderLeadTimeCode, "Order lead time"); break;
|
|
case SbmAssociation.Column.DeliveryTypeCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type") + " code"; break;
|
|
case SbmAssociation.Column.DeliveryTypeDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryTypeCode, "Delivery type"); break;
|
|
case SbmAssociation.Column.DeliveryMethodCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method") + " code"; break;
|
|
case SbmAssociation.Column.DeliveryMethodDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryMethodCode, "Delivery method"); break;
|
|
case SbmAssociation.Column.DeliveryBookInCode:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in") + " code"; break;
|
|
case SbmAssociation.Column.DeliveryBookInDesc:
|
|
caption = GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_DeliveryBookInCode, "Delivery book-in"); break;
|
|
case SbmAssociation.Column.Terminated: caption = "Terminated"; break;
|
|
case SbmAssociation.Column.Primary: caption = "Primary"; break;
|
|
case SbmAssociation.Column.Technician: caption = "Technician"; break;
|
|
case SbmAssociation.Column.Notes: caption = "Notes"; break;
|
|
case SbmAssociation.Column.Status_Desc: caption = "Status"; break;
|
|
case SbmAssociation.Column.Status_Ind: caption = "Status ind"; break;
|
|
//-----------------------------------------------------------//Association's owner details
|
|
case SbmAssociation.Column.AffIdOwner: caption = "Owner #"; break;
|
|
case SbmAssociation.Column.Owner_Name: caption = "Owner name"; break;
|
|
case SbmAssociation.Column.AffIdTarget: caption = "Target #"; break;
|
|
//-----------------------------------------------------------// Association's target details
|
|
case SbmAssociation.Column.Target_Type: caption = "Contact type"; break;
|
|
case SbmAssociation.Column.Target_TypeDesc: caption = "Contact type"; break;
|
|
case SbmAssociation.Column.Target_Name: caption = "Contact name"; break;
|
|
case SbmAssociation.Column.Target_Nature: caption = "Contact nature"; break;
|
|
case SbmAssociation.Column.Target_PhoneMain: caption = "Contact main phone"; break;
|
|
case SbmAssociation.Column.Target_PhoneAlt: caption = "Contact alt phone"; break;
|
|
case SbmAssociation.Column.Target_PhoneFax: caption = "Contact fax"; break;
|
|
case SbmAssociation.Column.Target_PhoneMobile: caption = "Contact mobile phone"; break;
|
|
case SbmAssociation.Column.Target_Email: caption = "Contact email"; break;
|
|
case SbmAssociation.Column.Target_Website: caption = "Contact website"; break;
|
|
case SbmAssociation.Column.Target_Notes: caption = "Contact notes"; break;
|
|
case SbmAssociation.Column.Target_Address_Type: caption = "Contact addr. type"; break;
|
|
case SbmAssociation.Column.Target_Address_TypeDesc: caption = "Contact address type"; break;
|
|
case SbmAssociation.Column.Target_Address_RefExt: caption = "Contact address ref ext"; break;
|
|
case SbmAssociation.Column.Target_Address_Name: caption = "Contact address name"; break;
|
|
case SbmAssociation.Column.Target_Address_DescBrief: caption = "Contact address desc"; break;
|
|
//-----------------------------------------------------------// Association's target address details
|
|
case SbmAssociation.Column.Target_Address_Summary: caption = "Contact address"; break;
|
|
case SbmAssociation.Column.Target_Address_Line1: caption = "Contact address line 1"; break;
|
|
case SbmAssociation.Column.Target_Address_Line2: caption = "Contact address line 2"; break;
|
|
case SbmAssociation.Column.Target_Address_City: caption = "Contact address city"; break;
|
|
case SbmAssociation.Column.Target_Address_Province: caption = "Contact address province"; break;
|
|
case SbmAssociation.Column.Target_Address_Postcode: caption = "Contact address postcode"; break;
|
|
case SbmAssociation.Column.Target_Address_Country: caption = "Contact address country"; break;
|
|
case SbmAssociation.Column.Target_Address_Contact: caption = "Contact address Contact"; break;
|
|
case SbmAssociation.Column.Target_Address_Phone: caption = "Contact address Phone"; break;
|
|
case SbmAssociation.Column.Target_Address_Email: caption = "Contact address Email"; break;
|
|
case SbmAssociation.Column.Target_Address_AccountManagerCode:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager") + " code"; break;
|
|
case SbmAssociation.Column.Target_Address_AccountManagerDesc:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
|
case SbmAssociation.Column.Target_Address_AccountHandlerCode:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler") + " code"; break;
|
|
case SbmAssociation.Column.Target_Address_AccountHandlerDesc:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountHandlerCode, "Account handler"); break;
|
|
case SbmAssociation.Column.Target_Address_ContactAreaCode:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area") + " code"; break;
|
|
case SbmAssociation.Column.Target_Address_ContactAreaDesc:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
|
case SbmAssociation.Column.Target_Address_ContactHandlerCode:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler)") + " code"; break;
|
|
case SbmAssociation.Column.Target_Address_ContactHandlerDesc:
|
|
caption = "Contact address " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactHandlerCode, "Contact handler"); break;
|
|
case SbmAssociation.Column.Target_Address_LastVisitOn: caption = "Contact address last visit"; break;
|
|
case SbmAssociation.Column.Target_Address_NextVisitOn: caption = "Contact address next visit"; break;
|
|
case SbmAssociation.Column.Target_DeliveryAddress_Postcode: caption = "Delivery address - Postcode"; break;
|
|
case SbmAssociation.Column.Target_DeliveryAddress_AccountManagerCode:
|
|
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_AccountManagerCode, "Account manager"); break;
|
|
case SbmAssociation.Column.Target_DeliveryAddress_ContactAreaCode:
|
|
caption = "Delivery address - " + GetAttributeCaption(SbmDbDfn.ColumnIdx.Association_ContactAreaCode, "Contact area"); break;
|
|
//-----------------------------------------------------------// part of ... Members details
|
|
case SbmAssociation.Column.Member_Type: caption = "Member type"; break;
|
|
case SbmAssociation.Column.Member_TypeDesc: caption = "Member type desc"; break;
|
|
case SbmAssociation.Column.Member_Code: caption = "Member code"; break;
|
|
case SbmAssociation.Column.Member_ExtRef: caption = "Member ext ref"; break;
|
|
case SbmAssociation.Column.Member_Role: caption = "Member role"; break;
|
|
case SbmAssociation.Column.Member_Location: caption = "Member location"; break;
|
|
case SbmAssociation.Column.Member_PhoneMain: caption = "Member phone main"; break;
|
|
case SbmAssociation.Column.Member_Email: caption = "Member email"; break;
|
|
case SbmAssociation.Column.Member_Target_Name: caption = "Member contact name"; break;
|
|
case SbmAssociation.Column.Member_Target_Nature: caption = "Member contact nature"; break;
|
|
case SbmAssociation.Column.Member_Target_PhoneMain: caption = "Member contact phone main"; break;
|
|
case SbmAssociation.Column.Member_Target_PhoneAlt: caption = "Member contact phone alt"; break;
|
|
case SbmAssociation.Column.Member_Target_PhoneFax: caption = "Member contact phone fax"; break;
|
|
case SbmAssociation.Column.Member_Target_PhoneMobile: caption = "Member contact phone mobile"; break;
|
|
case SbmAssociation.Column.Member_Target_Email: caption = "Member contact email"; break;
|
|
case SbmAssociation.Column.Member_Target_Website: caption = "Member contact website"; break;
|
|
case SbmAssociation.Column.Member_Target_Notes: caption = "Member contact notes"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Summary: caption = "Member contact address"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Line1: caption = "Member contact address line 1"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Line2: caption = "Member contact address line 2"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_City: caption = "Member contact city"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Province: caption = "Member contact address province"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Postcode: caption = "Member contact address postcode"; break;
|
|
case SbmAssociation.Column.Member_Target_Address_Country: caption = "Member contact address country"; break;
|
|
case SbmAssociation.Column.Trans_LastSaleRaised: caption = "Last sale"; break;
|
|
case SbmAssociation.Column.Trans_SalesValue_Open: caption = "SO value - open"; break; // Net open sales order value.
|
|
case SbmAssociation.Column.Trans_SalesValue_Cytd: caption = "SO value - YDT"; break; // Net sales order value closed this calendar year.
|
|
case SbmAssociation.Column.Trans_SalesValue_Lcy: caption = "SO value - LCY"; break; // Net sales order value closed last calendar year.
|
|
}
|
|
if (StringUtil.IsEmpty(caption))
|
|
caption = GetAssociationColumnDfn(column).Caption;
|
|
return caption;
|
|
}
|
|
|
|
// Association List Targets.
|
|
public abstract List<SysId> GetMemberTargetIds(SysId affiliateIdOwner);
|
|
public abstract List<SysId> GetCustomerTargetIds(List<SysId> affiliateIdsInclude, List<SysId> affiliateIdsExclude);
|
|
public abstract List<SysId> GetCustomerAssocIdsForTargets(List<SysId> affiliateIdsTarget);
|
|
public abstract List<SysId> GetAssocIdsForTargets(SysId affiliateIdOwner, Sbm.AssociationType associationType, List<SysId> affiliateIdsTarget);
|
|
|
|
//-------------------------------------------------------------------
|
|
// Retrieve individual associations
|
|
//-------------------------------------------------------------------
|
|
// Association exists.
|
|
public bool AssociationExistsById(SysId id)
|
|
{
|
|
ClearErrorState();
|
|
if (!SysId.IsValid(id)) return false;
|
|
SbmAssociation.Params prmAssociation = new SbmAssociation.Params();
|
|
prmAssociation.IncludedIds.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 association.
|
|
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.IncludedIds.Add(associationId);
|
|
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.IncludedIds.Add(affiliateIdOwner);
|
|
prmAssociation.AssociationType = associationType;
|
|
prmAssociation.IncludedIds.Add(affiliateIdTarget);
|
|
prmAssociation.StatusCat = SbmAssociation.StatusCat.Any;
|
|
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.Any
|
|
};
|
|
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);
|
|
//-------------------------------------------------------------------
|
|
// Has associations.
|
|
public abstract bool OwnerHasAssociations(SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true);
|
|
public abstract long OwnerAssociationCount(SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true);
|
|
public abstract bool OwnerHasAssociationsWith(SysId ownerId, SysId affiliateIdTarget, bool activeOnly = true);
|
|
public abstract long OwnerTargetAssociationCount(SysId ownerId, SysId affiliateIdTarget, bool activeOnly = true);
|
|
public abstract bool TargetHasAssociations(SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true);
|
|
public abstract long TargetAssociationCount(SysId id, Sbm.AssociationType associationType = Sbm.AssociationType.Any, bool activeOnly = true);
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
// 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.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)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Code)))
|
|
{
|
|
errField.Code = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.RefExt != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.RefExt, "external ref", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_ExtRef)))
|
|
{
|
|
errField.RefExt = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Role != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Role, "role", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Role)))
|
|
{
|
|
errField.Role = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Location != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Location, "location", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Location)))
|
|
{
|
|
errField.Location = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.PhoneMain != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.PhoneMain, "phone main", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_PhoneMain)))
|
|
{
|
|
errField.PhoneMain = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Email != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Email, "email", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Email)))
|
|
{
|
|
errField.Email = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Group != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.Group, "group", (long)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Group)))
|
|
{
|
|
errField.Group = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.DescDetail != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.DescDetail, "desc detail", (long)SbmDbDfn.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)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_DefaultNominalCode)))
|
|
{
|
|
errField.DefaultNominalCode = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.InvoiceDesc != SacsHierarchyItem.ValidValue.Ignore && !IsValidValue(data.InvoiceDesc, "invoice description", (long)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.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)SbmDbDfn.GetColTextLen(SbmDbDfn.ColumnIdx.Association_Notes)))
|
|
{
|
|
errField.Notes = SacsHierarchyItem.ValidValue.Invalid;
|
|
return false;
|
|
}
|
|
if (errField.Status != SacsHierarchyItem.ValidValue.Ignore)
|
|
{
|
|
if (!IsValidValue(data.StatusCode, "status", (long)SbmDbDfn.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.IncludedIds.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.IncludedIds.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))
|
|
{
|
|
/* ToDo Validate Association PriceSet
|
|
SbmPriceSet.Params prmPriceSet = new SbmPriceSet.Params();
|
|
prmPriceSet.IncludedIds.Add(data.PriceSetId);
|
|
prmPriceSet.StatusCat = SbmPriceSet.StatusCat.Any;
|
|
if (GetPriceSetCount(prmPriceSet) < 1)
|
|
{
|
|
errField.PriceSetId = SacsHierarchyItem.ValidValue.Invalid;
|
|
return SetErrorState("Price Set not found");
|
|
}
|
|
*/
|
|
}
|
|
if (errField.TaxCodeId != SacsHierarchyItem.ValidValue.Ignore && SysId.IsValid(data.TaxCodeId))
|
|
{
|
|
/* ToDo Validate Association TaxCode
|
|
errField.TaxCodeId = SacsHierarchyItem.ValidValue.Invalid;
|
|
return SetErrorState("Tax Code's Id 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);
|
|
public abstract List<Sbm.AssociationType> GetAssociationTypesInUse();
|
|
|
|
//-------------------------------------------------------------------
|
|
// 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:
|
|
{
|
|
List<String> addresses = new List<String>()
|
|
{
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Line1).DataName).ToString(),
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Line2).DataName).ToString(),
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_City).DataName).ToString(),
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Province).DataName).ToString(),
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Postcode).DataName).ToString(),
|
|
values.GetValue(GetAssociationColumnDfn(SbmAssociation.Column.Target_Address_Country).DataName).ToString(),
|
|
};
|
|
|
|
value = new DataValue(addresses.Concat(", ", null, null, true, true).Replace(" ,", ",").Trim(',').Trim());
|
|
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;
|
|
}
|
|
|
|
//-----------------------------------------------------------
|
|
}
|
|
return value;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|