HANYANG_REACT/www/ksvc/inc/common.ajax.php

712 lines
21 KiB
PHP

<?php
/*
* @Overview 불량실적 등록
* @History 2024-04-29 / 김승혁 / 문단정렬
*/
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
include_once _HOME_INC_PATH_ . "/ajax_init.php";
$apiObj = "";
if (class_exists("SangsengApi")) {
$apiObj = new SangsengApi();
}
$_REQUEST['mode'] = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : "";
switch ($_REQUEST['mode']) {
//로그인
case "memberLogin":
if (csrf_check('memberLogin')) {
$retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
} else if (!$_REQUEST['member_id']) {
$retval['mesg'] = cUtil\Mlang::getText("아이디를 입력하지 않았습니다.");
} else if (!$_REQUEST['member_auth']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
} else {
$row = $baseObj->login($_REQUEST['member_id'], $_REQUEST['member_auth']);
if ($row) {
if (!array_key_exists($row['member_auth'], array_merge($GLOBALS['_varsAuthMember'], $GLOBALS['_varsAuthAdmin']))) {
$retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
} else if ($row['member_status'] != 1) {
$retval['mesg'] = cUtil\Mlang::getText("해당 계정은 [{@1}] 상태입니다.", array($GLOBALS['_varsMemStatus'][$row['member_status']]));
} else {
$retval['code'] = 1;
$apiObj && $apiObj->pushApi($_REQUEST['member_id'], "접속");
}
} else {
$retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
}
$baseObj->logRec($_REQUEST['member_id'], "service", $retval['code']);
if ($_REQUEST['save_id']) {
setcookie('kuls_save_session', $_REQUEST['member_id'], strtotime("+1 years"), "/");
} else {
unset($_COOKIE['kuls_save_session']);
}
}
break;
//토큰
case "memberTokenLogin":
if (csrf_check('memberLogin')) {
$retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
} else if (!$_REQUEST['member_id']) {
$retval['mesg'] = cUtil\Mlang::getText("아이디를 입력하지 않았습니다.");
} else if (!$_REQUEST['member_auth']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
} else {
$row = $baseObj->login($_REQUEST['member_id'], $_REQUEST['member_auth']);
if ($row) {
if (!array_key_exists($row['member_auth'], array_merge($GLOBALS['_varsAuthMember'], $GLOBALS['_varsAuthAdmin']))) {
$retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
} else if ($row['member_status'] != 1) {
$retval['mesg'] = cUtil\Mlang::getText("해당 계정은 [{@1}] 상태입니다.", array($GLOBALS['_varsMemStatus'][$row['member_status']]));
} else {
$retval['code'] = 1;
$apiObj && $apiObj->pushApi($_REQUEST['admin_id'], "접속");
$tkObj = new Token();
$retval['data']['token'] = $tkObj->putToken($_REQUEST['member_id']);
}
} else {
$retval['mesg'] = cUtil\Mlang::getText("아이디나 비밀번호를 확인해 주세요.");
}
$baseObj->logRec($_REQUEST['member_id'], "service", $retval['code']);
if ($_REQUEST['save_id']) {
$retval['data']['save_id'] = $_REQUEST['member_id'];
} else {
$retval['data']['save_id'] = '';
}
}
break;
//로그인
case "memberJoin":
$minfo = $baseObj->getMember($_REQUEST['member_id']);
if (csrf_check('memberJoin')) {
$retval['mesg'] = cUtil\Mlang::getText("정상적인 접근이 아닙니다.");
} else if (!$_REQUEST['member_id']) {
$retval['mesg'] = cUtil\Mlang::getText("아이디를 입력하지 않았습니다.");
} else if (strlen(preg_replace("/[0-9a-z]/im", "", $_REQUEST['member_id'])) > 0 || strlen(preg_replace("/[^0-9a-z]/im", "", $_REQUEST['member_id'])) < $GLOBALS['_varsBaseCode']['id_len']) {
$retval['mesg'] = cUtil\Mlang::getText("아이디는 영문자/숫자 만으로 구성되며, {$GLOBALS['_varsBaseCode']['id_len']}자리 이상이어야 합니다.");
} else if (!$_REQUEST['member_pw']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
} else if (!$_REQUEST['member_pwf']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호 확인을 입력하지 않았습니다.");
} else if (strlen($_REQUEST['member_pw']) < $GLOBALS['_varsBaseCode']['pw_len']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호는 {$GLOBALS['_varsBaseCode']['pw_len']}자 이상이어야 합니다.");
} else if ($_REQUEST['member_pw'] != $_REQUEST['member_pwf']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호가 일치하지 않습니다.");
} else if ($minfo['member_id'] || in_array($_REQUEST['member_id'], array("admin", "root"))) {
$retval['mesg'] = cUtil\Mlang::getText("이미 존재하는 아이디 또는 사용 불가능한 아이디 입니다.");
} else if (!$_REQUEST['member_name']) {
$retval['mesg'] = cUtil\Mlang::getText("관리자명을 입력하지 않았습니다.");
} else {
$ins_row = array(
"member_id" => $_REQUEST['member_id'],
"member_pw" => $_REQUEST['member_pw'],
"member_name" => $_REQUEST['member_name'],
"member_auth" => "M",
"member_status" => 2,
);
$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);
$mnuObj->cate_area = "service";
$rows = $mnuObj->getTreeListForTreeView("", $_REQUEST['menu_code']);
// print_r();
$sql ="USP_ZB_MANUAL_S10";
$params = array(
$_REQUEST['menu_code']
);
$manual = $baseObj->DB->exec($sql, $params);
while ($row = $baseObj->DB->fetch_array($manual)) {
$tempArray[] = $row;
}
if ($rows) {
$retval['code'] = 1;
$retval['data'] = $rows;
$retval['manual'] = $tempArray;
$_SESSION['menu_info'] = $rows;
} else {
$retval['mesg'] = "불러오지 못하였습니다.";
}
// $retval['manual'] = $manual;
break;
//거래처목록
case "getPartnerList":
$sql = "USP_B_BIZ_PARTNER_POP_S10";
$params = array(
"P_USE_FLG" => "Y",
"P_BP_CD" => "",
"P_PUR_FLG" => "",
"P_SAL_FLG" => ""
);
$rst = $baseObj->DB->exec($sql, $params);
// print_r($params);
$rows = array();
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']);
$rows[] = $row;
}
$retval['data'] = $rows;
}
break;
//사업장
case "getBizareaList":
$sql = "USP_B_BIZ_AREA_S10";
$params = Array(
"BIZ_AREA_NM" => "" //사업장 명
,"BP_NM" => "" //거래처명
,"USEFLAG" => 'Y'
);
$rst = $baseObj->DB->exec($sql, $params);
$rows = array();
if ($rst) {
$retval['code'] = 1;
while ($row = $baseObj->DB->fetch_array($rst)) {
$row['WORK_STD_TIME'] = getDT_datetime($row['WORK_STD_TIME'], "H:i");
$rows[] = $row;
}
$retval['data'] = $rows;
}
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(
$_REQUEST['BIZ_AREA_CD'],
"",
"",
"USE_FLG" => "Y"
);
$rst = $baseObj->DB->exec($sql, $params);
$rows = array();
if ($rst) {
$retval['code'] = 1;
while ($row = $baseObj->DB->fetch_array($rst)) {
$row['WORK_STD_TIME'] = getDT_datetime($row['WORK_STD_TIME'], "H:i");
$rows[] = $row;
}
$retval['data'] = $rows;
/* 스크립트에서 처리
$mnuObj = new Menu(TB_menu_list);
$retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
*/
}
break;
// 품목 정보
case "getItemList":
$sql = "USP_B_ITEM_S20";
$params = Array(
"ITEM_NM" => '',
);
$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 'getRoutingList':
$sql = "USP_B_ROUTING_S10";
$params = Array(
"ITEM_CD" => $_REQUEST['ITEM_CD']?:"",
);
$rst = $baseObj->DB->exec($sql,$params);
$rows = array();
if( $rst ){
while( $row = $baseObj->DB->fetch_array($rst) ){
$rows[] = $row;
};
$retval['code'] = true;
$retval['data'] = $rows;
// print_r($retval['data']);
$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";
$rst = $baseObj->DB->exec($squl);
$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 'getOperList':
$squl = "USP_B_OPERATION_S20";
$rst = $baseObj->DB->exec($squl);
$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 'getRegOperList':
$squl = "USP_P_WO_OPER_S10";
$params = array(
"WO_NO" => $_REQUEST['WO_NO'] ?: "",
);
$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 'getItemOperList':
$squl = "USP_B_OPERATION_S30";
$params = Array(
"ITEM_CD" =>$_REQUEST['ITEM_CD'],
);
$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 'getItemOperCheckList':
$squl = "USP_B_INSP_ITEM_S10";
$params = array(
"WO_NO_P" => "",
);
// $squl = "USP_B_OPERATION_S40";
// $params = array(
// "WO_NO_P" => $_REQUEST['WO_NO_P'],
// "OP_CD_P" => $_REQUEST['OP_CD_P'],
// "ITEM_CD_P" => $_REQUEST['ITEM_CD_P']
// );
$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 'getFacilityList':
$squl = "USP_B_FACILITY_S10";
$params = Array(
"USE_FLG" => "",
"FACLT_CD" => "",
"FACLT_NM" => "",
"FACLT_GRP" => "",
);
$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 "getInspList":
$sql = "USP_B_INSP_ITEM_S10";
$params = Array(
"INSP_ITEM" => "",
);
$rst = $baseObj->DB->exec($sql, $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 "getInspItem":
$sql = "USP_P_REG_PROD_INSP_S10";
$params = array(
'WO_NO' => $_REQUEST["WO_NO"] ?: "",
'WO_SEQ' => $_REQUEST["WO_SEQ"] ?: "",
);
$rst = $baseObj->DB->exec($sql, $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 'getRegOrderList':
$squl = "USP_P_REG_WO_S20";
$rst = $baseObj->DB->exec($squl);
$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 'getOrderFacilityList':
$squl = "USP_B_REG_FACILITY_S10";
$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 "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) {
$data = (array) $data;
$cdata = $data;
unset($cdata['_STATUS_']);
unset($cdata['USE_FLG']);
if (empty(array_filter($cdata))) {
if ($data['_STATUS_'] == 'I')
continue; //빈열제거
if ($data['_STATUS_'] == 'U')
$data['_STATUS_'] = 'D'; //빈열제거
}
if ($data['ITEM_CD'] && $data['_STATUS_'] == 'D') {
$rst = $rst && $baseObj->delBaseCode($data['Bran_Uid'], $data['Group_Uid'], $data['Code_Uid_Old']);
} else {
$sqldata = array(
'Bran_Uid' => isset($data['Bran_Uid']) ? $data['Bran_Uid'] : "",
'Group_Uid' => isset($data['Group_Uid']) ? $data['Group_Uid'] : "",
'Code_Uid' => isset($data['Code_Uid']) ? $data['Code_Uid'] : "",
'Code_Val' => isset($data['Code_Val']) ? $data['Code_Val'] : "",
'Code_Exp' => isset($data['Code_Exp']) ? $data['Code_Exp'] : $data['Code_Val'],
'Code_Idx' => isset($data['Code_Idx']) ? $data['Code_Idx'] : "",
'Active' => $data['Code_Active'],
);
if ($data['_STATUS_'] == 'I') {
$row = $baseObj->getBaseCode($data['Bran_Uid'], $data['Group_Uid'], $data['Code_Uid']);
if ($row['Code_Uid'] && $row['Code_Uid'] == $data['Code_Uid']) {
$retval['mesg'] = cUtil\Mlang::getText("{@1} 는 이미 사용중인 코드입니다.", array($data['ITEM_CD']));
break;
}
if (!$sqldata['Code_Idx']) {
$midx = $baseObj->getMaxBaseCodeIdx($data['Bran_Uid'], $data['Group_Uid']) + 1;
$sqldata['Code_Idx'] = $midx;
}
$rst = $rst && $baseObj->putBaseCode($sqldata);
} else {
$rst = $rst && $baseObj->setBaseCode($sqldata, $data['Bran_Uid'], $data['Group_Uid'], $data['Code_Uid_Old']);
}
}
}
if ($rst) {
$retval['code'] = 1;
}
break;
case "putSiteMenual":
$sql = 'USP_ZB_MANUAL_U10';
$_REQUEST['RS_CODE'] = "";
$_REQUEST['RS_MSG'] = "";
$params = Array(
'EMP_NO' => $_REQUEST['member_id'] ? $_REQUEST['member_id'] : "",
'CONTENTS' => $_REQUEST['contents'] ? $_REQUEST['contents'] : "",
'MENU_CD' => $_REQUEST['menu_code'] ? $_REQUEST['menu_code'] : "",
"RS_CODE" => array(&$_REQUEST['RS_CODE'], SQLSRV_PARAM_OUT),
"RS_MSG" => array(&$_REQUEST['RS_MSG'], SQLSRV_PARAM_OUT)
);
$rst = $baseObj->DB->exec($sql, $params);
if ($rst) {
$retval['code'] = $_REQUEST['RS_CODE'];
$retval['mesg'] = $_REQUEST['RS_MSG'];
}
break;
// 비밀번호 초기화로직
case "firstPassword":
// print_r($_REQUEST['pw']);
$sql = 'USP_ZB_INIT_PASSWORD_U10';
$params = Array(
'pw' => $baseObj->lcrypt-> pw_make(""),
);
// print_r($params);
$rst = $baseObj->DB->exec($sql, $params);
if ($rst) {
$retval['code'] = true;
}
break;
//사용자가 비밀번호 변경 시 체크하는 로직
case "checkPassword":
if (!$_REQUEST['member_auth']) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 입력하지 않았습니다.");
} else {
$row = $baseObj->login($GLOBALS['_Umem']['member_id'], $_REQUEST['member_auth']);
if ($row) {
if (!array_key_exists($row['member_auth'], array_merge($GLOBALS['_varsAuthMember'], $GLOBALS['_varsAuthAdmin']))) {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 확인해 주세요.");
} else if ($row['member_status'] != 1) {
$retval['mesg'] = cUtil\Mlang::getText("해당 계정은 [{@1}] 상태입니다.", array($GLOBALS['_varsMemStatus'][$row['member_status']]));
} else {
$retval['code'] = 1;
$retval['mesg'] = cUtil\Mlang::getText("비밀번호가 확인되었습니다.");
}
} else {
$retval['mesg'] = cUtil\Mlang::getText("비밀번호를 확인해 주세요.");
}
}
break;
case "changePassword":
// print_r($baseObj->lcrypt->pw_make($_REQUEST['member_auth']));
if( $_REQUEST['member_auth'] ){
$sqldata["member_pw"] = $baseObj->lcrypt->pw_make($_REQUEST['member_auth']);
}
$rst = $baseObj->setMemberParts($sqldata);
if($rst){
$retval['code'] = 1;
}else{
$retval['code'] = 0;
$retval['mesg'] = "계정 상태를 확인해주세요";
}
break;
}
if (!$_REQUEST['no_echo']) {
echo json_encode($retval);
}