740 lines
26 KiB
Plaintext
740 lines
26 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){
|
|
Swal.fire("수주등록할 영업정보를 선택해주십시오.");
|
|
return false;
|
|
} else if(selectedData.length > 1){
|
|
Swal.fire("한번에 한개의 수주만 등록 가능합니다.");
|
|
return false;
|
|
} else {
|
|
var contractObjId = fnc_checkNull(selectedData[0].OBJID);
|
|
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);
|
|
}
|
|
});
|
|
|
|
|
|
//엔터 조회
|
|
$("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 = [
|
|
{formatter:"rowSelection", titleFormatter:"rowSelection", hozAlign:"center", headerSort:false, width:40, frozen:true},
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '영업번호', field : 'CONTRACT_NO', frozen:true,
|
|
formatter:fnc_createGridAnchorTag,
|
|
cellClick:function(e, cell){
|
|
var objid = fnc_checkNull(cell.getData().OBJID);
|
|
fn_projectConceptDetail(objid);
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '주문유형', field : 'CATEGORY_NAME' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '발주일', field : 'ORDER_DATE' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '발주번호', field : 'PO_NO' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '120', 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 '';
|
|
|
|
// 다른 납기가 있으면 "날짜 외 N건" 형식으로 표시
|
|
if(otherCount && parseInt(otherCount) > 0){
|
|
return dueDate + ' 외 ' + otherCount + '건';
|
|
}
|
|
|
|
return dueDate;
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '고객사', field : 'CUSTOMER_NAME' },
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '180', title : '품명', field : 'ITEM_SUMMARY' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '유/무상', field : 'PAID_TYPE' },
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '수주상태', field : 'CONTRACT_RESULT_NAME' },
|
|
{headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '공급가액', field : 'ORDER_SUPPLY_PRICE_SUM',
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,},
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '부가세', field : 'ORDER_VAT_SUM',
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,},
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'right', width : '100', title : '총액', field : 'ORDER_TOTAL_AMOUNT_SUM',
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,},
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'right', width : '120', title : '원화총액', field : 'ORDER_TOTAL_AMOUNT_KRW',
|
|
formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,},
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '100', 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");
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '150', title : '고객사요청사항', field : 'CUSTOMER_REQUEST' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '결재상태', field : 'APPR_STATUS' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '환종', field : 'CONTRACT_CURRENCY_NAME' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '환율', field : 'EXCHANGE_RATE' },
|
|
{headerHozAlign : 'center', hozAlign : 'center', width : '150', title : 'S/N', field : 'SERIAL_NO',
|
|
formatter: function(cell, formatterParams, onRendered){
|
|
var value = fnc_checkNull(cell.getValue());
|
|
if(value === '') return '';
|
|
|
|
// 쉼표로 구분된 S/N 개수 계산
|
|
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>';
|
|
|
|
// 2개 이상이면 "첫번째 외 N개" 형식
|
|
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);
|
|
}
|
|
},
|
|
{headerHozAlign : 'center', hozAlign : 'left', width : '100', title : '품번', field : 'PART_NO' },
|
|
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '제품구분', field : 'PRODUCT_NAME' },
|
|
// {headerHozAlign : 'center', hozAlign : 'center', width : '85', title : '국내/해외', field : 'AREA_NAME' },
|
|
// {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '접수일', field : 'RECEIPT_DATE' },
|
|
// {headerHozAlign : 'center', hozAlign : 'center', width : '80', title : '수량', field : 'QUANTITY' },
|
|
// {headerHozAlign : 'center', hozAlign : 'center', width : '100', title : '단가', field : 'ORDER_UNIT_PRICE',
|
|
// formatter:"money", formatterParams:{thousand:",", symbolAfter:"", precision:false,},
|
|
// },
|
|
];
|
|
|
|
//var grid;
|
|
function fn_search(){
|
|
// 그리드 조회 및 Total 합계 업데이트를 위한 커스텀 AJAX
|
|
$.ajax({
|
|
url: "/contractMgmt/contractGridList.do",
|
|
type: "POST",
|
|
data: $("#form1").serializeObject(),
|
|
dataType: "json",
|
|
beforeSend: function(){
|
|
_startLoading("Loading...");
|
|
},
|
|
complete: function(){
|
|
_endLoading();
|
|
},
|
|
success: function(response) {
|
|
// 그리드 데이터 설정
|
|
if(_tabulGrid){
|
|
_tabulGrid.setData(response.RESULTLIST || []);
|
|
} else {
|
|
// 그리드 초기화
|
|
_tabulGrid = new Tabulator("#mainGrid", {
|
|
layout: _tabul_layout_fitColumns,
|
|
columns: columns,
|
|
data: response.RESULTLIST || [],
|
|
selectable: true
|
|
});
|
|
}
|
|
|
|
// 조회된 전체 데이터의 합계 계산
|
|
var totalSupplyPrice = 0;
|
|
var totalVat = 0;
|
|
var totalAmount = 0;
|
|
|
|
if(response.RESULTLIST && response.RESULTLIST.length > 0) {
|
|
response.RESULTLIST.forEach(function(row) {
|
|
var supplyPrice = parseFloat(row.ORDER_SUPPLY_PRICE_SUM || 0);
|
|
var vat = parseFloat(row.ORDER_VAT_SUM || 0);
|
|
var amount = parseFloat(row.ORDER_TOTAL_AMOUNT_SUM || 0);
|
|
|
|
totalSupplyPrice += supplyPrice;
|
|
totalVat += vat;
|
|
totalAmount += amount;
|
|
});
|
|
}
|
|
|
|
// 합계 표시
|
|
$("#totalSupplyPrice").text(Number(totalSupplyPrice).toLocaleString());
|
|
$("#totalVat").text(Number(totalVat).toLocaleString());
|
|
$("#totalAmount").text(Number(totalAmount).toLocaleString());
|
|
|
|
// 페이징 HTML 업데이트
|
|
if(response.PAGE_HTML){
|
|
$(".table_paging_wrap").html(response.PAGE_HTML);
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
alert("데이터 조회 중 오류가 발생했습니다.");
|
|
console.error(error);
|
|
}
|
|
});
|
|
}
|
|
|
|
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){
|
|
var popup_width = 800;
|
|
var popup_height = 650;
|
|
|
|
var objId = objId;
|
|
var docType = docType;
|
|
var docTypeName = docTypeName;
|
|
var params = "?targetObjId="+objId+"&docType="+docType+"&docTypeName="+docTypeName;
|
|
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">
|
|
</div>
|
|
</div>
|
|
<div id="plmSearchZon">
|
|
<table>
|
|
<tr>
|
|
<td><label for="category_cd">주문유형</label></td>
|
|
<td>
|
|
<select name="category_cd" id="category_cd" style="width:150px" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.category_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td class="">
|
|
<label for="" class="">발주번호</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="search_poNo" id="search_poNo" value="${param.search_poNo}"/>
|
|
</td>
|
|
|
|
<td><label for="customer_objid">고객사</label></td>
|
|
<td>
|
|
<select name="customer_objid" id="customer_objid" style="width:190px" 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="width:130px" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.product_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="area_cd">국내/해외</label></td>
|
|
<td>
|
|
<select name="area_cd" id="area_cd" style="" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
<option value="0001220">국내</option>
|
|
<option value="0001221">해외</option>
|
|
</select>
|
|
</td>
|
|
|
|
<td><label for="paid_type">유/무상</label></td>
|
|
<td>
|
|
<select name="paid_type" id="paid_type" style="width:130px" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
<option value="paid">유상</option>
|
|
<option value="free">무상</option>
|
|
</select>
|
|
</td>
|
|
--%>
|
|
|
|
<td class="align_r">
|
|
<label for="" class="">품번</label>
|
|
</td>
|
|
<td>
|
|
<select name="search_partNo" id="search_partNo" class="select2-part" style="width: 100%;">
|
|
<option value="">품번 선택</option>
|
|
</select>
|
|
<input type="hidden" name="search_partObjId" id="search_partObjId" value=""/>
|
|
</td>
|
|
<td class="align_r">
|
|
<label for="" class="">품명</label>
|
|
</td>
|
|
<td>
|
|
<select name="search_partName" id="search_partName" class="select2-part" style="width: 100%;">
|
|
<option value="">품명 선택</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="">
|
|
<label for="" class="">S/N</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="search_serialNo" id="search_serialNo" value="${param.search_serialNo}"/>
|
|
</td>
|
|
|
|
<td><label for="contract_result">수주상태</label></td>
|
|
<td>
|
|
<select name="contract_result" id="contract_result" style="width:130px" class="select2" autocomplete="off">
|
|
<option value="">선택</option>
|
|
${code_map.result_cd}
|
|
</select>
|
|
</td>
|
|
|
|
<td class="">
|
|
<label>발주일</label>
|
|
</td>
|
|
<td colspan="3">
|
|
<input type="text" name="order_start_date" id="order_start_date" style="width:90px;" autocomplete="off" value="${param.order_start_date}" class="date_icon">~
|
|
<input type="text" name="order_end_date" id="order_end_date" style="width:90px;" autocomplete="off" value="${param.order_end_date}" class="date_icon">
|
|
</td>
|
|
|
|
<td class="">
|
|
<label>요청납기</label>
|
|
</td>
|
|
<td colspan="3">
|
|
<input type="text" name="due_start_date" id="due_start_date" style="width:90px;" autocomplete="off" value="${param.due_start_date}" class="date_icon">~
|
|
<input type="text" name="due_end_date" id="due_end_date" style="width:90px;" autocomplete="off" value="${param.due_end_date}" class="date_icon">
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<!-- Total 합계 표시 영역 -->
|
|
<div style="padding: 3px 10px; background: #f5f5f5; border-radius: 3px; margin: 10px 0;">
|
|
<span style="font-weight: bold; font-size: 12px; margin-right: 20px;">
|
|
Total 공급가액: <span id="totalSupplyPrice" style="color: #2196F3;">0</span> 원
|
|
</span>
|
|
<span style="font-weight: bold; font-size: 12px; margin-right: 20px;">
|
|
Total 부가세: <span id="totalVat" style="color: #FF9800;">0</span> 원
|
|
</span>
|
|
<span style="font-weight: bold; font-size: 12px;">
|
|
Total 총액: <span id="totalAmount" style="color: #4CAF50;">0</span> 원
|
|
</span>
|
|
</div>
|
|
|
|
<%@include file= "/WEB-INF/view/common/common_gridArea.jsp" %>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</body>
|
|
</html> |