1
0
Fork 0
HANYANG_MES/show_dir/www/ksvc/etc/outsourcing/outsourcing.js

599 lines
28 KiB
JavaScript

//Grid용 클래스. 블록 처리용
class Tb_class_Hdr {
constructor(){
let _this = this;
_this.tblList = "";
_this.selectPo = "";
_this.putOutsourcingModal = "";
_this.ajax_url = "./outsourcing.ajax.php";
}
//리스트 로드
getMainList () {
let _this = this;
let talert = window.setTimeout(function () { _this.tblList.alert("Loading ...") }, 1000); //1초 이상 지연되면 로딩 출력
ajax_json({
url: _this.ajax_url,
data: { mode: 'getHdrList' },
success: function (data) {
if (data.code) {
_this.tblList.setData(data.data);
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {
window.clearTimeout(talert);
_this.tblList.clearAlert();
_this.setFilter();
}
});
return true;
};
//Row 클릭 콜백
rowClick (e, tgt){
let _this = this;
_this.selectPo = tgt.getData();
_this.selectPo.PO_UID_OLD = _this.selectPo.PO_UID;
Tb_funcs_Dtl.initModal(tgt.getData().PO_NO);
jQuery(tgt.getElement()).siblings().removeClass("user-checked");
tgt.getElement().classList.add("user-checked");
$("#btnDelDtl").attr("disabled", false);
$("#btnPutDtl").attr("disabled", false);
};
setFilter () {
let _this = this;
let stdate = document.getElementById("S_PO_DT_ST").value;
let endate = document.getElementById("S_PO_DT_ED").value;
_this.tblList.setFilter(function(data){ //필터링
return (
true
&& ( (!stdate || stdate <= data['PO_DT']) && (!endate || endate >= data['PO_DT']) )
)
}, '=', true);
};
//Cell 클릭 콜백
cellClick (e, tgt){
let _this = this;
_this.tgt = tgt;
};
//Cell 변경 콜백
cellEdited (cell){
let _this = this;
cell.getData()._STATUS_ = cell.getData()._STATUS_||'U';
};
matrGFormatter ( cell ) {
let _this = this;
return varsTASK_TYPE[cell.getValue()] || '';
};
// 창고 등록
putHdr (){
let _this = this;
let pdata = _this.tblList.getData();
let dupdata = pdata.map( data => data.PO_NO ).filter( data => data );
if( dupdata.filter( (data,idx) => dupdata.indexOf(data) !== idx ).length > 0 ){
kuls_alert("발주번호가 중복됩니다.");
return false;
}
let postdata = {
'mode': 'putHdr',
'reqdata': JSON.stringify(_this.tblList.getData().filter(row=> row._STATUS_)),
};
ajax_json({
url: _this.ajax_url,
data: postdata,
success: function (data) {
if (data.code) {
kuls_success("저장되었습니다.");
_this.getMainList();
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {
}
});
return true;
};
delHdr (){
let _this = this;
_this.tblList.getSelectedRows().forEach(row => {
row.update({_STATUS_:'D'});
row.getElement().classList.add("del-row");
});
};
addRow(){
let _this = this;
// _this.tblDtlList.addRow({_STATUS_:'I', APPROV_NO: _this.approv_no},true);
Tb_funcs_Order.initModal()
}
//시작 실행
init () {
let _this = this;
const fields = [
{ formatter:"rowSelection", titleFormatter: "rowSelection", title: "No", width: "4%", noxls:true },
{ field: "PO_UID", title: "발주번호", width: "10%", },
{ field: "MNG_NOS_US", title: "수주번호", width: "10%", },
{ field: "PO_DT", title: "발주일", width: "7%", },
{ field: "PO_MATR_CLASS", title: "발주구분", width: "8%", formatter:_this.matrGFormatter,},
{ field: "TTL_AMT", title: "발주금액", width: "8%", formatter: "money", formatterParams:{precision:0},},
{ field: "PO_BP_NM", title: "외주처", width: "14%", },
{ field: "PO_BP_ADDR", title: "공급자주소", width: "16%", },
{ field: "PO_BP_TEL", title: "공급자연락처", width: "8%", },
{ field: "CURRENCY_CD", title: "거래화폐", width: "5%", },
{ field: "PAYMENT_COND", title: "지불조건", width: "7%", },
{ field: "PO_DEL_COND", title: "인도조건", width: "7%", },
{ field: "PO_INSPT_COND", title: "검사조건", width: "7%", },
{ field: "PO_MNG_CLASS", title: "관리구분", width: "8%", },
{ field: "TASK_NAME", title: "발주구분명", visible:false, },
];
_this.tblList = new Tabulator("#tblHdrList",{
layout: "fitColumns",
height: "calc(100% - 20px)",
data: [], //기본 데이터
columns: fields, //컬럼 설정
columnDefaults: { //컬럼 공통 규칙
vertAlign: "middle",
hozAlign: "center",
resizable: "header",//Resize 는 헤더에서만 가능
headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화
},
headerSortElement: "<i class='bi'></i>", //정렬 아이콘
});
_this.tblList.on("tableBuilt", () => { //Tabulator 초기 데이터 불러오기 이벤트
_this.getMainList();
});
_this.tblList.on("rowClick", (e,tgt) => { //Tabulator Row Click
_this.rowClick && Tb_funcs_Hdr.rowClick(e,tgt);
});
_this.tblList.on("cellClick", (e,tgt) => { //Tabulator cell Click
_this.cellClick && Tb_funcs_Hdr.cellClick(e,tgt);
});
_this.tblList.on("cellEdited", (cell) => { //Tabulator cell Edited
_this.cellEdited && Tb_funcs_Hdr.cellEdited(cell);
});
['click','keypress'].forEach(evt => document.querySelector("#btnAddHdr").addEventListener(evt,()=>{_this.addRow()}));
['click','keypress'].forEach(evt => document.querySelector("#btnPutHdr").addEventListener(evt,()=>{_this.putHdr()}));
['click','keypress'].forEach(evt => document.querySelector("#btnDelHdr").addEventListener(evt,()=>{_this.delHdr()}));
['click','keypress'].forEach(evt => document.querySelector("#btnExcelDown").addEventListener(evt,()=>{_this.excelDataLoad(_this.tblList,'발주리스트')}));
['click','keypress'].forEach(evt => document.querySelector("#btnPoDocDown").addEventListener(evt,()=>{_this.excelPoDocLoad(_this.tblList.getSelectedRows(),'발주서')}));
['change','keydown','keyup'].forEach(evt => document.querySelectorAll("#S_PO_DT_ST, #S_PO_DT_ED").forEach(tgt=>tgt.addEventListener(evt,()=>{Tb_funcs_Hdr.setFilter()})));
};
excelDataLoad(table_block, title) { //페이징 처리된 리스트에서 엑셀 전체 다운
let _this = this;
let filename = title + "_"+luxon.DateTime.now().toFormat('yyyyMMdd')+".xlsx";
ajax_json({
url: _this.ajax_url,
data: {..._this.searchData, mode: 'getHdrList', LINE_NUM: 999999999 },
success: function (data) {
if (data.code) {
tb_common_funtions.tabu2xls(table_block, filename, title, data.data.map( row => {
return row;
} ));
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function () {}
});
};
async excelPoDocLoad (row, title) {
if (row.length > 1 ) {kuls_alert('한 번에 한 건만 선택할 수 있습니다.'); return false;}
if (row.length === 0) {kuls_alert('선택된 발주가 없습니다.'); return false;}
if (!title) {kuls_alert('제목을 입력하지 않았습니다.'); return false;}
let po = row[0].getData();
let items = await Tb_funcs_Dtl.getPoInfo(po.PO_NO, true);
let poData = {po, items}
let filename = title + "_"+luxon.DateTime.now().toFormat('yyyyMMdd')+".xlsx";
getPoExcel(title, filename, poData);
}
}
class Tb_class_Dtl {
constructor(){
let _this = this;
_this.ajax_url = "./outsourcing.ajax.php";
_this.tblList = "";
_this.base_info_frg = {
PAYMENT_COND : '정기결제',
PO_DEL_COND : '하차도',
PO_MNG_CLASS : '정상작업',
PO_REMARK1: '1. 발주서에 언급된 치수, 도면, 사양서, 규격 기준에 합격하여야 한다.\n' +
'2. 단조 및 UT 보증 조건\n' +
'3. 3.2 검사인 경우, 실비 정산으로 한다. 단 방문횟수 및 필요사항은 사전 협의 한다. \n' +
'4. 납품은 당사 지정장소로 편도 운송조건으로 한다. \n',
PO_REMARK2: '1. 본 발주서 접수 후 3일 이내 서면으로 수락, 거부 통지가 없으면 효력이 발생한 것으로 간주함.\n' +
'2. 발주자가 요구할 경우 공급자는 계약이행 보증증권 또는 하자이행 보증증권을 제출하여야 함.\n' +
'3. 불량 발생시 공급자(을)는 신속하게 양품으로 대체하고, 만약 불량품이 발생할 때에는 별도의 약정이 없는 한 그 손해배상금을 발주자(갑)가 정하는 바에 따라 발주자(갑)에게 지급하여야 함.\n' +
'4. 납기 지연시 지체 배상금은 발주서 기준 1일당 3/1000씩 차감하는 것으로 하고, 별도 비용등 발생시 공급자(을)의 부담으로 한다.\n' +
'5. 기타 일반 사항은 (주)스틸코리아 하도급 기본계약서에 준하며, 명기되지 않은 것은 계약 일반 조건을 따른다.\n',
};
_this.base_info_mnf = {
PAYMENT_COND : '정기결제',
PO_DEL_COND : '하차도',
PO_MNG_CLASS : '정상작업',
PO_REMARK1: '1. 발주서에 언급된 정삭 도면 기준으로 가공 할 것 - 도면 번호등 확인 철저히 할 것\n' +
' - 공급자(을)는 배포된 도면 및 리비전 번호를 확인하고, 발주서에 명기된 도면번호와 상이할 시에 발주자(갑)에게 즉시 통보한다.\n' +
' - 필요시 (요청시) 사전 승인도 제출 할 것\n' +
'2. 가공완료 전 UT 검사 할 것 (UT 신청은 당사 QA 로 또는 영업부로 신청 할 것)\n' +
'3. 3.2 검사인 경우, 시편 채취 할 것 (시편 채취후 당사 당사 QA로 연락할 것)\n' +
'4 마킹은 마킹 사양서에 의하여 실시 (마킹사양 당사 QA로 연락할 것)\n' +
'5. 공급자(을)는 공급 소재에 임의 용접을 불허하며 불가피하게 치구와 가접시 발자주(갑)의 승인 후 10미리 이상인 황삭에서만 허용한다.\n' +
'6. (풍력플랜지) 검사기준에 준하며 VI/DI 검사 신청 시 치수성적서 송부할 것.\n' +
'7. 납품은 당사 지정장소로 편도 운송조건으로 한다.\n' +
'8. 분철회수는 사전에 협의한 조건으로 실시한다.\n',
PO_REMARK2: '1. 본 발주서 접수 후 3일 이내 서면으로 수락, 거부 통지가 없으면 효력이 발생한 것으로 간주함.\n' +
'2. 발주자가 요구할 경우 공급자는 계약이행 보증증권 또는 하자이행 보증증권을 제출하여야 함.\n' +
'3. 불량 발생시 공급자(을)는 신속하게 양품으로 대체하고, 만약 불량품이 발생할 때에는 별도의 약정이 없는 한 그 손해배상금을 발주자(갑)가 정하는 바에 따라 발주자(갑)에게 지급하여야 함.\n' +
' - 당사의 소재 (단조등) 발주 금액에 대한 전자 계산서 발행 금액이 기본이나 그 후속 대처가 늦어 추가 클레임이 발생하면 그 금액도 포함된다.\n' +
'4. 납기 지연시 지체 배상금은 발주서 기준 1일당 3/1000씩 차감하는 것으로 하고, 별도 비용등 발생시 공급자(을)의 부담으로 한다.\n' +
'5. 기타 일반 사항은 (주)스틸코리아 하도급 기본계약서에 준하며, 명기되지 않은 것은 계약 일반 조건을 따른다.',
};
_this.base_info_pkg = {
PAYMENT_COND : '정기결제',
PO_DEL_COND : '하차도',
PO_MNG_CLASS : '정상작업',
PO_REMARK1: '1. 발주서에 언급된 치수, 사양서, 규격 기준에 합격하여야 한다.\n' +
'2. 제품에 대한 Damage 가 없도록 안전하게 포장한다.\n' +
'3. 운송간에 제품에 대한 손상 및 파손등이 없도록 포장재를 튼튼하게 제작한다.\n' +
'4. 또한 제품의 중량, 사이즈 고려하여 적재 칸 배치 및 운송간 흔들리거나, 이동, 떨어지는 일이 없도록 안전하게 운송\n' +
'5. 수출용 박스는 수출용 포장재 사용, 녹 방지를 위한 밀폐 포장을 하며, 필요시는 진공 포장을 한다.',
PO_REMARK2: '1. 본 발주서 접수 후 3일 이내 서면으로 수락, 거부 통지가 없으면 효력이 발생한 것으로 간주함.\n' +
'2. 발주자가 요구할 경우 공급자는 계약이행 보증증권 또는 하자이행 보증증권을 제출하여야 함.\n' +
'3. 불량 발생시 공급자(을)는 신속하게 양품으로 대체하고, 만약 불량품이 발생할 때에는 별도의 약정이 없는 한 그 손해배상금을 발주자(갑)가 정하는 바에 따라 발주자(갑)에게 지급하여야 함.\n' +
'4. 납기 지연시 지체 배상금은 발주서 기준 1일당 3/1000씩 차감하는 것으로 하고, 별도 비용등 발생시 공급자(을)의 부담으로 한다.\n' +
'5. 기타 일반 사항은 (주)스틸코리아 하도급 기본계약서에 준하며, 명기되지 않은 것은 계약 일반 조건을 따른다.',
};
_this.base_info_trn = {
PAYMENT_COND : '정기결제',
PO_DEL_COND : '하차도',
PO_MNG_CLASS : '정상작업',
PO_REMARK1: '1. 발주서에 언급된 장소까지 안전하게 운송, 하차하여야 하여야 한다.\n' +
'2. 제품에 대한 Damage 가 없도록 안전하게 운송한다.\n' +
'3. 운송간에 제품에 대한 손상 및 파손등이 없도록 제품 에 대한 결박을 철저히 하며, 결박시 제품자체에 손상이 안가도록 한다.\n' +
'4. 또한 제품의 중량, 사이즈 고려하여 안전에 유의하여 운송할 것\n' +
'5. 운송을 위하여 당사 출입시 당사 안전 규정에 준수하여 출입하고, 장비 사용은 불허하며, 필요시는 사전 승인을 받아야 한다.',
PO_REMARK2: '1. 본 발주서 접수 후 3일 이내 서면으로 수락, 거부 통지가 없으면 효력이 발생한 것으로 간주함.\n' +
'2. 발주자가 요구할 경우 공급자는 계약이행 보증증권 또는 하자이행 보증증권을 제출하여야 함.\n' +
'3. 적재, 운송, 하차등 운송간에 제품 손상 및 damage 발생시 공급자(을)는 신속하게 당사로 통보하며, 그 파손된 제품에 대하여 별도의 약정이 없는 한 그 손해배상금을 발주자(갑)가 정하는 바에 따라 발주자(갑)에게 지급하여야 함.\n' +
'4. 납품 지체시, 지체 배상금은 발주서 기준 1일당 3/1000씩 차감하는 것으로 하고, 별도 비용등 발생시 공급자(을)의 부담으로 한다.\n' +
'5. 공급자(을)는 공급 소재에 임의 용접을 불허하며 불가피하게 치구와 가접시 발자주(갑)의 승인 후 10미리 이상인 황삭에서만 허용한다.\n' +
'5. 기타 일반 사항은 (주)스틸코리아 하도급 기본계약서에 준하며, 명기되지 않은 것은 계약 일반 조건을 따른다.',
};
_this.base_info_etc = {
PAYMENT_COND : '정기결제',
PO_DEL_COND : '하차도',
PO_MNG_CLASS : '정상작업',
PO_REMARK1: '1. 발주서에 언급된 치수, 도면, 사양서, 규격 기준에 합격하여야 한다.\n' +
'2. 발주 사양서 보증에 대한 원소재 성적서등 필요 서류 제출 할 것.\n' +
'3. 발주서와 상이하거나 기타 사항 발생시 즉시 발주서에 명기된 발주자에게 통보하고, 협의하여 진행한다. \n' +
'4. 납품은 당사 지정장소로 편도 운송조건으로 한다.',
PO_REMARK2: '1. 본 발주서 접수 후 3일 이내 서면으로 수락, 거부 통지가 없으면 효력이 발생한 것으로 간주함.\n' +
'2. 발주자가 요구할 경우 공급자는 계약이행 보증증권 또는 하자이행 보증증권을 제출하여야 함.\n' +
'3. 불량 발생시 공급자(을)는 신속하게 양품으로 대체하고, 만약 불량품이 발생할 때에는 별도의 약정이 없는 한 그 손해배상금을 발주자(갑)가 정하는 바에 따라 발주자(갑)에게 지급하여야 함.\n' +
'4. 납기 지연시 지체 배상금은 발주서 기준 1일당 3/1000씩 차감하는 것으로 하고, 별도 비용등 발생시 공급자(을)의 부담으로 한다.\n' +
'5. 기타 일반 사항은 (주)스틸코리아 하도급 기본계약서에 준하며, 명기되지 않은 것은 계약 일반 조건을 따른다.',
};
}
setPopForm (data) {
let _this = this;
let po = Tb_funcs_Hdr.selectPo;
Object.keys(po).forEach(key => {
if (po[key] != null && document.forms['frmOutsourcing'].querySelector('[name='+key+']') ) {
document.forms['frmOutsourcing'].querySelector('[name='+key+']').setAttribute(['data-defval'], po[key]);
}
// document.forms['frmOutsourcing'].querySelector('[name=PO_UID]').setAttribute('readonly',true);
})
formSetVal(document.forms['frmOutsourcing']);
_this.tblList.setData(data);
_this.setTtlPoAmt(_this.tblList);
};
async getPoInfo( PO_NO, excel = false ) {
let _this = this;
let rval = {};
await ajax_json({
url: _this.ajax_url,
type: "POST",
data: {
mode: 'getDtlList',
PO_NO,
},
success: function (data) {
if( data.code ){
if (!excel) {
_this.setPopForm(data.data);
}
rval = data.data;
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function(){
}
});
return rval;
}
setOutsourcing = (e) => {
e.preventDefault();
let _this = this;
if (document.querySelector("#PO_UID").value !== document.querySelector("#PO_UID_OLD").value) {
kuls_alert('발주번호가 일치하지 않습니다. <br> 새로운 등록을 위해서는 복사등록을 이용해 주십시오');
return false;
}
let formdata = form2Json(document.frmOutsourcing);
let postdata = _this.tblList.getData();
formdata.mode = 'setOutsourcing';
// formdata['PO'] = JSON.stringify(Tb_funcs_Hdr.selectPo);
formdata['ITEM'] = JSON.stringify(postdata);
ajax_json({
url: _this.ajax_url,
type: "POST",
data: formdata,
success: function (data) {
if( data.code ){
kuls_success("적용 되었습니다.");
Tb_funcs_Hdr.getMainList(Tb_funcs_Hdr.getMainList);
_this.putOutsourcingModal.remove();
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function(){
}
});
};
revokeData(row){
let _this = this;
row.update({USE_FLG:"Y"});
row.getElement().classList.remove("del-row");
};
shGEdParams ( cell ) {
let _this = this;
return Object.keys(varsSHAPE_GRP).reduce( (ret, key) => { ret[varsSHAPE_GRP[key].Code_Uid] = varsSHAPE_GRP[key].Code_Exp; return ret; }, {})
};
shGFormatter ( cell ) {
let _this = this;
return varsSHAPE_GRP[cell.getValue()]?.Code_Exp;
};
initModal( PO_NO ) {
let _this = this;
vnLoad( '', './outsourcing.prop.inc.php', '', function(loadHtml){
_this.putOutsourcingModal = kuls_modal(loadHtml, {dontclose:true});
document.querySelector(".btn_close").addEventListener("click", ()=>_this.putOutsourcingModal.remove());
_this.init( PO_NO );
});
};
//Cell 클릭 콜백
cellClick (e, tgt){
let _this = this;
switch(tgt.getField()){
}
};
cellEdited (cell){
let _this = this;
cell.getData()._STATUS_ = cell.getData()._STATUS_||'U';
switch (cell.getField() ) {
case "AMT":
break;
default :
_this.setPoAmt(cell.getRow());
break;
}
};
setPoAmt (row) {
let _this = this;
let data = row.getData();
let qty = Number(data.QTY);
let pwr_price = Number(data.PWR_PRICE);
let price = Number(data.PRICE);
data.PWR_AMT = qty * pwr_price;
data.AMT = qty * price;
if (isNaN(data.PWR_AMT) || !data.PWR_AMT) {
data.PWR_AMT = null;
}
if (isNaN(data.AMT) || !data.AMT){
data.AMT = null;
}
row.update(data);
_this.setTtlPoAmt(_this.tblList);
}
setTtlPoAmt (tblList) {
let _this = this;
let ttl_po_amt = 0;
tblList.getRows().forEach(row => {
let po = row.getData();
ttl_po_amt += Number(po.AMT || 0);
})
document.querySelector("#PO_AMT_TTL_VIEW").innerHTML = currency(ttl_po_amt, {symbol: '', decimal: ',', precision:0}).format();
}
regPoCopy () {
let _this = this;
let formdata = form2Json(document.frmOutsourcing);
let postdata = _this.tblList.getData();
formdata.mode = 'copyOutsourcing';
formdata['ITEM'] = JSON.stringify(postdata);
ajax_json({
url: _this.ajax_url,
type: "POST",
data: formdata,
success: function (data) {
if( data.code ){
kuls_success("적용 되었습니다.");
Tb_funcs_Hdr.getMainList(Tb_funcs_Hdr.getMainList);
_this.putOutsourcingModal.remove();
}else{
kuls_alert(data.mesg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function(){
}
});
}
setBaseInfo () {
let _this = this;
let type = document.querySelector("#PO_MATR_CLASS").value;
console.log(type);
switch( type ){
case "FRG":
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK1]').value = _this.base_info_frg.PO_REMARK1;
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK2]').value = _this.base_info_frg.PO_REMARK2;
break;
case "MNF":
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK1]').value = _this.base_info_mnf.PO_REMARK1;
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK2]').value = _this.base_info_mnf.PO_REMARK2;
break;
case "PKG":
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK1]').value = _this.base_info_pkg.PO_REMARK1;
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK2]').value = _this.base_info_pkg.PO_REMARK2;
break;
case "TRN":
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK1]').value = _this.base_info_trn.PO_REMARK1;
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK2]').value = _this.base_info_trn.PO_REMARK2;
break;
case "ETC":
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK1]').value = _this.base_info_etc.PO_REMARK1;
document.forms['frmOutsourcing'].querySelector('[name=PO_REMARK2]').value = _this.base_info_etc.PO_REMARK2;
break;
}
}
init( PO_NO ) {
let _this = this;
const fields_member = [
// { formatter:"rowSelection", titleFormatter: "rowSelection", width: "2%", minWidth:36, headerSort: false, },
{ field: "SO_NO", title: "관리번호", width: "12%", minWidth:200, },
{ field: "MNG_NO", title: "수주번호", width: "12%", minWidth:200, },
{ field: "PO_DTL_ORD_NO", visible:false, },
{ field: "ITEM_CD", title: "품명", width: "8%", minWidth:100, editorParams:{ valuesLookup: _this.shGEdParams }, formatter:_this.shGFormatter, },
{ field: "", title: "규격", width: "20%",
columns:[
{ field:"SPC_OD", title:"OD", width:"5%", editor:'input', formatter: "money", formatterParams:{precision:1}, },
{ field:"SPC_ID", title:"ID", width:"5%", editor:'input', formatter: "money", formatterParams:{precision:1}, },
{ field:"SPC_TH", title:"TH", width:"5%", editor:'input', formatter: "money", formatterParams:{precision:1}, },
{ field:"SPC_W", title:"W", width:"5%", editor:'input', formatter: "money", formatterParams:{precision:1}, },
{ field:"SPC_L", title:"L", width:"5%", editor:'input', formatter: "money", formatterParams:{precision:1}, },
],
},
{ field: "MATR", title: "재질", width: "8%", minWidth:100, editor:'input', },
{ field: "DRAW_NO", title: "도면번호", width: "8%", minWidth:100, },
{ field: "PO_UNIT", title: "단위", width: "6%", minWidth:60, editor:'input', },
{ field: "QTY", title: "수량", width: "6%", minWidth:100, editor:'input', },
{ field: "PO_DTL_COND", title: "조건", width: "10%", minWidth:100, editor:'input', },
{ field: "SPEM", title: "시편", width: "8%", minWidth:80, editor:'input', },
{ field: "REQ_DLVY_DT", title: "납기일", width: "8%", minWidth:100, editor:'date', editorParams: {max:'9999-12-31'}, },
{ field: "CUST_PO_NO", title: "고객 PO NO", width: "8%", minWidth:100, },
{ field: "PWR_PRICE", title: "분철단가", width: "8%", minWidth:100, editor:'input', formatter:"money", formatterParams:{precision:0},},
{ field: "PWR_AMT", title: "분철금액", width: "8%", minWidth:100, formatter:"money", formatterParams:{precision:0},},
{ field: "PRICE", title: "발주단가", width: "8%", minWidth:100, editor:'input', formatter:"money", formatterParams:{precision:0}, },
{ field: "AMT", title: "발주금액", width: "8%", minWidth:100, formatter:"money", formatterParams:{precision:0}, },
{ field: "INST_COND", title: "가공검사", width: "16%", minWidth:300, editor:'input', },
{ field: "REMARK", title: "비고", width: "16%", minWidth:300, editor:'input', },
];
_this.tblList = new Tabulator("#tblOutsourcingMember",{
layout: "fitColumns",
data: [], //기본 데이터
height: "100%",
columns: fields_member, //컬럼 설정
columnDefaults: { //컬럼 공통 규칙
vertAlign: "middle",
hozAlign: "center",
resizable: "header",//Resize 는 헤더에서만 가능
headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화
},
rowFormatter:function(row){
},
headerSortElement: "<i class='bi'></i>", //정렬 아이콘
});
_this.tblList.on("cellEdited", function(cell) { //cell modify
_this.cellEdited && _this.cellEdited(cell);
});
_this.tblList.on("cellClick", function(e, tgt) { //cell click
_this.cellClick && _this.cellClick(e, tgt);
});
_this.tblList.on("rowDeselected", (row) => { //cell 선택해제시
_this.revokeData && _this.revokeData(row);
});
_this.tblList.on("tableBuilt", function(){ //테이블 init 후
if( PO_NO ){
_this.getPoInfo(PO_NO);
}else{
_this.addRow();
}
});
document.querySelector("form[name=frmOutsourcing]").addEventListener("submit", _this.setOutsourcing );
['click','keypress'].forEach( evt => document.querySelector("#btnGetBp").addEventListener(evt, ()=>{
popPartnerList({tgt_id:'#PO_BP_CD',tgt_full_name:'#PO_BP_NM',tgt_chname:'#PO_BP_PRSN_NM'});
} ) );
['click','keypress'].forEach(evt => document.querySelector("#btnRegPoCopy").addEventListener(evt,()=>{_this.regPoCopy()}));
['click','keypress'].forEach( evt => document.querySelector("#PO_MATR_CLASS").addEventListener(evt, ()=>{ _this.setBaseInfo(); } ) );
document.querySelector("#awn-popup-wrapper .awn-popup-body").className += ' pop_mng';
};
}
const Tb_funcs_Hdr = new Tb_class_Hdr();
const Tb_funcs_Dtl = new Tb_class_Dtl()
Tb_funcs_Hdr.init();