Files
vexplor/WebContent/WEB-INF/view/project/wbsTaskProductGanttFormPopUp.jsp
2025-08-21 09:41:46 +09:00

816 lines
25 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ page import="java.util.*"%>
<%@include file="/init.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<script type="text/javascript" src="/js/jquery.floatThead.min.js"></script>
<script type="text/javascript"
src="https://www.gstatic.com/charts/loader.js"></script>
<link rel="stylesheet" href="/css/jsgantt.css" type="text/css">
<script type="text/javascript" src="/js/jsgantt.js"></script>
<script type="text/javascript" src="/js/jquery.floatThead.min.js"></script>
<style type="text/css">
</style>
<script>
$(document).ready(function(){
$(".select2").each(function(i, o) {
$(this).val($(this).attr("data-value")).trigger("change");
});
$('.select2').select2();
fnc_datepick();
$('.date').each(function(i, o) {
$(this).attr("size", "10");
$(this).datepicker({
changeMonth : true,
changeYear : true
});
});
$('#fixTable').floatThead();
//닫기
$("#btnClose").click(function(){
self.close(0);
});
$("#btnSave").click(function(){
$.ajax({
url : "/project/save_wbsTaskProductFormPopUp.do",
type : "POST",
data : $("#form1")
.serialize(),
dataType : "json",
async : false,
success : function(data) {
Swal.fire(data.message);
opener.fn_search();
self.close();
},
error : function(jqxhr,
status, error) {
}
});
});
//취소
$("#btnCancel").click(function() {
var objId = $(this).attr(
"data-OBJID");
var params = "?objId=" + objId;
document.form1.action = "/project/wbs/wbsTaskListDetailPopUp.do"
+ params;
document.form1.target = "_self";
document.form1.submit();
});
$(".level_1").css("background-color", "#a3a5a2");
$(".level_2").css("background-color", "#e0e1e0");
$(".level_3").css("background-color", "#f1edfc");
//fn_getProjectWBSTask("1");
//fn_getProjectWBSTask("2");
//fn_getProjectWBSTask("3");
//fn_getProjectWBSTask("4");
//체크박스 전체선택/전체해제
$("#allCheck").click(function() {
if ($("#allCheck").prop("checked")) {
$("input[type=checkbox]").prop("checked", true);
} else {
$("input[type=checkbox]").prop("checked", false);
}
});
$("input").change(function() {
var _thisvalue = $(this).val();
var _name = $(this).attr("name");
$("input[name='" + _name + "']").each(function(i) {
var maxvalue = $("input[name='"+ _name+ "']").eq(i).val().replace(/-/g,"");
if (_thisvalue.replace(/-/g,"") <= maxvalue) {
_thisvalue = $("input[name='" + _name + "']").eq(i).val();
}
});
//$("#"+_name+"_MAX").text(_thisvalue);
var trindex = $(this).parent().parent().index();
var tdindex = $(this).parent().index();
$("#fixTable tr:eq(0) td:eq(" + (tdindex - 2) + ")").text(_thisvalue);
});
});
</script>
<script>
function datepick() {
var $dateinput = $("input");
for (var i = 0; i < $dateinput.length; i++) {
var id = $dateinput.eq(i).attr("id");
if (id != null)
if (id.indexOf("Date") > -1) {
$dateinput.eq(i).attr("size", "10");
$dateinput.eq(i).datepicker();
} else {
$dateinput.eq(i).attr("size", "10");
}
}
}
//WBS Task의 내용을가져온다.
//objId가 없을 경우 등록 Form을 보여준다.
function openWBSTaskPopUp(objId) {
//wbs 등록 팝업
window.open("", "wbsTaskPopUp", "width=700, height=400");
var form = document.form1;
form.taskObjId.value = objId;
form.action = "/project/wbs/wbsTaskFormPopUp.do";
form.target = "wbsTaskPopUp";
form.submit();
}
//해당 WBS Task의 하위 Task를 생성한다.
function addWBSTask(parentObjId) {
var parentLevel = $("#taskLevel_" + parentObjId).val();
var taskType = "";
var params = "&actionType=regist"
if ("2" == parentLevel) {
taskType = "task";
}
window.open("/project/wbs/wbsTaskFormPopUp.do?parentObjId="
+ parentObjId + "&status=create&taskType=" + taskType + params,
"wbsTaskPopUp", "width=700, height=400");
}
//해당 WBS Task를 삭제한다.
function fn_deleteWBSTask(objId) {
if (confirm("해당 Task를 삭제하시겠습니까?\n삭제 시 연결된 하위 Task도 삭제되며\n기능별 Task와의 연결도 해제됩니다.")) {
$.ajax({
url : "/project/wbs/deleteWBSTask.do",
type : "POST",
data : {
"taskObjId" : objId
},
dataType : "json",
success : function(data) {
if (data.result == "true" || data.result == true
|| data.result) {
Swal.fire("삭제되었습니다.");
fn_getProjectWBSTask("1");
fn_getProjectWBSTask("2");
fn_getProjectWBSTask("3");
fn_getProjectWBSTask("4");
} else {
Swal.fire("삭제에 실패하였습니다.");
}
},
error : function(jqxhr, status, error) {
}
});
}
}
//해당 Gate에 해당하는 WBS Task 목록을 가져온다.
function fn_getProjectWBSTask(gate) {
$
.ajax({
url : "/project/wbs/getProjectWBSTaskList.do",
type : "POST",
data : {
"objId" : "${param.objId}",
"projectStep" : gate
},
dataType : "json",
async : false,
success : function(data) {
$("#gate" + gate).empty();
if (0 < data.length) {
for (var i = 0; i < data.length; i++) {
var appendText = "";
if (0 == (i % 22) && i != 0) {
appendText += "<tr class='plm_thead'>";
/*appendText+=" <td rowspan='2'>Lev</td>";
appendText+=" <td rowspan='2' style='text-align:center;'>Task 명</td>";
appendText+=" <td colspan='2'>계획</td>";
appendText+=" <td colspan='2'>실적</td>";
appendText+=" <td colspan='2'>담당자 정보</td>";
appendText+=" <td rowspan='2'>산출물</td>";
appendText+=" <td rowspan='2'>Task Link</td>";
appendText+=" <td rowspan='2'>상태</td>";
appendText+=" <td rowspan='2'>TFT장<br>확인</td>"; */
appendText += "<td colspan='3'>제품개발표준프로세스</td>";
appendText += "<td colspan='2'>계획</td> ";
appendText += "<td colspan='2'>실행</td> ";
appendText += "<td colspan='2'>담당자</td> ";
appendText += "<td colspan='2'>Action List</td> ";
appendText += "<td rowspan='2'>CFT장 확인</td> ";
/* appendText+="<td rowspan='2' colspan='2'>기능</td>"; */
appendText += "</tr>";
appendText += "<tr class='plm_sub_thead'>";
/* appendText+=" <td>예상 시작일</td>";
appendText+=" <td class='align_c'>예상 종료일</td>";
appendText+=" <td>종료일</td>";
appendText+=" <td>지연일</td>";
appendText+=" <td>담당팀</td>";
appendText+=" <td>담당자</td>"; */
appendText += "<td>단계</td> ";
appendText += "<td>No.</td> ";
appendText += "<td>TASK명</td> ";
appendText += "<td>예상 시작일</td> ";
appendText += "<td class='align_c'>예상 종료일</td>";
appendText += "<td>종료일</td> ";
appendText += "<td>지연일</td> ";
appendText += "<td>팀명</td> ";
appendText += "<td>담당</td> ";
appendText += "<td>기록문서(설명)</td> ";
appendText += "<td>산출물</td> ";
appendText += "</tr>";
}
appendText += "<tr class='level_"+data[i].LEV+"'>";
appendText += " <input type='hidden' id='taskLevel_"+data[i].OBJID+"' value='"+data[i].LEV+"'>";
/* appendText+= " <td style='text-align:center;'>"+data[i].LEV+"</td>"; */
appendText += " <td class='align_l'>&nbsp;&nbsp;&nbsp;&nbsp;"
+ data[i].TASK_STEP
+ "단계/"
+ data[i].STEP_NAME + "</td>";
appendText += " <td style='text-align:center;'>"
+ data[i].SEQ + "</td>";
appendText += " <td class='align_l'>";
if ("1" == data[i].LEV) {
appendText += " <a href='#' onclick=\"openWBSTaskPopUp('"
+ data[i].OBJID
+ "')\">"
+ data[i].TASK_NAME + "</a>";
} else {
appendText += " " + data[i].TASK_NAME;
}
appendText += " </td>";
appendText += " <td>"
+ fnc_checkNull(data[i].TASK_START_PLAN_DATE_TITLE)
+ "</td>";
appendText += " <td>"
+ fnc_checkNull(data[i].TASK_END_PLAN_DATE_TITLE)
+ "</td>";
appendText += " <td>"
+ fnc_checkNull(data[i].TASK_END_DATE_TITLE)
+ "</td>";
appendText += " <td></td>";
// appendText+= " <td>"+fnc_checkNull(data[i].DEPT_NAME)+"</td>";
appendText += " <td>";
appendText += fnc_checkNull(data[i].DEPT_NAME);
/* if("1" == data[i].LEV){
appendText+= " <select onchange=\"fn_changeTaskDept('"+data[i].OBJID+"',this.value);\">";
appendText+= " <option value=''>선택</option>";
<c:forEach items="${deptList}" var="dept">
var selectedTxt = "";
if("${dept.DEPT_CODE}" == data[i].TASK_DEPT){
selectedTxt = "selected";
}
appendText+= " <option value='"+"${dept.DEPT_CODE}"+"' "+selectedTxt+">"+"${dept.DEPT_NAME}"+"</option>";
</c:forEach>
appendText+= " </select>";
} */
appendText += " </td>";
appendText += " <td>"
+ fnc_checkNull(data[i].USER_NAME)
+ "</td>";
/* appendText+= " <td id='chargerArea_"+data[i].OBJID+"'>";
if("1" == data[i].LEV){
appendText+= fn_searchUser(data[i].TASK_DEPT,data[i].TASK_CHARGER_ID,data[i].OBJID);
}
appendText+= " </td>"; */
/* if(0 != data[i].TASK_LINK_CNT){
file = "btnSrFile file_icon";
}
else{
file = "btnSrFile file_empty_icon";
}
appendText+= " <td>";
if("1" == data[i].LEV){
appendText+= " <a href='#' class='"+ file +"' onclick=\"fn_openTaskLinkedFNTaskListPopUp('"+data[i].OBJID+"')\"></a>";
}
appendText+= " </td>"; */
appendText += " <td style='text-align:left;'>&nbsp;&nbsp;&nbsp;&nbsp;"
+ data[i].BIGO + "</td>";
var fileCnt = "";
if (0 != data[i].WBS_FILE_CNT) {
file = "btnSrFile file_icon";
} else {
file = "btnSrFile file_empty_icon";
}
appendText += " <td>";
if ("1" == data[i].LEV) {
appendText += " <a href='#' class='"
+ file
+ "' onclick=\"openWBSTaskPopUp('"
+ data[i].OBJID + "')\"></a>";
}
appendText += " </td>";
/* appendText+= " <td>";
appendText+= " </td>";
*/
appendText += " <td>";
if ("1" == data[i].LEV
&& "create" != data[i].STATUS) {
appendText += " <a href='#' onclick=\"fn_openTaskConfirmListPopUp('"
+ data[i].OBJID
+ "')\">"
+ fnc_checkNull(data[i].STATUS_TITLE)
+ "</a>";
}
appendText += " </td>";
/* if("1" == data[i].LEV){
appendText+= " <td></td>";
appendText+= " <td><input type='button' value='행삭제' class='blue_btn' onclick=\"fn_deleteWBSTask('"+data[i].OBJID+"');\"></td>";
}else{ */
/* appendText+= " <td style='text-align:center;'><input style='text-align:center;' type='button' value='행추가' class='blue_btn' onclick=\"addWBSTask('"+data[i].OBJID+"');\"></td>";
appendText+= " <td style='text-align:center;'><input type='button' value='행삭제' class='blue_btn' onclick=\"fn_deleteWBSTask('"+data[i].OBJID+"');\"></td>"; */
// }
$("#gate" + gate).append(appendText);
}
} else {
var appendText = "";
appendText += "<tr style='text-align:center;'>";
appendText += " <td align='center' colspan='12'>조회된 데이터가 없습니다.</td>";
appendText += "</tr>";
$("#gate" + gate).append(appendText);
}
},
error : function(jqxhr, status, error) {
}
});
}
function fn_openTaskConfirmListPopUp(taskObjId) {
window.open("/project/wbs/openTaskConfirmListPopUp.do?objId="
+ taskObjId, "taskConfirmListPopUp", "width=700, height=440");
}
//TFT/PL을 통해 작성된 확인 내용 목록을 보여준다.
function fn_openTaskLinkedFNTaskListPopUp(taskObjId) {
window
.open("/project/wbs/openTaskLinkedFNTaskListPopUp.do?&objId="
+ taskObjId, "taskLinkFNTaskListPopUp",
"width=700, height=440");
}
//부서 selectbox 변경 시 부서를 저장하도록 한다.
function fn_changeTaskDept(taskObjId, deptCode) {
$
.ajax({
url : "/project/wbs/changeTaskDept.do",
type : "POST",
data : {
"taskObjId" : taskObjId,
"deptCode" : deptCode
},
dataType : "json",
success : function(data) {
if (data.result == "true" || data.result == true
|| data.result) {
$("#taskCharger_" + taskObjId).remove();
if ("" != fnc_checkNull(deptCode)) {
$("#chargerArea_" + taskObjId).append(
fn_searchUser(deptCode, '', taskObjId));
}
} else {
Swal.fire("오류가 발생하였습니다.");
}
},
error : function(jqxhr, status, error) {
}
});
}
//부서에 따른 사원 정보를 가져온다.
function fn_searchUser(deptCode, userId, objId) {
var appendText = "";
if ("" != fnc_checkNull(deptCode)) {
$.ajax({
url : "/common/searchUserList.do",
type : "POST",
data : {
"search_deptCode" : deptCode,
"isJson" : true
},
dataType : "json",
async : false,
success : function(data) {
if ("" != objId) {
$("#taskCharger_" + objId).remove();
}
appendText += " <select id='taskCharger_" + objId
+ "' onchange=\"fn_changeTaskChargerId('" + objId
+ "',this.value);\">";
appendText += "<option value=''>선택</option>";
if (data != null && data.length > 0) {
for (var j = 0; j < data.length; j++) {
var selectedFlag = "";
if (fnc_checkNull(data[j].USER_ID) == userId) {
selectedFlag = "selected";
}
appendText += "<option value='"
+ fnc_checkNull(data[j].USER_ID) + "' "
+ selectedFlag + ">"
+ fnc_checkNull(data[j].USER_NAME)
+ "</option>";
}
}
appendText += " </select>";
},
error : function(jqxhr, status, error) {
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
Swal.fire(jqxhr.status);
Swal.fire(jqxhr.responseText);
}
});
}
return appendText;
}
//Task 담당자를 지정한다.
function fn_changeTaskChargerId(taskObjId, userId) {
$
.ajax({
url : "/project/wbs/changeTaskChargerId.do",
type : "POST",
data : {
"taskObjId" : taskObjId,
"userId" : userId
},
dataType : "json",
success : function(data) {
if (data.result == "true" || data.result == true
|| data.result) {
} else {
Swal.fire("오류가 발생하였습니다.");
}
},
error : function(jqxhr, status, error) {
}
});
}
function completeUpdate() {
//확정
// name을 가지는 checkbox 중 체크표시된 항목의 전체 개수
if ($("input:checkbox[name=chk]:checked").length > 0) {
// 현재 체크된 체크박스의 li 정보 얻기
var checkObjId = '';
$("input:checkbox[name=chk]:checked").each(function(index, val) {
if (this.checked) {
if (index == 0) {
checkObjId = $(this).attr("data-OBJID");
} else {
checkObjId += ',' + $(this).attr("data-OBJID");
}
}
});
completeProcess(checkObjId);
} else {
Swal.fire("확정 항목을 선택해주세요.");
}
}
function deleteUpdate() {
//확정
// name을 가지는 checkbox 중 체크표시된 항목의 전체 개수
if ($("input:checkbox[name=chk]:checked").length > 0) {
// 현재 체크된 체크박스의 li 정보 얻기
var checkObjId = '';
$("input:checkbox[name=chk]:checked").each(function(index, val) {
if (this.checked) {
if (index == 0) {
checkObjId = $(this).attr("data-OBJID");
} else {
checkObjId += ',' + $(this).attr("data-OBJID");
}
}
});
deleteProcess(checkObjId);
} else {
Swal.fire("삭제 항목을 선택해주세요.");
}
}
function complete_load() {
var params = "?objId=" + '${param.objId}';
document.form1.action = "/project/wbs/wbsTaskListDetailPopUp.do"
+ params;
document.form1.target = "_self";
document.form1.submit();
}
function completeProcess(checkObjId) {
if (confirm("확정 하시겠습니까?")) {
$.ajax({
url : "/project/completeWBSTask.do",
type : "POST",
data : {
"ObjId" : checkObjId
},
dataType : "json",
success : function(data) {
Swal.fire("확정 되었습니다.");
complete_load();
},
error : function(jqxhr, status, error) {
}
});
}
}
function deleteProcess(checkObjId) {
if (confirm("삭제 하시겠습니까?")) {
$.ajax({
url : "/project/wbs/deleteWBSTask.do",
type : "POST",
data : {
"ObjId" : checkObjId
},
dataType : "json",
success : function(data) {
Swal.fire("삭제 되었습니다.");
complete_load();
},
error : function(jqxhr, status, error) {
}
});
}
}
//WBS Task의 상세내용을 보여준다.
function fn_openWBSTaskDetailPopUp(objId, targetObjId) {
//wbs 등록 팝업
window.open("/project/wbs/wbsTaskDetailPopUp.do?taskObjId=" + objId
+ "&projectObjId=" + targetObjId, objId,
"width=650, height=350");
}
</script>
</head>
<body>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="projectObjId" value="${param.objId}">
<input type="hidden" name="parentObjId"> <input type="hidden"
name="taskObjId"> <input type="hidden" name="projStep">
<input type="hidden" name="status">
<!-- <div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="확정" id="wbs_complete" class="plm_btns" onclick="completeUpdate()">
<input type="button" value="삭제" id="wbs_delete" class="plm_btns" onclick="deleteUpdate()">
</div>
</div> -->
<div class="plm_menu_name">
<h2>
<span></span>
</h2>
</div>
<table style="width: 100%;">
<tr>
<td>
<section class="contents_page_basic_margin"
style="margin-top: 20px; margin-rigft: 0px; width: 100%;">
<div class="plm_table_wrap" style="height: 700px;">
<div class="in_table_scroll_wrap _table1"
style="height: 50px; width: fit-content;">
<table class="plm_table" style="font-size: 2px;">
<colgroup>
<col width="20px">
<col width="100px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
</colgroup>
<thead>
<tr class="plm_thead">
<td>NO</td>
<td>Unit Name / 공정</td>
<td colspan="3">설계</td>
<td colspan="3">구매</td>
<td colspan="3">제작</td>
<td colspan="3">자체검수</td>
<td colspan="3">최종검수</td>
<td colspan="3">출하</td>
<td colspan="3">셋업</td>
</tr>
</thead>
<tr class="plm_sub_thead">
<td></td>
<td></td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
<td>시작</td>
<td>완료</td>
<td>진척율</td>
</tr>
</table>
</div>
<%-- <span class="r_title_back btnGanttChart" style="cursor:pointer;" data-PROJECT_OBJID="${param.objId}" data-GATE="1">Gantt Chart</span> --%>
<table class="plm_table wbs_left_align in_table_scroll_wrap"
id="fixTable" style="width: 100%; table-rayout: fixed;">
<colgroup>
<col width="20px">
<col width="100px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
<col width="50px">
<col width="50px">
<col width="30px">
</colgroup>
<tbody class="font_white">
<c:choose>
<c:when test="${empty projectTaskList}">
<tr style="text-align: center;">
<td align="center" colspan="44">조회된 데이터가 없습니다.</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="item" items="${projectTaskList}"
varStatus="varStatus">
<tr>
<td>${varStatus.index}</td>
<td title="${item.TASK_NAME}"
style="text-align: left; padding-left: 5px;">${item.TASK_NAME}</td>
<td title="${item.DESIGN_PLAN_START}">${item.DESIGN_PLAN_START}</td>
<td title="${item.DESIGN_PLAN_END }">${item.DESIGN_PLAN_END }</td>
<td title="${item.DESIGN_RATE }">${item.DESIGN_RATE }</td>
<td title="${item.PURCHASE_PLAN_START}">${item.PURCHASE_PLAN_START}</td>
<td title="${item.PURCHASE_PLAN_END }">${item.PURCHASE_PLAN_END }</td>
<td title="${item.PURCHASE_RATE }">${item.PURCHASE_RATE }</td>
<td title="${item.PRODUCE_PLAN_START}">${item.PRODUCE_PLAN_START}</td>
<td title="${item.PRODUCE_PLAN_END }">${item.PRODUCE_PLAN_END }</td>
<td title="${item.PRODUCE_RATE }">${item.PRODUCE_RATE }</td>
<td title="${item.SELFINS_PLAN_START}">${item.SELFINS_PLAN_START}</td>
<td title="${item.SELFINS_PLAN_END }">${item.SELFINS_PLAN_END }</td>
<td title="${item.SELFINS_RATE }">${item.SELFINS_RATE }</td>
<c:if test="${varStatus.index <= 1}">
<td title="${item.FINALINS_PLAN_START}">${item.FINALINS_PLAN_START}</td>
<td title="${item.FINALINS_PLAN_END }">${item.FINALINS_PLAN_END }</td>
<td title="${item.FINALINS_RATE }">${item.FINALINS_RATE }</td>
<td title="${item.SHIP_PLAN_START}">${item.SHIP_PLAN_START}</td>
<td title="${item.SHIP_PLAN_END }">${item.SHIP_PLAN_END }</td>
<td title="${item.SHIP_RATE }">${item.SHIP_RATE }</td>
<td title="${item.SETUP_PLAN_START}">${item.SETUP_PLAN_START}</td>
<td title="${item.SETUP_PLAN_END }">${item.SETUP_PLAN_END }</td>
<td title="${item.SETUP_RATE }">${item.SETUP_RATE }</td>
</c:if>
<c:if test="${varStatus.index > 1}">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</c:if>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</section>
</td>
<%-- </tr>
<tr>
<td>
<iframe id="ganttChartFrame" style="width:1900px;height:250px;border:0" src="/project/wbsTaskProductGantt.do?OBJID=${param.OBJID}"></iframe>
</td>
</tr> --%>
</table>
<div class="btn_wrap">
<div class="plm_btn_wrap_center">
<input type="button" value="닫기" id="btnClose" class="plm_btns">
</div>
</div>
</form>
</body>
</html>