1
0
Fork 0

서버 동기화

This commit is contained in:
sychoi 2024-05-02 08:53:23 +09:00
parent ed862562da
commit c0a293622d
39 changed files with 875 additions and 563 deletions

View File

@ -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" }, },
];

View File

@ -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);
});
});
// 삭제

View File

@ -35,6 +35,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<div class="button-container">
<div class="button-box">
<button class="point-btn" id="excel_down">엑셀 다운로드</button>
<input type="file" id="fileInput" style="display: none;" accept=".xlsx, .xls">
<button class="point-btn" id="excel_up">엑셀 업로드</button>
<button class="point-btn" id="filter_btn">조회</button>
<button class="point-btn" id="put_btn">저장</button>
@ -98,5 +99,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<?php include_once _SVC_INC_PATH_ . "/footer_common.php"; ?>
<script src="./insp.js"></script>
<script src="./insp_excel.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script>
<?php
include_once _SVC_INC_PATH_ . "/footer.php";

View File

@ -0,0 +1,127 @@
let getExcel2 = function (data) {
//Todo: 컴퍼넌트. 주석 삭제하지 말자
let sheet_title = "검사항목";
let file_name = "검사항목";
const work_Book = new ExcelJS.Workbook(); // ExcelJS 라이브러리로 새 워크북 생성
const work_Sheet = work_Book.addWorksheet(sheet_title); // 새 워크시트 추가
const all_border = {
top: { style: "thin", color: { argb: "FF000000" } },
left: { style: "thin", color: { argb: "FF000000" } },
bottom: { style: "thin", color: { argb: "FF000000" } },
right: { style: "thin", color: { argb: "FF000000" } },
};
const field_css = {
yellow: {
border: all_border,
font: { color: { argb: "FF9C5700" }, bold: true },
alignment: { vertical: "middle", horizontal: "center" },
fill: {
type: "pattern",
pattern: "solid",
fgColor: { argb: "FFFFEB9C" },
},
},
green: {
border: all_border,
font: { color: { argb: "FF006100" }, bold: true },
alignment: { vertical: "middle", horizontal: "center" },
fill: {
type: "pattern",
pattern: "solid",
fgColor: { argb: "FFC6EFCE" },
},
},
red: {
border: all_border,
font: { color: { argb: "FF9C0006" }, bold: true },
alignment: { vertical: "middle", horizontal: "center" },
fill: {
type: "pattern",
pattern: "solid",
fgColor: { argb: "FFFFC7CE" },
},
},
blue: {
border: all_border,
font: { font: { size: 11 }, color: { argb: "0E3979" }, bold: true },
alignment: { vertical: "middle", horizontal: "center" },
fill: {
type: "pattern",
pattern: "solid",
fgColor: { argb: "EAEFF3" },
}
},
title: {
font: { size: 15, bold: true },
alignment: { vertical: "middle", horizontal: "center" },
},
box: {
border: all_border,
alignment: { vertical: "middle", horizontal: "center" },
font: { size: 11 },
},
};
// // 첫 번째 행 설정, 높이와 제목 설정
// let ws_row1 = work_Sheet.getRow(1);
// ws_row1.height = 32;
// ws_row1.getCell(1).value = "검사항목";
// ws_row1.getCell(1).style = field_css.title
// work_Sheet.mergeCells('A1:E1');
let ws_row = work_Sheet.getRow(1);
ws_row.height = 25;
// ws_row.getCell(1).style = field_css.blue;
// ws_row.getCell(1).value = "NO.";
ws_row.getCell(1).style = field_css.blue;
ws_row.getCell(1).value = "검사항목";
ws_row.getCell(2).style = field_css.blue;
ws_row.getCell(2).value = "검사항목명";
ws_row.getCell(3).style = field_css.blue;
ws_row.getCell(3).value = "검사유형";
ws_row.getCell(4).style = field_css.blue;
ws_row.getCell(4).value = "사용";
work_Sheet.columns = [
{ width: 15 },
{ width: 30 },
{ width: 15 },
{ width: 15 },
{ width: 9 },
];
// 파일 생성 및 다운로드 부분
work_Book.xlsx.writeBuffer().then((data) => {
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);
});
}

View File

@ -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 },

View File

@ -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,

View File

@ -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,

View File

@ -1,4 +1,9 @@
<?php
/*
* @Overview 불량실적 등록
* @History 2024-04-29 / 김승혁 / 문단정렬
*/
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
include_once _HOME_INC_PATH_ . "/ajax_init.php";
@ -10,6 +15,7 @@ if (class_exists("SangsengApi")) {
$_REQUEST['mode'] = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : "";
switch ($_REQUEST['mode']) {
//로그인
case "memberLogin":
if (csrf_check('memberLogin')) {
$retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
@ -39,45 +45,9 @@ switch ($_REQUEST['mode']) {
unset($_COOKIE['kuls_save_session']);
}
}
break;
case "getItemList":
$sql = "USP_B_ITEM_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 "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) {

View File

@ -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;
}

View File

@ -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");
}

View File

@ -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'] ){

View File

@ -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'});
}
}

View File

@ -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){ //검색어 필터 적용

View File

@ -43,5 +43,5 @@ const varsIO_TYPE_FIN = <?=json_encode($GLOBALS['_IO_TYPE_FIN']?:Array())?>;
const varsNCR_CD = <?=json_encode($GLOBALS['_NCR_CD']?:Array())?>;
const varsTASK_TYPE = <?=json_encode($GLOBALS['_TASK_TYPE']?:Array())?>;
const varsSTOP_CD = <?=json_encode($GLOBALS['_STOP_CD']?:Array())?>;
const varsDEF_CD = <?=json_encode($GLOBALS['_DEF_CD']?:Array())?>;
const varsRSLT_GRP = <?= json_encode($GLOBALS['_RSLT_GRP'] ?: array()) ?>;
const varsDEF_CD = <?=json_encode($GLOBALS['_DEF_CD']?:Array())?>;
const varsRSLT_GRP = <?=json_encode($GLOBALS['_RSLT_GRP']?:Array())?>;

View File

@ -1,5 +1,11 @@
<?php
$cate_id = "CNT_CT_WORKER";
/*
* @Overview 작업자별 가공시간
* @History 2024-04-22 / 최승연 / 최초작성
*/
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
include_once _SVC_INC_PATH_ . "/auth_check.php";
include_once _HOME_INC_PATH_ . "/ajax_init.php";
@ -12,13 +18,13 @@ if (!_notAuth("R")) {
case 'getWoOperList':
$squl = "USP_P_WO_OPER_RSLT_S20";
$squl = "USP_P_CNT_CT_WORKER_S10";
$params = array(
"P_EMP_NO" => $_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);

View File

@ -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;

View File

@ -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);

View File

@ -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()

View File

@ -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'] ?: "",

View File

@ -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 = {

View File

@ -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"] ?: "",

View File

@ -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);

View File

@ -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"],

View File

@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<!-- <button class="point-btn" id="item_ex_down">엑셀다운</button>
<button class="point-btn" id="item_ex_load">엑셀업로드</button> -->
<button class="point-btn" id="filter_btn">조회</button>
<button class="point-btn disabled-btn" id="put_item" disabled>저장</button>
<!--<button class="point-btn disabled-btn" id="put_item" disabled>저장</button>-->
</div>
</div>
<!-- 조회 저장 버튼 종료 // -->

View File

@ -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);

View File

@ -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()
];

View File

@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<!-- <button class="point-btn" id="item_ex_down">엑셀다운</button>
<button class="point-btn" id="item_ex_load">엑셀업로드</button> -->
<button class="point-btn" id="filter_btn">조회</button>
<button class="point-btn disabled-btn" id="put_item" disabled>저장</button>
<!--<button class="point-btn disabled-btn" id="put_item" disabled>저장</button>-->
</div>
</div>
<!-- 조회 저장 버튼 종료 // -->

View File

@ -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;
}
}

View File

@ -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:"최종공정</br>완료시간", width:100},
{field:"", title:"완료처리</br>시간", 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) => {

View File

@ -33,7 +33,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<label for="order_product_pop">품목</label>
<div class="input-box">
<input type="text" id="order_product_pop">
<?php include _SVC_INC_PATH_ . '/img/popupIcon.php' ?>
<span onclick="popItem({'ITEM_CD':'order_product_pop'})"><?php include _SVC_INC_PATH_ . '/img/popupIcon.php' ?></span>
</div>
</div>
@ -41,7 +41,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<label for="order_bp_pop">고객사</label>
<div class="input-box">
<input type="text" id="order_bp_pop">
<?php include _SVC_INC_PATH_ . '/img/popupIcon.php' ?>
<span onclick="popClient({'BP_CD':'order_bp_pop'})"><?php include _SVC_INC_PATH_ . '/img/popupIcon.php' ?></span>
</div>
</div>

View File

@ -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();
}

View File

@ -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()),

View File

@ -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:"준비시간</br>(분)", width:100},
// {field:"", title:"가공시간</br>(분)", width:100},

View File

@ -57,6 +57,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<div class="input-box">
<label for="BP_NM"></label>
<input type="text" id="BP_NM" placeholder="거래처명">
<input type="hidden" id="hidden_item_cd">
</div>
</div>
</div>
@ -66,6 +67,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<!-- 조회 저장 버튼 -->
<div class="button-container">
<div class="button-box">
<button class="point-btn" id="copy_btn">편성</button>
<button class="point-btn" id="">SAP 조회</button>
<button class="point-btn" id="filter_btn">조회</button>
<button class="point-btn" id="put_btn">저장</button>

View File

@ -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"] ?: ""

View File

@ -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";
/*
* @Overview 테이블 수정 함수
* @Parameter
* @function 편집이 이후 저장될수 있도록 _STATUS_:U로 데이터 업데이트
*/
cellEdited(cell) {
cell.getData()._STATUS_ = cell.getData()._STATUS_ || "U";
// const rowElement = row.getElement();
// rowElement.classList.add("remove-row");
// });
// })
// }else{
// kuls_alert("삭제할 행을 선택해주세요.")
// }
// }
}
/*
* @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,15 +397,12 @@ 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",
@ -416,33 +414,7 @@ class Tb_order_class {
{ 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: "가동 시간</br>(분)",
// 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 += `
<div class="input-container flexrow gap06">
// function addFormRow() {
// document.querySelector(".add-row-container").innerHTML += `
// <div class="input-container flexrow gap06">
<div class="input-box flex-1">
<p class="input-title"></p>
<input type="text" id="addRow" name="" class="form-control form-control-sm input-text"></input>
<input type="text" id="addRow" name="" class="form-control form-control-sm input-text"></input>
</div>
// <div class="input-box flex-1">
// <p class="input-title"></p>
// <input type="text" id="addRow" name="" class="form-control form-control-sm input-text"></input>
// <input type="text" id="addRow" name="" class="form-control form-control-sm input-text"></input>
// </div>
</div>`;
}
// </div>`;
// }

View File

@ -89,7 +89,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
<div class="button-container">
<div class="button-box">
<button class="point-btn" id="filter_btn">조회</button>
<button class="point-btn disabled-btn" id="put_btn">저장</button>
<button class="point-btn" id="put_btn">저장</button>
</div>
</div>
<!-- 조회 저장 버튼 종료 // -->
@ -126,10 +126,6 @@ include_once _SVC_INC_PATH_ . "/header.php";
<?php include _SVC_INC_PATH_ . '/img/delete.php' ?>
삭제
</button>
<!-- <button class="update-btn reverse-btn disabled-btn" disabled>
수정
</button> -->
</div>
<!-- 버튼 종료 // -->

View File

@ -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();

View File

@ -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,