발주서 양식 수정

This commit is contained in:
2025-12-01 11:46:28 +09:00
parent 3793f8dfbb
commit 6ec2465099
2 changed files with 2455 additions and 497 deletions

View File

@@ -91,7 +91,7 @@ $(document).ready(function(){
//상신된 결재라인 가져오기
fn_getApprLine();
//구매요청서 정보 가져오기
fn_getSalesRequest();
//fn_getSalesRequest();
//grid.data = $.parseJSON($("#gridDetailList").val());
@@ -108,227 +108,38 @@ $(document).ready(function(){
,datatype: "local"
,data : $.parseJSON($("#gridDetailList").val())
,colNames: ["OBJID","PART_OBJID","LD_PART_OBJID"
,"품명"
,"품번"
//,"품번2"
,"규격","메이커","단위","설계수량","수량","실발주수량"
,"공급단가"
//,"레이져단가","용접단가","가공단가","후처리단가"
,"공급가","부가세","부가세포함공급가"
,"총발주수량","재고수량","재고수량(org)","총실발주수량","실공급가" //sum
,"품명","품번","규격","메이커","단위"
,"수량","단가","공급가"
]
,colModel: [
{name:"OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
,{name:"PART_OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
,{name:"LD_PART_OBJID" , index:"", width: 0, align:"center", hidden: true, sortable:false, editable:false}
,{name:"PART_NAME" , index:"", width:200, align:"left", hidden:false, sortable:false, editable:false
{name:"OBJID" , hidden: true, sortable:false, editable:false}
,{name:"PART_OBJID" , hidden: true, sortable:false, editable:false}
,{name:"LD_PART_OBJID" , hidden: true, sortable:false, editable:false}
,{name:"PART_NAME" , width:300, align:"left", sortable:false, editable:false}
,{name:"PART_NO" , width:300, align:"left", sortable:false, editable:false, formatter:setLink}
,{name:"SPEC" , width:180, align:"left", sortable:false, editable:false}
,{name:"MAKER" , width:180, align:"left", sortable:false, editable:false}
,{name:"UNIT" , width:60, align:"center", sortable:false, editable:true
,edittype:"select", formatter:"select"
,editoptions:{ value: unit_cd }
}
,{name:"ORDER_QTY" , width:90, align:"right", sortable:false, editable:<%=isModify%>
,formatter:"integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "left"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { }} ]
dataInit: function(e){ e.style.textAlign = "right"; }
,dataEvents: [{type:"change", fn:function(e){ gridFn.calcRowAll(e); }}]
}
}
,{name:"PART_NO" , index:"", width:200, align:"left", hidden:false, sortable:false, editable:false
<%--
,formatter:'showlink'
,formatoptions:{baseLinkUrl:'/partMng/partMngDetailPopUp.do', //?OBJID=
//addParam: '&action=display&OBJID='
//baseLinkUrl:'javascript:openPartMngPopup()',
idName:'OBJID',
addParam: function (options) {
//console.log(options.rowData.PART_OBJID);
//return "/partMng/partMngDetailPopUp.do?OBJID=" + options.rowData.PART_OBJID;
//return 'openPartMngPopup(\"" + rowObject.PART_OBJID + "\");'
//return 'openPartMngPopup(' + rowData.PART_OBJID + ')';
return rowData.PART_OBJID;
}
}
--%>
,formatter:setLink
,{name:"PARTNER_PRICE" , width:110, align:"right", sortable:false, editable:true
,formatter:"integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "left"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { }} ]
dataInit: function(e){ e.style.textAlign = "right"; }
,dataEvents: [{type:"change", fn:function(e){ gridFn.calcRowAll(e); }}]
}
}
<%--
,{name:"PART_OBJID" , index:"", width:110, align:"left", hidden:false, sortable:false, editable:false
,formatter:'showlink'
,formatoptions:{baseLinkUrl:'/partMng/partMngDetailPopUp.do', //?OBJID=
//addParam: '&action=display&OBJID='
//baseLinkUrl:'javascript:openPartMngPopup()',
idName:'PART_OBJID',
/*
addParam: function (options) {
//console.log(options.rowData.PART_OBJID);
//return "/partMng/partMngDetailPopUp.do?OBJID=" + options.rowData.PART_OBJID;
//return 'openPartMngPopup(\"" + rowObject.PART_OBJID + "\");'
//return 'openPartMngPopup(' + rowData.PART_OBJID + ')';
return rowData.PART_OBJID;
}
*/
}
//,formatter:setLink
,editoptions:{
dataInit: function(e){ e.style.textAlign = "left"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { }} ]
}
,{name:"SUPPLY_UNIT_PRICE", width:130, align:"right", sortable:false, editable:false
,formatter:"integer", formatoptions:{thousandsSeparator:","}
}
--%>
,{name:"SPEC" , index:"", width:140, align:"left", hidden:false, sortable:false, editable:false
,editoptions:{
dataInit: function(e){ e.style.textAlign = "left"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { }} ]
}
}
,{name:"MAKER" , index:"", width:110, align:"left", hidden:false, sortable:false, editable:false
,editoptions:{
dataInit: function(e){ e.style.textAlign = "left"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { }} ]
}
}
,{name:"UNIT" , index:"", width:52, align:"center", hidden:false, sortable:false, editable: true
,edittype :"select"
,formatter :"select"
,editoptions:{
value: unit_cd
,dataInit : function(e){
e.style.width = "92%";
e.style.fontSize = 13;
}
}
}
,{name:"BOM_QTY" , index:"", width:53, align: "right", hidden:true, sortable:false, editable: false
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"QTY" , index:"", width:40, align: "right", hidden:false, sortable:false, editable: (<%=isModify%> && ('${info.TYPE}' == TYPE_BUY_ITEM ||'${info.TYPE}' == TYPE_ETC || '${info.TYPE}' == TYPE_LONG_DLV || '${info.TYPE}' == TYPE_SUBCONTRACT || "${info.ORDER_TYPE_CD}" == '0001408') ? true : false) <%--=isModify--%>
//,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"ORDER_QTY" , index:"", width:53, align: "right", hidden:false, sortable:false, editable: false
//,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"PARTNER_PRICE" , index:"", width:80, align: "right", hidden:false, sortable:false, editable: true
,formatter: "integer", formatoptions:{//decimalPlaces: 0, // 소수점 자리수 (0으로 설정하면 정수만 표시)
thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }
}
/*
,{type:"onclick", fn:function(e) {
var rowid = this.id.replace("_PARTNER_PRICE","");
var value = zero_to_null(this.value);
grid.jqGrid('setCell', rowid, 'PARTNER_PRICE', value);
}
}
*/
]
}
}
// ,{name:"PRICE1" , index:"", width:70, align: "right", hidden:false, sortable:false, editable: true
// ,formatter: "integer", formatoptions:{thousandsSeparator:","}
// ,editoptions:{
// dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
// ,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }}
/*
,
{type:"focus", fn:function(e) {
var rowid = this.id.replace("_PRICE1","");
var value = zero_to_null(this.value);
grid.jqGrid('setCell', rowid, 'PRICE1', value);
}
}
*/
// ]
// }
// }
// ,{name:"PRICE2" , index:"", width:60, align: "right", hidden:false, sortable:false, editable: true
// ,formatter: "integer", formatoptions:{thousandsSeparator:","}
// ,editoptions:{
// dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
// ,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
// }
// }
// ,{name:"PRICE3" , index:"", width:60, align: "right", hidden:false, sortable:false, editable: true
// ,formatter: "integer", formatoptions:{thousandsSeparator:","}
// ,editoptions:{
// dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
// ,dataEvents: [ {type:"change", fn:function(e) {
// gridFn.calcRowAll(e); }} ]
// }
// }
// ,{name:"PRICE4" , index:"", width:70, align: "right", hidden:false, sortable:false, editable: true
// ,formatter: "integer", formatoptions:{thousandsSeparator:","}
// ,editoptions:{
// dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
// ,dataEvents: [ {type:"change", fn:function(e) {
// gridFn.calcRowAll(e); }} ]
// }
// }
,{name:"SUPPLY_UNIT_PRICE", index:"", width:100, align: "right", hidden:false, sortable:false, editable: true
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"SUPPLY_UNIT_VAT_PRICE", index:"", /* width:70, */ align: "right", hidden:true, sortable:false, editable: true
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"SUPPLY_UNIT_VAT_SUM_PRICE", index:"", width:110, align: "right", hidden:true, sortable:false, editable: true
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e);gridFn.calcRowAll(e); }} ]
}
}
,{name:"TOTAL_ORDER_QTY" , index:"", width:66, align: "right", hidden:false, sortable:false, editable: false
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"STOCK_QTY" , index:"", width:55, align: "right", hidden:false, sortable:false, editable: <%=isModify%> //240426 임시로 수정 가능하게 반영 editable: editable
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"STOCK_QTY_ORG" , index:"", width:55, align: "right", hidden:true, sortable:false, editable: false
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
,dataEvents: [ {type:"change", fn:function(e) { gridFn.calcRowAll(e); }} ]
}
}
,{name:"REAL_ORDER_QTY" , index:"", width:79, align: "right", hidden:false, sortable:false, editable: false //240501 입력으로 변경하려다 stop
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
}
}
,{name:"REAL_SUPPLY_PRICE" , index:"", width:96, align: "right", hidden:false, sortable:false, editable: false
,formatter: "integer", formatoptions:{thousandsSeparator:","}
,editoptions:{
dataInit: function(e){ e.style.textAlign = "right"; e.style.fontSize = 13; }
}
}
]
,ignoreCase : true
,rownumbers : false
@@ -346,22 +157,12 @@ $(document).ready(function(){
,userDataOnFooter: true //바닥합계
//,caption :"제목"
,loadComplete: function(){
/*
var ids = $("#grid1").jqGrid('getDataIDs');
//var arrNumColumNames = ['PARTNER_PRICE', 'PRICE1', 'PRICE2', 'PRICE3', 'PRICE4']
for (var i = 0; i < ids.length; i++) {
var rowId = ids[i];
var cellValue = $("#grid").jqGrid('getCell', rowId, 'PARTNER_PRICE');
//var formattedValue = cellValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
$("#grid").jqGrid('setCell', rowId, 'PARTNER_PRICE', numberWithCommas(cellValue));
}
*/
var gid = this.id;
var grid_wrap_div = $("#gbox_"+gid);
setTimeout("fn_jqGrid_init($('#"+gid+"'), false);", 50); //윈도우크기 비례 자동조절
// 디버깅: 데이터 확인
//footer 커스텀..
var $fr = $(this.grid.sDiv).find("tr.footrow");
var $frNew1;
@@ -415,6 +216,9 @@ $(document).ready(function(){
$("td", $(".footerRowNew1")).slice(0,_idx+1).css({"background-color":"#e4e4e4"});
$("td", $(".footerRowNew1")).slice(_idx+1).css({"background-color":"#e4e4e4"}); //(옅은핑크)
$("#TOTAL_SUPPLY_PRICE,#TOTAL_SUPPLY_UNIT_PRICE,#TOTAL_REAL_SUPPLY_PRICE").css({"background-color":"#fbead9"});
// 합계 계산
setTimeout(function(){ gridFn.footerSummary(); }, 100);
}
,beforeSubmitCell: function (rowid, cellname, value, iRow, iCol) {
// 'linkColumn' 컬럼에 대해서만 링크 태그를 제외하고 값만 전송
@@ -432,11 +236,27 @@ $(document).ready(function(){
},
});
if("${info.PARTNER_OBJID}" != "" && ("${info.SALES_REQUEST_OBJID}" != "" || "${info.SALES_REQUEST_OBJID}" != null)){
changelist("${info.PARTNER_OBJID}");
// 이미 저장된 발주서(OBJID가 있는 경우)는 그리드 데이터는 유지하고 공급처 정보만 가져옴
if("${info.OBJID}" != "" && "${info.PARTNER_OBJID}" != ""){
// 공급처 정보만 가져오기
var list = fnc_getJsonAllDataListBySqlId({"sqlId":"purchaseOrder.purchaseOrderAdminSupplyInfo", "PARTNER_OBJID":"${info.PARTNER_OBJID}"});
if(fnc_checkNull(list) != ""){
var row = list[0];
$("#SUPPLY_BUS_NO").val(row["SUPPLY_BUS_NO"]);
$("#SUPPLY_USER_NAME").val(row["SUPPLY_USER_NAME"]);
$("#SUPPLY_USER_HP").val(row["SUPPLY_USER_HP"]);
$("#SUPPLY_USER_TEL").val(row["SUPPLY_USER_TEL"]);
$("#SUPPLY_USER_FAX").val(row["SUPPLY_USER_FAX"]);
$("#SUPPLY_USER_EMAIL").val(row["SUPPLY_USER_EMAIL"]);
$("#SUPPLY_ADDR").val(row["SUPPLY_ADDR"]);
}
} else if("${info.PARTNER_OBJID}" != "" && "${info.SALES_REQUEST_OBJID}" != ""){
// 신규 작성시 changelist 호출
changelist("${info.PARTNER_OBJID}");
}
gridFn.opennEdit(); //수정가능
gridFn.footerSummary(); // 합계 계산
<% if(isModify){ %>
@@ -604,54 +424,55 @@ $(document).ready(function(){
fn_setMultiInfo(val); //동시적용 정보 셋팅
});
//발주구분,프로젝트,유닛명,공급업체 변경시 - 구매BOM에서 등록한 PART정보를 가져온다
$("#TYPE,#CONTRACT_MGMT_OBJID,#UNIT_CODE,#PARTNER_OBJID").change(function(){
//$("#TYPE,#CONTRACT_MGMT_OBJID,#UNIT_CODE,#PARTNER_OBJID").change(function(){
//alert(_PRE_ORDER_TYPE_CD);
var ORDER_TYPE_CD = $("#ORDER_TYPE_CD").val(); //발주구분
if("${info.SALES_REQUEST_OBJID}"=="" || "${info.SALES_REQUEST_OBJID}" == null){
if(ORDER_TYPE_CD == '0001407'){ //신규면 자동조회 //재발주(0001408)가 아니면 초기화(자동 조회)
addBomPart(); //이전 발주 목록
}
}
});
// var ORDER_TYPE_CD = $("#ORDER_TYPE_CD").val(); //발주구분
// if("${info.SALES_REQUEST_OBJID}"=="" || "${info.SALES_REQUEST_OBJID}" == null){
// if(ORDER_TYPE_CD == '0001407'){ //신규면 자동조회 //재발주(0001408)가 아니면 초기화(자동 조회)
// addBomPart(); //이전 발주 목록
// }
// }
//});
$("#ORDER_TYPE_CD").change(function(){ //발주구분
var ORDER_TYPE_CD = $("#PURCHASE_ORDER_NO_ORG").val("");
// $("#ORDER_TYPE_CD").change(function(){ //발주구분
// var ORDER_TYPE_CD = $("#PURCHASE_ORDER_NO_ORG").val("");
//alert(_PRE_ORDER_TYPE_CD);
if(!fnc_isEmpty(_PRE_ORDER_TYPE_CD) || fnc_isEmpty(ORDER_TYPE_CD)){ //이전이 선택이 아니거나 선택 선택하면 초기화
getPartData(''); //품목 초기화
}
if($(this).val() == '0001408'){//재발주
var partnerObjid = $("#PARTNER_OBJID").val();
//alert("partnerObjid:"+partnerObjid);
$("#PURCHASE_ORDER_NO_ORG").prop("disabled","");
$("#PURCHASE_ORDER_NO_ORG").prop("required","required");
fnc_getPurchaseOrderCdListAppend("PURCHASE_ORDER_NO_ORG","${info.PURCHASE_ORDER_NO_ORG}","",partnerObjid); //발주 정보목록
}else{
$("#PURCHASE_ORDER_NO_ORG").prop("disabled","disabled");
$("#PURCHASE_ORDER_NO_ORG").prop("required","");
if($(this).val() == '0001407'){//신규
addBomPart();
}
}
$("#PURCHASE_ORDER_NO_ORG").trigger("change");
//$("#PARTNER_OBJID").trigger("change");
_PRE_ORDER_TYPE_CD = $(this).val(); //이전 값 저장
});
// //alert(_PRE_ORDER_TYPE_CD);
// // if(!fnc_isEmpty(_PRE_ORDER_TYPE_CD) || fnc_isEmpty(ORDER_TYPE_CD)){ //이전이 선택이 아니거나 선택 선택하면 초기화
// // getPartData(''); //품목 초기화
// // }
// if($(this).val() == '0001408'){//재발주
// var partnerObjid = $("#PARTNER_OBJID").val();
// //alert("partnerObjid:"+partnerObjid);
// $("#PURCHASE_ORDER_NO_ORG").prop("disabled","");
// $("#PURCHASE_ORDER_NO_ORG").prop("required","required");
// fnc_getPurchaseOrderCdListAppend("PURCHASE_ORDER_NO_ORG","${info.PURCHASE_ORDER_NO_ORG}","",partnerObjid); //발주 정보목록
// }else{
// $("#PURCHASE_ORDER_NO_ORG").prop("disabled","disabled");
// $("#PURCHASE_ORDER_NO_ORG").prop("required","");
// if($(this).val() == '0001407'){//신규
// addBomPart();
// }
// }
// $("#PURCHASE_ORDER_NO_ORG").trigger("change");
// //$("#PARTNER_OBJID").trigger("change");
// _PRE_ORDER_TYPE_CD = $(this).val(); //이전 값 저장
// });
$("#PURCHASE_ORDER_NO_ORG").change(function(){
var val = $(this).val();
if(fnc_isNotEmpty(val)){
getPartData(val);
//changelist(val);
}else{
}
});
// $("#PURCHASE_ORDER_NO_ORG").change(function(){
// var val = $(this).val();
// if(fnc_isNotEmpty(val)){
// getPartData(val);
// //changelist(val);
// }else{
// }
// });
fnc_datepick(); //달력
$(".select2").select2();
gridFn.opennEdit(); //수정가능
gridFn.footerSummary(); // 합계 계산
//버튼
$("#btnAdd" ).click(function(){ fn_openPartMngListPopUp(); }); //행추가
@@ -701,23 +522,23 @@ $(document).ready(function(){
});
//유닛명
if("${info.CONTRACT_MGMT_OBJID}"!=""){
fn_UnitCodeList("${info.CONTRACT_MGMT_OBJID}", "UNIT_CODE","");
$("#UNIT_CODE").val("${info.UNIT_CODE}");
}
// if("${info.CONTRACT_MGMT_OBJID}"!=""){
// fn_UnitCodeList("${info.CONTRACT_MGMT_OBJID}", "UNIT_CODE","");
// $("#UNIT_CODE").val("${info.UNIT_CODE}");
// }
//프로젝트번호 triggger로 동시적용 정보 셋팅(240109)
$("#CONTRACT_MGMT_OBJID").val("${info.CONTRACT_MGMT_OBJID}");
//$("#CONTRACT_MGMT_OBJID").val("${info.CONTRACT_MGMT_OBJID}");
//$("#CONTRACT_MGMT_OBJID").trigger("change");
fn_setMultiInfo("${info.CONTRACT_MGMT_OBJID}")
fn_setMultiInfoForSaved("${info.CONTRACT_MGMT_OBJID}"); //동시적용 정보 셋팅
//fn_setMultiInfo("${info.CONTRACT_MGMT_OBJID}")
//fn_setMultiInfoForSaved("${info.CONTRACT_MGMT_OBJID}"); //동시적용 정보 셋팅
fnc_datepick(); //달력
$(".select2").select2();
//동시프로젝트 선택
$(".APPLICATION_PROJECT_NO").on("change", function() {
reCalculatePrice();
});
// $(".APPLICATION_PROJECT_NO").on("change", function() {
// reCalculatePrice();
// });
addZeroEvtAtPriceInput();
@@ -1087,18 +908,17 @@ function zero_to_null(value){
}
}
function setLink(cellval, options, rowObject) {
if(typeof(cellval) == "undefined") {
return "";
return "";
}
if(fnc_isEmpty(rowObject.PART_OBJID)){
return rowObject.PART_NO
return rowObject.PART_NO;
}else{
if(rowObject.PART_NO.indexOf('openPartMngPopup') < 0){
return "<a onclick='openPartMngPopup(\"" + rowObject.PART_OBJID + "\");' class='pointer'>" + rowObject.PART_NO + "</a>";
}else{
return rowObject.PART_NO
return rowObject.PART_NO;
}
}
}
@@ -1148,6 +968,7 @@ function fn_getApprLine(){
}
function fn_getSalesRequest(){
//alert("1234")
if('${param.sales_request_objid}'!=''){
$.ajax({
url:"/salesMng/getSalesRequest.do",
@@ -1513,65 +1334,24 @@ function fn_save(){
function fn_checkQty(){
var isValid = true;
var $g = $("#grid1");
//var rowId = $g.jqGrid('getGridParam', 'selrow'); //선택된행 번호
var isValid = true;
var ids = grid.jqGrid("getDataIDs");
for (var i = 0; i < ids.length; i++) {
var rowId = ids[i]; //수정중인 행번호 (행선택은 안될수있음)
var v1 = Number( fnc_checkNullDefaultValue($g.find("#"+rowId+"_ORDER_QTY").val(), grid.jqGrid('getCell', rowId, "ORDER_QTY")).replace(/,/gi,"") );
var v2 = Number( $g.find("#"+rowId+"_PARTNER_PRICE").val().replace(/,/gi,"") );
var v3 = Number( $g.find("#"+rowId+"_PRICE1").val().replace(/,/gi,"") );
var v4 = Number( $g.find("#"+rowId+"_PRICE2").val().replace(/,/gi,"") );
var v5 = Number( $g.find("#"+rowId+"_PRICE3").val().replace(/,/gi,"") );
var v6 = Number( $g.find("#"+rowId+"_PRICE4").val().replace(/,/gi,"") );
//var q1 = Number( $g.find("#"+rowId+"_TOTAL_ORDER_QTY").val().replace(/,/gi,"") );
var q1 = grid.jqGrid('getCell', rowId, "TOTAL_ORDER_QTY").replace(/,/gi,"");
var q2 = Number( fnc_checkNullDefaultValue($g.find("#"+rowId+"_STOCK_QTY").val(), grid.jqGrid('getCell', rowId, "STOCK_QTY")).replace(/,/gi,"") );
var q3 = grid.jqGrid('getCell', rowId, "REAL_ORDER_QTY").replace(/,/gi,"");
//var q3 = Number( $g.find("#"+rowId+"_REAL_ORDER_QTY").val().replace(/,/gi,"") );
//var v6 = Number( $g.find("#"+rowId+"_SUPPLY_UNIT_PRICE").val() );
var sameProjectCount = fn_getProjectCount();
//alert(v1);
/*
if(!$.isNumeric( fnc_checkNullDefaultValue(eVal,"0")) ){
Swal.fire("숫자를 입력해주세요."); $(e.target).select(); return;
}
else if(v1<=q2){
Swal.fire("재고수량은 마지막 동시발주건의 수량이 입력되도록 수량보다 작아야 합니다."); $(e.target).select(); return;
}
*/
var rowId = ids[i];
// 수량
var qtyVal = fnc_checkNullDefaultValue($g.find("#"+rowId+"_ORDER_QTY").val(), grid.jqGrid('getCell', rowId, "ORDER_QTY"));
var v1 = Number((qtyVal || "0").toString().replace(/,/gi,""));
// 단가
var priceVal = fnc_checkNullDefaultValue($g.find("#"+rowId+"_PARTNER_PRICE").val(), grid.jqGrid('getCell', rowId, "PARTNER_PRICE"));
var v2 = Number((priceVal || "0").toString().replace(/,/gi,""));
if( !$.isNumeric(v1)
|| !$.isNumeric(v2)
|| !$.isNumeric(v3)
|| !$.isNumeric(v4)
|| !$.isNumeric(v5)
|| !$.isNumeric(v6)
|| !$.isNumeric(q1)
|| !$.isNumeric(q2)
|| !$.isNumeric(q3)
){
Swal.fire("단가와 수량은 숫자로 입력해 주세요."); $(e.target).select(); return;
if(!$.isNumeric(v1) || !$.isNumeric(v2)){
Swal.fire("단가와 수량은 숫자로 입력해 주세요.");
isValid = false;
break;
} else if(v1 < 1){
Swal.fire("실발주수량은 0보다 커야합니다.");
Swal.fire("수량은 0보다 커야합니다.");
isValid = false;
break;
}else if(q3 < 1){
Swal.fire("총실발주수량이 0보다 커야합니다.");
isValid = false;
break;
/*
}else if(sameProjectCount > 1 && q1 - q2 < v1){
Swal.fire("총 발주수량이 수량만큼은 확보되도록 재고수량을 입력해 주세요.");
isValid = false;
break;
*/
}else if(q1<q2){
Swal.fire("재고수량은 총발주수량보다 클 수 없습니다.");
isValid = false;
break;
}else{
}
}
return isValid;
@@ -1687,121 +1467,20 @@ var gridFn = {
//}).trigger("reloadGrid");
//grid.setGridParam({url: "", datatype : "local"});
}
,calcRowAll : function(e, pRowId){ //행 모든 컬럼 계산
,calcRowAll : function(e, pRowId){ //행 계산: 수량 * 단가 = 공급가
var $g = $("#grid1");
//alert('calcrowall');
//var rowId = $g.jqGrid('getGridParam', 'selrow'); //선택된행 번호
var rowId = e ? e.target.id.split("_")[0] : pRowId; //수정중인 행번호 (행선택은 안될수있음)
//var v1 = Number( $g.find("#"+rowId+"_ORDER_QTY").val().replace(/,/gi,"") ); 240411 아래로 변경(단가 저장시 editable:false)
var v0 = Number( fnc_checkNullDefaultValue(fnc_checkNull($g.find("#"+rowId+"_BOM_QTY").val()).replace(/,/gi,"") , grid.jqGrid('getCell', rowId, "BOM_QTY")).replace(/,/gi,"") );
var v1 = Number( fnc_checkNullDefaultValue(fnc_checkNull($g.find("#"+rowId+"_QTY").val()).replace(/,/gi,"") , grid.jqGrid('getCell', rowId, "QTY")).replace(/,/gi,"") );
var v11= Number( fnc_checkNullDefaultValue(fnc_checkNull($g.find("#"+rowId+"_ORDER_QTY").val()).replace(/,/gi,"") , grid.jqGrid('getCell', rowId, "ORDER_QTY")).replace(/,/gi,"") );
var v2 = Number( $g.find("#"+rowId+"_PARTNER_PRICE").val().replace(/,/gi,"") );
var v3 = Number( $g.find("#"+rowId+"_PRICE1").val().replace(/,/gi,"") );
var v4 = Number( $g.find("#"+rowId+"_PRICE2").val().replace(/,/gi,"") );
var v5 = Number( $g.find("#"+rowId+"_PRICE3").val().replace(/,/gi,"") );
var v6 = Number( $g.find("#"+rowId+"_PRICE4").val().replace(/,/gi,"") );
var rowId = e ? e.target.id.split("_")[0] : pRowId;
var eVal = $(e.target).val() .replace(/,/gi,"");
var sameProjectCount = fn_getProjectCount();
// 수량 (ORDER_QTY)
var qty = Number(fnc_checkNullDefaultValue($g.find("#"+rowId+"_ORDER_QTY").val(), grid.jqGrid('getCell', rowId, "ORDER_QTY")).toString().replace(/,/g,""));
// 단가
var unitPrice = Number(fnc_checkNullDefaultValue($g.find("#"+rowId+"_PARTNER_PRICE").val(), grid.jqGrid('getCell', rowId, "PARTNER_PRICE")).toString().replace(/,/g,""));
if(!$.isNumeric( fnc_checkNullDefaultValue(eVal,"0").replace(/,/g,"")) ){
Swal.fire("숫자를 입력해주세요."); $(e.target).select(); return;
}
/*
else if(v1<=q2){
Swal.fire("재고수량은 마지막 동시발주건의 수량이 입력되도록 수량보다 작아야 합니다."); $(e.target).select(); return;
}
*/
// 공급가 = 수량 * 단가
var supplyPrice = qty * unitPrice;
if(e.target.id == rowId+"_ORDER_QTY"
|| e.target.id == rowId+"_QTY"
|| e.target.id == rowId+"_BOM_QTY"
|| e.target.id == rowId+"_PARTNER_PRICE"
|| e.target.id == rowId+"_PRICE1"
|| e.target.id == rowId+"_PRICE2"
|| e.target.id == rowId+"_PRICE3"
|| e.target.id == rowId+"_PRICE4"
|| e.target.id == rowId+"_TOTAL_ORDER_QTY"
|| e.target.id == rowId+"_STOCK_QTY"
|| e.target.id == rowId+"_REAL_ORDER_QTY"
){
//var v1 = Number( $g.find("#"+rowId+"_ORDER_QTY").val().replace(/,/gi,"") );
if( e.target.id == rowId+"_ORDER_QTY"
|| e.target.id == rowId+"_QTY"
|| e.target.id == rowId+"_BOM_QTY"
//|| e.target.id == rowId+"_STOCK_QTY"
|| e.target.id == rowId+"_REAL_ORDER_QTY" //240501 입력으로 변경하려다 stop
){
//$g.find("#"+rowId+"_TOTAL_ORDER_QTY").val( numberWithCommas( v1*sameProjectCount ));
//$g.jqGrid('setCell', rowId, "TOTAL_ORDER_QTY", numberWithCommas( v1*sameProjectCount ));
$g.jqGrid('setCell', rowId, "TOTAL_ORDER_QTY", v1*sameProjectCount );
}
//q1 = Number( $g.find("#"+rowId+"_TOTAL_ORDER_QTY").val().replace(/,/gi,"") );
var q1 = Number( grid.jqGrid('getCell', rowId, "TOTAL_ORDER_QTY").replace(/,/gi,"") );
//q2 = Number( $g.find("#"+rowId+"_STOCK_QTY").val().replace(/,/gi,"") );
var q2 = Number( fnc_checkNullDefaultValue(fnc_checkNull($g.find("#"+rowId+"_STOCK_QTY").val()).replace(/,/gi,""), grid.jqGrid('getCell', rowId, "STOCK_QTY")).replace(/,/gi,"") );
var q3 = Number( fnc_checkNullDefaultValue(fnc_checkNull($g.find("#"+rowId+"_REAL_ORDER_QTY").val()).replace(/,/gi,""), grid.jqGrid('getCell', rowId, "REAL_ORDER_QTY")).replace(/,/gi,"") );
var STOCK_QTY = q2;
//q3 = Number( $g.find("#"+rowId+"_REAL_ORDER_QTY").val().replace(/,/gi,"") );
var realQ = q1-q2;
//var realQ = q3;
var ORDER_QTY = v1 - (v1*(sameProjectCount-1) == 0 ? STOCK_QTY : (STOCK_QTY < v1*(sameProjectCount-1) ? 0 : STOCK_QTY - v1*(sameProjectCount-1)) );
//$g.find("#"+rowId+"_REAL_ORDER_QTY").val( numberWithCommas( realQ ));
//$g.jqGrid('setCell', rowId, "REAL_ORDER_QTY", numberWithCommas( realQ ));
//alert(v1*sameProjectCount-q2);
$g.jqGrid('setCell', rowId, "REAL_ORDER_QTY", v1*sameProjectCount-q2 );
$g.jqGrid('setCell', rowId, "REAL_SUPPLY_PRICE", (v1*sameProjectCount-q2) * (v2+v3+v4+v5+v6));
//240904 comma처리 추가
$g.find("#"+rowId+"_PARTNER_PRICE").val( numberWithCommas(v2));
$g.find("#"+rowId+"_PRICE1").val( numberWithCommas(v3));
$g.find("#"+rowId+"_PRICE2").val( numberWithCommas(v4));
$g.find("#"+rowId+"_PRICE3").val( numberWithCommas(v5));
$g.find("#"+rowId+"_PRICE4").val( numberWithCommas(v6));
//공급가 = 수량 *(공급단가+레이져단가+용접단가+가공단가)
$g.find("#"+rowId+"_SUPPLY_UNIT_PRICE").val( numberWithCommas(ORDER_QTY * (v2+v3+v4+v5+v6)));
$g.find("#"+rowId+"_SUPPLY_UNIT_VAT_PRICE").val( numberWithCommas(ORDER_QTY * (v2+v3+v4+v5+v6) * 0.1));
$g.find("#"+rowId+"_SUPPLY_UNIT_VAT_SUM_PRICE").val( numberWithCommas( Math.floor(ORDER_QTY * (v2+v3+v4+v5+v6) * 1.1) )); //.toFixed()
if( e.target.id == rowId+"_ORDER_QTY"
//|| e.target.id == rowId+"_BOM_QTY"
|| e.target.id == rowId+"_QTY"
|| e.target.id == rowId+"_STOCK_QTY"
|| e.target.id == rowId+"_REAL_ORDER_QTY"
){
if( e.target.id == rowId+"_STOCK_QTY"
|| e.target.id == rowId+"_QTY"
){
if(<%=isModify%>){
//$("#"+rowId+"_QTY").val(numberWithCommas( ORDER_QTY ));
$("#"+rowId+"_ORDER_QTY").val(numberWithCommas( ORDER_QTY ));
}else{
//$g.jqGrid('setCell', rowId, "QTY", numberWithCommas( ORDER_QTY ));
$g.jqGrid('setCell', rowId, "ORDER_QTY", numberWithCommas( ORDER_QTY ));
}
$g.jqGrid('setCell', rowId, "ORDER_QTY", numberWithCommas( ORDER_QTY ));
}
if(v1 < 1){
Swal.fire("실발주수량은 0보다 커야합니다."); $(e.target).select(); return;
}else if(realQ < 1){
Swal.fire("총실발주수량이 0보다 커야합니다."); $(e.target).select(); return;
/*
}else if(sameProjectCount > 1 && q1 - q2 < v1){
Swal.fire("총 발주수량이 수량만큼은 확보되도록 재고수량을 입력해 주세요."); $(e.target).select(); return;
*/
}else if(q1<q2){
Swal.fire("재고수량은 총발주수량보다 클 수 없습니다."); $(e.target).select(); return;
}else{
$(e.target).val(fnc_addComma(eVal.replace(/[^0-9]/g,"")));
}
}
}
// 공급가 셋팅
$g.jqGrid('setCell', rowId, "SUPPLY_UNIT_PRICE", supplyPrice);
this.footerSummary();
}
@@ -1847,54 +1526,25 @@ var gridFn = {
}
}
*/
,footerSummary: function(){ //자동합계
$("#TOTAL_SUPPLY_UNIT_PRICE, #TOTAL_PRICE, #NEGO_RATE").val("");
,footerSummary: function(){ //자동합계: 공급가 합계
var totalSupplyPrice = 0;
//footer1
var colSum1 = 0; //세금포함공급가합계
var colSum2 = 0; //공급가합계
var colSum3 = 0; //실공급가합계
var colSum4 = 0; //실공급가합계(세금포함)
$.each($("#grid1").getDataIDs(), function(i,o){
//console.log(i+" :: " + o);
var rowId = o;
var _v1 = $("#"+o+"_SUPPLY_UNIT_PRICE").val().replace(/,/gi,""); //공급가
var _v2 = $("#"+o+"_SUPPLY_UNIT_VAT_PRICE").val().replace(/,/gi,""); //부가세
var _v3 = $("#"+o+"_SUPPLY_UNIT_VAT_SUM_PRICE").val().replace(/,/gi,""); //부가세포함공급가
var _v4 = grid.jqGrid('getCell', rowId, "REAL_SUPPLY_PRICE").replace(/,/gi,""); //실공급가
//var q2 = Number( fnc_checkNullDefaultValue($g.find("#"+rowId+"_STOCK_QTY").val(), grid.jqGrid('getCell', rowId, "STOCK_QTY")).replace(/,/gi,"") );
if($.isNumeric(_v1)){
colSum1 += Number( _v1 ) + Number( _v2 );
colSum2 += Number( _v1 );
colSum3 += Number( _v4 );
//colSum4 += Number( _v4 ) + Math.floor(Number( _v4 )*0.1) ;
$.each($("#grid1").jqGrid('getDataIDs'), function(i, rowId){
var supplyPrice = grid.jqGrid('getCell', rowId, "SUPPLY_UNIT_PRICE");
supplyPrice = fnc_checkNullDefaultValue(supplyPrice, "0").toString().replace(/,/g,"");
if($.isNumeric(supplyPrice)){
totalSupplyPrice += Number(supplyPrice);
}
});
colSum4 = Number( colSum3 ) + Math.round(Number( colSum3 )*0.1) ; //250110 위에서 아래로 변경
$("#TOTAL_SUPPLY_UNIT_PRICE").val( numberWithCommas( Math.floor(colSum1)+"" ) ); //소계
$("#TOTAL_SUPPLY_PRICE").val( numberWithCommas( colSum2+"" ) ); //소계(세금미포함)
$("#TOTAL_REAL_SUPPLY_PRICE").val( numberWithCommas( Math.floor(colSum3)+"" ) ); //소계
var totalWithVat = Math.floor(totalSupplyPrice * 1.1); // 부가세 포함
//footer2
var vDC = fnc_checkcommmanumberDefaultValue($("#DISCOUNT_PRICE").val(),"0"); // 할인금액
if(!$.isNumeric(vDC)){
Swal.fire("숫자를 입력해주세요.");
$("#DISCOUNT_PRICE").select();
$("#DISCOUNT_PRICE").val("");
return;
}
vDC = Number(vDC);
$("#TOTAL_SUPPLY_PRICE").val(numberWithCommas(totalSupplyPrice));
$("#TOTAL_SUPPLY_UNIT_PRICE").val(numberWithCommas(totalWithVat));
$("#TOTAL_REAL_SUPPLY_PRICE").val(numberWithCommas(totalSupplyPrice));
var vTP = Math.floor(colSum1 - vDC); //내림 (원래 TOTAL_PRICE_TXT 240502전)
//alert(vTP);
$("#TOTAL_PRICE").val(numberWithCommas( vTP )); //최종발주금액 : 소계-할인금액
$("#TOTAL_PRICE_TXT").val( fnc_numToKr((colSum3)+"","일금 "," 원정") + " (₩ "+numberWithCommas( vTP )+")" );
$("#TOTAL_PRICE_TXT_ALL").val( fnc_numToKr((colSum4)+"","일금 "," 원정") + " (₩ "+numberWithCommas( colSum4 )+")" );
if(colSum1 != 0){
$("#NEGO_RATE" ).val( ((1-((vTP)/colSum1))*100).toFixed(1) +"%" ); //Nego율 : 1-(최종금액/소계)
}
$("#TOTAL_PRICE_TXT").val(fnc_numToKr(totalSupplyPrice+"","일금 "," 원정") + " (₩ "+numberWithCommas(totalSupplyPrice)+")");
$("#TOTAL_PRICE_TXT_ALL").val(fnc_numToKr(totalWithVat+"","일금 "," 원정") + " (₩ "+numberWithCommas(totalWithVat)+")");
}
}
@@ -2000,10 +1650,10 @@ function fn_price_save(){
${code_map.project_no}
</select>
</td>
<td colspan="">유닛명</td>
<!-- <td colspan="">유닛명</td>
<td colspan="2">
<select name="UNIT_CODE" id="UNIT_CODE" required reqTitle="유닛명" type="select" class="select2" autocomplete="off" disabled></select>
</td>
</td> -->
</tr>
<tr>
<td rowspan="2" colspan="6" style="text-align:center; height: 65px;"><h1 style="font-size: 35px;">발 주 서<br/><p style="font-size:12px; border:none; width:100%;">(Purchase Order)</p></h1></td>
@@ -2124,7 +1774,7 @@ function fn_price_save(){
<td colspan="1"><input type="text" name="DELIVERY_DATE" id="DELIVERY_DATE" class="date_icon" required reqTitle="입고요청일" value="${info.DELIVERY_DATE }" readonly/></td>
</tr>
<tr>
<td colspan="2" class="input_title">발주서 No.</td>
<!-- <td colspan="2" class="input_title">발주서 No.</td>
<td colspan="1">
<%if(isModify){ %>
<select name="PURCHASE_ORDER_NO_ORG" id="PURCHASE_ORDER_NO_ORG" required reqTitle="발주서 No." type="select" class="select2" autocomplete="off" disabled style="width:100%;">
@@ -2132,11 +1782,11 @@ function fn_price_save(){
<%}else{ %>
${info.PURCHASE_ORDER_NO_ORG_NO}
<%}%>
</td>
<td colspan="1" class="input_title">제목</td>
<td colspan="2"><input type="text" name="TITLE" id="TITLE" value="${info.TITLE }" required reqTitle="제목" readonly style="width:100%;"/></td>
<td colspan="2" class="input_title">부가세포함 발주금액(원)</td>
<td colspan="5"><input type="hidden" name="TOTAL_PRICE_TXT" id="TOTAL_PRICE_TXT" value="${info.TOTAL_PRICE_TXT }" readonly placeHolder="금액합계 자동계산"/>
</td> -->
<td colspan="2" class="input_title">제목</td>
<td colspan="3"><input type="text" name="TITLE" id="TITLE" value="${info.TITLE }" required reqTitle="제목" readonly style="width:100%;"/></td>
<td colspan="" class="input_title">부가세포함 발주금액(원)</td>
<td colspan="6"><input type="hidden" name="TOTAL_PRICE_TXT" id="TOTAL_PRICE_TXT" value="${info.TOTAL_PRICE_TXT }" readonly placeHolder="금액합계 자동계산"/>
<input type="text" name="TOTAL_PRICE_TXT_ALL" id="TOTAL_PRICE_TXT_ALL" value="${info.TOTAL_PRICE_TXT_ALL}" readonly placeHolder="금액합계 자동계산"/></td>
<%--
@@ -2212,7 +1862,7 @@ function fn_price_save(){
</div>
</div>
<div id="expenseApplyPopupFormWrap1" style="margin-top:35px;position: ">
<!-- <div id="expenseApplyPopupFormWrap1" style="margin-top:35px;position: ">
<table class="pmsPopupForm">
<colgroup>
<col width="10%" />
@@ -2298,7 +1948,7 @@ function fn_price_save(){
<td colspan="12" style="text-align: right; color: #980000; font-weight:500;">★거래명세서 자동생성은 발주서 기준으로 입고수량 대비 정품수량 동일시 구매팀 확인후 발주서 기준으로 자동생성 된다.</td>
</tr>
</table>
</div>
</div> -->
</section>
<textarea style="width:0px; height:0px; visibility: hidden;" id="unit_cd">${code_map.unit_cd}</textarea><!-- 코드동적설정 -->

File diff suppressed because it is too large Load Diff