function process_bse_bulk(baseurl,downloadpath,unzippath,outputpath,fromd,tod,logpath,sn,count)
{
try
{
Ext.getCmp('pbar3').updateText('BSE Bulk Processing is started . . .');
Ext.getCmp('pbar3').updateProgress(0.05);
var url = require('url');
var async = require('async');
var http = require('http'),fs = require('fs'),AdmZip = require('adm-zip'),request = require('request');
var datefrom=fromd;
var dateto=tod;
var fromdate=datefrom.split('/');
var todate=dateto.split('/');
var beginDate = new Date(fromdate[0]+','+fromdate[1]+','+fromdate[2]);
var endDate1 = new Date(todate[0]+','+todate[1]+','+todate[2]);
var arrCurrentDate = beginDate.toDateString().split(" ");
var arrendCurrentDate = endDate1.toDateString().split(" ");
var strMonthUpper = arrCurrentDate[1].toUpperCase();
var intMonth = beginDate.getMonth()+1;
var intendMonth = endDate1.getMonth()+1;
var stDateFormate = intMonth+"/"+arrCurrentDate[2]+"/"+arrCurrentDate[3];
var endDateFormate = intendMonth+"/"+arrendCurrentDate[2]+"/"+arrendCurrentDate[3];
var tempPath = downloadpath+'temp/';
var strMonth = getmonth(intendMonth);
var dateFormateForBulk = arrendCurrentDate[2]+strMonth.substring(0, 1).toUpperCase() + strMonth.substring(1).toLowerCase()+arrendCurrentDate[3];
downloadAndProcessBSEBulk(dateFormateForBulk, tempPath, outputpath);
function downloadAndProcessBSEBulk(dateFormateForBulk, tempPath, outputpath)
{
var urlStockinfo = "http://www.bseindia.com/stockinfo/BulkBlockFiles/Bulk_"+dateFormateForBulk+".csv";
var tempFilePath = tempPath+"temp_bulk_"+dateFormateForBulk+".csv";
var fname = "temp_bulk_"+dateFormateForBulk+".csv";
request
(
{
method: 'GET',
uri: urlStockinfo,
headers: {
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11",
"Referer": "http://www.bseindia.com/stockinfo/BulknBlockDeals.aspx",
"Accept-Encoding": "gzip,deflate,sdch",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Cookie": "cookie"
}
},
function(error, response, body)
{
if(response != null)
{
if(response.statusCode != null || response.statusCode != "")
{
if (!error && response.statusCode == 200)
{
Ext.getCmp('pbar3').updateText('Downloading '+fname);
downloadBulkData(200, urlStockinfo, tempFilePath, fname, dateFormateForBulk, outputpath);
}
else
{
downloadBulkData(404, urlStockinfo, tempFilePath, fname, dateFormateForBulk, outputpath);
}
}else
{
downloadBulkData(404, urlStockinfo, tempFilePath, fname, dateFormateForBulk, outputpath);
}
}else
{
downloadBulkData(404, urlStockinfo, tempFilePath, fname, dateFormateForBulk, outputpath);
}
}
);
}
function downloadBulkData(statuscode, urlStockinfo, tempFilePath, fname, dateFormateForBulk, outputpath)
{
if(statuscode==200)
{
Ext.getCmp('pbar3').updateText('Downloading '+fname);
var out = fs.createWriteStream(tempFilePath);
var req = request(
{
method: 'GET',
uri: urlStockinfo,
headers:
{
"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11",
"Referer": "http://www.bseindia.com/stockinfo/BulknBlockDeals.aspx",
"Accept-Encoding": "gzip,deflate,sdch",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Cookie": "cookie"
}
});
req.on('error',function()
{
Ext.getCmp('pbar3').updateText('Error occurred while downloading '+fname+'');
document.getElementById("om").innerHTML+='<br/>Error occured in downloading '+fname;
});
req.pipe(out);
req.on('end', function()
{
var async = require('async');
async.parallel(
{
data1 : function(callback){
if (fs.existsSync(tempFilePath)) {
fs.readFile(tempFilePath,'utf-8', function(err, data){
callback(err, data);
});
}else
{
fs.readdir(downloadpath, function(err, files){
if(err){document.getElementById("om").innerHTML+="<br/>"+err;}
callback(err,'0');
});
}
}
}, function(err, result)
{
if(err){document.getElementById("om").innerHTML+="<br/>"+err;}
if (fs.existsSync(tempFilePath))
{
Ext.getCmp('pbar3').updateText('Processing '+fname+'');
var arrRow = new Array();
arrRow = result['data1'].split('\n');
var arrFileData = new Array();
for(var i=0 ; i<arrRow.length;i++)
{
var tempArr = arrRow[i].split(',');
arrFileData.push(tempArr);
}
outputpath=outputpath.replace(/std_csv/g,'/reports');
if(fs.existsSync(outputpath+'bsebulkdeals.csv'))
{
for(var i=1 ; i<arrFileData.length-1;i++)
{
fs.appendFileSync(outputpath+'bsebulkdeals.csv', arrFileData[i]+'\n','utf-8', function (err) {
if (err) {console.log(err);};
});
}
}
else
{
for(var i=0 ; i<arrFileData.length-1;i++)
{
fs.appendFileSync(outputpath+'bsebulkdeals.csv', arrFileData[i]+'\n','utf-8', function (err) {
if(err){document.getElementById("om").innerHTML+="<br/>"+err;}
});
}
Ext.getCmp('pbar3').updateText('Processing '+fname+' completed');
}
}
});
Ext.getCmp('pbar3').updateText(''+fname+' is downloaded');
document.getElementById("om").innerHTML+='<br>'+fname+' is downloaded...';
loadprogressbar();
setTimeout(function(){process_bse_blockdeal(baseurl,downloadpath,unzippath,outputpath,fromd,tod,logpath,sn,count);},1000);
});
}
else
{
Ext.getCmp('pbar3').updateText('File '+fname+' is not present on server');
Ext.getCmp('pbar3').updateProgress(1.0);
document.getElementById("om").innerHTML+='<br/><font color=red>'+fname+' is not present on server</font>';
loadprogressbar();
setTimeout(function(){process_bse_blockdeal(baseurl,downloadpath,unzippath,outputpath,fromd,tod,logpath,sn,count);},1000);
}
}
}catch(err)
{
console.log(err);
}
}