Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.hotspot.dashbaord.server;



import in.shop2020.hotspot.dashbaord.shared.actions.BillingType;
import in.shop2020.model.v1.order.ShipmentDelayDetail;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;

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

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.google.gwt.core.client.impl.AsyncFragmentLoader.Logger;

/**
 * Servlet to read xls and process it.
 */

@SuppressWarnings("serial")
public class BulkBillingServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse 
                        response) throws ServletException, IOException {
                
                
                System.out.println("LogisticsTransactionId"+request.getParameter("logisticsTransactionId"));
                System.out.println("PackageDimensions"+request.getParameter("packageDimensions"));
                
                FileItem uploadItem = getFileItem(request);
                if (uploadItem == null) { 
                        response.getWriter().write("NO-SCRIPT-DATA"); 
                        return; 
                }
                
                String fileName = "/tmp/"+getTimeInMilliseconds()+".xls";
                File file;
                try {
                        file = new File(fileName);
                        if(file.exists()){
                                response.getWriter().write("File already exists."); 
                                return;
                        }       
                        uploadItem.write(file);
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                ProcessBulkBilling processBulkBilling = new ProcessBulkBilling(fileName,request.getParameter("logisticsTransactionId")+"",request.getParameter("packageDimensions")+"",in.shop2020.model.v1.inventory.BillingType.valueOf(request.getParameter("billingType")),request.getParameter("username"));
                String result = ""; 
                if (processBulkBilling.processReport()){
                        result = processBulkBilling.checkBillingDetails();
                }
                else{
                        result = "Unable to validate uploaded sheet or duplicate serial numbers in sheet.";
                }
                response.setContentType("text/html");
                response.getWriter().write(result);
        }
        
        private long getTimeInMilliseconds(){
                Calendar cal=GregorianCalendar.getInstance();
                return cal.getTimeInMillis();
        }

        private FileItem getFileItem(HttpServletRequest request){ 
                FileItemFactory factory = new DiskFileItemFactory(); 
                ServletFileUpload upload = new ServletFileUpload(factory); 
                try     { 
                        List items = upload.parseRequest(request); 
                        Iterator it = items.iterator(); 
                        while (it.hasNext()) { 
                                FileItem item = (FileItem) it.next(); 
                                if (!item.isFormField() && "file".equals(item.getFieldName())){ 
                                        return item; 
                                } 
                        } 
                } catch (FileUploadException e){ 
                        return null; 
                } 
                return null; 
        }
        
}