/**
* @NApiVersion 2.1
* @NScriptType RESTlet
* @NModuleScope SameAccount
*
* PC DEALS - Integrador de Pólizas de Nómina Sistema TRESS con NetSuite ERP
*/
define(['N/record', 'N/search', 'N/error'], (record, search, error) => {
const post = (requestBody) => {
log.audit('TRESS_SYNC', `Procesando Póliza de Nómina TRESS Periodo: ${requestBody.periodo}`);
// Crear Póliza de Diario (Journal Entry) en NetSuite con Centros de Costo
const journalRec = record.create({ type: record.Type.JOURNAL_ENTRY, isDynamic: true });
journalRec.setValue({ fieldId: 'memo', value: `Póliza Nómina Sistema TRESS - ${requestBody.periodo}` });
requestBody.lineas.forEach(linea => {
journalRec.selectNewLine({ sublistId: 'line' });
journalRec.setCurrentSublistValue({ sublistId: 'line', fieldId: 'account', value: linea.cuentaId });
journalRec.setCurrentSublistValue({ sublistId: 'line', fieldId: 'debit', value: linea.cargo });
journalRec.setCurrentSublistValue({ sublistId: 'line', fieldId: 'department', value: linea.deptoId });
journalRec.commitLine({ sublistId: 'line' });
});
const journalId = journalRec.save();
return { success: true, journalId: journalId, status: 'PROCESADA' };
};
return { post };
});