Subversion Repositories SmartDukaan

Rev

Rev 749 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;

import in.shop2020.support.services.CourierDetailsGenerator;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;

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;

public class CourierDetailsController implements ServletResponseAware,
                ServletRequestAware {
        
        private long warehouseId;
        private long providerId;
        private HttpServletRequest request;
        private HttpServletResponse response;

        public HttpHeaders index(){
                this.warehouseId = Long.parseLong(request.getParameter("warehouseID"));
                this.providerId = Long.parseLong(request.getParameter("providerID"));
                
                System.out.println("Warehouse Id is:  " + warehouseId);
                System.out.println("Provider Id is: " + providerId);
                
                CourierDetailsGenerator courierDetailsGenerator = new CourierDetailsGenerator();
                ByteArrayOutputStream baos = courierDetailsGenerator.generateCourierDetails(warehouseId, providerId);
                response.setContentType("application/vnd.ms-excel");
                
                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);
                
                response.setHeader("Content-disposition", "inline; filename=courier-details-"+warehouseId+"-"+ providerId + "-"+year+"-"+ month+"-" + day +".xls" );
                
                ServletOutputStream sos;
                try {
                        sos = response.getOutputStream();
                        baos.writeTo(sos);
                        sos.flush();
                } catch (IOException e) {
                        e.printStackTrace();
                }       
                return new DefaultHttpHeaders("lsuccess");
        }
        
        @Override
        public void setServletResponse(HttpServletResponse response) {
                this.response  = response;
        }

        @Override
        public void setServletRequest(HttpServletRequest request) {
                this.request = request;
        }

}