From c0a293622d3b75f0545e940c7e1bc4d0430cd541 Mon Sep 17 00:00:00 2001 From: sychoi Date: Thu, 2 May 2024 08:53:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=9C=EB=B2=84=20=EB=8F=99=EA=B8=B0?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- home_dir/www/ksvc/base/dept/dept.js | 5 +- home_dir/www/ksvc/base/insp/insp.js | 46 ++- home_dir/www/ksvc/base/insp/insp.php | 3 + home_dir/www/ksvc/base/insp/insp_excel.js | 127 +++++++++ home_dir/www/ksvc/base/item/item.js | 22 +- .../reg_faclt_defect/reg_faclt_defect.js | 13 +- .../reg_faclt_repair/reg_faclt_repair.js | 5 +- home_dir/www/ksvc/inc/common.ajax.php | 256 ++++++++--------- .../ksvc/inc/css/scss/component/_search.scss | 4 +- .../ksvc/inc/css/scss/component/_sidebar.scss | 261 +++++++++--------- home_dir/www/ksvc/inc/header.php | 10 +- home_dir/www/ksvc/inc/js/popItemOper.js | 32 +++ home_dir/www/ksvc/inc/js/popup.js | 16 +- home_dir/www/ksvc/inc/js/vars.js.php | 4 +- .../prod/cnt_ct_worker/cnt_ct_worker.ajax.php | 12 +- .../ksvc/prod/cnt_ct_worker/cnt_ct_worker.js | 6 +- .../cnt_defect_order.ajax.php | 4 +- .../prod/cnt_defect_order/cnt_defect_order.js | 4 +- .../cnt_defect_worker.ajax.php | 2 +- .../cnt_defect_worker/cnt_defect_worker.js | 2 +- .../prod/cnt_faclt_ct/cnt_faclt_ct.ajax.php | 4 +- .../prod/cnt_oper_wt/cnt_oper_wt.ajax.php | 4 +- .../cnt_prod_faclt/cnt_prod_faclt.ajax.php | 2 +- .../prod/cnt_prod_faclt/cnt_prod_faclt.php | 2 +- .../cnt_prod_worker/cnt_prod_worker.ajax.php | 7 +- .../prod/cnt_prod_worker/cnt_prod_worker.js | 13 +- .../prod/cnt_prod_worker/cnt_prod_worker.php | 2 +- .../mng_order_result.ajax.php | 34 ++- .../prod/mng_order_result/mng_order_result.js | 203 ++++++++++---- .../mng_order_result/mng_order_result.php | 4 +- .../www/ksvc/prod/reg_order/popItemOper.js | 15 +- .../ksvc/prod/reg_order/reg_order.ajax.php | 3 +- home_dir/www/ksvc/prod/reg_order/reg_order.js | 57 +++- .../www/ksvc/prod/reg_order/reg_order.php | 2 + .../reg_order_result.ajax.php | 2 +- .../prod/reg_order_result/reg_order_result.js | 191 ++++++------- .../reg_order_result/reg_order_result.php | 6 +- home_dir/www/ksvc/prod/reg_plan/reg_plan.js | 19 +- .../site/sts_order_prod/reg_prod_result.js | 34 +-- 39 files changed, 875 insertions(+), 563 deletions(-) create mode 100644 home_dir/www/ksvc/base/insp/insp_excel.js diff --git a/home_dir/www/ksvc/base/dept/dept.js b/home_dir/www/ksvc/base/dept/dept.js index 5be5eaf..497ff78 100644 --- a/home_dir/www/ksvc/base/dept/dept.js +++ b/home_dir/www/ksvc/base/dept/dept.js @@ -375,16 +375,17 @@ class Tb_dept_class { }, { field: "DEPT_NM", title: "부서명", width: 150, editor: tb_custom_editor.upper, + hozAlign:"left", validator:{ type:tb_custom_validator.stringNumeric, parameters: "특수문자를 입력할 수 없습니다." } }, { field: "PAR_DEPT_CD", title: "상위부서코드", width: 150, cssClass:"editable-cell" }, - { field: "PAR_DEPT_NM", title: "상위부서명", width: 200, }, + { field: "PAR_DEPT_NM", title: "상위부서명", width: 200, formatter:function(cell){console.log( this.getWidth());} }, { field: "BIZ_AREA_CD", title: "사업장코드", width: 150, cssClass:"editable-cell" }, { field: "BIZ_AREA_NM", title: "사업장명", width: 200, }, - { field: "EMP_NO", title: "관리자", width: 100, cssClass:"editable-cell" }, + { field: "EMP_NO", title: "관리자", width: 100, cssClass:"editable-cell", }, { field: "USE_FLG", title: "사용", width: 50, cssClass: "editable-cell", formatter: tb_common_funtions.formatterToggleboxGreenIcon, formatterParams: { checkval: "Y" }, }, ]; diff --git a/home_dir/www/ksvc/base/insp/insp.js b/home_dir/www/ksvc/base/insp/insp.js index 39f6947..eb4fa7e 100644 --- a/home_dir/www/ksvc/base/insp/insp.js +++ b/home_dir/www/ksvc/base/insp/insp.js @@ -297,12 +297,13 @@ class Tb_insp_class { }, { field: "INSP_NAME", title: "검사항목명", width: 500, editor: "input", + hozAlign:"left", validator:{ type:tb_custom_validator.stringNumeric, parameters: "특수문자를 입력할 수 없습니다." }, }, - { field: "INSP_METH", title: "검사유형", width: 100, editor:"input"}, + { field: "INSP_METH", title: "검사유형",hozAlign:"left", width: 100, editor:"input"}, { field: "USEFLAG", title: "사용", width: 50, cssClass: "editable-cell", formatter: tb_common_funtions.formatterToggleboxGreenIcon, formatterParams: { checkval: "Y" }, }, ]; @@ -377,10 +378,51 @@ class Tb_insp_class { this.cellEdited && this.cellEdited(cell); }); + //엑셀연결 + document.getElementById('excel_down').addEventListener('click', function (e) { + getExcel2(); + }); + + document.getElementById('excel_up').addEventListener('click', function (e) { + document.getElementById('fileInput').click(); + }); + + document.getElementById('fileInput').addEventListener('change', function (e) { + let file = e.target.files[0]; + if (!file) { + console.log('파일이 선택되지 않았습니다.'); + return; + } + let reader = new FileReader(); + reader.onload = (e) => { + let data = e.target.result; + let workbook = XLSX.read(data, { type: 'binary' }); + + workbook.SheetNames.forEach((sheetName) => { + let rows = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], { header:1 }); + console.log(rows); + rows.slice(1).forEach((row,index) => { + let rowToAdd = { + INSP_ITEM: row[0], + INSP_NAME: row[1], + INSP_METH: row[2], + USEFLAG: row[3], + _STATUS_: "I" + }; + console.log('행추가 ', rowToAdd); + Tb_insp.tbList.addRow(rowToAdd); + }); + }); + }; + reader.readAsBinaryString(file); + }); + + + // 추가 ["click", "keypress"].forEach((evt) => { this.addBtn.addEventListener(evt, () => { - this.addRow && this.addRow(); + this.addRow && this.addRow() && this.addRow(rowToAdd); }); }); // 삭제 diff --git a/home_dir/www/ksvc/base/insp/insp.php b/home_dir/www/ksvc/base/insp/insp.php index 87c0e90..43400af 100644 --- a/home_dir/www/ksvc/base/insp/insp.php +++ b/home_dir/www/ksvc/base/insp/insp.php @@ -35,6 +35,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
+ @@ -98,5 +99,7 @@ include_once _SVC_INC_PATH_ . "/header.php"; + + { + const blob = new Blob([data], { + type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }); + const url = window.URL.createObjectURL(blob); + const anchor = document.createElement("a"); + anchor.href = url; + anchor.download = file_name; + anchor.click(); + window.URL.revokeObjectURL(url); + }); +} diff --git a/home_dir/www/ksvc/base/item/item.js b/home_dir/www/ksvc/base/item/item.js index f41f668..142228c 100644 --- a/home_dir/www/ksvc/base/item/item.js +++ b/home_dir/www/ksvc/base/item/item.js @@ -13,13 +13,13 @@ class Tb_item_class { let _this = this; _this.tbList =""; _this.itemData = ""; + _this.ITEM_CD = ""; this.ajaxUrl = "./item.ajax.php"; 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.addBtn = this.container.querySelector(".add-btn"); - _this.ITEM_CD = ""; this.removeBtn = this.container.querySelector(".remove-btn"); } @@ -279,7 +279,7 @@ class Tb_item_class { }, { formatter: "rownum", title: "NO", width: 50 }, { field: "ITEM_CD", title: "품목", width: 150,editor:'input',editable:(cell)=>{ let val = cell.getData(); return val._STATUS_ === 'I' }, }, //품목 코드 - { field: "ITEM_NM", title: "품명", width: 250,editor:'input', }, //품목 코드 + { field: "ITEM_NM", title: "품명", width: 250,editor:'input', hozAlign:"left" }, //품목 코드 { field: "DRAW_NO", title: "도면", width: 200,editor:'input' }, //도면 번호 - popup { field: "ITEM_GRP", title: "품목 그룹", width: 80, editor:"list", @@ -522,7 +522,7 @@ class Tb_routing_class { _this.fileData = JSON.parse(data).data; - console.log(_this.fileData); + if(rowData._STATUS_ !== "I"){ rowData.FILE_NM = _this.fileData.file_name; this.tbList.updateData([ @@ -546,7 +546,7 @@ class Tb_routing_class { ]); } - console.log(this.tbList.getData()); + }else{ kuls_alert(data.msg); } @@ -1365,8 +1365,8 @@ class Tb_pic_class { let _this = this; _this.file = ""; _this.itemData =""; - this.ajaxUrl = "./item.ajax.php"; _this.download_url = "/include/getFile.php"; + this.ajaxUrl = "./item.ajax.php"; this.container = document.querySelector(container); this.table = this.container.querySelector(".hy-table"); this.addBtn = this.container.querySelector(".add-btn"); @@ -1501,7 +1501,7 @@ class Tb_pic_class { }, complete: () => { window.clearTimeout(talert); - this.getMainList(); + // this.tbList.clearAlert(); // this.setFilter(); }, @@ -1706,11 +1706,11 @@ class Tb_pic_class { { field: "SID", visible:false}, { field: "FILE_ID", visible:false}, { field: "MAKE_TM", title: "등록일", width: 100, formatter: (cell)=>{ - let dateData = cell.getValue().date.substring(0,10); - if(dateData == '1900-01-01'){ - dateData = ''; - } - return dateData; + // let dateData = cell.getValue().date.substring(0,10); + // if(dateData == '1900-01-01'){ + // dateData = ''; + // } + return cell; } }, { field: "MAKE_USER_ID",title: "등록자", width: 100 }, diff --git a/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js b/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js index 49d7f70..cc41532 100644 --- a/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js +++ b/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js @@ -294,13 +294,14 @@ class Tb_facility_class { { formatter: "rownum", title: "NO", width: 50}, { field: "FACLT_NM", title: "설비", width: 150, editor: "input" , editable:(cell)=>{ let val = cell.getData(); return val._STATUS_ === 'I' },}, { field: "FACLT_CD", visible: false, width: 150}, - { field: "DEFECT_DT", title: "발생일", width: 150,editor:'date', editorParams:{ - min:"01/01/2000", // the minimum allowed value for the date picker - max:"02/12/9999", // the maximum allowed value for the date picker - format:"yyyy-MM-dd", // the format of the date value stored in the cell - verticalNavigation:"table"}}, - { field: "DEF_TM", title: "발생시간", width: 150, editor: tb_custom_editor.time }, + // { field: "DEFECT_DT", title: "발생일", width: 150,editor:'date', editorParams:{ + // min:"01/01/2000", // the minimum allowed value for the date picker + // max:"02/12/9999", // the maximum allowed value for the date picker + // format:"yyyy-MM-dd", // the format of the date value stored in the cell + // verticalNavigation:"table"}}, + // { field: "DEF_TM", title: "발생시간", width: 150, editor: tb_custom_editor.time }, { field: "DEFECT_CONTENT", title: "고장내역", width: 300, editor: "input"}, + { field: "DEFECT_DT", title: "발생일", width: 150}, ]; const commonFieldData = { headerSort: true, diff --git a/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js b/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js index aec2532..856a3a2 100644 --- a/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js +++ b/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js @@ -299,11 +299,12 @@ class Tb_facility_class { { field: "FACLT_NM", title: "설비", width: 150,editor: "input", editable:(cell)=>{ let val = cell.getData(); return val._STATUS_ === 'I' }, }, { field: "FACLT_CD", visible: false, width: 150}, { field: "REPAIR_NO", visible: false, width: 150}, - { field: "REPAIR_DT", title: "수리일자", width: 150,editor:'date', editorParams: {max:'9999-12-31'} }, { field: "REPAIR_CONTENT", title: "수리내역", width: 150,editor: "input" }, { field: "REPAIR_BP_NM", title: "수리업체", width: 100,editor: "input" }, - { field: "REPAIR_AMT", title: "수리금액", width: 150,editor: "input" }, + { field: "REPAIR_AMT", title: "수리금액", width: 150,editor: "input", formatter:"money", formatterParams:{ decimal:".",precision:0 } }, { field: "REPAIR_TEL_NO", title: "연락처", width: 200,editor: "input"}, + // { field: "REPAIR_DT", title: "수리일자", width: 150,editor:'date', editorParams: {max:'9999-12-31'} }, + { field: "REPAIR_DT", title: "수리일자", width: 150 } ]; const commonFieldData = { headerSort: true, diff --git a/home_dir/www/ksvc/inc/common.ajax.php b/home_dir/www/ksvc/inc/common.ajax.php index 01ffc87..16732ae 100644 --- a/home_dir/www/ksvc/inc/common.ajax.php +++ b/home_dir/www/ksvc/inc/common.ajax.php @@ -1,4 +1,9 @@ $_REQUEST['ITEM_CD'], - // ); - $rst = $baseObj->DB->exec($sql, $params); - - $rows = array(); - if ($rst) { - $retval['code'] = 1; - while ($row = $baseObj->DB->fetch_array($rst)) { - $rows[] = $row; - } - $retval['data'] = $rows; - } - break; - - case "getDefList": - $sql = "USP_P_DEF_RSLT_S20"; - // $params = Array( - // "ITEM_CD" => $_REQUEST['ITEM_CD'], - // ); - $rst = $baseObj->DB->exec($sql, $params); - $rows = array(); - if ($rst) { - $retval['code'] = 1; - while ($row = $baseObj->DB->fetch_array($rst)) { - $rows[] = $row; - } - $retval['data'] = $rows; - } - break; - - - +//토큰 case "memberTokenLogin": if (csrf_check('memberLogin')) { $retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다."); @@ -110,16 +80,9 @@ switch ($_REQUEST['mode']) { $retval['data']['save_id'] = ''; } } - break; - - - - - - - +//로그인 case "memberJoin": $minfo = $baseObj->getMember($_REQUEST['member_id']); if (csrf_check('memberJoin')) { @@ -151,29 +114,15 @@ switch ($_REQUEST['mode']) { $retval['code'] = $baseObj->join($ins_row); $retval['mesg'] = cUtil\Mlang::getText("등록에 실패하였습니다."); } - break; - - - - - - - +//로그아웃 case "memberLogout": $apiObj->pushApi($GLOBALS['_Umem']['member_id'], "종료"); $retval['code'] = $baseObj->logout(); break; - - - - - - - - +//메뉴리스트 case "getSiteMenuList": $mnuObj = new Menu(TB_menu_list); @@ -190,13 +139,12 @@ switch ($_REQUEST['mode']) { } break; - - +//거래처목록 case "getPartnerList": $sql = "USP_B_BIZ_PARTNER_S10"; $params = array( "P_USE_FLG" => "Y", - "P_BP_CD" => "", + "P_BP_CD" => "", "P_PUR_FLG" => "", "P_SAL_FLG" => "" ); @@ -207,16 +155,16 @@ switch ($_REQUEST['mode']) { if ($rst) { $retval['code'] = 1; while ($row = $baseObj->DB->fetch_array($rst)) { - // $row['BP_PRSN_CELL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_CELL_NO']); -// $row['BP_PRSN_EMAIL'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_EMAIL']); -// $row['BP_PRSN_TEL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_TEL_NO']); + // $row['BP_PRSN_CELL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_CELL_NO']); + // $row['BP_PRSN_EMAIL'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_EMAIL']); + // $row['BP_PRSN_TEL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_TEL_NO']); $rows[] = $row; } $retval['data'] = $rows; } break; - +//사업장 case "getBizareaList": $sql = "USP_B_BIZ_AREA_S10"; $params = Array( @@ -224,10 +172,7 @@ switch ($_REQUEST['mode']) { ,"BP_NM" => "" //거래처명 ,"USEFLAG" => 'Y' ); - - $rst = $baseObj->DB->exec($sql, $params); - $rows = array(); if ($rst) { $retval['code'] = 1; @@ -240,10 +185,57 @@ switch ($_REQUEST['mode']) { break; +// 사원정보 + case 'getWorkerList': + $squl = "USP_B_EMPLOYEE_S10"; + $params = Array( + "EMP_NO" => "", + "P_EMP_NM" => "", + "P_DEPT_CD" => "", + "P_DEPT_NM" => "", + "RET_FLG" => "N" + ); + $rst = $baseObj->DB->exec($squl,$params); + $rows = array(); + if( $rst ){ + $retval['code'] = true; + while( $row = $baseObj->DB->fetch_array($rst) ){ + $rows[] = $row; + }; + $retval['data'] = $rows; + $retval['mesg'] = '정상 동작 되었습니다.'; + }else{ + $retval['code'] = false; + } + break; +// 부서정보 + case 'getDeptList': + $squl = "USP_B_DEPT_S10"; + $params = Array( + "BIZ_AREA_NM" => "", + "DEPT_NM" => "", + "USE_FLG" => "Y" + ); + $rst = $baseObj->DB->exec($squl, $params); + $rows = array(); + if ($rst) { + $retval['code'] = true; + while ($row = $baseObj->DB->fetch_array($rst)) { + $rows[] = $row; + } + ; + $retval['data'] = $rows; + $retval['mesg'] = '정상 동작 되었습니다.'; + } else { + $retval['code'] = false; + } + break; + +//부서 트리 case "getDeptTree": $sql = "USP_B_DEPT_HISTORY_S11"; $params = array( @@ -271,62 +263,42 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - - // 사원정보 - case 'getWorkerList': - $squl = "USP_B_EMPLOYEE_S10"; - $params = Array( - "EMP_NO" => "", - "P_EMP_NM" => "", - "P_DEPT_CD" => "", - "P_DEPT_NM" => "", - "RET_FLG" => "N" - ); - $rst = $baseObj->DB->exec($squl,$params); - - $rows = array(); - if( $rst ){ - $retval['code'] = true; - while( $row = $baseObj->DB->fetch_array($rst) ){ - $rows[] = $row; - }; - $retval['data'] = $rows; - $retval['mesg'] = '정상 동작 되었습니다.'; - }else{ - $retval['code'] = false; - } - - - - break; - - - // 부서정보 - case 'getDeptList': - $squl = "USP_B_DEPT_S10"; - - $params = Array( - "BIZ_AREA_NM" => "", - "DEPT_NM" => "", - "USE_FLG" => "Y" - ); - $rst = $baseObj->DB->exec($squl, $params); +// 품목 정보 + case "getItemList": + $sql = "USP_B_ITEM_S20"; + $params = Array( + "ITEM_NM" => '', + ); + $rst = $baseObj->DB->exec($sql, $params); $rows = array(); if ($rst) { - $retval['code'] = true; + $retval['code'] = 1; while ($row = $baseObj->DB->fetch_array($rst)) { $rows[] = $row; } - ; $retval['data'] = $rows; - $retval['mesg'] = '정상 동작 되었습니다.'; - } else { - $retval['code'] = false; } break; - // 생산오더(작업지시)별 공정 정보 +// 불량실적 + case "getDefList": + $sql = "USP_P_DEF_RSLT_S20"; + // $params = Array( + // "ITEM_CD" => $_REQUEST['ITEM_CD'], + // ); + $rst = $baseObj->DB->exec($sql, $params); + $rows = array(); + if ($rst) { + $retval['code'] = 1; + while ($row = $baseObj->DB->fetch_array($rst)) { + $rows[] = $row; + } + $retval['data'] = $rows; + } + break; + +// 생산오더(작업지시)별 공정 정보 case 'getOrderList': $squl = "USP_P_WO_S20"; @@ -346,8 +318,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - - // 공정정보 +// 공정정보 case 'getOperList': $squl = "USP_B_OPERATION_S20"; $rst = $baseObj->DB->exec($squl); @@ -365,6 +336,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); $retval['code'] = false; } break; + // 특정 품목에 대한 공정정보 case 'getItemOperList': $squl = "USP_B_OPERATION_S30"; @@ -387,7 +359,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - // 설비 정보 +// 설비 정보 case 'getFacilityList': $squl = "USP_B_FACILITY_S10"; $params = Array( @@ -412,7 +384,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - // 검사항목 정보 +// 검사항목 정보 case "getInspList": $sql = "USP_B_INSP_ITEM_S10"; @@ -436,26 +408,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - - case "getBasecodeList": - $where = new DB_Where(); - $where->add("CD.Code_Uid <> ?", $_REQUEST['Bran_Uid']); - if ($_REQUEST['Group_Uid']) { - $where->add("CD.Code_Uid <> ?", $_REQUEST['Group_Uid']); - } - $where->add("BR.Active = ?", "Y"); - $where->add("GR.Active = ?", "Y"); - $rows = $baseObj->getAllBaseCodeList($_REQUEST['Bran_Uid'], $_REQUEST['Group_Uid'] ?: "", "", $where); - - for ($a = 0; $a < count($rows); $a++) { - $rows[$a]['Code_Uid_Old'] = $rows[$a]['Code_Uid']; - } - - $retval['code'] = 1; - $retval['data'] = $rows; - break; - - // 생산실적 오더 공정 정보 +// 생산실적 오더 공정 정보 case 'getRegOrderList': $squl = "USP_P_REG_WO_S20"; @@ -475,7 +428,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; - // 생산실적 설비 정보 +// 생산실적 설비 정보 case 'getOrderFacilityList': $squl = "USP_B_REG_FACILITY_S10"; @@ -495,10 +448,27 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', ''); } break; +//기초코드 + case "getBasecodeList": + $where = new DB_Where(); + $where->add("CD.Code_Uid <> ?", $_REQUEST['Bran_Uid']); + if ($_REQUEST['Group_Uid']) { + $where->add("CD.Code_Uid <> ?", $_REQUEST['Group_Uid']); + } + $where->add("BR.Active = ?", "Y"); + $where->add("GR.Active = ?", "Y"); + $rows = $baseObj->getAllBaseCodeList($_REQUEST['Bran_Uid'], $_REQUEST['Group_Uid'] ?: "", "", $where); + for ($a = 0; $a < count($rows); $a++) { + $rows[$a]['Code_Uid_Old'] = $rows[$a]['Code_Uid']; + } + $retval['code'] = 1; + $retval['data'] = $rows; + break; + +//기초코드 case "putBasecode": - $_REQUEST['reqdata'] = json_decode($_REQUEST['reqdata']); $rst = true; foreach ($_REQUEST['reqdata'] as $data) { diff --git a/home_dir/www/ksvc/inc/css/scss/component/_search.scss b/home_dir/www/ksvc/inc/css/scss/component/_search.scss index 170c796..1703041 100644 --- a/home_dir/www/ksvc/inc/css/scss/component/_search.scss +++ b/home_dir/www/ksvc/inc/css/scss/component/_search.scss @@ -82,7 +82,7 @@ .table-header .button-container{ width: 100%; display: flex; - justify-content: flex-end; + justify-content: end; } @@ -100,7 +100,7 @@ // table container .table-container .button-box{ - justify-content: flex-end; + justify-content: end; } diff --git a/home_dir/www/ksvc/inc/css/scss/component/_sidebar.scss b/home_dir/www/ksvc/inc/css/scss/component/_sidebar.scss index 3e1f729..6e8aab5 100644 --- a/home_dir/www/ksvc/inc/css/scss/component/_sidebar.scss +++ b/home_dir/www/ksvc/inc/css/scss/component/_sidebar.scss @@ -1,59 +1,37 @@ - .side-nav { max-width: 280px; width: 100%; overflow-y: auto; height: 100%; - border-right: solid 1px #e9e9e9; + + border-right: solid 1px $gray-002; display: flex; flex-direction: column; justify-content: space-between; background: white; + + position: absolute; + top: 0; + left: 0; } -.container.on .side-nav { - width: 88px; - overflow-y: visible; - align-items: center; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container { - position: static; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li { - position: relative; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li span.fancytree-expander, .container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li span.fancytree-title { - display: none; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li span.fancytree-custom-icon { - margin: 0; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li ul { - position: absolute; - display: block; - left: 56px; - top: 0; - width: 250px; - background: #e9e9e9; - z-index: 2; - min-height: 52px; - max-height: 294px; - overflow: auto; -} -.container.on .side-nav .side-menu ul.fancytree-plain.fancytree-container > li ul li span.fancytree-title { - color: black; - display: block; -} -.container.on .side-nav .fold-btn-container { - margin: 0 0 30px 0; - padding-left: 0; - width: auto; -} -.container.on .side-nav .fold-btn-container .fold-btn { - transform: rotate(180deg); -} -.container.on .main-part { - width: calc(100% - 88px); +.container.on { + .side-nav { + width: 88px; + + .fold-btn-container { + padding-left: 25%; + width: auto; + + .fold-btn { + transform: rotate(180deg); + } + } + } + + .main-part{ + width: calc(100% - 88px); + } } .side-nav .fold-btn-container { @@ -74,66 +52,126 @@ cursor: pointer; } -.side-nav .side-menu ul.fancytree-plain.fancytree-container { - border: none; - padding: 0px; +.side-nav .side-menu{ + + ul.fancytree-plain.fancytree-container{ + border: none; + padding: 0px; + + > li > span{ + border-bottom: solid 1px $gray-002; + } + li { + min-height: 72px; + + + > span{ + height: 72px; + display: inline-flex; + align-items: center; + + &:hover, &:active{ + span.fancytree-title{ + color: #3c3c3c; + background-color: transparent; + border: none; + } + } + + > span{ + // 글자 + color: #3c3c3c; + font-size: 15px; + + // 아이콘 + &.fancytree-custom-icon{ + color: #98A7FA; + font-size: 24px; + } + } + + // 활성화된 메뉴 + &.fancytree-node.fancytree-active{ + + span.fancytree-title{ + color: #3c3c3c; + background-color: transparent; + border: none; + } + + &:hover, &:active{ + span.fancytree-title{ + color: #3c3c3c; + background-color: transparent; + border: none; + } + } + } + } + + + + // 서브 메뉴 + ul{ + padding: 0px; + + li{ + min-height: 48px; + border-bottom: 1px solid $blue-003; + + > span{ + height: 48px; + width: fit-content; + padding-left: 1.5em; + span.fancytree-title{ + font-size: 14px; + color: $blue-001; + } + } + + &:hover{ + background-color: $blue-003; + + span.fancytree-title{ + color: $blue-001; + } + } + } + } + + } + } + } -.side-nav .side-menu ul.fancytree-plain.fancytree-container > li > span { - border-bottom: solid 1px #e9e9e9; + + + +.side-nav .side-menu { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li { - min-height: 72px; + +.side-nav .side-menu ul { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span { - height: 72px; - display: inline-flex; - align-items: center; + +.side-nav .side-menu ul li { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span:hover span.fancytree-title, .side-nav .side-menu ul.fancytree-plain.fancytree-container li > span:active span.fancytree-title { - color: #3c3c3c; - background-color: transparent; - border: none; + +.side-nav .side-menu ul li span { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span > span { - color: #3c3c3c; - font-size: 15px; + +.side-nav .side-menu > ul { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span > span.fancytree-custom-icon { - color: #98A7FA; - font-size: 24px; + +.side-nav .side-menu > ul li span{ + } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span.fancytree-node.fancytree-active span.fancytree-title { - color: #3c3c3c; - background-color: transparent; - border: none; + +.side-nav .side-menu > ul li.on { } -.side-nav .side-menu ul.fancytree-plain.fancytree-container li > span.fancytree-node.fancytree-active:hover span.fancytree-title, .side-nav .side-menu ul.fancytree-plain.fancytree-container li > span.fancytree-node.fancytree-active:active span.fancytree-title { - color: #3c3c3c; - background-color: transparent; - border: none; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul { - padding: 0px; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul li { - min-height: 48px; - border-bottom: 1px solid #E1E4F9; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul li > span { - height: 48px; - width: -moz-fit-content; - width: fit-content; - padding-left: 1.5em; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul li > span span.fancytree-title { - font-size: 14px; - color: #4A5ED2; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul li:hover { - background-color: #E1E4F9; -} -.side-nav .side-menu ul.fancytree-plain.fancytree-container li ul li:hover span.fancytree-title { - color: #4A5ED2; + + + +.side-nav .side-menu > ul > li > ul { + } .side-nav .side-menu > ul > li > ul > li { @@ -141,34 +179,7 @@ } .side-nav .side-menu > ul > li > ul > li > span { - color: #4A5ED2; + color: $blue-001; font-size: 14px; font-weight: 400; } - -.menu-icon { - background-position: center; - background-repeat: no-repeat; - background-size: contain; -} -.menu-icon.base-icon { - background-image: url("../img/icon-shield.png"); -} -.menu-icon.filed-icon { - background-image: url("../img/icon-industry.png"); -} -.menu-icon.production-icon { - background-image: url("../img/icon-engineering.png"); -} -.menu-icon.system-icon { - background-image: url("../img/icon-gear.png"); -} -.menu-icon.insp-icon { - background-image: url("../img/icon-clipboard.svg"); - width: 22px; - height: 22px; - margin-left: 0.6em; -} -.menu-icon.facility-icon { - background-image: url("../img/icon-cone.svg"); -} diff --git a/home_dir/www/ksvc/inc/header.php b/home_dir/www/ksvc/inc/header.php index 85b935b..990c4a5 100644 --- a/home_dir/www/ksvc/inc/header.php +++ b/home_dir/www/ksvc/inc/header.php @@ -11,11 +11,11 @@ $later = date('Y-m-d', strtotime('+14 days')); //if( !$GLOBALS['_Umem']['member_id'] ) { // move_page(_SVC_URL_, $GLOBALS['_Auth_']['deny_view']); //} -// -////접근 권한(조회) 불가 처리 -//if( !$GLOBALS['_Auth_']['menuObj']->hasMenuAuth("R", $GLOBALS['_Auth_']['cate_id']) ){ -// hback($GLOBALS['_Auth_']['deny_view']); -//} + +//접근 권한(조회) 불가 처리 +if( !$GLOBALS['_Auth_']['menuObj']->hasMenuAuth("R", $GLOBALS['_Auth_']['cate_id']) ){ + hback($GLOBALS['_Auth_']['deny_view']); +} $menu_hist = array(); if( $GLOBALS['_Auth_']['menuObj'] ){ diff --git a/home_dir/www/ksvc/inc/js/popItemOper.js b/home_dir/www/ksvc/inc/js/popItemOper.js index 6a9ca18..1bdee88 100644 --- a/home_dir/www/ksvc/inc/js/popItemOper.js +++ b/home_dir/www/ksvc/inc/js/popItemOper.js @@ -151,6 +151,38 @@ class CreatePopup2 { }, }); }; + + setData(e,tgt){ + let row = tgt._row; + if( this.tabrow ){ + let uptjson = {_STATUS_:this.tabrow.getData()['_STATUS_']||'U'}; + Object.keys(this.columns).forEach( key => { + // if(!row.data[this.columns[key]]){ + // row.data[this.columns[key]] = row.data[this.columns[key].replace(/[A-Z]+_/, "")] + // } + // uptjson[this.columns[key]] = row.data[this.columns[key]]; // 직접 할당 + uptjson[key] = row.data[this.columns[key]]; // 직접 할당 + // console.log(key) + } ); + this.tabrow.update(uptjson); + }else{ + Object.keys(this.columns).forEach( key => { + document.querySelector("#"+this.columns[key]).value = row.data[key]; + }) + } + }; + /* + * @Overview 테이블 행 선택 함수 + * @Parameter 이벤트, 타겟 행 + */ + dbClick(e, tgt) { + let rowData = tgt._row.data + this.setData(e, tgt); + console.log(tgt); + this.modal.delete(); + // this.tabrow.updateData({[this.columns.tgt_name]:row.data['BIZ_AREA_NM']}); + // tabrow.updateData({[tgt_id]:row.data['BIZ_AREA_CD'],[tgt_name]:row.data['BIZ_AREA_NM'],_STATUS_:tabrow.getData()['_STATUS_']||'U'}); + } } diff --git a/home_dir/www/ksvc/inc/js/popup.js b/home_dir/www/ksvc/inc/js/popup.js index ddb2c01..e70f7e9 100644 --- a/home_dir/www/ksvc/inc/js/popup.js +++ b/home_dir/www/ksvc/inc/js/popup.js @@ -262,8 +262,9 @@ class CreatePopup{ */ dbClick(e, tgt) { let rowData = tgt._row.data + this.setData(e, tgt); - console.log(tgt); + this.modal.delete(); // this.tabrow.updateData({[this.columns.tgt_name]:row.data['BIZ_AREA_NM']}); // tabrow.updateData({[tgt_id]:row.data['BIZ_AREA_CD'],[tgt_name]:row.data['BIZ_AREA_NM'],_STATUS_:tabrow.getData()['_STATUS_']||'U'}); @@ -720,10 +721,8 @@ const popRegOrder = function( columns, tabrow ){ { field: "ITEM_CD", title: "품목", width: 100, }, { field: "ITEM_NM", title: "품명", width: 100, }, { field: "DRAW_NO", title: "도면번호", width: 100, }, - { field: "PRV_OP_CD", title: "이전공정", width: 100, }, - { field: "MAKE_TM", title: "등록시간", width: 100, }, - { field: "FACLT_CD", title: "설비", width: 100, }, - { field: "ORD_QTY", title: "지시수량", width: 150, formatter: "money", formatterParams: { decimal: ",", precision: 0 } }, + { field: "PRV_OP_CD", title: "이전공정", width: 100, }, + { field: "ORD_QTY", title: "지시수량", width: 150, formatter: "money", formatterParams: { decimal: ",", precision: 0 } }, { field: "OP_WRK_QTY", title: "이전공정양품", width: 100, formatter: "money", formatterParams: { decimal: ",", precision: 0 } } ]; @@ -753,10 +752,9 @@ const popRegOrder = function( columns, tabrow ){ */ const popRegFacility = function( columns, tabrow ){ const fields = [ - { formatter:"rownum", title: "No", width: 50, headerSort: false, hozAlign:'center', }, - { field: "FACLT_CD", title: "설비코드" , width: 150, }, - { field: "FACLT_NM", title: "설비명" , width: 150, }, - { field: "OP_CD" , title:"공정" ,width:100} + { formatter:"rownum", title: "No", width: 50, headerSort: false, hozAlign:'center', }, + { field: "FACLT_CD", title: "설비코드", width: 150, }, + { field: "FACLT_NM", title: "설비명", width: 150, }, ]; const setTableFilter = function(modal){ //검색어 필터 적용 diff --git a/home_dir/www/ksvc/inc/js/vars.js.php b/home_dir/www/ksvc/inc/js/vars.js.php index c2ed344..56ecfda 100644 --- a/home_dir/www/ksvc/inc/js/vars.js.php +++ b/home_dir/www/ksvc/inc/js/vars.js.php @@ -43,5 +43,5 @@ const varsIO_TYPE_FIN = ; const varsNCR_CD = ; const varsTASK_TYPE = ; const varsSTOP_CD = ; -const varsDEF_CD = ; -const varsRSLT_GRP = ; \ No newline at end of file +const varsDEF_CD = ; +const varsRSLT_GRP = ; \ No newline at end of file diff --git a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php index c16bcdf..32217c6 100644 --- a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php @@ -1,5 +1,11 @@ $_REQUEST["EMP_NO"] ?: "", "P_EMP_NM" => $_REQUEST["EMP_NM"] ?: "", - "P_START_DATE" => $_REQUEST["date_st"], - "P_ED_DATE" => $_REQUEST["date_ed"], + "P_ST_DATE" => $_REQUEST["date_st"], + "P_ED_DATE" => $_REQUEST["date_ed"], ); $rst = $baseObj->DB->exec($squl, $params); diff --git a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js index ca56707..82aa00a 100644 --- a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js +++ b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js @@ -32,7 +32,6 @@ class Tb_main_class { } } data.mode = mode - console.log(data) // let USEFLAG = document.getElementById("USE_FLG").checked?"Y":"N"; //사용여부 ajax_json({ url: this.ajaxUrl, @@ -43,10 +42,11 @@ class Tb_main_class { let originData = data.data; originData = originData.map(el=>{ // 대기시간!!!!!!!! 변경할것 - el[`REAL_RUN_TM_${el['WRK_DT']}`] = el['REAL_RUN_TM'] + el[`REAL_RUN_TM_${el['WORK_DT']}`] = el['REAL_RUN_TM'] return el; }); - + console.log(data.data); + console.log(originData); originData = originData.reduce((acc, curr)=>{ const key = curr.EMP_NO + curr.WRK_TEAM; diff --git a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php index 95c700b..f70d33a 100644 --- a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php @@ -13,11 +13,11 @@ if (!_notAuth("R")) { case 'getDefOrderList': - $squl = "USP_P_DEF_RSLT_S10"; + $squl = "USP_P_CNT_DEF_WO_S10"; $params = array( "P_ITEM_GRP" => $_REQUEST["ITEM_GRP"] ?: "", - "P_START_DATE" => $_REQUEST["date_st"], + "P_ST_DATE" => $_REQUEST["date_st"], "P_ED_DATE" => $_REQUEST["date_ed"], ); $rst = $baseObj->DB->exec($squl, $params); diff --git a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js index e4eb65e..12569cf 100644 --- a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js +++ b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js @@ -48,7 +48,7 @@ class Tb_main_class { }); originData = originData.reduce((acc, curr)=>{ - const key = curr.WO_NO; + const key = curr.WO_NO ; if(!acc[key]){ acc[key] = {...curr}; @@ -197,7 +197,7 @@ setFilter() { // formatterParams: { checkval: "Y" }, // }, { formatter: "rownum", title: "NO", width: 50 }, - { field: "WO_NO", title: "오더번호", width: 100 }, + { field: "WO_NO", title: "오더번호", width: 100 ,visible : false}, { field: "ITEM_CD", title: "품목", width: 100,}, { field: "ITEM_GRP", title: "품목그룹", width: 100,}, ...this.getDate() diff --git a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php index ced75a9..3d0f162 100644 --- a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php @@ -15,7 +15,7 @@ if(!_notAuth("R")) { // 생산오더 리스트 조회 case 'getDefectWorker': - $sql = "USP_P_WO_DEF_RSLT_S20"; + $sql = "USP_P_CNT_DEF_EMP_S10"; $params = array( "WRK_EMP_NO" => $_REQUEST['worker_pop'] ?: "", "WRK_EMP_NM" => $_REQUEST['sub_worker_pop'] ?: "", diff --git a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js index 29e4c62..8eacfef 100644 --- a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js +++ b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js @@ -198,7 +198,7 @@ class Tb_main_class { // }, // { formatter: "rownum", title: "NO", width: 50 }, { field: "WRK_TEAM", title: "소속", width: 100 }, - { field: "EMP_NO", title: "성명", width: 100,}, + { field: "EMP_NM", title: "성명", width: 100,}, ...this.getDate() ]; const commonFieldData = { diff --git a/home_dir/www/ksvc/prod/cnt_faclt_ct/cnt_faclt_ct.ajax.php b/home_dir/www/ksvc/prod/cnt_faclt_ct/cnt_faclt_ct.ajax.php index a12024c..8610888 100644 --- a/home_dir/www/ksvc/prod/cnt_faclt_ct/cnt_faclt_ct.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_faclt_ct/cnt_faclt_ct.ajax.php @@ -13,10 +13,10 @@ if (!_notAuth("R")) { case 'getFacltCtList': - $squl = "USP_P_FACLT_OPER_S20"; + $squl = "USP_P_CNT_FACLT_CT_S10"; $params = array( - "P_START_DATE" => $_REQUEST["date_st"], + "P_ST_DATE" => $_REQUEST["date_st"], "P_ED_DATE" => $_REQUEST["date_ed"], "P_FACLT_CD" => $_REQUEST["FACLT_CD"] ?: "", "P_FACLT_NM" => $_REQUEST["FACLT_NM"] ?: "", diff --git a/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php b/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php index b54fa12..d12577b 100644 --- a/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php @@ -13,12 +13,12 @@ if (!_notAuth("R")) { case 'getOperWtList': - $squl = "USP_P_WO_OPER_S20"; + $squl = "USP_P_CNT_OPER_WT_S10"; $params = array( "P_OP_CD" => $_REQUEST["OP_CD"] ?: "", "P_OP_NM" => $_REQUEST["OP_NM"] ?: "", - "P_START_DATE" => $_REQUEST["date_st"], + "P_ST_DATE" => $_REQUEST["date_st"], "P_ED_DATE" => $_REQUEST["date_ed"], ); $rst = $baseObj->DB->exec($squl, $params); diff --git a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php index d9c0cae..7cd3d83 100644 --- a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php @@ -13,7 +13,7 @@ if (!_notAuth("R")) { case 'getFacltOperList': - $squl = "USP_P_FACLT_OPER_S30"; + $squl = "USP_P_CNT_PROD_FACLT_S10"; $params = array( "P_ST_DATE" => $_REQUEST["date_st"], diff --git a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php index b1d2cd9..fdb0ed2 100644 --- a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php +++ b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php @@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php"; - +
diff --git a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php index 6972ecf..7e3fea0 100644 --- a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php +++ b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php @@ -19,12 +19,11 @@ if (!_notAuth("R")) { case 'getProdList': - $squl = "USP_P_PRD_AMT_S10"; + $squl = "USP_P_CNT_PROD_WORKER_S10"; $params = array( -// "P_ITEM_GRP" => $_REQUEST["ITEM_GRP"] ?: "", - "P_START_DATE" => $_REQUEST["date_st"], - "P_ED_DATE" => $_REQUEST["date_ed"], + "P_ST_DATE" => $_REQUEST["date_st"], + "P_ED_DATE" => $_REQUEST["date_ed"], ); $rst = $baseObj->DB->exec($squl, $params); diff --git a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.js b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.js index e1aff79..8ff2fe4 100644 --- a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.js +++ b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.js @@ -218,9 +218,14 @@ setFilter() { // console.log(avgValue); // console.log(parseInt(realKeys.length)); let hap = Object.values(otherData).filter(v => {return v !== undefined && v !== null}); + + let avgValue = hap.reduce((a, b) => parseInt(a) + parseInt(b), 0) / hap.length; - console.log(avgValue); console.log(); + if(avgValue === NaN){ + + return false; + } return avgValue; } /* @@ -239,9 +244,9 @@ setFilter() { { field: "DEPT_NM", title: "소속", width: 100 }, { field: "EMP_NM", title: "작업자", width: 100,}, { field: "MONTH_AMOUNT", title: "월합계", width: 100, bottomCalc: "sum", formatter:"money", bottomCalcFormatter:"money", bottomCalcFormatterParams:{ precision:0 }, formatterParams:{ precision:0 }}, - { field: "DAY_AVG", title: "일평균", width: 100, bottomCalc: "sum", bottomCalcFormatter:"money", bottomCalcFormatterParams:{ precision:0 },formatter:function(cell){ - return _this.dayAvg(cell); - }, + { field: "DAY_AVG", title: "일평균", width: 100, bottomCalc: "sum",formatter:function(cell){ + return _this.dayAvg(cell) ? _this.dayAvg(cell): ""; + }, bottomCalcFormatter:"money",formatterParams:{ precision:0 }, bottomCalcFormatterParams:{ precision:0 } }, ...this.getDate() ]; diff --git a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php index e24f26d..a22258b 100644 --- a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php +++ b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php @@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php"; - + diff --git a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.ajax.php b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.ajax.php index ae619e5..a7e542f 100644 --- a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.ajax.php +++ b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.ajax.php @@ -90,7 +90,7 @@ if(!_notAuth("R")) { $params = array_merge($params, Array( "WO_NO" => $data['WO_NO']?:"", - "ORD_STATUS" => $data['ORD_STATUS'], + "ORD_STATUS" => $data['ORD_STATUS'] == "Y"?"080":"", )); } @@ -108,11 +108,36 @@ if(!_notAuth("R")) { } break; // 공정별 실적 조회 - case 'getOrderList': - $sql = "USP_P_WO_S30"; + case "getOpList": + $sql = "USP_P_WO_OPER_RSLT_S30"; $params = array( - "order_pop" => $_REQUEST['order_pop'] ?: "", + "WO_NO" => $_REQUEST["WO_NO"] ?: "", + "ITEM_CD" => $_REQUEST["ITEM_CD"] ?: "", + ); + $rst = $baseObj->DB->exec($sql, $params); + + $row = array(); + + + if ($rst) { + $retval['code'] = true; + while ($row = $baseObj->DB->fetch_array($rst)) { + $rows[] = $row; + } + ; + $retval['data'] = $rows; + $retval['mesg'] = '정상 동작 되었습니다.'; + } else { + $retval['code'] = false; + } + break; + // 당일 오더완료내역 조회 + case 'getOrderEndList': + + $sql = "USP_P_WO_S40"; + $params = array( + "date_st" => $_REQUEST['date_st'] ?: "", ); $rst = $baseObj->DB->exec($sql, $params); @@ -131,7 +156,6 @@ if(!_notAuth("R")) { break; - } } diff --git a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.js b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.js index 2db1354..2c7aed4 100644 --- a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.js +++ b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.js @@ -39,7 +39,23 @@ class Tb_order_class { success: (data) => { console.log(data.code); if(data.code) { - this.tbList.setData(data.data); + let Data = data.data + for(let tempData in Data){ + if(Data[tempData].ORD_STATUS === "080"){ + Data[tempData].ORD_STATUS = "Y" + } + // Data[tempData].ORD_STATUS = + // console.log(Data[tempData]); + } + + // if(Data.ORD_STATUS = "080"){ + // tempData.ORD_STATUS = "Y" + // console.log(tempData); + // } + + this.tbList.setData(Data); + + }else{ kuls_alert(data.mesg); } @@ -106,9 +122,17 @@ class Tb_order_class { * @function 선택된 모든 행 색 변경 */ rowClick(e, tgt) { + let _this = this; + console.log(tgt); + let clickRow = tgt._row; + let clickData = clickRow?.data; + Tb_report.rowData = clickData; + + Tb_report.getMainList(); + if (tgt.isSelected()) { tgt.deselect(); - // this.clearRemove(tgt); + this.clearRemove(tgt); } else { this.tbList.deselectRow(); tgt.select(); @@ -123,7 +147,11 @@ class Tb_order_class { */ cellClick(e, tgt) { switch (tgt.getField()) { - + case "ORD_STATUS": + // console.log(tgt.getValue()); + tgt.setValue(tgt.getValue() == "Y" ? "" : "Y"); + // this.clearRemove(tgt.getRow()) + break; default: this.rowClick && this.rowClick(e, tgt); break; @@ -147,12 +175,9 @@ class Tb_order_class { this.getMainList('getOrderList','order_pop','order_product_pop','order_bp_pop','date_st'); return false; } - console.log(this.tbList.getData().filter(row=> row._STATUS_)); const blankObj = this.tbList.getRows().filter(row => { - return Object.keys(row._row.data).filter(key => key !== '_STATUS_' && key !== 'USE_FLG').every(key => { - const value = row._row.data[key]; return (value === undefined || value === ''); }); @@ -212,7 +237,7 @@ class Tb_order_class { // field 정의 const fields = [ {formatter:"rownum", title:"NO", width:50}, - {field:"ORD_STATUS", title:"완료", width:80, cssClass: "editable-cell", formatter: tb_common_funtions.formatterToggleboxGreenIcon, formatterParams: { checkval: "Y" },}, + {field:"ORD_STATUS", title:"완료", width:80, cssClass: "editable-cell", formatter: tb_common_funtions.formatterToggleboxGreenIcon, formatterParams: { checkval : "Y" },}, {field:"WO_NO", title:"생산오더", width:100}, {field:"ITEM_CD", title:"품목", width:100}, {field:"DRAW_NO", title:"도면번호", width:200}, @@ -228,6 +253,13 @@ class Tb_order_class { precision:0 } }, + {field:"PRD_QTY", title:"실적 수량", width:80, + formatter:"money", + formatterParams:{ + decimal:".", + precision:0 + } + }, {field:"UNIT", title:"단위", width:50}, {field:"", title:"", width:50}, {field:"", title:"비고", width: 300}, @@ -271,6 +303,7 @@ class Tb_order_class { filterBtn.addEventListener(evt, () => { // setFilter 또는 setData this.getMainList('getOrderList','order_pop','order_product_pop','order_bp_pop','date_st'); + Tb_daily.getMainList('getOrderEndList','date_st'); }); }); // 저장 @@ -286,35 +319,44 @@ class Tb_order_class { class Tb_report_class { constructor(container) { + let _this = this; this.ajaxUrl = "./mng_order_result.ajax.php"; this.code =""; // 품목 코드 - 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.addBtn = this.container.querySelector(".add-btn") // this.removeBtn = this.container.querySelector(".remove-btn") + _this.rowData =""; + // _this.itemcd =""; } // tableBuild 되었을때 getManList - getMainList(code) { - // let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000); - // this.code = code; + getMainList() { + let _this = this; + if(_this.rowData == undefined){ + return false; + } + console.log(_this.rowData); + // console.log(Tb_item.tbList.getSelectedData()[0]); + let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000); + ajax_json({ + url: this.ajaxUrl, + data: { mode: "getOpList", WO_NO :_this.rowData?.WO_NO, ITEM_CD: _this.rowData?.ITEM_CD }, + success: (data) => { + this.tbList.setData(data.data); - // ajax_json({ - // url: this.ajaxUrl, - // data: { mode: "", PR_CD: this.code}, - // success: (data) => {}, - // error: (req, status, err) => { - // kuls_alert(err.message); - // }, - // complete: () => { - // // window.clearTimeout(talert); - // // this.tbList.clearAlert(); - // // this.setFilter(); - // }, - // }); + }, + error: (req, status, err) => { + kuls_alert(err.message); + }, + complete: () => { + window.clearTimeout(talert); + // this.tbList.clearAlert(); + // this.setFilter(); + }, + }); } setFilter() {} @@ -381,18 +423,18 @@ class Tb_report_class { const fields = [ // 생산오더, 품목, 도면번호, 거래처, 납기일, 지시일, 지시구분, 지시 수량, 단위, 상태, 작업순서, 비고 {formatter:"rownum", title:"NO", width:50}, - {field:"", title:"공순", width:80}, - {field:"", title:"공정", width:80}, + {field:"OP_SEQ", title:"공순", width:80}, + {field:"OP_CD", title:"공정", width:80}, {title:"설비", cssClass:"width-150", columns:[ - {field:"", title:"", width:50}, - {field:"", title:"", width:100}, + {field:"FACLT_CD", title:"", width:50}, + {field:"FACLT_NM", title:"", width:100}, ] }, - {field:"", title:"작업자", width:100}, - {field:"", title:"지시수량", width:80}, - {field:"", title:"실적수량", width:80}, - {field:"", title:"불량수량", width:80}, + {field:"EMP_NM", title:"작업자", width:100}, + // {field:"ORD_QTY", title:"지시수량", width:80}, + {field:"PRD_QTY", title:"실적수량", width:80}, + // {field:"DEF_QTY", title:"불량수량", width:80}, {field:"", title:"종료시간", width:150}, ]; @@ -447,22 +489,69 @@ class Tb_daily_class { // this.removeBtn = this.container.querySelector(".remove-btn") } - // tableBuild 되었을때 getManList - getMainList(code) { - // let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000); - // ajax_json({ - // url: this.ajaxUrl, - // data: { mode: "" , PROCESS: this.code}, - // success: (data) => {}, - // error: (req, status, err) => { - // kuls_alert(err.message); - // }, - // complete: () => { - // // window.clearTimeout(talert); - // // this.tbList.clearAlert(); - // // this.setFilter(); - // }, - // }); + /* +* @Overview 데이터 조회 함수 +* @Parameter mode : AJAX 비동깉 통신 시 사용할 STRING 값, ...test : 조회할 INPUT 태그의 ID 값 +*/ + getMainList(mode,...test) { + // const talert= window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000); + let arr = test; + // let testList = new Array(); + let data = new Object(); + for(let i=0; i < arr.length; i++){ + let temp = [arr[i]] + + if(document.getElementById(arr[i])?.type !== "checkbox"){ + data[temp] = document.getElementById(temp)?.value + }else{ + data[temp] = document.getElementById(temp)?.checked?"Y":"N"; + } + } + data.mode = mode + // let USEFLAG = document.getElementById("USE_FLG").checked?"Y":"N"; //사용여부 + ajax_json({ + url: this.ajaxUrl, + data: data, + + success: (data) => { + console.log(data.code); + if(data.code) { + let Data = data.data + for(let tempData in Data){ + if(Data[tempData].ORD_STATUS === "080"){ + Data[tempData].ORD_STATUS = "Y" + } + // Data[tempData].ORD_STATUS = + // console.log(Data[tempData]); + } + + // if(Data.ORD_STATUS = "080"){ + // tempData.ORD_STATUS = "Y" + // console.log(tempData); + // } + + this.tbList.setData(Data); + + + }else{ + kuls_alert(data.mesg); + } + }, + error: (req, status, err) => { + kuls_alert(err.message); + }, + complete: () => { + // window.clearTimeout(talert); + this.tbList.clearAlert(); + // this.setFilter(); + // this.tbList.getRows().forEach(row=>{ + // row.getCell("WO_NO").getElement().addEventListener("click",(e)=>{ + // this.rowClick(e,row); + // }) + // }); + }, + }); + return true; } setFilter() {} @@ -528,14 +617,14 @@ class Tb_daily_class { // field 정의 const fields = [ {formatter:"rownum", title:"NO", width:50}, - {field:"", title:"생산오더", width:100}, - {field:"", title:"품목", width:100}, - {field:"", title:"오더번호", width:200}, - {field:"", title:"거래처", width:150}, - {field:"", title:"납기일", width:100}, - {field:"", title:"지시 구분", width:100}, - {field:"", title:"지시 수량", width:100}, - {field:"", title:"물량 수량", width:100}, + {field:"WO_NO", title:"생산오더", width:100}, + {field:"ITEM_CD", title:"품목", width:100}, + // {field:"", title:"오더번호", width:200}, + {field:"BP_CD", title:"거래처", width:150}, + {field:"DLVY_REQ_DT", title:"납기일", width:100}, + {field:"ORD_TYPE", title:"지시 구분", width:100}, + {field:"ORD_QTY", title:"지시 수량", width:100}, + {field:"PRD_QTY", title:"물량 수량", width:100}, {field:"", title:"최종공정
완료시간", width:100}, {field:"", title:"완료처리
시간", width:100}, ]; @@ -558,7 +647,7 @@ class Tb_daily_class { // 데이터 불러오기 this.tbList.on("tableBuilt", () => { - this.getMainList('getOrderList','order_pop','order_product_pop','order_bp_pop','date_st'); + this.getMainList('getOrderEndList','date_st'); }); // row 클릭 시에 this.tbList.on("rowClick", (e, tgt) => { diff --git a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.php b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.php index 0370eb5..1c00f2a 100644 --- a/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.php +++ b/home_dir/www/ksvc/prod/mng_order_result/mng_order_result.php @@ -33,7 +33,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
- +
@@ -41,7 +41,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
- +
diff --git a/home_dir/www/ksvc/prod/reg_order/popItemOper.js b/home_dir/www/ksvc/prod/reg_order/popItemOper.js index 3f2e900..9bdae81 100644 --- a/home_dir/www/ksvc/prod/reg_order/popItemOper.js +++ b/home_dir/www/ksvc/prod/reg_order/popItemOper.js @@ -118,7 +118,7 @@ class CreatePopup2 { } // 데이터 렌더링 getPopList(){ - console.log(this.columns); + console.log("test"); ajax_json({ url: "/ksvc/inc/common.ajax.php", data: {mode: this.mode, columns : this.columns }, @@ -137,6 +137,18 @@ class CreatePopup2 { }, }); }; + /* + * @Overview 테이블 행 선택 함수 + * @Parameter 이벤트, 타겟 행 + */ + dbClick(e, tgt) { + let rowData = tgt._row.data + this.setData(e, tgt); + console.log(tgt); + this.modal.delete(); + // this.tabrow.updateData({[this.columns.tgt_name]:row.data['BIZ_AREA_NM']}); + // tabrow.updateData({[tgt_id]:row.data['BIZ_AREA_CD'],[tgt_name]:row.data['BIZ_AREA_NM'],_STATUS_:tabrow.getData()['_STATUS_']||'U'}); + } } @@ -168,5 +180,6 @@ const popItemOper = function( columns, tabrow ){ }); Tb_modal.init(); + } diff --git a/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php b/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php index c1e4d52..5efdbec 100644 --- a/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php +++ b/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php @@ -256,7 +256,8 @@ if(!_notAuth("R")) { "ORD_QTY" => $data['ORD_QTY'], // "ORD_DT" => $data['ORD_DT']?:date("Y-m-d", time()), // "ORD_DT" => date("Y-m-d", time()), - "ORD_TYPE" => $data['WRK_QTY']?:"", + "WRK_QTY" => $data['WRK_QTY']?:"", + "WO_OP_AMT" => $data['WO_OP_AMT']?:"", "ORD_STATUS" => $data['PLANT_CD']?:"", // "DLVY_REQ_DT" => date("Y-m-d", time()), // "DLVY_REQ_DT" => $data['DLVY_REQ_DT']?:date("Y-m-d", time()), diff --git a/home_dir/www/ksvc/prod/reg_order/reg_order.js b/home_dir/www/ksvc/prod/reg_order/reg_order.js index 791ab7f..1895f4a 100644 --- a/home_dir/www/ksvc/prod/reg_order/reg_order.js +++ b/home_dir/www/ksvc/prod/reg_order/reg_order.js @@ -109,6 +109,7 @@ class Tb_order_class { let _this = this; let clickRow = tgt._row; let clickData = clickRow.data; + // Tb_process.prodData = clickData; // Tb_check.prodData = clickData; // Tb_check.getMainList(Tb_check.prodData); @@ -122,6 +123,9 @@ class Tb_order_class { tgt.select(); } + if(document.getElementById("hidden_item_cd")?.value === clickData?.ITEM_CD){ + return false; + } Tb_process.getMainList(); } @@ -349,6 +353,14 @@ class Tb_order_class { this.getMainList("getOrderList","order_date_st", "order_date_ed", "ITEM_CD"," ITEM_NM", "BP_CD", "BP_NM"); }); }); + // 조회 + ["click", "keypress"].forEach((evt) => { + const copyBtn = document.querySelector("#copy_btn"); + copyBtn.addEventListener(evt, () => { + Tb_process.copyRow(); + + }); + }); // 저장 ["click", "keypress"].forEach((evt) => { const putBtn = document.querySelector("#put_btn"); @@ -417,7 +429,45 @@ class Tb_process_class { this.lastNum += 10; this.tbList.addRow({ OP_SEQ : this.lastNum, WO_NO : Tb_order.tbList.getSelectedData()[0].WO_NO, _STATUS_: "I" }); } + copyRow(){ + let _this = this; + ajax_json({ + url: "/ksvc/inc/common.ajax.php", + data: {mode: "getItemOperList", ITEM_CD: Tb_order.tbList.getSelectedData()[0].ITEM_CD }, + success:( data ) => { + if( data.code ){ + // console.log(data.data) + console.log(data.data); + let makingData =data.data + for(let temp in data.data){ + if(this.lastNum == 0){ + this.lastNum += 10; + _this.tbList.addRow({ + OP_CD : makingData[temp].OP_CD, + OP_SEQ : makingData[temp].OP_SEQ , + WO_OP_AMT : makingData[temp].WO_OP_AMT, + WO_NO : Tb_order.tbList.getSelectedData()[0].WO_NO, _STATUS_: "I" }); + + }else{ + this.lastNum += 10; + _this.tbList.addRow({ + OP_CD : makingData[temp].OP_CD, + OP_SEQ : this.lastNum , + WO_OP_AMT : makingData[temp].WO_OP_AMT, + WO_NO : Tb_order.tbList.getSelectedData()[0].WO_NO, _STATUS_: "I" }); + } + + } + } + console.log(this.lastNum); + }, + error: (request, status, error)=>{ + kuls_alert(error.message); + }, + }); + document.getElementById("hidden_item_cd").value = Tb_order.tbList?.getSelectedData()[0]?.ITEM_CD; + } sortingRouting(){ let temArr = this.tbList.getData(); // 테이블 전체 데이터 @@ -622,13 +672,14 @@ class Tb_process_class { }, {formatter:"rownum", title:"NO", width:50}, {field:"OP_SEQ", title:"공순", width:100}, - {field:"OP_CD", title:"공정", width:100,editor: "input"}, - {field:"ORD_QTY", title:"지시 수량", width:80 ,editor: "input", + {field:"OP_CD", title:"공정명", width:100,editor: "input"}, + {field:"WO_OP_AMT", title:"공정 단가", width:80 ,editor: "input", formatter: "money", formatterParams: { decimal:".", precision:0 - } + }, + hozAlign: "right" }, // {field:"", title:"준비시간
(분)", width:100}, // {field:"", title:"가공시간
(분)", width:100}, diff --git a/home_dir/www/ksvc/prod/reg_order/reg_order.php b/home_dir/www/ksvc/prod/reg_order/reg_order.php index 01ce4e5..dc360db 100644 --- a/home_dir/www/ksvc/prod/reg_order/reg_order.php +++ b/home_dir/www/ksvc/prod/reg_order/reg_order.php @@ -57,6 +57,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
+
@@ -66,6 +67,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
+ diff --git a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.ajax.php b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.ajax.php index 208d819..cfbac48 100644 --- a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.ajax.php +++ b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.ajax.php @@ -15,7 +15,7 @@ if (!_notAuth("R")) { $params = array( "date_st" => $_REQUEST["date_st"] ?: "", "date_ed" => $_REQUEST["date_ed"] ?: "", - "WO_NO" => $_REQUEST["WO_NO_P"] ?: "", + "WO_NO" => $_REQUEST["WO_NO_P"] ?: "", "ITEM_CD" => $_REQUEST["ITEM_CD"] ?: "", "OP_CD" => $_REQUEST["OP_CD"] ?: "", "FACLT_CD " => $_REQUEST["FACLT_CD_P"] ?: "" diff --git a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js index fc20847..3f6ee90 100644 --- a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js +++ b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js @@ -154,7 +154,6 @@ class Tb_order_class { */ addRow() { this.tbList.addRow({ _STATUS_: "I" }); - this.saveButtonActive(false); // this.orderModal(); } /* @@ -163,15 +162,7 @@ class Tb_order_class { * @function 선택된 모든 행 삭제 */ - 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; - } - } + submitDateTime() { let dateTimeValue = document.getElementById("MAKE_TM").value; @@ -179,41 +170,55 @@ class Tb_order_class { console.log("서버로 보낼 날짜 및 시간: " + formattedDateTime); } - removeRow() { - const selectedRows = this.tbList.getSelectedRows(); // 선택된 모든 행 가져오기 - // 선택된 각 행 삭제 - selectedRows.forEach((row) => { - // STAUS D로 바꾸기 - row.getData()._STATUS_ = row.getData()._STATUS_ == "I" ? null : "D"; - const rowElement = row.getElement(); - rowElement.classList.add("remove-row"); + + removeRow() { + const selectedRows = this.tbList.getRows().filter(row=>{ + return row.getData().check ==="Y" }); - this.saveButtonActive(false); + + 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("삭제할 행을 선택해주세요.") + } } - // removeRow() { - // const selectedRows = this.tbList.getRows().filter(row=>{ - // return row.getData().check ==="Y" - // }); + /* + * @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(); // 선택된 모든 행 가져오기 + } + } - // 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("삭제할 행을 선택해주세요.") - // } - // } + /* + * @Overview 테이블 셀 수정 함수 + * @Parameter 셀 + * @function 셀 편집이 이후 저장될수 있도록 _STATUS_:U로 데이터 업데이트 + */ + cellEdited(cell) { + cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U"; + + } /* * @Overview 테이블 행 선택 함수 @@ -223,14 +228,10 @@ class Tb_order_class { rowClick(e, tgt) { if (tgt.isSelected()) { tgt.deselect(); - this.updateBtn.classList.add("disabled-btn"); - this.updateBtn.disabled = true; - //this.clearRemove(tgt) + this.clearRemove(tgt) } else { this.tbList.deselectRow(); tgt.select(); - this.updateBtn.disabled = false; - this.updateBtn.classList.remove("disabled-btn"); } } @@ -264,15 +265,16 @@ class Tb_order_class { ORD_QTY: 'ORD_QTY', OP_WRK_QTY: 'OP_WRK_QTY', MAKE_TM: 'MAKE_TM', - FACLT_CD: 'FACLT_CD' + FACLT_CD: 'FACLT_CD', + FACLT_NM: 'FACLT_NM' },tgt.getRow()) break; - case "FACLT_CD": - popRegFacility({ - FACLT_CD: 'FACLT_CD', - FACLT_NM:'FACLT_NM' - },tgt.getRow()) - break; + // case "FACLT_CD": + // popRegFacility({ + // FACLT_CD: 'FACLT_CD', + // FACLT_NM:'FACLT_NM' + // },tgt.getRow()) + // break; case "EMP_NM": popWorker({ EMP_NO:'EMP_NO', @@ -291,11 +293,6 @@ class Tb_order_class { // break; } } - - // 셀 수정 - cellEdited(cell) { - cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U"; - } putData() { const _this = this; // 기본키 중복 확인 및 방지 @@ -327,9 +324,8 @@ class Tb_order_class { kuls_alert(error.message); }, complete: function () { - this.saveButtonActive(true); - this.updateBtn.disabled = false; - this.updateBtn.classList.remove("disabled-btn"); + window.clearTimeout(talert); + this.tbList.clearAlert(); }, }); return true; @@ -350,16 +346,21 @@ class Tb_order_class { * @Parameter 없음 */ init() { + + // field 정의 - const fields = [ + fields = [ // 생산오더, 품목, 도면번호, 거래처, 납기일, 지시일, 지시구분, 지시 수량, 단위, 상태, 작업순서, 비고 { field:"check", title: "선택", width: 50, headerSort: false,formatter: tb_common_funtions.formatterCheckboxIcon,formatterParams: { checkval: "Y" },}, { formatter: "rownum", title: "NO", width: 50 }, - { field: "WO_NO", title: "생산오더", width: 100,cssClass: "editable-cell" }, + { field: "WO_NO", title: "생산오더", width: 100,editor:tb_custom_editor.upper, + editable: (cell) => { + const val = cell.getData(); + return val._STATUS_ === "I"; + }, }, { field: "WO_SEQ", width: 50, visible: false }, { field: "RSLT_NO", width: 50, visible: false }, { field: "ITEM_CD", width: 100, title: "품목"}, - { field: "DEF_NO", width: 50, visible: false }, { field: "EMP_NO", width: 50, visible: false}, { field: "ITEM_NM",title: "품목", width: 200,visible: false }, { field: "DRAW_NO", title: "도면번호", width: 200, hozAlign: "start" }, @@ -369,7 +370,7 @@ class Tb_order_class { title: "설비", cssClass: "width-200", columns: [ - { field: "FACLT_CD", width: 100 ,cssClass: "editable-cell" }, + { field: "FACLT_CD", width: 100 , }, { field: "FACLT_NM", width: 100 }, ]}, { field: "ORD_QTY", @@ -396,53 +397,24 @@ class Tb_order_class { title: "양품 수량", width: 80, formatter: "money", + hozAlign:"left", formatterParams: { decimal: ",", precision: 0 }, editor: "input" }, { field: "RSLT_GRP", - visible: false, - }, - { - field: "CODE_VAL", title: "실적 그룹", width: 80, cssClass: "user-list editable-cell", editor: "list", editorParams: { values: varsRSLT_GRP }, formatter: tb_common_funtions.formatterSelect, - formatterParams:{ values : varsRSLT_GRP }, + formatterParams:{ values : varsRSLT_GRP }, }, { field: "EMP_NM", title: "작업자", width: 100 ,cssClass: "editable-cell"}, { field: "MAKE_TM", title: "실적등록시간", width: 120 }, - { field: "", title: "실적일자",width: 120,}, - - // { - // field: "DEF_QTY", - // width: 100, - // formatter: "money", - // formatterParams: { decimal: ",", precision: 0 }, - // visible:false - // }, - // { field: "WRK_DT", title: "작업 일자", width: 80 }, //formatter mm-dd로 - // { - // field: "ST_TM", - // title: "시작 시간", - // width: 120, - // }, - // { - // field: "ED_TM", - // title: "종료 시간", - // width: 120, - - // }, - // { - // field: "", - // title: "가동 시간
(분)", - // width: 100, - // formatter: this.runningTime, - // }, + { field: "WRK_DT", title: "실적일자",width: 120,}, ]; const commonFieldData = { headerSort: false, @@ -526,15 +498,6 @@ class Tb_order_class { this.putData && this.putData(); }); }); - //수정 - ["click", "keypress"].forEach((evt) => { - this.updateBtn.addEventListener(evt, () => { - this.orderModal(this.tbList.getSelectedRows()[0]._row); - }); - }); - - // FORM 제출 클릭시 - // document.querySelector("form[name=frmPrslt]").addEventListener("submit", orderPop.putData); } } @@ -553,15 +516,15 @@ Tb_order_report.init(); * @Overview 모달 행 추가 함수 */ -function addFormRow() { - document.querySelector(".add-row-container").innerHTML += ` -
+// function addFormRow() { +// document.querySelector(".add-row-container").innerHTML += ` +//
-
-

- - -
+//
+//

+// +// +//
-
`; -} +//
`; +// } diff --git a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.php b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.php index 45b1ccd..e78ecef 100644 --- a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.php +++ b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.php @@ -89,7 +89,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
- +
@@ -126,10 +126,6 @@ include_once _SVC_INC_PATH_ . "/header.php"; 삭제 -
diff --git a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js index 1c6dfb7..b4027a1 100644 --- a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js +++ b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js @@ -440,15 +440,15 @@ class Tb_main_class { let fields = ""; // field 정의 fields = [ - { field: "SEQ_NO", title: "id", width: 100, visible: false }, - { field: "WRK_TEAM", title: "팀", width: 100, editor: "input" }, - { field: "PLAN_FACLT_CD", title: "설비", width: 100, editor: "input" }, - { field: "SEPER", title: "구분", width: 100 }, + {field: "SEQ_NO", title: "id", width: 100, visible: false}, + {field: "WRK_TEAM", title: "팀", width: 100, editor: "input"}, + {field: "PLAN_FACLT_CD", title: "설비", width: 100, editor: "input"}, + {field: "SEPER", title: "구분", width: 100}, // 날짜 필드 동적으로 넣을것 오늘부터 7일까지 ...this.getDate(), ]; let commonFieldData = ""; - commonFieldData = { + commonFieldData = { headerSort: false, vertAlign: "middle", hozAlign: "center", @@ -456,7 +456,7 @@ class Tb_main_class { headerHozAlign: "center", //헤더 정렬 headerSortTristate: true, //데이터 정렬 => 정/역/초기화 }; - this.tbList =""; + this.tbList = ""; this.tbList = new Tabulator(this.table, { layout: "fitColumns", // data: [ @@ -469,7 +469,8 @@ class Tb_main_class { columnDefaults: commonFieldData, groupStartOpen: true, }); - + } +init2(){ // 데이터 불러오기 this.tbList.on("tableBuilt", () => { this.getMainList( @@ -512,7 +513,8 @@ class Tb_main_class { const filterBtn = document.querySelector("#filter_btn"); filterBtn.addEventListener(evt, () => { // setFilter 또는 setData - this.getDate(); + this.init(); + this.setFilter(); // this.getMainList("getPlanList","team_pop","product_pop","sub_product_pop"); }); @@ -528,3 +530,4 @@ class Tb_main_class { } const Tb_production_plan = new Tb_main_class("#main_table"); Tb_production_plan.init(); +Tb_production_plan.init2(); \ No newline at end of file diff --git a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js index 19a52b6..b1904f6 100644 --- a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js +++ b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js @@ -60,11 +60,11 @@ class SimpleTable { kuls_alert(data.mesg); } }, - error: function (request, status, error) { + error: (request, status, error)=>{ kuls_alert(error.message); }, - complete: function () { - pop + complete: function(){ + console.log(this) } }) @@ -81,33 +81,7 @@ class SimpleTable { this.tbList = new Tabulator(this.table, { layout:'fitColumns', - data:[ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - ], + data:[], columns: this.field, columnDefaults: commonFieldData, selectableRows:1,