/// <summary>
/// This class is an extension of DimensionLookup
/// </summary>
[ExtensionOf(formDataSourceStr(DimensionLookup, ds))]
final class BTC_DimensionLookup_DS_Extension
{
/// <summary>
/// This method is used to initilise the value
/// </summary>
public void init()
{
DimensionAttributeViewContract dimAttrViewContract;
QueryBuildDataSource qBDSDimAttrCoBTCentre;
QueryBuildDataSource qBDSBTCUserCoBTCentreMaintain;
DimensionAttribute dimAttr;
next init();
FormRun formRun = element.args().caller();
if (formRun.name() == formStr(PurchTable))
{
dimAttr = element.args().record();
dimAttrViewContract = DimensionAttribute::getViewContract(dimAttr.RecId);
if (dimAttrViewContract.parmViewId() == tableNum(DimAttributeOMCoBTCenter))
{
if (BTC_UserCoBTCentreMaintain::checkUserExists(curUserId(), curExt()))
{
qBDSDimAttrCoBTCentre= this.query().dataSourceNo(1);
qBDSBTCUserCoBTCentreMaintain = qBDSDimAttrCoBTCentre.addDataSource(tableNum(BTC_UserCoBTCentreMaintain));
qBDSBTCUserCoBTCentreMaintain.joinMode(JoinMode::InnerJoin);
qBDSBTCUserCoBTCentreMaintain.relations(false);
qBDSBTCUserCoBTCentreMaintain.addLink(fieldNum(DimAttributeOMCoBTCenter, value), fieldNum(BTC_UserCoBTCentreMaintain, coBTCentre));
qBDSBTCUserCoBTCentreMaintain.addRange(fieldNum(BTC_UserCoBTCentreMaintain, UserId)).value(queryValue(curUserId()));
qBDSBTCUserCoBTCentreMaintain.addRange(fieldNum(BTC_UserCoBTCentreMaintain, LegalEntity)).value(curExt());
}
}
}
}
}
-----------------------------------------
/// <summary>
/// Extension class for DimensionEntryControl class
/// </summary>
[ExtensionOf(classStr(DimensionEntryControl))]
final class BTC_DimensionEntryControl_C_Extension
{
/// <summary>
/// This method is used to modify dimension values
/// </summary>
/// <param name = "_dimensionAttribute">DimensionAttribute</param>
/// <param name = "_origValue">DimensionValue</param>
/// <param name = "_newValue">DimensionValue</param>
/// <returns>boolean</returns>
protected boolean modifyingDimensionValue(
DimensionAttribute _dimensionAttribute,
DimensionValue _origValue,
DimensionValue _newValue)
{
boolean ret;
ret = next modifyingDimensionValue(_dimensionAttribute, _origValue, _newValue);
if (this.formRun().name() == formStr(PurchTable))
{
if (_newValue)
{
if (BTC_UserCoBTCentreMaintain::checkUserExists(curUserId(), curExt()))
{
if (_dimensionAttribute.Name == BTC_DefaultPurchaseOrderValues::A4CoBTCentreName)
{
BTC_UserCoBTCentreMaintain userCoBTCentreMaintain;
select firstonly RecId from userCoBTCentreMaintain
where userCoBTCentreMaintain.UserId == curUserId()
&& userCoBTCentreMaintain.LegalEntity == curExt()
&& userCoBTCentreMaintain.CoBTCentre == _newValue;
if (!userCoBTCentreMaintain.RecId)
{
throw warning(strFmt("@SYS135696", _newValue));
}
}
}
}
else
{
throw warning('Field Cost centre must be filled in.');
}
}
return ret;
}
}
No comments:
Post a Comment