[ExtensionOf(tableStr(LedgerJournalTrans))]
final class LedgerJournalTrans_Extension
{
/// <summary>
/// This method is used to modify the businessunit field.
/// </summary>
/// <param name = "_fieldId">fieldId</param>
public void modifiedField(fieldId _fieldId)
{
LedgerJournalTrans ledgerJournalTrans;
RecId dimension1,dimension2;
next modifiedField(_fieldId);
switch(_fieldId)
{
case fieldnum(LedgerJournalTrans, BusinessUnit):
dimension1 = this.createDefaultDimension(this.BusinessUnit);
dimension2 = LedgerDimensionFacade::getDefaultDimensionFromLedgerDimension(this.LedgerDimension);
if (!dimension1)
{
dimension2 = this.removeValueDefaultDimension(dimension2);
}
this.LedgerDimension = LedgerDimensionFacade::serviceCreateLedgerDimension(
LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(
LedgerDimensionFacade::getMainAccountRecIdFromLedgerDimension(this.LedgerDimension)),
dimension1,
dimension2);
break;
default:
}
}
/// <summary>
/// This method is used to create the defaultdimension .
/// </summary>
/// <param name = "businessUnit">String</param>
/// <returns>result</returns>
public DimensionDefault createDefaultDimension(str businessUnit)
{
DimensionAttributeValueSetStorage valueSetStorage = new DimensionAttributeValueSetStorage();
DimensionDefault result;
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
container conAttr = ["BusinessUnit"];
container conValue = [businessUnit];
str dimValue;
for (i = 1; i <= conLen(conAttr); i++)
{
dimensionAttribute = dimensionAttribute::findByName(conPeek(conAttr,i));
if (dimensionAttribute.RecId == 0)
{
continue;
}
dimValue = conPeek(conValue,i);
if (dimValue != "")
{
dimensionAttributeValue = dimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,dimValue,false,true);
valueSetStorage.addItem(dimensionAttributeValue);
}
}
result = valueSetStorage.save();
return result;
}
/// <summary>
/// Used to remove the dimesion.
/// </summary>
/// <param name = "dimension">int64</param>
/// <returns>Dimension</returns>
public int64 removeValueDefaultDimension(int64 dimension)
{
DimensionAttributeValueSetStorage dimStorage;
DimensionAttribute dimAttr;
DimensionAttributeValue dimAttributeValue;
DimensionDefault defaultDimension;
str value;
dimStorage = DimensionAttributeValueSetStorage::find(dimension);
dimAttr = DimensionAttribute::findByName("BusinessUnit");
value = dimStorage.getDisplayValueByDimensionAttribute(dimAttr.RecId);
dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimAttr, value, true, true);
dimStorage.removeDimensionAttributeValue(dimAttributeValue.RecId);
dimension = dimStorage.save();
return dimension;
}
}
No comments:
Post a Comment