Rev 1881 | Rev 1941 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.support.services.PaymentDetailsGenerator;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.servlet.ServletOutputStream;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;@InterceptorRefs({@InterceptorRef("myDefault"),@InterceptorRef("login")})public class PaymentDetailsController extends ReportsController {private String errorMsg = "";private final String authsuccess = "authsuccess";private final String authfail = "authfail";public PaymentDetailsController() {}public String index() {if(!canAccessReport()) {return "exception";}return authsuccess;}// Handles the POST request (Form Submission)public String create() {// Formatting Form input parametersString startDateStr = getServletRequest().getParameter("startDate");String endDateStr = getServletRequest().getParameter("endDate");String statusStr = getServletRequest().getParameter("status");String filenameStr = "";int status = 1;DateFormat df = new SimpleDateFormat("MM/dd/yyyy");Date startDate = null, endDate = null;try {startDate = df.parse(startDateStr);endDate = df.parse(endDateStr);Calendar cal = Calendar.getInstance();cal.setTime(endDate);cal.add(Calendar.DATE, 1);endDate.setTime(cal.getTimeInMillis());status = Integer.parseInt(statusStr);filenameStr = (status == 0 ? "success" : "failed-pending");} catch (ParseException pe) {errorMsg = "Please enter start and end dates in format MM/dd/yyyy";return authsuccess;} catch (NumberFormatException nfe) {errorMsg = "Please select payment status";return authsuccess;}PaymentDetailsGenerator paymentDetailGenerator = new PaymentDetailsGenerator();ByteArrayOutputStream baos = paymentDetailGenerator.generatePaymentDetailsReport(startDate, endDate, status);if (baos == null) {errorMsg = "No output for given date range";return authsuccess;} else {errorMsg = "Generating report...";}// Preparing XLS file for outputgetServletResponse().setContentType("application/vnd.ms-excel");getServletResponse().setHeader("Content-disposition", "inline; filename=payments-report-" + filenameStr + ".xls");ServletOutputStream sos;try {sos = getServletResponse().getOutputStream();baos.writeTo(sos);sos.flush();errorMsg = "Report generated";} catch (IOException e) {errorMsg = "Failed to write to response.";e.printStackTrace();}return authsuccess;}public String getErrorMsg() {return errorMsg;}}