Subversion Repositories SmartDukaan

Rev

Rev 23766 | Rev 23798 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23612 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.io.IOException;
4
 
5
import javax.servlet.http.HttpServletRequest;
6
 
7
import org.apache.http.HttpResponse;
23654 amit.gupta 8
import org.apache.logging.log4j.LogManager;
9
import org.apache.logging.log4j.Logger;
23637 amit.gupta 10
import org.springframework.beans.factory.annotation.Autowired;
23612 amit.gupta 11
import org.springframework.core.io.InputStreamResource;
12
import org.springframework.http.HttpHeaders;
13
import org.springframework.http.HttpStatus;
14
import org.springframework.http.ResponseEntity;
15
import org.springframework.stereotype.Controller;
23637 amit.gupta 16
import org.springframework.transaction.annotation.Transactional;
17
import org.springframework.ui.Model;
23612 amit.gupta 18
import org.springframework.web.bind.annotation.PathVariable;
19
import org.springframework.web.bind.annotation.RequestMapping;
20
import org.springframework.web.bind.annotation.RequestMethod;
21
 
22
import com.spice.profitmandi.common.enumuration.ReporticoProject;
23
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
24
import com.spice.profitmandi.common.services.ReporticoService;
23784 ashik.ali 25
import com.spice.profitmandi.dao.entity.dtr.Role;
26
import com.spice.profitmandi.dao.enumuration.dtr.RoleType;
27
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
23612 amit.gupta 28
import com.spice.profitmandi.web.model.LoginDetails;
29
import com.spice.profitmandi.web.util.CookiesProcessor;
30
 
31
@Controller
23784 ashik.ali 32
@Transactional(rollbackFor=Throwable.class)
23612 amit.gupta 33
public class ReportsController {
23784 ashik.ali 34
 
23637 amit.gupta 35
	@Autowired
23784 ashik.ali 36
	private RoleRepository roleRepository;
37
 
23764 amit.gupta 38
	@Autowired
23784 ashik.ali 39
	private CookiesProcessor cookiesProcessor; 
40
 
41
	@Autowired
23652 amit.gupta 42
	private ReporticoService reporticoService;
23764 amit.gupta 43
 
23654 amit.gupta 44
	private static final Logger log = LogManager.getLogger(OrderController.class);
23612 amit.gupta 45
 
46
	@RequestMapping(value = "/reports/{projectName}/{fileName}", method = RequestMethod.GET)
23764 amit.gupta 47
	public ResponseEntity<?> fetchReport(HttpServletRequest request, @PathVariable String fileName,
48
			@PathVariable ReporticoProject projectName)
49
			throws ProfitMandiBusinessException, UnsupportedOperationException, IOException {
23612 amit.gupta 50
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
51
		HttpResponse response;
23784 ashik.ali 52
		Role role = roleRepository.selectByName(RoleType.FOFO_ADMIN.toString());
53
	    if (loginDetails.getRoleIds().contains(role.getId())) {
23764 amit.gupta 54
			response = reporticoService.getReportFile(projectName, fileName + ".xml");
23612 amit.gupta 55
		} else {
23764 amit.gupta 56
			response = reporticoService.getReportFile(loginDetails.getFofoId(), projectName, fileName + ".xml");
23612 amit.gupta 57
		}
58
		HttpHeaders headers = new HttpHeaders();
23764 amit.gupta 59
		InputStreamResource is = new InputStreamResource(response.getEntity().getContent());
23765 amit.gupta 60
		headers.set("Content-Type", "application/vnd.ms-excel");
61
		headers.set("Content-disposition",
23766 amit.gupta 62
				"inline; filename=report-" + fileName + ".csv");
63
		headers.setContentLength(response.getEntity().getContentLength());
23764 amit.gupta 64
		return new ResponseEntity<InputStreamResource>(is, headers, HttpStatus.OK);
23612 amit.gupta 65
	}
23637 amit.gupta 66
 
67
	@RequestMapping(value = "/reports/", method = RequestMethod.GET)
23764 amit.gupta 68
	public String reports(Model model) throws ProfitMandiBusinessException, UnsupportedOperationException, IOException {
23637 amit.gupta 69
		model.addAttribute("reporticoProjectMap", ReporticoProject.reporticoProjectMap);
70
		return "reports";
71
	}
23612 amit.gupta 72
}