Files
wace_plm/WebContent/WEB-INF/view/contractMgmt/orderMgmtList.jsp

852 lines
31 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" %>
<%
PersonBean person = (PersonBean)session.getAttribute(Constants.PERSON_BEAN);
String connector = person.getUserId();
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=Constants.SYSTEM_NAME%></title>
<c:set var="now" value="<%=new java.util.Date() %>"/>
<c:set var="sysYear"><fmt:formatDate value="${now}" pattern="yyyy" /></c:set>
<c:set var="connector" value="<%=connector %>" />
<script>
$(document).ready(function(){
//날짜
_fnc_datepick();
$('.select2').select2();
// 품번/품명 Select2 AJAX 초기화 (common.js의 새 함수 사용)
initPartSelect2Ajax("#search_partNo", "#search_partName", "#search_partObjId", {
debug: false // 디버깅 모드 비활성화
});
$("#btnSearch").click(function(){
$("#page").val("1");
fn_search();
});
//SR자료등록 팝업
$(".File").click(function(){
var popup_width = 800;
var popup_height = 335;
var objId = $(this).attr("data-OBJID");
var docType =$(this).attr("data-docType");
var docTypeName = $(this).attr("data-docTypeName");
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
var url = "/projectConcept/FileRegistPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
});
//수주 등록 팝업
$(".btnRegist").click(function(){
var selectedData = _tabulGrid.getSelectedData();
if(selectedData.length < 1){
// 선택이 없으면 견적요청+수주 통합 등록 팝업 오픈
var popup_width = 1600;
var popup_height = 800;
var params = "?actionType=regist";
var url = "/contractMgmt/estimateAndOrderRegistFormPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
} else if(selectedData.length > 1){
Swal.fire("한번에 한개의 수주만 등록 가능합니다.");
return false;
} else {
var contractObjId = fnc_checkNull(selectedData[0].OBJID);
var isDirectOrder = fnc_checkNull(selectedData[0].IS_DIRECT_ORDER);
// 통합 등록 건이면 통합 팝업 오픈 (수정 모드)
if(isDirectOrder === 'Y') {
var popup_width = 1600;
var popup_height = 800;
var params = "?actionType=update&objId="+contractObjId;
var url = "/contractMgmt/estimateAndOrderRegistFormPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
} else {
// 일반 견적요청 건이면 기존 수주등록 팝업 오픈
var popup_width = 1400;
var popup_height = 450;
var params = "?actionType=regist&contractObjId="+contractObjId;
var url = "/contractMgmt/orderRegistFormPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
}
}
});
//결재상신
$("#btnApproval").click(function(){
var selectedData = _tabulGrid.getSelectedData();
if(selectedData.length<1){
Swal.fire("결재상신할 행을 선택해주십시오.");
return false;
}else if(selectedData.length>1){
Swal.fire("한번에 한개의 결재만 가능합니다.");
return false;
}else{
var targetStatus = fnc_checkNull(selectedData[0].APPR_STATUS);
var status = fnc_checkNull(selectedData[0].STATUS);
if(targetStatus == "결재완료" || targetStatus == "결재중" || status == "cancel"){
Swal.fire("작성중/결재반려인 상태만 결재상신 가능합니다.");
return false;
}else{
if(confirm("결재상신 하시겠습니까?")){
var objId = fnc_checkNull(selectedData[0].OBJID);
var title = encodeURIComponent(fnc_checkNull(selectedData[0].CONTRACT_NO));
window.open("/approval/registApproval.do?targetType=CONTRACT_ORDER&targetObjId="+objId+"&approvalTitle="+title,"registApproval","width=700,height=700");
}
}
}
});
//엔터 조회
$("input").keyup(function(e){
if(e.keyCode == 13){
$("#page").val("1");
fn_search();
}
});
//삭제
$("#btnDelete").click(function(){
fn_delete();
});
$("#btnExcel").click(function(){
document.form1.actionType.value = "excel";
document.form1.action = "/contractMgmt/contractList.do";
document.form1.submit();
});
fn_search();
});
var columns = [
// 컬럼 순서: 영업번호, 주문유형, 발주일, 발주번호, 요청납기, 고객사, 품명, 수주수량, 유무상, 수주상태, 공급가액, 부가세, 총액, 원화총액, 주문서첨부, 고객사요청사항, 결재상태, 환종, 환율, S/N, 품번
// 1. 영업번호
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 75, widthGrow: 1, title : '영업번호', field : 'CONTRACT_NO', frozen:true,
formatter:fnc_createGridAnchorTag,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
fn_projectConceptDetail(objid);
}
},
// 2. 주문유형
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 55, widthGrow: 0.6, title : '주문유형', field : 'CATEGORY_NAME' },
// 3. 발주일
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.7, title : '발주일', field : 'ORDER_DATE' },
// 4. 발주번호
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.8, title : '발주번호', field : 'PO_NO' },
// 5. 요청납기
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.7, title : '요청납기', field : 'EARLIEST_DUE_DATE',
formatter: function(cell, formatterParams, onRendered){
var dueDate = fnc_checkNull(cell.getValue());
var otherCount = fnc_checkNull(cell.getData().OTHER_DUE_DATE_COUNT);
if(dueDate === '') return '';
if(otherCount && parseInt(otherCount) > 0){
return dueDate + ' 외 ' + otherCount + '건';
}
return dueDate;
}
},
// 6. 고객사
{headerHozAlign : 'center', hozAlign : 'left', minWidth : 80, widthGrow: 1, title : '고객사', field : 'CUSTOMER_NAME' },
// 7. 품명
{headerHozAlign : 'center', hozAlign : 'left', minWidth : 100, widthGrow: 1.2, title : '품명', field : 'ITEM_SUMMARY',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '') return '';
return value;
}
},
// 8. 수주수량
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 60, widthGrow: 0.7, title : '수주수량', field : 'ORDER_QUANTITY',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
return Number(value).toLocaleString();
}
},
// 9. 유/무상
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 45, widthGrow: 0.5, title : '유/무상', field : 'PAID_TYPE' },
// 10. 수주상태
{headerHozAlign : 'center', hozAlign : 'left', minWidth : 60, widthGrow: 0.7, title : '수주상태', field : 'CONTRACT_RESULT_NAME' },
// 11. 공급가액
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 75, widthGrow: 0.8, title : '공급가액', field : 'ORDER_SUPPLY_PRICE_SUM',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
var rowData = cell.getRow().getData();
var currencyName = rowData.CONTRACT_CURRENCY_NAME || '';
var currencySymbol = '';
if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩';
else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$';
else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€';
else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥';
else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥';
return currencySymbol + Number(value).toLocaleString();
}
},
// 12. 부가세
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 65, widthGrow: 0.7, title : '부가세', field : 'ORDER_VAT_SUM',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
var rowData = cell.getRow().getData();
var currencyName = rowData.CONTRACT_CURRENCY_NAME || '';
var currencySymbol = '';
if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩';
else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$';
else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€';
else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥';
else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥';
return currencySymbol + Number(value).toLocaleString();
}
},
// 13. 총액
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 70, widthGrow: 0.8, title : '총액', field : 'ORDER_TOTAL_AMOUNT_SUM',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
var rowData = cell.getRow().getData();
var currencyName = rowData.CONTRACT_CURRENCY_NAME || '';
var currencySymbol = '';
if(currencyName.includes('원') || currencyName === 'KRW') currencySymbol = '₩';
else if(currencyName.includes('달러') || currencyName === 'USD') currencySymbol = '$';
else if(currencyName.includes('유로') || currencyName === 'EUR') currencySymbol = '€';
else if(currencyName.includes('엔') || currencyName === 'JPY') currencySymbol = '¥';
else if(currencyName.includes('위안') || currencyName === 'CNY') currencySymbol = '¥';
return currencySymbol + Number(value).toLocaleString();
}
},
// 14. 원화총액
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 80, widthGrow: 0.9, title : '원화총액', field : 'ORDER_TOTAL_AMOUNT_KRW',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
return '₩' + Number(value).toLocaleString();
}
},
// 15. 주문서첨부
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 50, widthGrow: 0.5, title : '주문서첨부', field : 'CU01_CNT' ,
formatter:fnc_subInfoValueFormatter,
cellClick:function(e, cell){
var objid = fnc_checkNull(cell.getData().OBJID);
fn_FileRegist(objid,"ORDER_DOC","ORDER_DOC","CU01_CNT");
}
},
// 16. 고객사요청사항
{headerHozAlign : 'center', hozAlign : 'left', minWidth : 100, widthGrow: 1, title : '고객사요청사항', field : 'CUSTOMER_REQUEST' },
// 17. 결재상태
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 60, widthGrow: 0.7, title : '결재상태', field : 'APPR_STATUS',
formatter:fnc_createGridAnchorTag,
cellClick:function(e, cell){
var APPROVAL_OBJID = fnc_checkNull(cell.getData().APPROVAL_OBJID);
var ROUTE_OBJID = fnc_checkNull(cell.getData().ROUTE_OBJID);
if(APPROVAL_OBJID != '' || ROUTE_OBJID != ''){
approval_form(APPROVAL_OBJID,ROUTE_OBJID);
}
}
},
// 18. 환종
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 50, widthGrow: 0.5, title : '환종', field : 'CONTRACT_CURRENCY_NAME' },
// 19. 환율
{headerHozAlign : 'center', hozAlign : 'right', minWidth : 55, widthGrow: 0.6, title : '환율', field : 'EXCHANGE_RATE',
formatter: function(cell) {
var value = cell.getValue();
if(!value || value === '' || value === '0') return '';
return Number(value).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
}
},
// 20. S/N
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 80, widthGrow: 0.8, title : 'S/N', field : 'SERIAL_NO',
formatter: function(cell, formatterParams, onRendered){
var value = fnc_checkNull(cell.getValue());
if(value === '') return '';
var serialNumbers = value.split(',').map(function(s){ return s.trim(); }).filter(function(s){ return s !== ''; });
var count = serialNumbers.length;
if(count === 0) return '';
if(count === 1) return '<a href="javascript:void(0);">' + serialNumbers[0] + '</a>';
var displayText = serialNumbers[0] + ' 외 ' + (count - 1) + '개';
return '<a href="javascript:void(0);">' + displayText + '</a>';
},
cellClick:function(e, cell){
var serialNo = fnc_checkNull(cell.getData().SERIAL_NO);
fn_showSerialNoPopup(serialNo);
}
},
// 21. 품번
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.8, title : '품번', field : 'PART_NO' },
/* 주석처리된 컬럼 - 필요시 활성화 */
/*
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 55, widthGrow: 0.6, title : '제품구분', field : 'PRODUCT_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 55, widthGrow: 0.6, title : '국내/해외', field : 'AREA_NAME' },
{headerHozAlign : 'center', hozAlign : 'center', minWidth : 70, widthGrow: 0.7, title : '접수일', field : 'RECEIPT_DATE' },
*/
];
//var grid;
function fn_search(){
// fnc_tabul_search로 페이징 처리
_tabulGrid = fnc_tabul_search(
_tabul_layout_fitColumns,
_tabulGrid,
"/contractMgmt/contractGridList.do",
columns,
true
);
// 데이터 렌더링 완료 후 합계 계산 (한 번만 실행)
if(_tabulGrid) {
// 기존 이벤트 제거 후 재등록
_tabulGrid.off("renderComplete");
_tabulGrid.on("renderComplete", function(){
fn_calculateTotalFromGrid();
// 그리드 렌더링 완료 후 높이 계산
fnc_calculateContentHeight("gridDiv", 30);
});
}
// 윈도우 리사이즈 이벤트 (한 번만 등록)
$(window).off("resize.gridHeight").on("resize.gridHeight", function() {
fnc_calculateContentHeight("gridDiv", 30);
});
}
// 그리드에 표시된 데이터의 원화총액 합계 계산
function fn_calculateTotalFromGrid(){
if(!_tabulGrid) {
console.log("⚠️ [주문서관리] 그리드가 초기화되지 않음");
$("#totalAmount").text("0");
return;
}
// 현재 그리드에 표시된 데이터만 가져오기
var data = _tabulGrid.getData();
var totalAmountKRW = 0;
console.log("🔍 [주문서관리] 표시된 데이터 개수:", data.length);
if(data.length > 0) {
// ORDER_TOTAL_AMOUNT_KRW 합산
data.forEach(function(row) {
var amountKRW = parseFloat(row.ORDER_TOTAL_AMOUNT_KRW || 0);
totalAmountKRW += amountKRW;
});
}
console.log("✅ [주문서관리] 표시된 데이터 합계:", totalAmountKRW);
$("#totalAmount").text(Number(totalAmountKRW).toLocaleString());
}
function _fnc_datepick(){
var $dateinput = $("input.date_icon");
for(var i=0; i<$dateinput.length; i++){
$dateinput.eq(i).attr("size","10");
$dateinput.eq(i).datepicker({
changeMonth:true,
changeYear:true
});
}
}
function fn_delete(){
var checkedObj = _tabulGrid.getSelectedData();
if(0 < checkedObj.length){
var objId = fnc_checkNull(checkedObj[0].OBJID);
//if(confirm("선택한 정보를 삭제하시겠습니까?")){
Swal.fire({
title: '선택한 고객정보를 삭제하시겠습니까?',
text: '',
icon: 'warning',
showCancelButton: true, // cancel버튼 보이기. 기본은 원래 없음
confirmButtonColor: '#3085d6', // confrim 버튼 색깔 지정
cancelButtonColor: '#d33', // cancel 버튼 색깔 지정
confirmButtonText: '확인', // confirm 버튼 텍스트 지정
cancelButtonText: '취소', // cancel 버튼 텍스트 지정
reverseButtons: false, // 버튼 순서 거꾸로
}).then(result => {
// 만약 Promise리턴을 받으면,
if (result.isConfirmed) { // 만약 모달창에서 confirm 버튼을 눌렀다면
//var param = $("#form1").serialize();
$.ajax({
type : "POST",
url : "/contractMgmt/deleteContractMngInfo.do",
data: {
"objId":objId
},
dataType:"json",
success:function(data){
if(data.result == 'true'){
Swal.fire("삭제되었습니다.");
fn_search();
};
}
,error: function(jqxhr, status, error){
}
});
}
});
}else{
Swal.fire("선택한 항목이 없습니다.");
}
}
function approval_form(APPROVAL_OBJID,ROUTE_OBJID){
url = "/approval/approvalDetail.do?approvalObjId="+APPROVAL_OBJID+"&routeObjId="+ROUTE_OBJID;
fn_centerPopup(650,400,url,'approvalDetailPopup')
}
function fn_FileRegist(objId, docType, docTypeName, columnField){
var popup_width = 800;
var popup_height = 650;
var objId = objId;
var docType = docType;
var docTypeName = docTypeName;
var columnField = columnField || '';
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName+"&columnField="+columnField;
var url = "/contractMgmt/FileRegistPopup.do"+params;
fn_centerPopup(popup_width, popup_height, url);
}
//영업활동등록 상세 (뷰 전용 팝업)
function fn_projectConceptDetail(objId){
var popup_width = 900;
var popup_height = 700;
var url = "/contractMgmt/estimateViewPopup.do?objId="+objId;
fn_centerPopup(popup_width, popup_height, url);
}
//검토내용 상세
function fn_projectConceptReviewDetail(objId){
var popup_width = 800;
var popup_height = 250;
var url = "/contractMgmt/contracMgmtReviewFormPopup.do?objId="+objId;
fn_centerPopup(popup_width, popup_height, url);
}
// 견적서 목록 팝업
function fn_showEstimateList(contractObjId){
$.ajax({
url: "/contractMgmt/getEstimateTemplateList.do",
type: "POST",
data: { objId: contractObjId },
dataType: "json",
success: function(data){
//console.log("견적서 목록 응답:", data); // 디버깅용
if(data.result === "success" && data.list && data.list.length > 0){
var html = '<div style="max-height: 400px; overflow-y: auto;">';
html += '<table style="width: 100%; border-collapse: collapse;">';
html += '<thead><tr style="background-color: #f0f0f0;">';
html += '<th style="border: 1px solid #ddd; padding: 8px;">차수</th>';
html += '<th style="border: 1px solid #ddd; padding: 8px;">견적서 유형</th>';
html += '<th style="border: 1px solid #ddd; padding: 8px;">견적번호</th>';
html += '<th style="border: 1px solid #ddd; padding: 8px;">작성일</th>';
html += '<th style="border: 1px solid #ddd; padding: 8px;">작성자</th>';
html += '</tr></thead><tbody>';
data.list.forEach(function(item){
//console.log("견적서 항목:", item); // 디버깅용
// 대문자/소문자 모두 지원하도록 안전하게 처리
var objid = item.OBJID || item.objid || '';
var templateType = item.TEMPLATE_TYPE || item.template_type || item.templateType || '';
var revision = item.REVISION || item.revision || '';
var templateTypeName = item.TEMPLATE_TYPE_NAME || item.template_type_name || item.templateTypeName || '';
var estimateNo = item.ESTIMATE_NO || item.estimate_no || item.estimateNo || '-';
var regdate = item.REGDATE || item.regdate || '';
var writer = item.WRITER || item.writer || '';
html += '<tr style="cursor: pointer;" onclick="fn_openEstimateByObjId(\'' + objid + '\', \'' + templateType + '\')">';
html += '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' + revision + '차</td>';
html += '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' + templateTypeName + '</td>';
html += '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' + estimateNo + '</td>';
html += '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' + regdate + '</td>';
html += '<td style="border: 1px solid #ddd; padding: 8px; text-align: center;">' + writer + '</td>';
html += '</tr>';
});
html += '</tbody></table></div>';
Swal.fire({
title: '견적서 목록',
html: html,
width: '700px',
showConfirmButton: false,
showCancelButton: true,
cancelButtonText: '닫기'
});
} else {
Swal.fire({
title: '견적서가 없습니다',
text: '작성된 견적서가 없습니다.',
icon: 'info'
});
}
},
error: function(xhr, status, error){
console.error("견적서 목록 조회 오류:", xhr, status, error); // 디버깅용
Swal.fire({
title: '오류',
text: '견적서 목록 조회 중 오류가 발생했습니다.',
icon: 'error'
});
}
});
}
// OBJID로 견적서 열기
function fn_openEstimateByObjId(templateObjId, templateType){
Swal.close();
var popup_width = 900;
var popup_height = 800;
var url = "";
if(templateType === "1"){
// 일반 견적서
url = "/contractMgmt/estimateTemplate1.do?templateObjId="+templateObjId;
} else if(templateType === "2"){
// 장비 견적서
url = "/contractMgmt/estimateTemplate2.do?templateObjId="+templateObjId;
}
window.open(url, "estimateTemplate_"+templateObjId, "width="+popup_width+",height="+popup_height+",menubar=no,scrollbars=yes,resizable=yes");
}
//견적서 양식 열기 (CONTRACT_OBJID로)
function fn_openEstimateTemplate(objId, templateType){
var popup_width = 900;
var popup_height = 800;
var url = "";
if(templateType === "1"){
// 일반 견적서
url = "/contractMgmt/estimateTemplate1.do?objId="+objId;
} else if(templateType === "2"){
// 장비 견적서
url = "/contractMgmt/estimateTemplate2.do?objId="+objId;
}
window.open(url, "estimateTemplate", "width="+popup_width+",height="+popup_height+",menubar=no,scrollbars=yes,resizable=yes");
}
// S/N 목록 팝업 표시
function fn_showSerialNoPopup(serialNoString){
if(!serialNoString || serialNoString === ''){
Swal.fire("S/N 정보가 없습니다.");
return;
}
// 쉼표로 구분된 S/N을 배열로 변환
var serialNumbers = serialNoString.split(',').map(function(sn){ return sn.trim(); });
// HTML 리스트 생성
var listHtml = '<div style="text-align: left; max-height: 400px; overflow-y: auto;">';
listHtml += '<ol style="padding-left: 20px; margin: 10px 0;">';
serialNumbers.forEach(function(sn, index){
listHtml += '<li style="padding: 5px 0; font-size: 14px;">' + sn + '</li>';
});
listHtml += '</ol>';
listHtml += '</div>';
// SweetAlert2로 팝업 표시
Swal.fire({
title: 'S/N 목록',
html: listHtml,
icon: 'info',
width: 500,
confirmButtonText: '확인',
confirmButtonColor: '#3085d6'
});
}
//코드값을 받아와서 동적으로 selectbox 생성
function optionJobGroup(code){
var val=code;
var params = "";
var option="";
var combobox = $("#writer");
combobox.empty();
if(val!=""){
params += "codeId="+val;
$.ajax({
type : "POST",
url : "/projectConcept/makewrite.do",
data : params,
dataType:"json",
async: false,
success: function(data){
if(data.RESULT !=""){
option += "<option value=''>전체</option>";
option += data.RESULT;
combobox.append(option);
}
}
});
// alert(Number(lev-1));
//$("#code"+Number(lev-1)).val(code).prop("selected", true);
}else{
option += "<option value=''>전체</option>";
combobox.append(option);
}
}
//코드값을 받아와서 동적으로 selectbox 생성
function makeSelect(code){
var val=code;
var params = "";
var option="";
var combobox = $("#outc_cd6_td");
combobox.empty();
/* <select name="outc_cd6" id="outc_cd6" type="select">
<option value="">선택</option>
</select> */
if(val!="" && val!="PLA03000"){
params += "codeId="+val;
$.ajax({
type : "POST",
url : "/ordermgmt/makeCodeselect.do",
data : params,
dataType:"json",
async: false,
success: function(data){
if(data.RESULT !=""){
option += "<select name='outc_cd6' id='outc_cd6' type='select'>"
option += "<option value=''>선택</option>";
option += data.RESULT;
option += "</select>";
combobox.append(option);
$("#outc_cd6").val("${param.outc_cd6}");
//$("#outc_cd6").select2();
}
}
});
}else{
if(val=="PLA03000"){
option += "<input type='text' name='outc_cd6' id='outc_cd6' value='${param.outc_cd6}'>"
combobox.append(option);
}else{
option += "<select name='outc_cd6' id='outc_cd6' type='select'>"
option += "<option value=''>선택</option>";
option += "</select>";
combobox.append(option);
//$("#outc_cd6").select2();
}
}
}
function saveexcelpop() {
var partLength = $("input[name=partCheckBox]:checked").length;
if(partLength == 0){
Swal.fire('선택된 영업정보가 없습니다.');
return;
}
if(partLength > 1){
Swal.fire('단건씩 선택해 주세요');
return;
}
var orderobjId ="";
$("input[name=partCheckBox]:checked").each(function(){
orderobjId = fnc_checkNull($(this).attr("data-objId").replace(" ",""));
});
var url = "/ordermgmt/openOrderExcelImportPopUp.do?orderobjId="+orderobjId;
var target = "openOrderExcelImportPopUp";
window.open(url, target,"width=1245, height=700, menubars=no, scrollbars=yes, resizable=yes");
}
//프로젝트의 form,detail 팝업을 보여준다.
function openProjectFormPopUp(objId){
window.open("","projectFormPopUp","width=1150, height=676");
var params = "?actionType=regist"
var url = "/project/projectFormPopUp.do"+params;
if("" != objId){
url = "/project/projectDetailPopUp.do";
}
var form = document.form1;
form.objId.value = objId;
form.action = url;
form.target = "projectFormPopUp";
form.submit();
}
</script>
</head>
<body class="bodyNoScroll">
<form name="form1" id="form1" action="" method="post">
<input type="hidden" name="actionType" value="" />
<!-- 대시보드용 -->
<input type="hidden" name="contract_month" id="contract_month" value="${param.contract_month}">
<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 btnRegist">
<input type="button" value="결재상신" class="plm_btns" id="btnApproval">
</div>
</div>
<div id="plmSearchZon">
<!-- 검색필터: 주문유형, 발주번호, 고객사, 품번, 품명, S/N, 수주상태, 발주일(기간), 요청납기(기간) -->
<div style="display: flex; flex-wrap: wrap; gap: 10px 15px; align-items: center;">
<!-- 주문유형 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="category_cd">주문유형</label>
<select name="category_cd" id="category_cd" style="width:120px" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.category_cd}
</select>
</div>
<!-- 발주번호 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="search_poNo">발주번호</label>
<input type="text" name="search_poNo" id="search_poNo" value="${param.search_poNo}" style="width:100px;"/>
</div>
<!-- 고객사 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="customer_objid">고객사</label>
<select name="customer_objid" id="customer_objid" style="width:150px" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.customer_cd}
</select>
</div>
<!-- 품번 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="search_partNo">품번</label>
<select name="search_partNo" id="search_partNo" class="select2-part" style="width: 120px;">
<option value="">품번 선택</option>
</select>
<input type="hidden" name="search_partObjId" id="search_partObjId" value=""/>
</div>
<!-- 품명 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="search_partName">품명</label>
<select name="search_partName" id="search_partName" class="select2-part" style="width: 120px;">
<option value="">품명 선택</option>
</select>
</div>
<!-- S/N -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="search_serialNo">S/N</label>
<input type="text" name="search_serialNo" id="search_serialNo" value="${param.search_serialNo}" style="width:100px;"/>
</div>
<!-- 수주상태 -->
<div style="display: flex; align-items: center; gap: 5px;">
<label for="contract_result">수주상태</label>
<select name="contract_result" id="contract_result" style="width:120px" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.result_cd}
</select>
</div>
<!-- 발주일 (기간) -->
<div style="display: flex; align-items: center; gap: 5px;">
<label>발주일</label>
<input type="text" name="order_start_date" id="order_start_date" autocomplete="off" value="${param.order_start_date}" class="date_icon" style="width:90px;"> ~
<input type="text" name="order_end_date" id="order_end_date" autocomplete="off" value="${param.order_end_date}" class="date_icon" style="width:90px;">
</div>
<!-- 요청납기 (기간) -->
<div style="display: flex; align-items: center; gap: 5px;">
<label>요청납기</label>
<input type="text" name="due_start_date" id="due_start_date" autocomplete="off" value="${param.due_start_date}" class="date_icon" style="width:90px;"> ~
<input type="text" name="due_end_date" id="due_end_date" autocomplete="off" value="${param.due_end_date}" class="date_icon" style="width:90px;">
</div>
</div>
</div>
<!-- 주석처리된 검색필터 - 필요시 활성화
<div style="display: flex; align-items: center; gap: 5px;">
<label for="product">제품구분</label>
<select name="product" id="product" style="width:120px" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.product_cd}
</select>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<label for="area_cd">국내/해외</label>
<select name="area_cd" id="area_cd" style="width:100px" class="select2" autocomplete="off">
<option value="">선택</option>
<option value="0001220">국내</option>
<option value="0001221">해외</option>
</select>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<label for="paid_type">유/무상</label>
<select name="paid_type" id="paid_type" style="width:90px" class="select2" autocomplete="off">
<option value="">선택</option>
<option value="paid">유상</option>
<option value="free">무상</option>
</select>
</div>
<div style="display: flex; align-items: center; gap: 5px;">
<label for="contract_currency">견적환종</label>
<select name="contract_currency" id="contract_currency" style="width:100px" class="select2" autocomplete="off">
<option value="">선택</option>
${code_map.contract_currency}
</select>
</div>
-->
<!-- Total 합계 표시 영역 (그리드 위) -->
<div style="padding:5px 10px; background: #f5f5f5;">
<span style="font-weight: bold; font-size: 13px;">
수주 금액 : <span id="totalAmount" style="color: #4CAF50;">0</span> 원
</span>
</div>
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
</div>
</div>
</form>
</body>
</html>