dimension control Enable Disable
Public class DSADimensionEntryControlUtil
{
//Enable Disable Sector Dimension
public static void disableDimension(custtable custtable, DimensionEntryControl dimControl , str Sector = 'Sector')
{
DimensionEnumeration dimensionSetId = DimensionCache::getDimensionAttributeSetForLedger();
DimensionAttributeSetStorage dimensionAttributeSetStorage = new DimensionAttributeSetStorage();
DimensionAttribute dimensionAttribute;
DimensionAttributeSetItem dimAttrSetItem;
if(custtable.DSACustomerSectorType == DSACustomerSectorType::MultiSector)
{
while select dimensionAttribute
where dimensionAttribute.Name != Sector // Exclude specific dimension which should be not editable
join dimAttrSetItem
where dimAttrSetItem.DimensionAttribute == dimensionAttribute.RecId
&& dimAttrSetItem.DimensionAttributeSet == dimensionSetId
{
dimensionAttributeSetStorage.addItem(dimensionAttribute.RecId, dimensionAttribute.HashKey, NoYes::Yes);
}
}
else
{
while select dimensionAttribute
join dimAttrSetItem
where dimAttrSetItem.DimensionAttribute == dimensionAttribute.RecId
&& dimAttrSetItem.DimensionAttributeSet == dimensionSetId
{
dimensionAttributeSetStorage.addItem(dimensionAttribute.RecId, dimensionAttribute.HashKey, NoYes::Yes);
}
}
dimControl.parmEditableDimensionSet(dimensionAttributeSetStorage.save());
dimControl.run();
dimControl.reactivate();
dimControl.reactivateDisplayValuesAndEnums();
dimControl.loadAttributeValueSet(custtable.DefaultDimension);
}
//Enable Disable Sector Dimension
public static void disableSOAndProjDimension(custtable custtable, DimensionEntryControl dimControl , str Sector = 'Sector')
{
DimensionEnumeration dimensionSetId = DimensionCache::getDimensionAttributeSetForLedger();
DimensionAttributeSetStorage dimensionAttributeSetStorage = new DimensionAttributeSetStorage();
DimensionAttribute dimensionAttribute;
DimensionAttributeSetItem dimAttrSetItem;
if(
(custtable.DSACustomerSectorType == DSACustomerSectorType::MultiSector)
|| ((custtable.DSACustomerSectorType == DSACustomerSectorType::SingleSector) && (DSADimensionEntryControlUtil::isAllowedToEdit()))
)
{
while select dimensionAttribute
join dimAttrSetItem
where dimAttrSetItem.DimensionAttribute == dimensionAttribute.RecId
&& dimAttrSetItem.DimensionAttributeSet == dimensionSetId
{
dimensionAttributeSetStorage.addItem(dimensionAttribute.RecId, dimensionAttribute.HashKey, NoYes::Yes);
}
}
else
{
while select dimensionAttribute
where dimensionAttribute.Name != Sector // Exclude specific dimension which should be not editable
join dimAttrSetItem
where dimAttrSetItem.DimensionAttribute == dimensionAttribute.RecId
&& dimAttrSetItem.DimensionAttributeSet == dimensionSetId
{
dimensionAttributeSetStorage.addItem(dimensionAttribute.RecId, dimensionAttribute.HashKey, NoYes::Yes);
}
}
dimControl.parmEditableDimensionSet(dimensionAttributeSetStorage.save());
dimControl.run();
dimControl.reactivate();
dimControl.reactivateDisplayValuesAndEnums();
dimControl.loadAttributeValueSet(custtable.DefaultDimension);
}
public static SecurityRole isAllowedToEdit()
{
userinfo userinfo;
SecurityUserRole SecurityUserRole;
SecurityRole SecurityRole;
select AOTNAME
from SecurityRole
exists join SecurityUserRole
where SecurityRole.RecId == SecurityUserRole.SecurityRole
exists join userinfo
where SecurityUserRole.USER == userinfo.ID
&& userinfo.id == curUserId()
&& SecurityRole.AOTNAME == 'DSACustomerSectorTypeRole';
return SecurityRole;
}
}
Regards
farazjaved01@gmail.com
Comments
Post a Comment