UNPKG

@adncorp/account-book-parser-adapter

Version:

parsing sheet adapter for account book

79 lines (71 loc) 2.7 kB
"use strict"; /* eslint-disable spellcheck/spell-checker */ /* eslint-disable camelcase */ // cleanArray removes all duplicated elements var cleanArray = require('../commonFunction/').cleanArray; // fonction principale pour la construction des objets à partir des valeurs qui sont extraires dans le accountbook de sage var sagebuildobject = function sagebuildobject(data) { var SPD = 0; var SPC = 0; var SPT = 0; var account_label = ''; var values = []; var column = {}; var accountbookobject = {}; var resultat = []; try { var all_num_compte_tab = []; data.forEach(function (el) { // console.log(el[0]) all_num_compte_tab.push(el[0]); }); var num_compte_tab = cleanArray(all_num_compte_tab); num_compte_tab.forEach(function (num_index) { num_index = parseFloat(num_index || '0'); // recherche de toutes les lignes correspondant à num_compte pour extraire les données associées au compte data.forEach(function (data_index) { // console.log(data_index) if (num_index === data_index[0]) { // console.log('test') SPD = SPD + parseFloat(data_index[6] || '0'); SPC = SPC + parseFloat(data_index[7] || '0'); SPT = SPT + parseFloat(data_index[8] || '0'); column.date = data_index[2]; column.period = data_index[2]; column.entry = ''; column.journal = data_index[3]; column.partner = ''; column.reference = data_index[4]; column.label = data_index[5]; column.counterpart = ''; column.debit = data_index[6]; column.credit = data_index[7]; column.cumul_bal = data_index[8]; account_label = data_index[1]; values.push(column); column = {}; } }); accountbookobject.account = num_index; accountbookobject.account_label = account_label; accountbookobject.values = values; accountbookobject.cumul_bal_debit = SPD; accountbookobject.cumul_bal_credit = SPC; accountbookobject.cumul_bal_total = SPT; resultat.push(accountbookobject); // initialisation des valiabres pour le calcul et la construction de données associées à un compte values = []; SPD = 0; SPC = 0; SPT = 0; accountbookobject = {}; }); return resultat; } catch (error) { var errorParsing = { code: '306', libelle: 'BuildObjectError', message: 'Erreur de format de données. Les champs des colonnes du fichier ne sont pas au format approprié' }; throw errorParsing; } }; module.exports = sagebuildobject; //# sourceMappingURL=sagebuildobject.js.map