TabbedBrowser.js
[app.wkmirror] / nsinject.js
index 17d667b..2e0a585 100644 (file)
@@ -1,6 +1,8 @@
 NS = {
-    timeout : 20,
+    timeout : 30,
+    varscheck : false,
     
+    /*
     rungrabAccounts : function(id)
     {
         //id = 282;
@@ -69,7 +71,7 @@ NS = {
                     
                 }
                 
-                window.setTimeout(NS.rungrab,1000);
+                 window.setTimeout( function() {  NS.rungrab(id); } ,1000);
                 
                 return;
                 
@@ -100,42 +102,68 @@ NS = {
         return;
         
         
+         
         
-        var ifr = document.createElement('iframe');
+    },
+    
+    */
+    rungrabAccounts  : function(id)
+    {
+        //id = 282;
+        this.id = id;
+        var timeout = 10;
+        
+        console.log("document.location= " + document.location);
+         
+        if (!(window.location + '').match(/netsuite/)) {
+            // try
+            console.log("REDIRECT");
+            window.location = "https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=52"; // empty account register..
+            return;
+        }
         
-        ifr.setAttribute('src','https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=' + id);
-        ifr.setAttribute('width','900');
-        ifr.setAttribute('height','700');
-        ifr.addEventListener('load', frameload);
-        document.body.innerHTML = '';
         
-        document.body.appendChild(ifr);
+        // we really just want to send a series of download requests..
+        //https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=403
         
-        /*
-        var ifd = ifr.contentWindow.document;
-        ifd.getElementById('lines_chkbox').
+         
+        NS.downloadgetdata(
+            'https://system.netsuite.com/app/common/search/searchresults.csv' +
+            '?searchtype=Transaction' + 
+            '&Transaction_ACCOUNT=' + id +
+            '&Transaction_DEPARTMENT=2' + // hk
+            '&sortcol=Transaction_TRANDATE_raw' +
+            '&sortdir=ASC'+
+            '&csv=Export'+
+            '&OfficeXML=F'+
+            '&pdf='+
+            '&style=NORMAL'+
+            '&report='+
+            '&grid='+
+            '&searchid=120'+
+            '&dle=F',
+            
+            {
+                id: id,
+                pref : 'HK-Account'
+                //reportaction: 'exportcsv',
+                //apptype: 'html',
+                //visibleranges: '0,' +  reportTable.getTotalRowCount()
+            }
+            
+        );
         
-        var ar = ifd.getElementById('footerform').elements;
-        for(var i =0; i < ar.length; i++) {
-            var e = ar[i];
-            data[e.name] = e.value;
-        }
-        console.log(data);
+         
+        return;
         
-        data.lines_chkbox = 'T';
-        data.reportaction = 'exportcsv'
-        //data.visibleranges =
-        data.apptype = 'html';
-        this.downloaddata(
-            'https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=403',
-            data
-        )
-        */
         
+         
         
     },
-    rungrab : function () {
-        NS.rungrabInventory(id);
+    
+    rungrab : function (id) {
+        //NS.rungrabInventory(id);
+        NS.rungrabAccounts(id);
     },
     rungrabInventory : function(id)
     {
@@ -160,34 +188,54 @@ NS = {
         // we really just want to send a series of download requests..
         //https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=403
         
-        
+        document.getElementById('filt1').style = '';
         
         var set = {
-                crit_4  : '',
+                crit_4_displayField : '',
+                hddn_crit_41  : '',
                 crit_2_from : '1/1/2007',
                 crit_2_to: '1/1/2014',
-                hddn_crit_32 :getDropdown(document.getElementById('inpt_crit_32')).valueArray[id]
+                hddn_crit_32 :getDropdown(document.getElementById('inpt_crit_32')).valueArray[id],
+                inpt_crit_32 :getDropdown(document.getElementById('inpt_crit_32')).valueArray[id],
+                indx_crit_32 : id
+
         }
+        
         var rneed = false;
-        for (var  k in set) {
-            var cur = document.forms.main_form.elements[k].value;
-            if (cur != set[k]) {
-                rneed = true;
-                document.forms.main_form.elements[k].value = set[k];
-                continue;
-            }
-            
+        if (!NS.varscheck ) {
             
+            for (var  k in set) {
+                if (k == 'inpt_crit_32') {
+                    continue; // this gets abbreivated..
+                }
+                
+                try { 
+                    var cur = document.getElementById(k).value;
+                } catch(e) {
+                    console.log("Can not find " + k);
+                    continue;
+                }
+                console.log("CUR : " + k + '=' + cur + ' ?= ' + set[k]);
+                if (cur != set[k]) {
+                    console.log("DOE NOT MATCH?");
+                    rneed = true;
+                    //document.forms.main_form.elements[k].value = set[k];
+                    document.getElementById(k).value = set[k];
+                    continue;
+                }
+                
+                
+            }
         }
-           
+               
         if (rneed ) {
             
             console.log('SUBMIT');
-            cument.forms.main_form.submit();
+            document.forms.main_form.submit();
             
             return;
         }
-        
+        NS.varscheck = true;
         console.log('form values - ok - checking if empty');
         
          if (   reportTable.oContentProvider.bRequestPending
@@ -210,7 +258,7 @@ NS = {
                     
                 }
                 
-                window.setTimeout(NS.rungrab,1000);
+                window.setTimeout( function() {  NS.rungrab(id); } ,1000);
                 
                 return;
                 
@@ -218,7 +266,7 @@ NS = {
         console.log('no empty - trying download');
             
         
-        console.log(JSON.stringify(data));
+       
         console.log(reportTable.getTotalRowCount());
          NS.downloaddata(
             'https://system.netsuite.com/app/reporting/reportrunner.nl',
@@ -234,44 +282,92 @@ NS = {
        
         
         return;
+         
         
         
+    },
+    
+    
+    downloadgetdata : function (url,data) {
         
-        var ifr = document.createElement('iframe');
-        
-        ifr.setAttribute('src','https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=' + id);
-        ifr.setAttribute('width','900');
-        ifr.setAttribute('height','700');
-        ifr.addEventListener('load', frameload);
-        document.body.innerHTML = '';
-        
-        document.body.appendChild(ifr);
-        
-        /*
-        var ifd = ifr.contentWindow.document;
-        ifd.getElementById('lines_chkbox').
+       
+        var xmlhttp = new XMLHttpRequest();
+                    
+        xmlhttp.open("GET", url,true);
+        xmlhttp.responseType = 'arraybuffer';
+        //xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
+        //var kv = [];
+        //for(var i in data) {
+        //    kv.push(i +'=' + encodeURIComponent(  data[i]));
+        //}
         
-        var ar = ifd.getElementById('footerform').elements;
-        for(var i =0; i < ar.length; i++) {
-            var e = ar[i];
-            data[e.name] = e.value;
+
+        xmlhttp.onload=function() {
+           
+            var ar= [];
+             
+            var r = new Uint8Array(xmlhttp.response);
+            for (i=0;i<r.byteLength;i++) {
+                ar.push(r[i]);
+            }
+            
+            // location name for location download.
+            var pref = data.pref;
+            
+            console.log(
+                JSON.stringify ({
+                    requesturl : url,
+                    method: 'nsdownloadpage',
+                    filename : pref+ '-' + NS.id + '.csv',
+                    headers : xmlhttp.getAllResponseHeaders(),
+                    contentType:xmlhttp.getResponseHeader("Content-Type"),
+                    data: ar
+                }));
+           
+            if (data.pref == 'SG-Account') {
+                console.log(
+                    JSON.stringify ({
+                        method : 'exit'
+                    })
+                );
+                return;
+            }
+            NS.downloadgetdata(
+                'https://system.netsuite.com/app/common/search/searchresults.csv' +
+                '?searchtype=Transaction' + 
+                '&Transaction_ACCOUNT=' + data.id +
+                '&Transaction_DEPARTMENT=1' + // sg
+                '&sortcol=Transaction_TRANDATE_raw' +
+                '&sortdir=ASC'+
+                '&csv=Export'+
+                '&OfficeXML=F'+
+                '&pdf='+
+                '&style=NORMAL'+
+                '&report='+
+                '&grid='+
+                '&searchid=120'+
+                '&dle=F',
+                
+                {
+                    id: data.id,
+                    pref: 'SG-Account'
+                    //reportaction: 'exportcsv',
+                    //apptype: 'html',
+                    //visibleranges: '0,' +  reportTable.getTotalRowCount()
+                }
+                
+            );
+            
+           
+           
         }
-        console.log(data);
-        
-        data.lines_chkbox = 'T';
-        data.reportaction = 'exportcsv'
-        //data.visibleranges =
-        data.apptype = 'html';
-        this.downloaddata(
-            'https://system.netsuite.com/app/reporting/reportrunner.nl?reporttype=REGISTER&acctid=403',
-            data
-        )
-        */
-        
         
+        xmlhttp.send();
+           
     },
     
     
+    
     downloaddata : function (url,data) {
         
        
@@ -295,11 +391,21 @@ NS = {
                 ar.push(r[i]);
             }
             
+            // location name for location download.
+            var pref = '';
+            if (document.getElementById('hddn_crit_32')) {
+                //stock.
+                pref =  document.getElementById('hddn_crit_32').value ;
+            } else {
+                // accounts.
+                pref = document.getElementsByClassName('pt_title')[0].innerText.replace(/\s+$/,'').replace(/\//g, '');
+            }
+            
             console.log(
                 JSON.stringify ({
                     requesturl : url,
                     method: 'nsdownloadpage',
-                    filename : NS.id + '.csv',
+                    filename : pref+ '-' + NS.id + '.csv',
                     headers : xmlhttp.getAllResponseHeaders(),
                     contentType:xmlhttp.getResponseHeader("Content-Type"),
                     data: ar