Subversion Repositories SmartDukaan

Rev

Rev 7096 | Rev 7169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7096 Rev 7151
Line 1... Line 1...
1
package in.shop2020.recharge.controllers;
1
package in.shop2020.recharge.controllers;
2
 
2
 
3
 
3
 
4
import in.shop2020.model.v1.order.RechargeOrderStatus;
4
import in.shop2020.model.v1.order.RechargeOrderStatus;
5
import in.shop2020.model.v1.order.RechargePlan;
-
 
6
import in.shop2020.model.v1.order.RechargeStatistics;
-
 
7
import in.shop2020.model.v1.order.RechargeTransaction;
5
import in.shop2020.model.v1.order.RechargeTransaction;
8
import in.shop2020.model.v1.order.RechargeType;
-
 
9
import in.shop2020.thrift.clients.TransactionClient;
6
import in.shop2020.thrift.clients.TransactionClient;
-
 
7
import in.shop2020.warehouse.InventoryAvailability;
10
 
8
 
-
 
9
import java.io.ByteArrayOutputStream;
-
 
10
import java.io.IOException;
11
import java.text.DateFormat;
11
import java.text.DateFormat;
12
import java.text.SimpleDateFormat;
12
import java.text.SimpleDateFormat;
13
import java.util.Calendar;
13
import java.util.Calendar;
14
import java.util.HashMap;
14
import java.util.Date;
15
import java.util.List;
15
import java.util.List;
16
import java.util.Map;
16
import java.util.Map;
17
import java.util.Map.Entry;
-
 
18
 
17
 
19
import javax.servlet.ServletContext;
18
import javax.servlet.ServletContext;
-
 
19
import javax.servlet.ServletOutputStream;
20
import javax.servlet.http.HttpServletRequest;
20
import javax.servlet.http.HttpServletRequest;
-
 
21
import javax.servlet.http.HttpServletResponse;
21
import javax.servlet.http.HttpSession;
22
import javax.servlet.http.HttpSession;
22
 
23
 
-
 
24
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
23
import org.apache.struts2.convention.annotation.InterceptorRef;
25
import org.apache.poi.ss.usermodel.CreationHelper;
24
import org.apache.struts2.convention.annotation.InterceptorRefs;
26
import org.apache.poi.ss.usermodel.DataValidationConstraint.OperatorType;
-
 
27
import org.apache.poi.ss.usermodel.Row;
25
import org.apache.struts2.convention.annotation.Result;
28
import org.apache.poi.ss.usermodel.Sheet;
26
import org.apache.struts2.convention.annotation.Results;
29
import org.apache.poi.ss.usermodel.Workbook;
27
import org.apache.struts2.interceptor.ServletRequestAware;
30
import org.apache.struts2.interceptor.ServletRequestAware;
-
 
31
import org.apache.struts2.interceptor.ServletResponseAware;
28
import org.apache.struts2.util.ServletContextAware;
32
import org.apache.struts2.util.ServletContextAware;
29
import org.slf4j.Logger;
33
import org.slf4j.Logger;
30
import org.slf4j.LoggerFactory;
34
import org.slf4j.LoggerFactory;
31
 
35
 
-
 
36
import com.sun.mail.iap.Response;
32
 
37
 
33
 
38
 
-
 
39
 
34
public class ReportController implements ServletRequestAware, ServletContextAware {
40
public class ReportController implements ServletRequestAware, ServletContextAware, ServletResponseAware {
35
 
41
 
36
    private static Logger logger = LoggerFactory.getLogger(ReportController.class);
42
    private static Logger logger = LoggerFactory.getLogger(ReportController.class);
37
    
43
    
38
    private HttpServletRequest request;
44
    protected HttpServletRequest request;
39
    private HttpSession session;
45
    protected HttpSession session;
-
 
46
    protected HttpServletResponse response;
40
    private ServletContext context;
47
    private ServletContext context;
-
 
48
    private String startDate;
-
 
49
	private String endDate;
-
 
50
	private String status;
-
 
51
	private String dateselector;
41
    
52
	
42
	private TransactionClient tsc;
53
	private TransactionClient tsc;
43
    private in.shop2020.model.v1.order.TransactionService.Client tClient;
54
    private in.shop2020.model.v1.order.TransactionService.Client tClient;
44
    
55
    
45
    private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");
56
    private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");
-
 
57
    private final DateFormat dateFormatter = new SimpleDateFormat("dd/MM/yyyy");
46
	
58
	
47
    private List<RechargeTransaction> txns = null;
59
    private List<RechargeTransaction> txns = null;
48
    public ReportController(){
60
    public ReportController(){
49
	    try {
61
	    try {
50
            tsc = new TransactionClient();
62
            tsc = new TransactionClient();
Line 62... Line 74...
62
        }
74
        }
63
        txns = tClient.getRechargeTransactions(Long.parseLong((String) request.getSession().getAttribute("STORE_ID")));
75
        txns = tClient.getRechargeTransactions(Long.parseLong((String) request.getSession().getAttribute("STORE_ID")));
64
        return "index";
76
        return "index";
65
	}
77
	}
66
	
78
	
-
 
79
	public String create() throws Exception{
-
 
80
		long sDate = -1;
-
 
81
		long eDate = -1;
-
 
82
		RechargeOrderStatus st = null;
-
 
83
		String loginStatus = (String) request.getSession().getAttribute("LOGGED_IN");
-
 
84
		if(loginStatus == null || !loginStatus.equals("TRUE")){
-
 
85
			return "authfail";
-
 
86
		}
-
 
87
		if(dateselector.equals("1")) {
-
 
88
			sDate = new Date().getTime();
-
 
89
			eDate = sDate;
-
 
90
		}else if (dateselector.equals("2")) {
-
 
91
			sDate = new Date().getTime() - 86400*1000;
-
 
92
			eDate = sDate;
-
 
93
		}else {
-
 
94
			if(!(startDate.equals(""))) {
-
 
95
				sDate = dateFormatter.parse(startDate).getTime();
-
 
96
				startDate = dateFormatter.format(sDate);
-
 
97
			}
-
 
98
			if(!endDate.equals("")) {
-
 
99
				eDate = dateFormatter.parse(endDate).getTime();
-
 
100
				endDate = dateFormatter.format(sDate);
-
 
101
			}
-
 
102
		}
-
 
103
		if(!status.equals("-1")){
-
 
104
			st = RechargeOrderStatus.findByValue(Integer.parseInt("0"));
-
 
105
		}
-
 
106
 
-
 
107
		ByteArrayOutputStream baos = generateReport(tClient.getRechargeTrans(Long.parseLong((String) request.getSession().getAttribute("STORE_ID")), sDate, eDate, st));
-
 
108
        
-
 
109
		response.setContentType("application/vnd.ms-excel");
-
 
110
		String st1 = "ALL";
-
 
111
		if(st!=null){
-
 
112
			st1 = st.name();
-
 
113
		}
-
 
114
		String fileName = st1 + "-recharge-report";
-
 
115
		if (!startDate.equals("")) {
-
 
116
			fileName = fileName + "-" + startDate.replaceAll("\\\\", "") ;
-
 
117
		}
-
 
118
		if (!endDate.equals("")) {
-
 
119
			fileName = fileName + "-" + endDate.replaceAll("\\\\", "") ;
-
 
120
		}
-
 
121
		fileName = fileName + ".xls";
-
 
122
		response.setHeader("Content-disposition", "inline; filename=" + fileName);
-
 
123
        ServletOutputStream sos;
-
 
124
        try {
-
 
125
            sos = response.getOutputStream();
-
 
126
            baos.writeTo(sos);
-
 
127
            sos.flush();
-
 
128
        } catch (IOException e) {
-
 
129
            e.printStackTrace();
-
 
130
        }
-
 
131
		return "index";
-
 
132
	}
-
 
133
	
-
 
134
	    
-
 
135
    private ByteArrayOutputStream generateReport(
-
 
136
			List<RechargeTransaction> rechargeTrans) {
-
 
137
ByteArrayOutputStream baosXLS = new ByteArrayOutputStream();
-
 
138
		
-
 
139
	    Workbook wb = new HSSFWorkbook();
-
 
140
	    
-
 
141
	    Sheet reportSheet = wb.createSheet("Recharge Report");
-
 
142
	    
-
 
143
	    Row reportSheetHeader = reportSheet.createRow((short)0);
-
 
144
	    reportSheetHeader.createCell(0).setCellValue("Order ID");
-
 
145
	    reportSheetHeader.createCell(1).setCellValue("Order Date");
-
 
146
	    reportSheetHeader.createCell(2).setCellValue("Operator");
-
 
147
	    reportSheetHeader.createCell(3).setCellValue("Device");
-
 
148
	    reportSheetHeader.createCell(4).setCellValue("Status");
-
 
149
	    reportSheetHeader.createCell(5).setCellValue("Amount");
-
 
150
	    reportSheetHeader.createCell(6).setCellValue("Discount");
-
 
151
	    
-
 
152
	    int serialNo = 0;
67
	    
153
	    
-
 
154
	    for(RechargeTransaction transaction : rechargeTrans) {
-
 
155
	    	serialNo++;
-
 
156
	    	Row contentRow = reportSheet.createRow((short)serialNo);
-
 
157
	    	contentRow.createCell(0).setCellValue(transaction.getId());
-
 
158
	    	contentRow.createCell(1).setCellValue(formatter.format(new Date(transaction.getTransactionTime())));
-
 
159
	    	contentRow.createCell(2).setCellValue(getOperatorName(transaction.getOperatorId()));
-
 
160
	    	contentRow.createCell(3).setCellValue(transaction.getDeviceNum());
-
 
161
	    	contentRow.createCell(4).setCellValue(transaction.getStatus().name());
-
 
162
	    	contentRow.createCell(5).setCellValue(transaction.getAmount());
-
 
163
	    	contentRow.createCell(6).setCellValue(transaction.getDiscount());
-
 
164
	    }
-
 
165
	    try {
-
 
166
			wb.write(baosXLS);
-
 
167
		} catch (IOException e) {
-
 
168
			// TODO Auto-generated catch block
-
 
169
			e.printStackTrace();
-
 
170
		}
-
 
171
	    return baosXLS;
-
 
172
	}
-
 
173
 
-
 
174
 
68
    public String getDateTime(long milliseconds) {
175
	public String getDateTime(long milliseconds) {
69
        Calendar cal = Calendar.getInstance();
176
        Calendar cal = Calendar.getInstance();
70
        cal.setTimeInMillis(milliseconds);
177
        cal.setTimeInMillis(milliseconds);
71
        return formatter.format(cal.getTime());
178
        return formatter.format(cal.getTime());
72
    }
179
    }
73
 
180
 
Line 83... Line 190...
83
    
190
    
84
    @Override
191
    @Override
85
    public void setServletContext(ServletContext context) {
192
    public void setServletContext(ServletContext context) {
86
        this.context = context;
193
        this.context = context;
87
    }
194
    }
-
 
195
    
-
 
196
    @Override
-
 
197
    public void setServletResponse(HttpServletResponse response) {
-
 
198
        this.response = response;
-
 
199
    }
88
 
200
 
89
    public String getServletContextPath() {
201
    public String getServletContextPath() {
90
        return context.getContextPath();
202
        return context.getContextPath();
91
    }
203
    }
92
    
204
    
Line 99... Line 211...
99
        } else {
211
        } else {
100
            operatorName = "N/A";
212
            operatorName = "N/A";
101
        }
213
        }
102
        return operatorName;
214
        return operatorName;
103
    }
215
    }
-
 
216
    
-
 
217
	public String getStartDate() {
-
 
218
		return startDate;
104
}
219
	}
-
 
220
	
-
 
221
	
-
 
222
	public void setStartDate(String startDate) {
-
 
223
		this.startDate = startDate;
-
 
224
	}
-
 
225
 
-
 
226
	public String getEndDate() {
-
 
227
		return endDate;
-
 
228
	}
-
 
229
 
-
 
230
 
-
 
231
	public void setEndDate(String endDate) {
-
 
232
		this.endDate = endDate;
-
 
233
	}
-
 
234
	
-
 
235
	public String getStatus() {
-
 
236
		return status;
-
 
237
	}
-
 
238
 
-
 
239
 
-
 
240
	public void setStatus(String status) {
-
 
241
		this.status = status;
-
 
242
	}
-
 
243
 
-
 
244
 
-
 
245
	public String getDateselector() {
-
 
246
		return dateselector;
-
 
247
	}
-
 
248
 
-
 
249
 
-
 
250
	public void setDateselector(String dateselector) {
-
 
251
		this.dateselector = dateselector;
-
 
252
	}
-
 
253
	
-
 
254
	
105
 
255
 
-
 
256
}
106
257