Rev 5714 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.support.services.ManifestGenerator;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.List;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.rest.DefaultHttpHeaders;import org.apache.struts2.rest.HttpHeaders;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class ManifestController implements ServletResponseAware, ServletRequestAware {private static Logger logger = LoggerFactory.getLogger(ManifestController.class);private long warehouseId;private long providerId;private boolean isCod;private String orderIdsString;private long storeId;private String runner;private HttpServletRequest request;private HttpServletResponse response;public HttpHeaders index(){if(request.getParameter("storeId") !=null){this.storeId = Long.parseLong(request.getParameter("storeId"));}if(this.storeId == 0){this.warehouseId = Long.parseLong(request.getParameter("warehouseID"));try {this.isCod = Boolean.parseBoolean(request.getParameter("isCod"));} catch (Exception e) {this.isCod = false;}}this.providerId = Long.parseLong(request.getParameter("providerID"));this.orderIdsString = request.getParameter("orderIds");this.runner = request.getParameter("runner");logger.debug("Warehouse Id is: " + warehouseId);logger.debug("Provider Id is: " + providerId);logger.debug("Cod is: " + isCod);logger.debug("Order Ids are: " + orderIdsString);List<Long> orderIds = new ArrayList<Long>();for(String orderIdString: orderIdsString.split(":")){orderIds.add(Long.parseLong(orderIdString));}Calendar date = new GregorianCalendar();int year = date.get(Calendar.YEAR);int month = date.get(Calendar.MONTH) +1;int day = date.get(Calendar.DAY_OF_MONTH);String fileNameSuffix = "-" + warehouseId + "-"+ providerId + "-" + year + "-" + month + "-" + day;ManifestGenerator manifestGenerator = new ManifestGenerator();ByteArrayOutputStream baos;if(storeId == 0){baos = manifestGenerator.generateManifestFile(warehouseId, providerId, isCod, orderIds, runner);}else{List<String> awbs = new ArrayList<String>();for(String awb: request.getParameter("awbs").split(":")){awbs.add(awb);}baos = manifestGenerator.generateManifestFile(providerId, storeId, orderIds, awbs);}response.setContentType("application/pdf");response.setHeader("Content-disposition", "inline; filename=manifest-" + fileNameSuffix + ".pdf" );ServletOutputStream sos;try {sos = response.getOutputStream();baos.writeTo(sos);sos.flush();} catch (IOException e) {logger.error("Unable to stream the manifest file", e);}return new DefaultHttpHeaders("lsuccess");}@Overridepublic void setServletResponse(HttpServletResponse response) {this.response = response;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;}}