package com.vst.webapp.action;
import com.vst.model.Expert;
import com.vst.model.ObjectExpertType;
import com.vst.model.ObjectInspection;
import com.vst.model.PracticalObjectExpertType;
import com.vst.service.ObjectExpertTypeManager;
import com.vst.service.ObjectInspectionManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: And Lilia
* Date: 16.04.2009
* Time: 10:57:59
* To change this template use File | Settings | File Templates.
*/
public class LookObjectExpertTypeController implements Controller {
ObjectExpertTypeManager objectExpertTypeManager;
ObjectInspectionManager objectInspectionManager;
public ObjectInspectionManager getObjectInspectionManager() {
return objectInspectionManager;
}
public void setObjectInspectionManager(ObjectInspectionManager objectInspectionManager) {
this.objectInspectionManager = objectInspectionManager;
}
public void setObjectExpertTypeManager(ObjectExpertTypeManager objectExpertTypeManager) {
this.objectExpertTypeManager = objectExpertTypeManager;
}
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView("lookObjectExpertType");
if (httpServletRequest.getParameter("edited") != null) {
httpServletRequest.setAttribute("addition", "?edited=1");
}
String result = "";
if (httpServletRequest.getParameter("delete") != null) {
Integer id = (Integer) Integer.parseInt(httpServletRequest.getParameter("expertId"));
List list = objectInspectionManager.getListByObjectExpId(id);
if (list.size() > 0) {
result += "Объект экспертизы не может быть удален, так как истользуется " + list.size() + " раз(а) в другом справочнике :<br>";
result += "<table>";
for (int i = 0; i < list.size(); i++) {
ObjectInspection o = (ObjectInspection) list.get(i);
List listExp = o.getTrueexpertList();
List listPracObj = o.getObjectTypeList();
String resultExpert = "";
String resultPracObj = "";
for (int j = 0; j < listPracObj.size(); j++) {
PracticalObjectExpertType practicalObject = (PracticalObjectExpertType) listPracObj.get(j);
resultPracObj += practicalObject.getPipelineSubtype().getPipelineType() + "; " + practicalObject.getObjectExpertType().getAppointment() + " " + practicalObject.getObjectExpertType().getDefinition() + " " + practicalObject.getObjectExpertType().getExpertName() + " <br>";
}
for (int j = 0; j < listExp.size(); j++) {
Expert expert = (Expert) listExp.get(j);
resultExpert += expert.getExpertFio() + " ";
}
listExp = o.getFalseexpertList();
for (int j = 0; j < listExp.size(); j++) {
Expert expert = (Expert) listExp.get(j);
resultExpert += expert.getExpertFio() + " ";
}
result += "<tr><td><a href=\"" + httpServletRequest.getRequestURL().toString().replaceAll("/lookObjectExpertType.html", "") + "/lookObjectInspection.html\"><ul>" +
"<li>Номер договора: " + o.getContractNumber() +
"<li>Дата заключения договора: " + o.getDateForLook() +
"<li>Эксперты: " + resultExpert +
"<li>Обследователи: " + resultPracObj +
"<li>Организация: " + o.getCustomerOrganization() +
"<li>ФИО руководителя организации: " + o.getCustomerFio() + "</ul></a></td></tr>";
}
result += "</table>";
} else {
ObjectExpertType object = objectExpertTypeManager.getObjectExpertTypeById(id);
objectExpertTypeManager.deleteObjectExpert(object);
}
}
System.out.println("result = " + result);
mav.addObject("result", result);
Integer page = new Integer(0);
Integer pageCount;
if (httpServletRequest.getParameter("page") != null) {
page = (Integer) Integer.parseInt(httpServletRequest.getParameter("page"));
}
mav.addObject("objectList", objectExpertTypeManager.getPageObjectExpertTypeList(page));
pageCount = (Integer) objectExpertTypeManager.getObjectExpertTypeList().size();
if ((pageCount.intValue() % 15) > 0) {
pageCount = (Integer) (1 + (pageCount.intValue() / 15));
} else {
pageCount = (Integer) (pageCount.intValue() / 15);
}
if (pageCount.intValue() == 0) {
pageCount = new Integer(1);
}
mav.addObject("page", page);
mav.addObject("pageCount", pageCount);
return mav;
}
}