/// <summary>
/// This class is an extension of DimensionLookup
/// </summary>
[ExtensionOf(formDataSourceStr(DimensionLookup, ds))]
final class PNG_DimensionLookup_DS_Extension
{
/// <summary>
/// This method is used to initilise the value
/// </summary>
public void init()
{
DimensionAttributeViewContract dimAttrViewContract;
QueryBuildDataSource qBDSDimAttrCostcentre;
QueryBuildDataSource qBDSSTCUserCostcentreMaintain;
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(DimAttributeOMCostCenter))
{
if (PNG_UserCostCentreMaintain::checkUserExists(curUserId(), curExt()))
{
qBDSDimAttrCostcentre= this.query().dataSourceNo(1);
qBDSSTCUserCostcentreMaintain = qBDSDimAttrCostcentre.addDataSource(tableNum(PNG_UserCostCentreMaintain));
qBDSSTCUserCostcentreMaintain.joinMode(JoinMode::InnerJoin);
qBDSSTCUserCostcentreMaintain.relations(false);
qBDSSTCUserCostcentreMaintain.addLink(fieldNum(DimAttributeOMCostCenter, value), fieldNum(PNG_UserCostCentreMaintain, costcentre));
qBDSSTCUserCostcentreMaintain.addRange(fieldNum(PNG_UserCostCentreMaintain, UserId)).value(queryValue(curUserId()));
qBDSSTCUserCostcentreMaintain.addRange(fieldNum(PNG_UserCostCentreMaintain, LegalEntity)).value(curExt());
}
}
}
}
}
-----------------------------------------
/// <summary>
/// Extension class for DimensionEntryControl class
/// </summary>
[ExtensionOf(classStr(DimensionEntryControl))]
final class PNG_DimensionEntryControl_C_Extension
{
/// <summary>
/// applyBuild()
/// </summary>
public void applyBuild()
{
//element.
DimensionEntryControlBuild build;
build = this.build();
if(this.formRun().args().menuItemName() == menuItemDisplayStr(PNG_InventJournalTransOffsetDimension))
{
build.parmValueSetReferenceField('STCOffsetLedgerDimension');
}
next applyBuild();
}
/// <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 (PNG_UserCostCentreMaintain::checkUserExists(curUserId(), curExt()))
{
if (_dimensionAttribute.Name == PNG_DefaultPurchaseOrderValues::A4CostCentreName)
{
PNG_UserCostCentreMaintain userCostCentreMaintain;
select firstonly RecId from userCostCentreMaintain
where userCostCentreMaintain.UserId == curUserId()
&& userCostCentreMaintain.LegalEntity == curExt()
&& userCostCentreMaintain.CostCentre == _newValue;
if (!userCostCentreMaintain.RecId)
{
throw warning(strFmt("@SYS135696", _newValue));
}
}
}
}
else
{
throw warning('Field Cost centre must be filled in.');
}
}
return ret;
}
}
No comments:
Post a Comment