Subversion Repositories SmartDukaan

Rev

Rev 1884 | Blame | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;

import in.shop2020.support.services.PendingOrdersGenerator;

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

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletResponseAware;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PendingOrdersController implements ServletResponseAware {

    private static Logger logger = LoggerFactory.getLogger(PendingOrdersController.class);
    
        private String id;
        
        private HttpServletResponse response;
        
        public String show(){
                try {
                        long warehouseId = Long.parseLong(getId());
                        response.setContentType("application/vnd.ms-excel");
                        
                        PendingOrdersGenerator pendingOrdersGenerator = new PendingOrdersGenerator();
                        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=pending-orders-"+ warehouseId + "-"+year+"-"+ month+"-" + day +".xls" );
                        
                        ServletOutputStream sos;
                        try {
                                ByteArrayOutputStream baos = pendingOrdersGenerator.generatePendingOrdersDetails(warehouseId);
                                sos = response.getOutputStream();
                                baos.writeTo(sos);
                                sos.flush();
                        } catch (IOException e) {
                                logger.error("Error streaming pending orders report", e);
                        }
                }catch(NumberFormatException nfe){
                        logger.error("Error getting the warehouse Id", nfe);
                }
                return null;
        }
        
        @Override
        public void setServletResponse(HttpServletResponse response) {
                this.response  = response;
        }

        public String getId(){
                return id;
        }
        
        public void setId(String id){
                this.id = id;
        }
}