ERP-node/WebContent/WEB-INF/view/contractMgmt/contractDashboard_new.jsp

455 lines
21 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="com.pms.common.utils.*"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ 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>
<c:set var="totalCount" value="${empty TOTAL_COUNT?0:TOTAL_COUNT}" />
<c:set var="maxPage" value="${empty MAX_PAGE_SIZE?1:MAX_PAGE_SIZE}" />
<c:set var="nPage" value="${empty param.page?1:param.page}" />
<c:set var="pageIndex" value="${(nPage-1)/10}" />
<c:set var="nextPage" value="${empty NEXT_PAGE?1:NEXT_PAGE}" />
<c:set var="prevPage" value="${empty PREV_PAGE?1:PREV_PAGE}" />
<c:set var="now" value="<%=new java.util.Date() %>"/>
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart1);
google.charts.setOnLoadCallback(drawChart3);
//google.charts.load('current', {'packages':['bar']});
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart2);
function drawChart1() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
<c:forEach var="item" items="${LIST}" varStatus="status">
<c:choose>
<c:when test="${empty item.YEAR_MONTH }">
<c:if test="${!empty moldKindCdList}">
<c:forEach var="obj2" items="${moldKindCdList}" varStatus="status">
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${obj2.CODE}" />
['${obj2.NAME}',${item[contract_cnt_month]}],
</c:forEach>
</c:if>
</c:when>
</c:choose>
</c:forEach>
]);
var options = {
title: '■ 제품별현황',
fontSize: 16,
is3D: true,
chartArea: {left:20,top:80,width:'80%',height:'75%'},
legend: {position: 'right', textStyle: {color: 'black', fontSize: 10}},
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
function drawChart2() {
// eslint-disable-next-line
var data = google.visualization.arrayToDataTable([
['Year', '영업목표(억원)', '수주금액(억원)', '달성율(%)'],
['${yearGoalInfoMap2.YEAR}', ${yearGoalInfoMap2.PRICE}, ${yearGoalInfoMap2.CONTRACT_COST_YEAR}, ${yearGoalInfoMap2.GOAL_RATE}],
['${yearGoalInfoMap1.YEAR}', ${yearGoalInfoMap1.PRICE}, ${yearGoalInfoMap1.CONTRACT_COST_YEAR}, ${yearGoalInfoMap1.GOAL_RATE}],
['${yearGoalInfoMap.YEAR}', ${yearGoalInfoMap.PRICE}, ${yearGoalInfoMap.CONTRACT_COST_YEAR}, ${yearGoalInfoMap.GOAL_RATE}]
]);
var options = {
title: '■ 년도별 영업현황' //{ position: 'top', title:'영업현황'}
,fontSize: 14
,legend: {position: 'right', textStyle: {color: 'black', fontSize: 9}}
,seriesType: 'bars'
,series: {2: {type: 'line'}}
,chartArea: {left:40,top:40,width:'55%',height:'75%'}
};
var chart = new google.visualization.ComboChart(document.getElementById('chartDiv1'));
chart.draw(data, options);
/* var chart = new google.charts.Bar(document.getElementById('chartDiv1'));
chart.draw(data, google.charts.Bar.convertOptions(options)); */
}
function drawChart3() {
var data = google.visualization.arrayToDataTable([
['Supply', 'CNT'],
<c:forEach var="item" items="${LISTSUPPLY}" varStatus="status">
['${item.SUPPLY_NAME}',${item.TOTAL_SUPPLY_UNIT_CNT}],
</c:forEach>
]);
var options = {
title: '■ 고객사별현황',
fontSize: 16,
is3D: true,
chartArea: {left:10,top:80,width:'80%',height:'75%'},
legend: {position: 'right', textStyle: {color: 'black', fontSize: 10}},
};
var chart = new google.visualization.PieChart(document.getElementById('piechart2'));
chart.draw(data, options);
}
</script>
<script>
$(document).ready(function(){
$("._table1").scroll(function () {
$("._table2").scrollLeft($("._table1").scrollLeft());
});
$("._table2").scroll(function () {
$("._table1").scrollLeft($("._table2").scrollLeft());
});
$('.select2').select2();
$("#btnSearch").click(function(){
fn_search();
});
//영업목표 등록 팝업
$("#btnRegist").click(function(){
fn_yearGoalPopUp("");
});
//엔터 조회
$("input").keyup(function(e){
if(e.keyCode == 13){
$("#page").val("1");
fn_search();
}
});
$("#Year").val("${sysYear}");
});
function fn_search(){
document.form1.action = "/contractMgmt/contractDashBoard.do";
document.form1.submit();
}
function fn_openTargetList(productCategory,product,targetType,dateType,searchYear,searchMonth){
var hiddenForm = document.hiddenForm;
var url = "";
if("contract" == targetType){
url = "/contractMgmt/contractList.do";
hiddenForm.Year.value = searchYear;
hiddenForm.contract_month.value = searchMonth;
//hiddenForm.contract_start_date.value = startDate;
//hiddenForm.contract_end_date.value = endDate;
}else{
url = "/releaseMgmt/releaseMgmtList.do";
hiddenForm.Year.value = searchYear;
//hiddenForm.release_start_date.value = startDate;
//hiddenForm.release_end_date.value = endDate;
}
window.open(url,"openTargetList","width=1800, height=700, menubars=no, scrollbars=yes, resizable=yes");
hiddenForm.target = "openTargetList";
hiddenForm.PRODUCT_CATEGORY.value = productCategory;
hiddenForm.product.value = product;
hiddenForm.action = url;
hiddenForm.submit();
}
function fn_yearGoalPopUp(objId){
var params = "?actionType=regist&YEAR_GOAL_OBJID="+objId+"&Year="+$("#Year").val();
var url = "/contractMgmt/yearGoalFormPopUp.do"+params;
//window.open(url, "", "width=550, height=300");
var target = "yearGoalPricePopUp";
var popup_width = 550;
var popup_height = 300;
//var url = "/project/projectMgmtProductPopUp.do"+params;
fn_centerPopup(popup_width, popup_height, url, target);
}
</script>
</head>
<body>
<form name="hiddenForm" id="hiddenForm" action="" method="post">
<input type="hidden" name="PRODUCT_CATEGORY" id="PRODUCT_CATEGORY">
<input type="hidden" name="product" id="product">
<input type="hidden" name="RESULT_TYPE" id="RESULT_TYPE">
<input type="hidden" name="SEARCH_YEAR" id="SEARCH_YEAR">
<input type="hidden" name="Year" id="Year">
<input type="hidden" name="SEARCH_START_DATE" id="SEARCH_START_DATE">
<input type="hidden" name="contract_start_date" id="contract_start_date">
<input type="hidden" name="SEARCH_END_DATE" id="SEARCH_END_DATE">
<input type="hidden" name="contract_end_date" id="contract_end_date">
<input type="hidden" name="release_start_date" id="release_start_date">
<input type="hidden" name="release_end_date" id="release_end_date">
<input type="hidden" name="contract_month" id="contract_month" value="${param.contract_month}">
</form>
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="actionType" value="" />
<div class="min_part_enroll">
<div class="content-box">
<div class="content-box-s">
<div class="plm_menu_name_gdnsi">
<h2>
<span>영업관리_계약현황</span>
</h2>
<div class="btnArea">
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
</div>
</div>
<div id="plmSearchZon">
<table>
<tr>
<td><label for="Year">년도</label></td>
<td>
<select name="Year" id="Year" class="select2" autocomplete="off">
<option value="">선택</option>
<c:forEach begin="${sysYear-4}" end="${sysYear}" var="req_year">
<option value="${req_year}" ${(param.Year eq req_year) or (empty param.Year and req_year eq sysYear) ? 'selected':'' }>${req_year}</option>
</c:forEach>
</select>
</td>
<td><label for="category_cd">구분</label></td>
<td>
<select name="category_cd" id="category_cd" style="" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.category_cd}
</select>
</td>
<td><label for="customer_objid">고객사</label></td>
<td>
<select name="customer_objid" id="customer_objid" style="" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.customer_cd}
</select>
</td>
<td><label for="product">제품구분</label></td>
<td>
<select name="product" id="product" style="" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.product_cd}
</select>
</td>
</tr>
</table>
</div>
<!-- <div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
</div>
</div> -->
<section class="contents_page_basic_margin">
<div style="display: flex; ">
<div class="contents_page_basic_margin" style="width:40%; float:left; ">
<c:set var="total_price" value="0"/>
<font size="3px"> ■ 계약현황<!-- (억원) --> <span id="total_price"></span></font>
<!-- <div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="조회" class="plm_btns" id="btnSearch" name="btnSearch">
</div>
</div> -->
<div style="overflow-y:scroll;">
<table class="plm_table">
<colgroup>
<col width="10%">
<c:if test="${!empty moldKindCdList}">
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
<col width="*">
</c:forEach>
</c:if>
<col width="25%">
<col width="15%">
</colgroup>
<thead>
<tr class="plm_thead">
<td rowspan="2" colspan="" style="font-size:13px;"></td>
<td colspan="${fn:length(moldKindCdList)+1}" style="font-size:13px;">수주확정 건수</td>
<td rowspan="2" class="plm_thead" style="font-size:13px;">출고</td>
</tr>
<tr>
<c:if test="${!empty moldKindCdList}">
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
<td colspan="" class="plm_thead" style="font-size:13px;">${info.NAME}</td>
</c:forEach>
</c:if>
<td colspan="" class="plm_thead" style="font-size:13px;">매출액</td>
</tr>
</thead>
</table>
</div>
<div class="plm_scroll_table" style="height:500px;">
<table class="plm_table">
<colgroup>
<col width="10%">
<c:if test="${!empty moldKindCdList}">
<c:forEach var="info" items="${moldKindCdList}" varStatus="status">
<col width="*">
</c:forEach>
</c:if>
<col width="25%">
<col width="15%">
</colgroup>
<tbody>
<c:choose>
<c:when test="${!empty LIST}">
<c:forEach var="item" items="${LIST}" varStatus="status">
<c:choose>
<c:when test="${empty item.YEAR_MONTH }">
<tr style="background-color:#fbead9;">
<td class="plm_thead" style="font-size:13px;" colspan="">계</td>
<c:if test="${!empty moldKindCdList}">
<c:forEach var="obj2" items="${moldKindCdList}" varStatus="status">
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${obj2.CODE}" />
<c:set var="total_price" value="${total_price+item[contract_cost_month]}"/>
<td class="align_c" style="font-size:13px;" colspan="1">
<a href="#" onclick="javascript:fn_openTargetList('${item.PRODUCT_GROUP}','${obj2.CODE}','contract','year','${item.TARGET_YEAR}','');"><fmt:formatNumber value="${item[contract_cnt_month]}"/></a>
</td>
</c:forEach>
<td class="align_r10"><fmt:formatNumber value="${item[contract_cost_year]}" pattern="#,###.##"/></td>
<td><fmt:formatNumber value="${item[release_cnt_year]}"/></td>
</c:if>
</tr>
</c:when>
<c:otherwise>
<tr>
<td class="plm_thead" style="font-size:13px;">${item.MM}월</td>
<c:if test="${!empty moldKindCdList}">
<c:forEach var="month" items="${moldKindCdList}" varStatus="status">
<c:set var="contract_cnt_month" value="CONTRACT_CNT_MONTH_${month.CODE}" />
<c:set var="contract_cost_year" value="CONTRACT_COST_YEAR_ORG" />
<c:set var="release_cnt_year" value="RELEASE_CNT_YEAR" />
<td style="font-size:13px;">
<a href="#" onclick="javascript:fn_openTargetList('${month.PRODUCT_GROUP}','${month.CODE}','contract','month','${item.TARGET_YEAR}','${item.YEAR_MONTH}');"><fmt:formatNumber value="${item[contract_cnt_month]}"/></a>
</td>
</c:forEach>
<td class="align_r10"><fmt:formatNumber value="${item[contract_cost_year]}"/></td>
<td><fmt:formatNumber value="${item[release_cnt_year]}"/></td>
</c:if>
</tr>
</c:otherwise>
</c:choose>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="9" align="center">조회된 데이터가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
</div>
<div class="in_table_scroll_wrap _table2" style="height:730px;width:30%;float:center;">
<div class="plm_scroll_table" style="height:250px; background-color:#fff;">
<font size="3px" style="margin-left:30px;"> ■ 영업목표 </font>
<!-- <div class="btn_wrap">
<div class="plm_btn_wrap">
<input type="button" value="영업목표등록" class="plm_btns" id="btnRegist" name="btnRegist">
</div>
</div> -->
<table class="plm_table" style="width:400px; margin-left:30px;">
<colgroup>
<col width="">
<col width="">
<col width="">
<col width="">
<col width="">
</colgroup>
<thead>
<tr class="plm_thead">
<td rowspan="2">년도</td>
<td rowspan="2">영업목표 </br> (억원)</td>
<td colspan="3">현황</td>
</tr>
<tr>
<td>계약건수</td>
<td>계약금액</td>
<td>달성율</td>
</tr>
</thead>
<%-- <c:choose>
<c:when test="${!empty LIST}">
<c:forEach var="row" items="${LIST}" varStatus="status">
<tr>
<td title="${info.CONTRACT_NO}"><a href="#" onclick="javascript:fn_projectConceptDetail('${info.OBJID}')">${row.M03_PRICE}</a></td><!-- 계약번호 -->
<td title="${info.CATEGORY_NAME}">${row.M03_CM}</td><!-- 지역 -->
<td title="${info.AREA_NAME}">${row.M03_RM}</td><!-- 지역 -->
<td title="${info.CUSTOMER_NAME}">${row.M01_PRICE}</td><!-- 고객명 -->
<td title="${info.PRODUCT_NAME}"">${row.M01_PRICE}</td><!-- 사업자등록번호 -->
</tr>
</c:forEach>
</c:when>
<c:otherwise>
<tr>
<td colspan="5" align="center">조회된 데이터가 없습니다.</td>
</tr>
</c:otherwise>
</c:choose> --%>
<tr>
<td title="">${yearGoalInfoMap.YEAR}</td><!-- 년도 -->
<td title=""><fmt:formatNumber value="${yearGoalInfoMap.PRICE}"/></td><!-- 영업목표 -->
<td title="">${yearGoalInfoMap.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
<td title=""><fmt:formatNumber value="${yearGoalInfoMap.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
</tr>
<tr>
<td title="">${yearGoalInfoMap1.YEAR}</td><!-- 년도 -->
<td title="">${yearGoalInfoMap1.PRICE}</td><!-- 영업목표 -->
<td title="">${yearGoalInfoMap1.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
<td title=""><fmt:formatNumber value="${yearGoalInfoMap1.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap1.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap1.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
</tr>
<tr>
<td title="">${yearGoalInfoMap2.YEAR}</td><!-- 년도 -->
<td title="">${yearGoalInfoMap2.PRICE}</td><!-- 영업목표 -->
<td title="">${yearGoalInfoMap2.CONTRACT_CNT_YEAR}</td><!-- 계약건수 -->
<td title=""><fmt:formatNumber value="${yearGoalInfoMap2.CONTRACT_COST_YEAR}" pattern="#,###.##" /></td><!-- 계약금액 -->
<td title=""><a href="#" onclick="javascript:fn_openTargetList('','','contract','year','${yearGoalInfoMap2.YEAR}','');"><fmt:formatNumber value="${yearGoalInfoMap2.GOAL_RATE}" pattern="#,###.#" />%</a></td><!-- 달성율 -->
</tr>
</table>
</div>
<div id="piechart" style="height:390px; width:97%; overflow:hidden;margin-left:15px;"></div>
</div>
<div class="in_table_scroll_wrap _table2" style="clear: both; box-sizing: border-box; width:30%; height:730px; float:right;">
<div id="chartDiv1" style="height:250px; overflow:hidden;"></div>
<div id="piechart2" style="height:390px; width:97%; overflow:hidden;margin-left:15px;"></div>
</div>
</div>
</section>
</div>
</div>
</div>
</form>
</body>
</html>