Subversion Repositories SmartDukaan

Rev

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

Rev 1632 Rev 1677
Line 1... Line 1...
1
package in.shop2020.support.controllers;
1
package in.shop2020.support.controllers;
2
 
2
 
3
import in.shop2020.support.services.PaymentDetailsGenerator;
3
import in.shop2020.support.services.PaymentDetailsGenerator;
-
 
4
import in.shop2020.thrift.clients.HelperServiceClient;
-
 
5
import in.shop2020.utils.StatisticsUser;
4
 
6
 
5
import java.io.ByteArrayOutputStream;
7
import java.io.ByteArrayOutputStream;
6
import java.io.IOException;
8
import java.io.IOException;
7
import java.text.DateFormat;
9
import java.text.DateFormat;
8
import java.text.ParseException;
10
import java.text.ParseException;
Line 11... Line 13...
11
import java.util.Date;
13
import java.util.Date;
12
 
14
 
13
import javax.servlet.ServletOutputStream;
15
import javax.servlet.ServletOutputStream;
14
import javax.servlet.http.HttpServletRequest;
16
import javax.servlet.http.HttpServletRequest;
15
import javax.servlet.http.HttpServletResponse;
17
import javax.servlet.http.HttpServletResponse;
-
 
18
import javax.servlet.http.HttpSession;
16
 
19
 
17
import org.apache.struts2.interceptor.ServletRequestAware;
20
import org.apache.struts2.interceptor.ServletRequestAware;
18
import org.apache.struts2.interceptor.ServletResponseAware;
21
import org.apache.struts2.interceptor.ServletResponseAware;
19
 
22
 
20
public class PaymentDetailsController implements ServletResponseAware, ServletRequestAware{
23
public class PaymentDetailsController implements ServletResponseAware, ServletRequestAware {
21
 
24
 
22
	private HttpServletRequest request;
25
    private HttpServletRequest request;
23
	private HttpServletResponse response;
26
    private HttpServletResponse response;
-
 
27
    private HttpSession session;
24
 
28
 
25
	private String errorMsg = "";
29
    private String errorMsg = "";
26
 
-
 
-
 
30
    private final String authsuccess = "authsuccess";
-
 
31
    private final String authfail = "authfail";
27
	public PaymentDetailsController(){
32
    public PaymentDetailsController() {
28
 
33
 
29
	}
34
    }
30
 
35
 
31
	@Override
36
    @Override
32
	public void setServletRequest(HttpServletRequest req) {
37
    public void setServletRequest(HttpServletRequest req) {
33
		this.request = req;
38
        this.request = req;
-
 
39
        this.session = req.getSession();
34
	}
40
    }
35
 
41
 
36
	@Override
42
    @Override
37
	public void setServletResponse(HttpServletResponse res) {
43
    public void setServletResponse(HttpServletResponse res) {
38
		this.response = res;
44
        this.response = res;
39
	}
45
    }
40
 
46
 
41
	public String index()	{
47
    public String index() {
-
 
48
        if (getSessionUserName() == null) {
42
		return "report";
49
            return authfail;
43
	}
-
 
44
 
-
 
45
	public String show(){
50
        } else {
46
		return "report";
51
            return authsuccess;
-
 
52
        }
47
	}
53
    }
48
 
54
 
49
	// Handles the POST request (Form Submission)
55
    // Handles the POST request (Form Submission)
50
	public String create(){
56
    public String create() {
-
 
57
        String username = request.getParameter("username");
-
 
58
        String password = request.getParameter("password");
-
 
59
        if(username != null && password != null) {
-
 
60
            try{
-
 
61
                HelperServiceClient hsc = new HelperServiceClient();
-
 
62
                in.shop2020.utils.HelperService.Client client = hsc.getClient();
-
 
63
                StatisticsUser user = client.authenticateStatisticsUser(username, password);
-
 
64
                session.setAttribute("username", user.getUsername());
-
 
65
                return authsuccess;
-
 
66
            }catch(Exception e){
-
 
67
                e.printStackTrace();
-
 
68
                return authfail;
-
 
69
            }
-
 
70
        }
-
 
71
        if (getSessionUserName() == null) {
-
 
72
            return authfail;
-
 
73
        }
-
 
74
        
51
		//Formatting Form input parameters
75
        // Formatting Form input parameters
52
		String startDateStr = request.getParameter("startDate");
76
        String startDateStr = request.getParameter("startDate");
53
		String endDateStr = request.getParameter("endDate");
77
        String endDateStr = request.getParameter("endDate");
54
		DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
78
        DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
55
		Date startDate = null, endDate = null;
79
        Date startDate = null, endDate = null;
56
		try {
80
        try {
57
			startDate = df.parse(startDateStr);
81
            startDate = df.parse(startDateStr);
58
			endDate = df.parse(endDateStr);
82
            endDate = df.parse(endDateStr);
59
			Calendar cal = Calendar.getInstance();
83
            Calendar cal = Calendar.getInstance();
60
			cal.setTime(endDate);
84
            cal.setTime(endDate);
61
			cal.add(Calendar.DATE, 1);
85
            cal.add(Calendar.DATE, 1);
62
			endDate.setTime(cal.getTimeInMillis());
86
            endDate.setTime(cal.getTimeInMillis());
63
		} catch(ParseException pe) {
87
        } catch (ParseException pe) {
64
			errorMsg = "Please enter start and end dates in format MM/dd/yyyy";
88
            errorMsg = "Please enter start and end dates in format MM/dd/yyyy";
65
			return "report";
89
            return authsuccess;
66
		}
90
        }
67
 
91
 
68
		PaymentDetailsGenerator paymentDetailGenerator = new PaymentDetailsGenerator();
92
        PaymentDetailsGenerator paymentDetailGenerator = new PaymentDetailsGenerator();
69
		ByteArrayOutputStream baos = paymentDetailGenerator.generatePaymentDetailsReport(startDate, endDate);
93
        ByteArrayOutputStream baos = paymentDetailGenerator.generatePaymentDetailsReport(startDate, endDate);
70
 
94
 
71
		if(baos == null) {
95
        if (baos == null) {
72
			errorMsg = "No output for given date range";
96
            errorMsg = "No output for given date range";
73
			return "report";
97
            return authsuccess;
74
		} else {
98
        } else {
75
			errorMsg = "";
99
            errorMsg = "";
76
		}
100
        }
77
 
101
 
78
		// Preparing XLS file for output
102
        // Preparing XLS file for output
79
		response.setContentType("application/vnd.ms-excel");
103
        response.setContentType("application/vnd.ms-excel");
80
		response.setHeader("Content-disposition", "inline; filename=payments-report" + ".xls");
104
        response.setHeader("Content-disposition", "inline; filename=payments-report" + ".xls");
81
		ServletOutputStream sos;
105
        ServletOutputStream sos;
82
		try {
106
        try {
83
			sos = response.getOutputStream();
107
            sos = response.getOutputStream();
84
			baos.writeTo(sos);
108
            baos.writeTo(sos);
85
			sos.flush();
109
            sos.flush();
86
		} catch (IOException e) {
110
        } catch (IOException e) {
87
			errorMsg = "Failed to write to response.";
111
            errorMsg = "Failed to write to response.";
88
			e.printStackTrace();
112
            e.printStackTrace();
89
		}
113
        }
90
		return "report";
114
        return authsuccess;
91
	}
115
    }
92
 
116
 
93
	public String getErrorMsg() {
117
    public String getErrorMsg() {
94
		return errorMsg;
118
        return errorMsg;
-
 
119
    }
95
	}
120
 
-
 
121
    public String getSessionUserName() {
-
 
122
        return (String) session.getAttribute("username");
-
 
123
    }
96
}
124
}
97
 
-