/*
* @Overview 거래처 페이지
* @History 2024-03-20 / 이원기 / 최초작성
* @ETC 거래처 리스트의 경우 입력 정보가 많아 별도의 팝업을 통해 정보를 입력
*/
class Tb_Partner_class {
constructor(container) {
let _this = this;
_this.ajaxUrl = "./partner.ajax.php";
_this.tbList = "";
_this.removeData="";
_this.container = document.querySelector(container);
_this.table = this.container.querySelector(".hy-table");
// _this.upBtn = this.container.querySelector(".up-btn") || "";
// _this.downBtn = this.container.querySelector(".down-btn") || "";
_this.updateBtn = this.container.querySelector(".update-btn")
_this.addBtn = this.container.querySelector(".add-btn");
_this.removeBtn = this.container.querySelector(".remove-btn");
_this.putPartnerModal = "";
//조회 관련 변수 선언
_this.BP_CD = "";
_this.salesType = "";
_this.pur_FLG = "";
_this.sal_FLG = "";
_this.use_FLG = "";
_this.putPartner = "putBPInfo";
_this.setPartner = "setBPInfo";
}
/*
* @Overview 거래처 정보 조회 함수.
* @Parameter 파라미터 없음. 조회 관련 변수 참조
*/
getMainList = () => {
let _this = this;
_this.BP_CD = document.getElementById("BP_NM_FIND").value;
// _this.salesType = document.getElementById("sales_type").value;
// console.log(_this.salesType)
_this.pur_FLG = document.getElementById("pur_flag").checked ? "Y" : "";
_this.sal_FLG = document.getElementById("sal_flag").checked ? "Y" : "";
_this.use_FLG = document.getElementById("use_flag").value;
let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
ajax_json({
url: this.ajaxUrl,
data: {
mode : "getBPList" ,
USE_FLG :_this.use_FLG,
BP_CD :_this.BP_CD,
salesType :_this.salesType,
PUR_FLG :_this.pur_FLG,
SAL_FLG :_this.sal_FLG
},
success: (data) => {
if(data.code) {
this.tbList.setData(data.data);
}else{
kuls_alert(data.mesg);
}
},
error: (req, status, err) => {
kuls_alert(err.message);
},
complete: () => {
window.clearTimeout(talert);
this.tbList.clearAlert();
// this.setFilter();
},
});
return true;
}
/*
* @Overview 데이터 필터 함수
* @Parameter 없음
* @function 공장, 작업장, 사용 여부 필터링
*/
// setFilter() {
// this.tbList.setFilter((data)=>{
// return (
// true
// && ( !document.getElementById("partner_name") || ( (data.BP_CD+"|"+data.BP_NM).search(document.getElementById("partner_name").value) !== -1 ) )
// // && ( !document.getElementById("sales_type") || ( (data.SALES_GRP).search(document.getElementById("sales_type").value) !== -1 ) )
// && ( !document.getElementById("pur_flag") || ( !document.getElementById("pur_flag").checked || data.PUR_FLG === 'Y' ) )
// && ( !document.getElementById("sal_flag") || ( !document.getElementById("sal_flag").checked || data.SAL_FLG === 'Y' ) )
// && ( !document.getElementById("use_flag") || ( !document.getElementById("use_flag").checked || data.USE_FLG === 'Y' ) )
// )
// }, '=', true);
// }
/*
* @Overview 거래처 등록 팝업을 여는 함수.
* @Parameter
* @Function 기존 ROW 추가 함수명과 통일.
*/
addRow = () => {
let _this = this;
_this.modalPartner();
}
/*
* @Overview 팝업 오픈
* @Parameter 거래처 코드
* @function 공장, 작업장, 사용 여부 필터링
*/
modalPartner = ( rowData )=>{
let _this = this;
vnLoad( '', './partner_pop.inc.php', '', function(loadHtml){
_this.putPartnerModal = kuls_modal(loadHtml);
// document.querySelector(".btn_close").addEventListener("click", ()=>_this.putpartnerModal.delete());
Partner_Pop.init( rowData );
});
};
/*
* @Overview 저장 버튼 활성화 버튼
* @Parameter 없음
* @function 선택된 모든 행 STATUS D
*/
saveButtonActive(boolean){
if(boolean){
document.getElementById("put_btn").classList.add('disabled-btn');
document.getElementById("put_btn").disabled = true;
}else{
document.getElementById("put_btn").classList.remove('disabled-btn');
document.getElementById("put_btn").disabled = false;
}
}
/*
* @Overview 테이블 행 삭제 함수
* @Parameter 없음
* @function 선택된 모든 행 STATUS D
*/
// removeRow = () =>{
// let _this = this;
// const selectedRows = this.tbList.getRows().filter(row=>{
// return row.getData().check ==="Y"
// });
// // 선택된 각 행 삭제
// selectedRows.forEach((row) => {
// // STAUS D로 바꾸기
// row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D";
// _this.saveButtonActive(false);
// const rowElement = row.getElement();
// rowElement.classList.add("remove-row");
// });
// let postdata = this.tbList.getData().reduce( (nrow, mem, i) => {
// mem._STATUS_ && nrow.push({...mem});
// return nrow;
// }, [] );
// // _this.formdata['PRSN'] = JSON.stringify(postdata);
// // _this.formdata['mode'] = "delBPInfo";
// // _this.formdata['putOrSet'] = _this.putOrSet;
// _this.removeData = postdata;
// }
removeRow() {
const selectedRows = this.tbList.getRows().filter(row=>{
return row.getData().check ==="Y"
});
if(selectedRows.length > 0 ){
kuls_confirm("삭제","하시겠습니까?", ()=>{
// 선택된 각 행 삭제
selectedRows.forEach((row) => {
// STAUS D로 바꾸기
row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D";
// this.saveButtonActive(false);
const rowElement = row.getElement();
rowElement.classList.add("remove-row");
});
this.saveButtonActive(false);
},)
}else{
kuls_alert("삭제할 행을 선택해주세요.")
}
const postdata = _this.tblList.getData().reduce( (nrow, mem, i) => { // 상태 변화 있는 ROW에 대하여 변수 대입
mem._STATUS_ && nrow.push({...mem});
return nrow;
}, [] );
this.removeData = postdata;
}
/*
* @Overview 테이블 행 선택 함수
* @Parameter 이벤트, 타겟 행
*/
rowClick = (e, tgt) => {
if (tgt.isSelected()) {
tgt.deselect();
this.updateBtn.classList.add("disabled-btn");
this.updateBtn.disabled = true;
this.clearRemove(tgt)
} else {
this.tbList.deselectRow();
tgt.select();
this.updateBtn.disabled = false;
this.updateBtn.classList.remove("disabled-btn")
}
}
/*
* @Overview 테이블 행 더블 클릭시에 팝업----------------------------마무리안함!!!!!!!!!!!
* @Parameter 이벤트, 타겟 행
*/
rowDblClick = (e, tgt)=> {
// popClientEditor({
//
// },tgt)
let _this = this;
let row = tgt._row;
_this.modalPartner(row.data);
}
/*
* @Overview 삭제 취소 함수
* @Parameter 삭제 행
* @function 클릭시 삭제 취소 & STATUS를 공란으로 변경
*/
clearRemove(tgt){
let _this = this;
if(tgt._row.data._STATUS_ == "D"){
// console.log();
tgt._row.data._STATUS_ = "";
tgt._row.getElement().classList.remove("remove-row")
_this.saveButtonActive(true);
// const selectedRows = this.tbList.getSelectedRows(); // 선택된 모든 행 가져오기
}
}
/*
* @Overview cell 클릭 함수
* @Parameter 클릭한 cell
* @Function 클릭한 cell의 filed 값에 따라 토글 상태 변경 또는 팝업
*/
cellClick = (e, tgt) => {
var editor = tgt.getColumn().getDefinition().editor;
switch (tgt.getField()) {
// case "USE_FLG":
// tgt.setValue( tgt.getValue() == 'Y' ? 'N' : 'Y' );
// break;
case "check":
tgt.setValue(tgt.getValue() == "Y" ? "" : "Y");
this.clearRemove(tgt.getRow())
break;
default:
if (!editor) {
this.rowClick && this.rowClick(e, tgt.getRow());
}
break;
}
}
/*
* @Overview 테이블 행 삭제 함수
* @Parameter 없음
*/
deleteRow = () => {
if(this.tbList.getData().filter(row=> row._STATUS_).length == 0){
this.getMainList();
return false;
}
// this.tbList.getData().filter( function (row) {return { BP_CD : row.BP_CD, _STATUS_: row._STATUS_ }})
let _this = this;
let BP_CD = this.tbList.getData().filter( row=> row._STATUS_ );
// console.log(BP_CD);
ajax_json({
url: _this.ajaxUrl,
// type: "POST",
data: {
mode:"delBPInfo",
data: JSON.stringify(BP_CD)
},
success: function (data) {
if( data.code ){
kuls_success("적용 되었습니다.");
Tb_Partner.getMainList();
// Tb_funcs.putPartnerModal.delete();
}else {
kuls_alert(data.msg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function(){
this.saveButtonActive(true);
this.updateBtn.disabled = false;
this.updateBtn.classList.remove("disabled-btn")
}
});
}
/*
* @Overview 테이블 셀 수정 함수
* @Parameter 셀
* @function 셀 편집이 이후 저장될수 있도록 _STATUS_:U로 데이터 업데이트
*/
cellEdited = (cell) => {
cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U";
}
/*
* @Overview 추가, 수정 및 삭제 데이터 저장
* @Parameter 없음
*/
/*
* @Overview 최초 실행 함수
* @Parameter 없음
*/
init = () => {
// field 정의
const fields = [
{ field:"check", title: "선택", width: 50,
formatter: tb_common_funtions.formatterCheckboxIcon,
formatterParams: { checkval: "Y" },
},
{ formatter: "rownum", title: "No", width: 50, },
// { field: "SALES_GRP", title: "영업분류", width: 150, formatter: (cell)=> varsSALES_GRP[cell.getValue()] },
{ field: "BP_CD", title: "거래처", width: 150, },
{ field: "BP_NM", title: "거래처명", width: 100, hozAlign:"left" },
{ field: "BP_TYPE", title: "자사", width: 50, formatter: tb_common_funtions.formatterSelCircleIcon, },
{ field: "BIZ_TYPE", title: "업종", width: 300, hozAlign:"left" },
{ field: "BIZ_ITEM", title: "업태", width: 50, hozAlign:"left" },
{ field: "BIZ_REG_NO", title: "사업자등록번호", width: 300, },
{ field: "REPRESN_NM", title: "대표자명", width: 150, },
{ field: "ZIP_CD", title: "우편번호", width: 150, },
{ field: "ADDR1", title: "주소", width: 400, hozAlign:"left" },
{ field: "TEL_NO", title: "전화번호", width: 100, },
{ field: "FAX_NO", title: "팩스번호", width: 100, },
{ field: "PUR_FLG", title: "매입처", width: 50, formatter: tb_common_funtions.formatterSelCircleIcon, },
{ field: "SAL_FLG", title: "매출처", width: 50, formatter: tb_common_funtions.formatterSelCircleIcon, },
{ field: "NAT_CD", title: "국가", width: 100, formatter: tb_common_funtions.formatterNations, },
{ field: "CURRENCY_CD", title: "거래화폐", width: 100, /*formatter: tb_common_funtions.formatterCurrency,*/ },
{ field: "BP_PRSN_NM", title: "업체담당자", width: 150, },
{ field: "BP_PRSN_EMAIL", title: "담당자이메일", width: 300, hozAlign:"left" },
{ field: "BP_PRSN_CELL_NO", title: "담당자연락처", width: 100, },
{ field: "REMK", title: "비고", width: 300, hozAlign:"left" },
// { field: "USE_FLG", title: "사용", width: 50, cssClass: "editable-cell", formatter: tb_common_funtions.formatterToggleboxGreenIcon, formatterParams: { checkval: "Y" }, },
// { field: "USE_FLG", title: "사용", width: 50, formatter: tb_common_funtions.formatterToggleboxGreenIcon, },
];
const commonFieldData = {
headerSort: true,
vertAlign: "middle",
hozAlign: "center",
resizable: "header", //Resize 는 헤더에서만 가능
headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화
};
/*
* @Overview tabulator 객체 생성
* @Parameter 생성 위치(html class값)
*/
this.tbList = new Tabulator(this.table, {
layout: "fitColumns",
data: [], //기본 데이터
columns: fields, //컬럼 설정
columnDefaults: commonFieldData,
headerSortElement: "", //정렬 아이콘
});
/*
* @Overview 테이블 만들어지면 데이터 불러오기
* @Parameter 없음
*/
this.tbList.on("tableBuilt", () => {
this.getMainList();
});
/*
* @Overview cell 클릭시 체크 또는 팝업
* @Parameter 이벤트, 셀
*/
this.tbList.on("cellClick", (e,tgt) => {
this.cellClick && this.cellClick(e,tgt);
});
/*
* @Overview row 더블 클릭시 팝업
* @Parameter 이벤트, 행
*/
this.tbList.on("rowDblClick", (e, tgt)=>{
this.rowDblClick && this.rowDblClick(e,tgt);
});
/*
* @Overview cell 수정 함수
* @Parameter cell
* @Function status u로 변경
*/
this.tbList.on("cellEdited", (cell) => {
this.cellEdited && this.cellEdited(cell);
});
/*
* @Overview 거래처 등록을 위한 팝업
* @Parameter
* @function 팝업 등록 완료 시 Tabulator table에 ROW추가
*/
["click", "keypress"].forEach((evt) => {
this.addBtn.addEventListener(evt, () => {
this.addRow && this.addRow();
});
});
/*
* @Overview 삭제 버튼
* @Parameter
* @function 삭제버튼 클릭 시 해당 ROW의 CSS 속성 변경 & STATUS 상태 D 추가
*/
["click", "keypress"].forEach((evt) => {
this.updateBtn.addEventListener(evt, () => {
this.modalPartner(this.tbList.getSelectedRows()[0]._row.data)
});
});
/*
* @Overview 삭제 버튼
* @Parameter
* @function 삭제버튼 클릭 시 해당 ROW의 CSS 속성 변경 & STATUS 상태 D 추가
*/
["click", "keypress"].forEach((evt) => {
this.removeBtn.addEventListener(evt, () => {
// 삭제 함수
this.removeRow && this.removeRow();
});
});
/*
* @Overview 조회버튼
* @Parameter
*/
["click", "keypress"].forEach((evt) => {
const filterBtn = document.querySelector("#filter_btn");
filterBtn.addEventListener(evt, () => {
let _this = this;
// setFilter 또는 setData
// this.setFilter && this.setFilter();
_this.getMainList && _this.getMainList();
});
});
/*
* @Overview 저장버튼
* @Parameter
* @function 해당 거래처 화면은 팝업으로 저장되므로 저장버튼은 삭제한 ROW에 한하여 기능
*/
["click", "keypress"].forEach((evt) => {
const putBtn = document.querySelector("#put_btn");
putBtn.addEventListener(evt, () => {
let _this = this;
_this.deleteRow();
// this.putData && this.putData();
// this.removeRow && this.removeRow();
});
});
}
}
/*
* @Overview 팝업 클래스
* @Parameter 없음
*/
class Partner_Pop_class{
constructor() {
let _this = this;
_this.ajaxUrl = "./partner.ajax.php";
_this.putOrSet = "";
_this.tblList = "";
}
/*
* @Overview 팝업 input 데이터 바인딩
* @Parameter 테이블에서 선택한 데이터 정보
*/
getPartnerInfo = (rowData)=>{
let _this = this;
let BP_CD = rowData?.BP_CD;
let PUR_FLG = rowData?.PUR_FLG;
let SAL_FLG = rowData?.SAL_FLG;
let USE_FLG = rowData?.USE_FLG;
// if(!rowData.BP_CD){
// BP_CD = rowData.BP_CD;
// }else {
// BP_CD ="";
// }
if(BP_CD) { //거래처 코드 있는 경우 => 수정 시
// _this.putOrSet = Tb_Partner.setPartner;
document.getElementById("BP_CD").readOnly = true;
_this.putOrSet = "set";
}else if(!BP_CD){
document.getElementById("BP_CD").readOnly = false;
_this.putOrSet = "put";
return false;
}
let talert = window.setTimeout(function () { _this.tblList.alert("Loading ...") }, 1000); //1초 이상 지연되면 로딩 출력
ajax_json({
url: _this.ajaxUrl,
data: { mode: 'getBPInfo', BP_CD : BP_CD, PUR_FLAG:PUR_FLG ,SAL_FLAG: SAL_FLG, USE_FLG: USE_FLG },
success: function (data) {
if (data.code) {
_this.tblList.setData(data.data.prsn); //팝업창 오픈 시 거래처 담당자
const {prsn, ...getData} = data.data; //거래처 담당자 제외
for(const dataName in getData){
if(dataName === "PUR_FLG"||dataName ==="BP_TYPE"||dataName ==="SAL_FLG" ||dataName ==="USE_FLG" ){
document.getElementById(`${dataName}`).checked = getData[dataName] === 'Y'? true : false;
}else if(dataName =="BIZ_REG_NO"){
const regex = /(\d{3})(\d{2})(\d{5})/;
document.getElementById(`${dataName}`).value = getData[dataName].replace(regex, "$1-$2-$3")
}else{
document.getElementById(`${dataName}`).value = getData[dataName]; //input 태그에 가져온 데이터 위치
}
// console.log(document.getElementById(`${dataName}`));
}
// console.log(document.getElementById(`BP_NM`).value);
}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;
}
/*
* @Overview 팝업 데이터 INSERT/UPDATE 함수
* @Parameter 없음/테이블 상 수정 또는 삭제되어 상태 변화된 ROW는 요청 후 PHP 상에서 가공 처리
*/
putPartnerInfo = (e)=>{
e.preventDefault();
let _this = this;
_this.formdata = form2Json(document.frmPartner);
// _this.formdata['putOrSet'] = _this.putOrSet;
let postdata = _this.tblList.getData().reduce( (nrow, mem, i) => {
mem._STATUS_ && nrow.push({...mem});
return nrow;
}, [] );
_this.formdata['USE_FLG'] = document.getElementById("USE_FLG").checked?"Y":"N";
_this.formdata['BP_TYPE'] = document.getElementById("BP_TYPE").checked?"Y":"N";
_this.formdata['SAL_FLG'] = document.getElementById("SAL_FLG").checked?"Y":"";
_this.formdata['PUR_FLG'] = document.getElementById("PUR_FLG").checked?"Y":"";
// _this.formdata['SAL_FLAG'] = document.getElementById("SAL_FLG").checked?"Y":"N";
_this.formdata['PRSN'] = JSON.stringify(postdata);
_this.formdata['mode'] = "putBPInfo";
_this.formdata['putOrSet'] = _this.putOrSet;// 수정 : set, 등록 : put 백에서 처리
console.log(_this.formdata);
// console.log(postdata);
ajax_json({
url: _this.ajaxUrl,
// type: "POST",
data: _this.formdata,
success: function (data) {
if( data.code ){
kuls_success("적용 되었습니다.");
Tb_Partner.putPartnerModal.delete();
Tb_Partner.getMainList();
}else {
kuls_alert(data.msg);
}
},
error: function (request, status, error) {
kuls_alert(error.message);
},
complete: function(){
}
});
}
/*
* @Overview 삭제 버튼 클릭 후 상태 변화
* @Parameter 없음
*/
removeRow() {
const _this = this;
const selectedRows = _this.tblList.getRows().filter(row=>{
return row.getData().check ==="Y"
});
if(selectedRows.length > 0 ){
kuls_confirm("삭제","하시겠습니까?", ()=>{
// 선택된 각 행 삭제
selectedRows.forEach((row) => {
// STAUS D로 바꾸기
row.getData()._STATUS_ = row.getData()._STATUS_=="I"?null:"D";
const rowElement = row.getElement();
rowElement.classList.add("remove-row");
});
})
}else{
kuls_alert("삭제할 행을 선택해주세요.")
}
const postdata = _this.tblList.getData().reduce( (nrow, mem, i) => { // 상태 변화 있는 ROW에 대하여 변수 대입
mem._STATUS_ && nrow.push({...mem});
return nrow;
}, [] );
_this.removeData = postdata;
}
/*
* @Overview 선택한 ROW의 정보 또는 상태 변화에 활용하는 함수
* @Parameter 클릭한 row 데이터
*/
rowClick = (e, tgt)=> {
let _this = this;
if (tgt.isSelected()) {
tgt.deselect();
_this.clearRemove(tgt);
} else {
tgt.select();
}
}
/*
* @Overview 삭제 취소 함수
* @Parameter 삭제 행
* @function 클릭시 삭제 취소 & STATUS를 공란으로 변경
*/
clearRemove(tgt){
if(tgt._row.data._STATUS_ == "D"){
// console.log();
tgt._row.data._STATUS_ = "";
tgt._row.getElement().classList.remove("remove-row")
// const selectedRows = this.tbList.getSelectedRows(); // 선택된 모든 행 가져오기
}
}
/*
* @Overview 선택한 CELL의 정보 또는 상태 변화에 활용하는 함수
* @Parameter 클릭한 CELL 데이터
*/
cellClick = (e, tgt)=> {
// var editor = tgt.getColumn().getDefinition().editor; //에디터 속성을 가진 컬럼 변수(컬럼에 editor : input 을 부여하면 수정 가능해진다)
switch (tgt.getField()) {
case "check":
tgt.setValue(tgt.getValue() == "Y" ? "" : "Y");
this.clearRemove(tgt.getRow())
break;
// default:
// if (!editor) {
// this.rowClick && this.rowClick(e, tgt.getRow());
// }
// break;
}
}
/*
* @Overview Tabulator 초기화 및 선언
* @Parameter
*/
init = (rowData) => {
let _this = this;
const fields = [
{ field:"check", title: "선택", width: 50,
formatter: tb_common_funtions.formatterCheckboxIcon,
formatterParams: { checkval: "Y" },
},
{ formatter:"rownum", title: "NO", width: 50, headerSort: false, hozAlign:'center', },
{ field: "BP_PRSN_NM", title: "담당자명", width: 100, editor:"input", editable: (cell) => {
const val = cell.getData();
return val._STATUS_ === "I";
},},
{ field: "BP_PRSN_EMAIL", title: "이메일", width: 200, editor:"input", },
{ field: "BP_PRSN_TEL_NO", title: "연락처", width: 150,editor:"input", },
{ field: "BP_PRSN_CELL_NO", title: "휴대폰", width: 150, editor:"input",},
{ field: "BP_PRSN_FAX_NO", title: "FAX NO", width: 150, editor:"input",},
{ field: "REMK", title: "비고", width: 300,editor:"input", },
// { field: "", title: "메인", width: 50, formatter: tb_common_funtions.formatterCheckIcon2, formatterParams: {checkval:'Y'}},
];
_this.tblList = new Tabulator("#tbl_partner_member",{
layout: "fitColumns",
data: [], //기본 데이터
height: "100%",
columns: fields, //컬럼 설정
columnDefaults: { //컬럼 공통 규칙
vertAlign: "middle",
hozAlign: "center",
resizable: "header",//Resize 는 헤더에서만 가능
headerHozAlign: "center", //헤더 정렬
headerSortTristate: true, //데이터 정렬 => 정/역/초기화
},
headerSortElement: "", //정렬 아이콘
});
_this.tblList.on("cellEdited", function(cell) { //Tabulator 초기 데이터 불러오기 이벤트
cell.getData()._STATUS_ = cell.getData()._STATUS_||'U';
});
// _this.tblList.on("rowDeselected", (row) => { //Tabulator cell Deslected
// _this.removeRow && _this.removeRow(row);
// });
_this.tblList.on("tableBuilt", function(){ //Tabulator 초기 데이터 불러오기 이벤트
_this.getPartnerInfo(rowData);
});
_this.tblList.on("cellClick", (e,tgt) => {
this.cellClick && this.cellClick(e,tgt);
});
/*
* @Overview 행 추가 이벤트
* @Parameter 없음
*/
["click", "keypress"].forEach((evt) => {
let _this = this;
const addBtn = document.querySelector("#awn-popup-wrapper .add-btn") || "";
addBtn.addEventListener(evt, () => {
_this.tblList.addRow({ _STATUS_:'I', USE_FLG:'Y'});
});
});
/*
* @Overview 행 삭제 이벤트
* @Parameter 없음
*/
["click", "keypress"].forEach((evt) => {
let _this = this;
const removeBtn = document.querySelector("#awn-popup-wrapper .remove-btn") || "";
removeBtn.addEventListener(evt, () => {
// 삭제 함수
this.removeRow && this.removeRow();
});
});
/*
* @Overview 거래처 정보 저장
* @Parameter 없음
* @function FORM 태그로 SERVER 요청
*/
document.querySelector("form[name=frmPartner]").addEventListener("submit", Partner_Pop.putPartnerInfo);
};
}
const Tb_Partner = new Tb_Partner_class("#main_table");
const Partner_Pop = new Partner_Pop_class();
Tb_Partner.init();
/*
* @Overview 전화번호 및 팩스번호 formatting
* @Parameter HTML 입력값
*/
localAutoHyphen = (target) => {
target.value = target.value
.replace(/[^0-9]/g, '')
.replace(/^(\d{2,3})(\d{3,4})(\d{4})$/, `$1-$2-$3`);
}
/*
* @Overview 사업자등록번호 formatting
* @Parameter HTML 입력값
*/
formatBusinessRegistrationNumber = (target) => {
const regex = /(\d{3})(\d{2})(\d{5})/;
target.value = target.value.replace(regex, "$1-$2-$3");
// return formattedNumber;
}