Searching related GL impact in suiteScript

    function getGlImpact(bills){

var transactionFilters = [["internalidnumber","equalto",bills[0]]]
  for(var i=1;i<bills.length;i++)
    transactionFilters.push("OR",["internalidnumber","equalto",bills[i]])



var transactionSearchObj = search.create({
   type: "transaction",
   filters:[

      ["type","anyof","ExpRept"], 
      "AND", 
      [["creditamount","isnotempty",""],"OR",["debitamount","isnotempty",""]],
      "AND",
      transactionFilters    
   ],
   columns:
   [
      search.createColumn({name:"formulatext" ,formula: "{account}", label: "account"}),
       search.createColumn({
         name: "formulacurrency",
         formula: "{creditamount}",
         label: "creditamount"
      }),
       search.createColumn({
         name: "formulacurrency",
         formula:"{debitamount}",
         label: "debitamount"
      }),
      search.createColumn({name:"formulatext" ,formula: "{class}", label: "class"}),
      search.createColumn({name:"formulatext" ,formula: "{department}", label: "department"})

   ]
});

var billGls = [];
var totalDebit=0;
var totalCredit=0;
var searchColumns=transactionSearchObj.columns;

transactionSearchObj.run().each(function(result){
   var billLine = {};

   for(var i=0;i<searchColumns.length;i++)
         billLine[searchColumns[i].label]=result.getValue(searchColumns[i]);

       billLine.debitamount=parseNumber(billLine.debitamount);
       billLine.creditamount=parseNumber(billLine.creditamount);
       totalDebit+=billLine.debitamount;
       totalCredit+=billLine.creditamount;

       billLine.debitamount=billLine.debitamount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
      billLine.creditamount=billLine.creditamount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');


          billGls.push(billLine)
   return true;
});




return {
  totalDebit:totalDebit.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'),
  totalCredit:totalCredit.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'),
  glLines:billGls
      };

}

Leave a comment

Your email address will not be published. Required fields are marked *