@adncorp/account-book-parser-adapter
Version:
parsing sheet adapter for account book
79 lines (71 loc) • 2.7 kB
JavaScript
;
/* 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