static void
updateLegalEntityBank(Args _args)
{
//Item ,
vendor, customer, fixed assets and bank
BankAccountTable bankAccountTable;
DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage;
DimensionAttribute dimensionAttribute;
DimensionValue oldDimensionValue;
DimensionValue newDimensionValue;
DimensionDefault newDimensionDefault;
#define.dimensionName("LegalEntity")
DimensionValue
getDimensionValue(DimensionDefault _dimensionDefault)
{
DefaultDimensionView
defaultDimensionView;
select
firstonly DisplayValue
from
defaultDimensionView
where
defaultDimensionView.Name == #dimensionName
&&
defaultDimensionView.DefaultDimension == _dimensionDefault;
return
defaultDimensionView.DisplayValue;
}
while
select crossCompany
bankAccountTable
{
changeCompany(bankAccountTable.dataAreaId)
{
// Get
current value
oldDimensionValue =
getDimensionValue(bankAccountTable.DefaultDimension);
newDimensionValue =
bankAccountTable.dataAreaId;
//
Build DimensionAttributeValueSetStorage
dimensionAttributeValueSetStorage =
DimensionAttributeValueSetStorage::find(bankAccountTable.DefaultDimension);
//
Remove old dimension value
if(oldDimensionValue
!= "")
{
dimensionAttribute =
DimensionAttribute::findByName(#dimensionName);
dimensionAttributeValueSetStorage.removeDimensionAttributeValue(
DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
oldDimensionValue).RecId);
}
// Set
new dimension value
if(newDimensionValue
!= "")
{
dimensionAttribute = DimensionAttribute::findByName(#dimensionName);
dimensionAttributeValueSetStorage.addItem(
DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
newDimensionValue));
}
newDimensionDefault =
dimensionAttributeValueSetStorage.save();
ttsbegin;
bankAccountTable.selectForUpdate(true);
bankAccountTable.DefaultDimension =
newDimensionDefault;
bankAccountTable.update();
ttscommit;
}
}
info("Finished
processing");
}
No comments:
Post a Comment