Consolidated Exchange Rate

If you use NetSuite OneWorld and your subsidiaries have different base currencies, you can maintain a table of consolidated exchange rates. This table is used to ensure that for consolidation purposes, currency amounts properly roll up from child to parent subsidiaries. Each consolidated exchange rate translates between the base currency of a subsidiary and the base currency of its parent or grandparent subsidiary, for a specified accounting period. Consolidated exchange rates include three different rate types per period, subsidiary, and accounting book: Current, Average, and Historical.

The internal ID for this record is consolidatedexchangerate.

The consolidated exchange rate record is available only when the Multiple Currencies feature is enabled. An administrator can enable this feature at Setup > Company > Enable Features under the Company subtab.

For help working with this record in the UI, see Consolidated Exchange Rates.

The script user must have the Currency permission with Full permission level. To edit the different rate types per period and subsidiary pair, the script user must also have access to both the From and To subsidiary.

See the SuiteScript Records Browser for all internal IDs associated with this record.

Note:

For information about using the SuiteScript Records Browser, see Working with the SuiteScript Records Browser in the NetSuite Help Center.

For information about scripting with this record in SuiteScript, see the following help topics:

Supported Script Types

The consolidated exchange rate record is scriptable in both client and server SuiteScript.

The editable elements of the record are the currentrate, averagerate, historicalrate, and externalid. The remaining record elements can be read and searched.

Important:

Rates are created and deleted when subsidiaries or secondary accounting books are created and deleted. Script users can edit the record only if it is not derived (Element field-> isderived) and only when the accounting period to which this rate belongs is not closed (Element field-> isperiodclosed). In addition, the script user cannot edit a consolidated exchange rate of 1 for an elimination subsidiary and its direct parent (Element field- iseliminationsubsidiary), with the following exception. Those customers who already have a non–1 consolidated exchange rate (current, average, or historical) between and elimination subsidiary and its direct parent subsidiary can edit the consolidated exchange rates for the elimination subsidiary.

Supported Functions

This record is partially scriptable. It can be read, updated, and searched using SuiteScript. It cannot be created, deleted, or transformed.

Code Samples

The following sample show how to update a consolidated rate between two subsidiaries.

          var PARENT_SUBSIDIARY = 1;
var CHILD_SUBSIDIARY = 3;
var PERIOD = 212;
 
// Search for the consolidated rate record from CHILD_SUBSIDIARY to PARENT_SUBSIDIARY for a specific PERIOD
var mySearch = search.create({
    type: 'consolidatedexchangerate',
    filters: [{
        name: 'fromsubsidiary',
        operator: search.Operator.IS,
        values: CHILD_SUBSIDIARY
    } , {
        name: 'tosubsidiary',
        operator: search.Operator.IS,
        values: PARENT_SUBSIDIARY
    } , {
        name: 'period',
        operator: search.Operator.IS,
        values: PERIOD
    }],
    columns: [{
        name: 'internalid'
    }]
});
mySearch.run().each(function(result){
    var fromSubsidiary = result.getValue({
        name: 'fromsubsidiary'
    });
    var toSubsidiary = result.getValue({
        name: 'tosubsidiary'
    });
    var period = result.getValue({
        name: 'period'
    });
    return true;
});
// Update the consolidated rate's current, average, and historical rate
var rateRecord = record.load({
    type: record.Type.CONSOLIDATED_EXCHANGE_RATE,
    id: searchResults[0].getValue('internalid'),
    defaultValues: true
});
rateRecord.setValue({
    fieldId: 'currentrate',
    value: 1.2
});
rateRecord.setValue({
    fieldId: 'averagerate',
    value: 1.3
});
rateRecord.setValue({
    fieldId: 'historicalrate',
    value: 1.4
});
var recId = rateRecord.save(); 

        

Related Topics

General Notices