Rev 5153 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="in.shop2020.model.DeliveryEstimate"%><%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %><%@ page import="com.google.appengine.api.datastore.DatastoreService" %><%@ page import="com.google.appengine.api.datastore.Query" %><%@ page import="com.google.appengine.api.datastore.Entity" %><%@ page import="com.google.appengine.api.datastore.PreparedQuery" %><%@ page import="com.google.appengine.api.datastore.Query.SortDirection"%><%@ page import="java.util.Calendar"%><%@ page import="java.util.Map"%><%@ page import="java.util.Hashtable"%><%@ page import="java.util.Map.Entry"%><%@ page import="java.text.ParseException"%><%@ page import="java.util.TimeZone"%><%@ page import="java.util.Date"%><%@ page import="java.util.Set"%><%@ page import="java.util.Calendar"%><%@ page import="java.text.SimpleDateFormat"%><html><head><script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.js"></script><script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.dataTables.min.js"></script><script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/ZeroClipboard.js"></script><script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/TableTools.js"></script><link rel="stylesheet" href="/DataTables/media/css/demo_table.css" type="text/css" /><link rel="stylesheet" href="/DataTables/extras/TableTools/media/css/TableTools.css" type="text/css" /><title>Delivery Estimate Statistics</title></head><body><%Date toDate = new Date();Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("IST"));cal.add(Calendar.DAY_OF_MONTH, -1);Date fromDate = cal.getTime();SimpleDateFormat iSdf = new SimpleDateFormat("yyyyMMdd");String toDateStr = request.getParameter("toDate");String fromDateStr = request.getParameter("fromDate");if (fromDateStr == null || fromDateStr.isEmpty()) {fromDateStr = iSdf.format(fromDate);}if (toDateStr == null || toDateStr.isEmpty()) {toDateStr = iSdf.format(toDate);}String eventType = "DELIVERY_ESTIMATE";%><form id="searchfilter" name="searchfilter" method="post" action="/jsp/delivery-estimate-stats.jsp"><label>From Date(YYYYMMDD) : </label> <input type="text" name="fromDate" id="fromDate" value="<%= fromDateStr %>"/><label>To Date(YYYYMMDD) : </label> <input type="text" name="toDate" id="toDate" value="<%= toDateStr %>"/><input type="Submit" id="Submit" name="Submit" value="Submit" /></form><%try {if (fromDateStr != null) {fromDate = iSdf.parse(fromDateStr);}if (toDateStr != null) {toDate = iSdf.parse(toDateStr);}}catch (ParseException pe) {%><span>Invalid Date Format</span><%}Entity test = null;DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();Query query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "DELIVERY_ESTIMATE");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN_OR_EQUAL, toDate);PreparedQuery pq = datastore.prepare(query);Map<String, DeliveryEstimate> deliveryEstimateStat = new Hashtable<String, DeliveryEstimate>();for (Entity result : pq.asIterable()) {String pincode = (String)result.getProperty("pincode");if(!pincode.equals("110001")){if(deliveryEstimateStat.containsKey(pincode)){DeliveryEstimate delvEst = deliveryEstimateStat.get(pincode);delvEst.setNumOfRequests(delvEst.getNumOfRequests()+1);delvEst.setNumDays(delvEst.getNumDays()+(Long)result.getProperty("deliveryDays"));if(result.getProperty("requestOrigin").equals("Cart")){delvEst.setCartPageReqCount(delvEst.getCartPageReqCount()+1);}else {delvEst.setProductPageReqCount(delvEst.getProductPageReqCount()+1);}if(!delvEst.getSessionIds().contains(result.getProperty("sessionId"))){delvEst.getSessionIds().add((String)result.getProperty("sessionId"));}deliveryEstimateStat.put(pincode, delvEst);} else {DeliveryEstimate delvEst = new DeliveryEstimate();delvEst.setPincode(pincode);delvEst.setNumDays((Long)result.getProperty("deliveryDays"));if(result.getProperty("requestOrigin").equals("Cart")){delvEst.setCartPageReqCount(new Long(1));}else {delvEst.setProductPageReqCount(new Long(1));}delvEst.getSessionIds().add((String)result.getProperty("sessionId"));deliveryEstimateStat.put(pincode,delvEst);}}}%><table cellpadding="0" cellspacing="0" border="0" class="display" id="deliveryEstStat"><thead><tr><th>Pincode</th><th>Number of Requests</th><th>Cart Page Requests</th><th>Product Page Requests</th><th>Session Count for Requests</th><th>Avg number of Days</th></tr></thead><tbody><%Set<String> pincodeSet = deliveryEstimateStat.keySet();for(String pincode:pincodeSet){double deliveryDays = ((double)(deliveryEstimateStat.get(pincode).getNumDays()*100/deliveryEstimateStat.get(pincode).getNumOfRequests()))/100.0;%><tr><td><%=pincode%></td><td><%=deliveryEstimateStat.get(pincode).getNumOfRequests()%></td><td><%=deliveryEstimateStat.get(pincode).getCartPageReqCount()%></td><td><%=deliveryEstimateStat.get(pincode).getProductPageReqCount()%></td><td><%=deliveryEstimateStat.get(pincode).getSessionIds().size() %></td><td><%=(deliveryDays!=-1.0)?deliveryDays:"Non Deliverable Location"%></td></tr><%}%></tbody></table><br/><script type="text/javascript" charset="utf-8">$(document).ready(function() {$('#deliveryEstStat').dataTable({"sPaginationType": "full_numbers","aaSorting" : [ [ 2, 'desc' ] ],"bProcessing": true,"bStateSave": true,"sDom": 'T<"clear">lfrtip',"oTableTools": {"sSwfPath": "/DataTables/extras/TableTools/media/swf/copy_cvs_xls_pdf.swf"},"aoColumns": [{ "bSearchable": true },{ "sSortDataType": "dom-text", "sType": "numeric" },{ "sSortDataType": "dom-text", "sType": "numeric" },{ "sSortDataType": "dom-text", "sType": "numeric" },{ "sSortDataType": "dom-text", "sType": "numeric" },{ "sSortDataType": "dom-text", "sType": "numeric" }]});} );</script></body></html>