Subversion Repositories SmartDukaan

Rev

Rev 5678 | 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
 
3
import in.shop2020.support.services.ManifestGenerator;
4
 
5
import java.io.ByteArrayOutputStream;
6
import java.io.IOException;
4788 rajveer 7
import java.util.ArrayList;
676 chandransh 8
import java.util.Calendar;
9
import java.util.GregorianCalendar;
4788 rajveer 10
import java.util.List;
676 chandransh 11
 
12
import javax.servlet.ServletOutputStream;
13
import javax.servlet.http.HttpServletRequest;
14
import javax.servlet.http.HttpServletResponse;
15
 
16
import org.apache.struts2.interceptor.ServletRequestAware;
17
import org.apache.struts2.interceptor.ServletResponseAware;
18
import org.apache.struts2.rest.DefaultHttpHeaders;
19
import org.apache.struts2.rest.HttpHeaders;
3062 chandransh 20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
676 chandransh 22
 
23
public class ManifestController implements ServletResponseAware, ServletRequestAware {
756 chandransh 24
 
3062 chandransh 25
    private static Logger logger = LoggerFactory.getLogger(ManifestController.class);
26
 
676 chandransh 27
	private long warehouseId;
28
	private long providerId;
3062 chandransh 29
	private boolean isCod;
4788 rajveer 30
	private String orderIdsString;
5678 rajveer 31
	private long storeId;
3062 chandransh 32
 
676 chandransh 33
	private HttpServletRequest request;
34
	private HttpServletResponse response;
35
 
5678 rajveer 36
 
676 chandransh 37
	public HttpHeaders index(){
5678 rajveer 38
		if(request.getParameter("storeId") !=null){
39
			this.storeId = Long.parseLong(request.getParameter("storeId"));	
40
		}
41
		if(this.storeId == 0){
42
			this.warehouseId = Long.parseLong(request.getParameter("warehouseID"));
43
			try {
44
			    this.isCod = Boolean.parseBoolean(request.getParameter("isCod"));
45
			} catch (Exception e) {
46
			    this.isCod = false;
47
			}
48
		}
49
 
676 chandransh 50
		this.providerId = Long.parseLong(request.getParameter("providerID"));
4788 rajveer 51
		this.orderIdsString = request.getParameter("orderIds");
676 chandransh 52
 
5678 rajveer 53
 
3062 chandransh 54
		logger.debug("Warehouse Id is:  " + warehouseId);
55
		logger.debug("Provider Id is: " + providerId);
56
		logger.debug("Cod is: " + isCod);
4788 rajveer 57
		logger.debug("Order Ids are: " + orderIdsString);
676 chandransh 58
 
4788 rajveer 59
		List<Long> orderIds = new ArrayList<Long>();
60
		for(String orderIdString: orderIdsString.split(":")){
61
			orderIds.add(Long.parseLong(orderIdString));
62
		}
676 chandransh 63
		Calendar date = new GregorianCalendar();
64
		int year = date.get(Calendar.YEAR);
65
		int month = date.get(Calendar.MONTH) +1;
66
		int day = date.get(Calendar.DAY_OF_MONTH);
67
 
3062 chandransh 68
		String fileNameSuffix = "-" + warehouseId + "-"+ providerId + "-" + year + "-" + month + "-" + day;
69
 
756 chandransh 70
		ManifestGenerator manifestGenerator = new ManifestGenerator();
5678 rajveer 71
		ByteArrayOutputStream baos;
72
		if(storeId == 0){
73
			baos = manifestGenerator.generateManifestFile(warehouseId, providerId, isCod, orderIds);
74
		}else{
5714 rajveer 75
			List<String> awbs = new ArrayList<String>();
76
			for(String awb: request.getParameter("awbs").split(":")){
77
				awbs.add(awb);
78
			}
79
			baos = manifestGenerator.generateManifestFile(providerId, storeId, orderIds, awbs);
5678 rajveer 80
		}
756 chandransh 81
		response.setContentType("application/pdf");
82
 
3062 chandransh 83
		response.setHeader("Content-disposition", "inline; filename=manifest-" + fileNameSuffix + ".pdf" );
676 chandransh 84
 
85
		ServletOutputStream sos;
86
		try {
87
			sos = response.getOutputStream();
88
			baos.writeTo(sos);
89
			sos.flush();
90
		} catch (IOException e) {
3062 chandransh 91
		    logger.error("Unable to stream the manifest file", e);
676 chandransh 92
		}	
93
		return new DefaultHttpHeaders("lsuccess");
94
	}
95
 
96
	@Override
97
	public void setServletResponse(HttpServletResponse response) {
98
		this.response  = response;
99
	}
100
 
101
	@Override
102
	public void setServletRequest(HttpServletRequest request) {
103
		this.request = request;
104
	}
105
}