Subversion Repositories SmartDukaan

Rev

Rev 756 | Rev 1884 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
676 chandransh 1
package in.shop2020.support.controllers;
2
 
756 chandransh 3
import in.shop2020.support.services.CourierDetailsGenerator;
676 chandransh 4
import in.shop2020.support.services.ManifestGenerator;
5
 
6
import java.io.ByteArrayOutputStream;
756 chandransh 7
import java.io.FileNotFoundException;
8
import java.io.FileOutputStream;
676 chandransh 9
import java.io.IOException;
10
import java.util.Calendar;
11
import java.util.GregorianCalendar;
12
 
13
import javax.servlet.ServletOutputStream;
14
import javax.servlet.http.HttpServletRequest;
15
import javax.servlet.http.HttpServletResponse;
16
 
17
import org.apache.struts2.interceptor.ServletRequestAware;
18
import org.apache.struts2.interceptor.ServletResponseAware;
19
import org.apache.struts2.rest.DefaultHttpHeaders;
20
import org.apache.struts2.rest.HttpHeaders;
21
 
22
public class ManifestController implements ServletResponseAware, ServletRequestAware {
23
 
24
	private String id;
756 chandransh 25
 
26
	//FIXME: Read this configuration from the config client
27
	private String courierDetailsPath = "/CourierDetailReports";
676 chandransh 28
	private long warehouseId;
29
	private long providerId;
30
	private HttpServletRequest request;
31
	private HttpServletResponse response;
32
 
33
	public HttpHeaders index(){
34
		this.warehouseId = Long.parseLong(request.getParameter("warehouseID"));
35
		this.providerId = Long.parseLong(request.getParameter("providerID"));
36
 
37
		System.out.println("Warehouse Id is:  " + warehouseId);
38
		System.out.println("Provider Id is: " + providerId);
39
 
40
		Calendar date = new GregorianCalendar();
41
		int year = date.get(Calendar.YEAR);
42
		int month = date.get(Calendar.MONTH) +1;
43
		int day = date.get(Calendar.DAY_OF_MONTH);
44
 
756 chandransh 45
		ManifestGenerator manifestGenerator = new ManifestGenerator();
46
		ByteArrayOutputStream baos = manifestGenerator.generateManifestFile(warehouseId, providerId);
47
		response.setContentType("application/pdf");
48
 
49
		CourierDetailsGenerator courierDetailsGenerator = new CourierDetailsGenerator();
50
		ByteArrayOutputStream baosXLS = courierDetailsGenerator.generateCourierDetails(warehouseId, providerId);
51
		try {
52
			String fileName = courierDetailsPath + "/courier-details-"+warehouseId+"-"+ providerId + "-"+year+"-"+ month+"-" + day +".xls";
53
			FileOutputStream f = new FileOutputStream(fileName);
54
			baosXLS.writeTo(f);
55
			f.close();
56
		} catch (FileNotFoundException e) {
57
			e.printStackTrace();
58
		} catch (IOException e) {
59
			e.printStackTrace();
60
		}
61
 
676 chandransh 62
		response.setHeader("Content-disposition", "inline; filename=manifest-"+warehouseId+"-"+ providerId + "-"+year+"-"+ month+"-" + day +".pdf" );
63
 
64
		ServletOutputStream sos;
65
		try {
66
			sos = response.getOutputStream();
67
			baos.writeTo(sos);
68
			sos.flush();
69
		} catch (IOException e) {
70
			e.printStackTrace();
71
		}	
72
		return new DefaultHttpHeaders("lsuccess");
73
	}
74
 
75
	@Override
76
	public void setServletResponse(HttpServletResponse response) {
77
		this.response  = response;
78
	}
79
 
80
	@Override
81
	public void setServletRequest(HttpServletRequest request) {
82
		this.request = request;
83
	}
84
}