Subversion Repositories SmartDukaan

Rev

Rev 4762 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.catalog.dashboard.server;

import in.shop2020.catalog.dashboard.shared.Item;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gwt.core.client.GWT;

/**
 * Servlet to generate and then download master sheet  
 * It is invoked from ItemActions.java
 */

@SuppressWarnings("serial")
public class FileDownloadServlet extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        long vendorId = Long.parseLong(req.getParameter("vendorId"));
        String vendorName;
        String Category = req.getParameter("Category"); // This parameter is set in ItemActions.java
        String brand = req.getParameter("brand");
        
        CatalogServiceImpl impl = new CatalogServiceImpl();
        List<Item> itemList = impl.getItemsForMasterSheet(Category, brand);
        GWT.log("Generating master sheet for " + Category + "...Item count = " + itemList.size());
        MasterSheetGenerator msg = new MasterSheetGenerator();
        ByteArrayOutputStream baos = msg.generateMasterSheet(vendorId, itemList);
        Map<Long, String> vendors = impl.getAllVendors();
        if(vendorId == 0){
                vendorName = "ALL";
        }
        else{
                vendorName = vendors.get(vendorId);
        }
        resp.setContentType("application/vnd.ms-excel");
        resp.setHeader("Content-disposition", "inline; filename=master-sheet-" + Category + "-" + brand + "-" + vendorName + ".xls");
        ServletOutputStream sos;
        try {
            sos = resp.getOutputStream();
            baos.writeTo(sos);
            sos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}