Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. var fs = require('fs');
  2.  
  3. function processData(data){
  4. var res = [];
  5. var parents = [];
  6. let previous;
  7. for (let i=0;i<data.length;i++){
  8. if(i>0) {
  9. var number = data[i].number.split('-');
  10. if(data[i].number.indexOf(previous.number) === 0) {
  11. previous.summary = 'Yes';
  12. parents.push({number:previous.number, name:previous.name});
  13. data[i].subaccountOf = parents[parents.length-1].number + ' ' + parents[parents.length-1].name;
  14. } else {
  15. previous.summary = 'No';
  16. while(parents.length > 0 && data[i].number.indexOf(parents[parents.length-1].number) !== 0) {
  17. parents.pop();
  18. }
  19. if(parents.length > 0) {
  20. data[i].subaccountOf = parents[parents.length-1].number + ' ' + parents[parents.length-1].name;
  21. }
  22. }
  23. res.push(previous);
  24. }
  25. previous = data[i];
  26. }
  27. previous.summary = 'No';
  28. res.push(previous);
  29. // console.log(res);
  30. return res;
  31. }
  32.  
  33. function prepareData(line){
  34. const x = line.split(';');
  35. const res = {
  36. externalId:'',
  37. number: x[1],
  38. name: x[2],
  39. type: x[3],
  40. subaccountOf: '',
  41. currency: x[5],
  42. summary: ''
  43. };
  44. return res;
  45. }
  46.  
  47. // read file and prepare structure for processing data
  48. var data = [];
  49. var path = process.cwd();
  50. var firstLine = true;
  51. var buffer = fs.readFileSync(path + "\\planKont.csv").toString().split(/\r?\n/).forEach(function(line){
  52. if(!firstLine) data.push(prepareData(line));
  53. firstLine = false;
  54. });
  55.  
  56. // process data
  57. data = processData(data);
  58.  
  59. // convert data to csv format
  60. var dataToWrite = 'External ID;Number;Name;Type;Subaccount of;Currency;Summary\n';
  61. for (let i=0;i<data.length;i++){
  62. dataToWrite += data[i].externalId + ";" + data[i].number + ";" + data[i].name + ";" + data[i].type + ";" + data[i].subaccountOf + ";" + data[i].currency + ";" + data[i].summary;
  63. if(i!==data.length-1) dataToWrite += '\n';
  64. }
  65.  
  66. // save file
  67. fs.writeFile(path + "\\planKontAfterTransformation.csv", dataToWrite, 'utf8', function(err) {
  68. if(err) {
  69. return console.log(err);
  70. }
  71. console.log("The file was saved!");
  72. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement