1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.kuali.student.enrollment.class2.courseoffering.controller;
18
19 import org.apache.log4j.Logger;
20 import org.kuali.rice.krad.util.GlobalVariables;
21 import org.kuali.rice.krad.web.controller.UifControllerBase;
22 import org.kuali.rice.krad.web.form.UifFormBase;
23 import org.kuali.student.enrollment.class2.courseoffering.util.CourseOfferingManagementUtil;
24 import org.kuali.student.r2.core.acal.dto.TermInfo;
25 import org.kuali.student.enrollment.class2.courseoffering.form.DeleteTargetTermForm;
26 import org.kuali.student.enrollment.class2.courseoffering.service.CourseOfferingViewHelperService;
27 import org.kuali.student.enrollment.courseofferingset.dto.SocInfo;
28 import org.kuali.student.r2.common.util.constants.CourseOfferingSetServiceConstants;
29 import org.springframework.stereotype.Controller;
30 import org.springframework.validation.BindingResult;
31 import org.springframework.web.bind.annotation.ModelAttribute;
32 import org.springframework.web.bind.annotation.RequestMapping;
33 import org.springframework.web.bind.annotation.RequestMethod;
34 import org.springframework.web.servlet.ModelAndView;
35
36 import javax.servlet.http.HttpServletRequest;
37 import javax.servlet.http.HttpServletResponse;
38 import java.util.Calendar;
39 import java.util.Date;
40 import java.util.List;
41
42
43
44
45
46
47 @Controller
48 @RequestMapping(value = "/deleteTargetTerm")
49 public class DeleteTargetTermController extends UifControllerBase {
50 private final static Logger LOGGER = Logger.getLogger(DeleteTargetTermForm.class);
51
52 @Override
53 protected UifFormBase createInitialForm(HttpServletRequest httpServletRequest) {
54 return new DeleteTargetTermForm();
55 }
56
57 @Override
58 @RequestMapping(method = RequestMethod.GET, params = "methodToCall=start")
59 public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, @SuppressWarnings("unused") BindingResult result,
60 @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) {
61 if (!(form instanceof DeleteTargetTermForm)){
62 throw new RuntimeException("Form object passed into start method was not of expected type DeleteTargetTermForm. Got " + form.getClass().getSimpleName());
63 }
64 DeleteTargetTermForm theForm = (DeleteTargetTermForm) form;
65 Date date = Calendar.getInstance().getTime();
66 LOGGER.error(date.toString() + " ");
67 LOGGER.error(theForm);
68 return getUIFModelAndView(theForm);
69 }
70
71 @RequestMapping(params = "methodToCall=goTargetTerm")
72 public ModelAndView goTargetTerm(@ModelAttribute("KualiForm") DeleteTargetTermForm form, @SuppressWarnings("unused") BindingResult result,
73 @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
74 LOGGER.info("In goTargetTerm");
75 CourseOfferingViewHelperService helperService = CourseOfferingManagementUtil.getCoViewHelperService(form);
76
77 List<TermInfo> termInfos = helperService.findTermByTermCode(form.getTargetTermCode());
78 if (termInfos == null || termInfos.isEmpty()) {
79
80 GlobalVariables.getMessageMap().putError("targetTermCode", "error.submit.sourceTerm");
81 return getUIFModelAndView(form);
82 }
83 int firstTerm = 0;
84 TermInfo termInfo = termInfos.get(firstTerm);
85
86 form.setDisplayedTargetTermId(termInfo.getId());
87 String startDateStr = helperService.formatDate(termInfo.getStartDate());
88 String endDateStr = helperService.formatDate(termInfo.getEndDate());
89 form.setTargetTermStartDate(startDateStr);
90 form.setTargetTermEndDate(endDateStr);
91 return getUIFModelAndView(form);
92 }
93
94 @RequestMapping(params = "methodToCall=deleteTargetTerm")
95 public ModelAndView deleteTargetTerm(@ModelAttribute("KualiForm") DeleteTargetTermForm form, @SuppressWarnings("unused") BindingResult result,
96 @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
97
98 if (form.getTargetTermCode() == null || form.getTargetTermCode().length() == 0) {
99 GlobalVariables.getMessageMap().putError("targetTermCode", "error.submit.sourceTerm");
100 return getUIFModelAndView(form);
101 }
102
103 CourseOfferingViewHelperService helperService = CourseOfferingManagementUtil.getCoViewHelperService(form);
104 SocInfo mainSoc = helperService.getMainSoc(form.getDisplayedTargetTermId());
105 if (mainSoc == null) {
106 GlobalVariables.getMessageMap().putError("targetTermCode", "error.delete.targetTerm.noSoc");
107 return getUIFModelAndView(form);
108 }
109 if (!mainSoc.getStateKey().equals(CourseOfferingSetServiceConstants.DRAFT_SOC_STATE_KEY)) {
110 GlobalVariables.getMessageMap().putError("targetTermCode", "error.delete.targetTerm.notDraftSoc");
111 return getUIFModelAndView(form);
112 }
113 helperService.deleteTargetTerm(form.getDisplayedTargetTermId(), form);
114 return getUIFModelAndView(form);
115 }
116 }