HANYANG_REACT/lib/base/basecode.class.php

293 lines
9.3 KiB
PHP

<?php
Class BaseCode extends BaseDB {
function __construct($db_option=""){
parent::__construct($db_option);
$this->DB->tableExists(TB_basecode);
}
public function getAllBaseCodeList($Bran_Uid="", $Group_Uid="", $Code_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
if( $Bran_Uid !== "" ) $where->add("CD.Bran_Uid = ?", $Bran_Uid);
if( $Group_Uid !== "" ) $where->add("CD.Group_Uid = ?", $Group_Uid);
if( $Code_Uid !== "" ) $where->add("CD.Code_Uid = ?", $Code_Uid);
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
$sql = "select
CD.Bran_Uid
,BR.Code_Val as Bran_Val
,CD.Group_Uid
,GR.Code_Val as Group_Val
,CD.Code_Uid
,CD.Code_Val
,CD.Code_Exp
,BR.Code_Idx as Bran_Idx
,case when CD.Bran_Uid = CD.Code_Uid then -1 else GR.Code_Idx end as Group_Idx
,CD.Code_Idx
,case when CD.Bran_Uid = CD.Code_Uid then -1 when CD.Group_Uid = CD.Code_Uid then 0 else CD.Code_Idx end as Code_Idx2
,BR.Active as Bran_Active
,GR.Active as Group_Active
,CD.Active as Code_Active
from ". TB_basecode ." as CD
inner join ". TB_basecode ." as BR on CD.Bran_Uid = BR.Code_Uid
inner Join ". TB_basecode ." as GR on CD.Bran_Uid = GR.Bran_Uid and CD.Group_Uid = GR.Code_Uid
where {$whereqry}
order by Bran_Idx, Bran_Uid, Group_Idx, Group_Uid, Code_Idx2, Code_Uid";
$this->DB->query_record = false; //query log 기록 금지
$rows = $this->DB->query($sql, $whererow);
$this->DB->query_record = true; //query log 기록 재개
return $rows;
}
public function getBaseCodeList($Bran_Uid="", $Group_Uid="", $Code_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
$where->add("BR.Active = ?", 'Y');
$where->add("GR.Active = ?", 'Y');
$where->add("CD.Active = ?", 'Y');
return $this->getAllBaseCodeList($Bran_Uid, $Group_Uid, $Code_Uid, $where);
}
public function getBaseCode($Bran_Uid="", $Group_Uid="", $Code_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
if( $Bran_Uid !== "" ) $where->add("Bran_Uid = ?", $Bran_Uid);
if( $Group_Uid !== "" ) $where->add("Group_Uid = ?", $Group_Uid);
if( $Code_Uid !== "" ) $where->add("Code_Uid = ?", $Code_Uid);
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
$sql = "select * from ". TB_basecode ." where {$whereqry}";
$row = $this->DB->queryFirstRow($sql, $whererow);
return $row;
}
public function putBaseCode($sqldata){
return $this->DB->insert(TB_basecode, $sqldata);
}
public function setBaseCode($sqldata, $Bran_Uid="", $Group_Uid="", $Code_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
if( $Bran_Uid !== "" ) $where->add("Bran_Uid = ?", $Bran_Uid);
if( $Group_Uid !== "" ) $where->add("Group_Uid = ?", $Group_Uid);
if( $Code_Uid !== "" ) $where->add("Code_Uid = ?", $Code_Uid);
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
return $this->DB->update(TB_basecode, $sqldata, $whereqry, $whererow);
}
public function delBaseCode($Bran_Uid="", $Group_Uid="", $Code_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
if( $Bran_Uid !== "" ) $where->add("Bran_Uid = ?", $Bran_Uid);
if( $Group_Uid !== "" ) $where->add("Group_Uid = ?", $Group_Uid);
if( $Code_Uid !== "" ) $where->add("Code_Uid = ?", $Code_Uid);
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
return $this->DB->delete(TB_basecode, $whereqry, $whererow);
}
public function sortBaseCode($Bran_Uid, $Group_Uid, $Code_Uid, $Code_Idx, $adv=1){ //$incl => 코드 추가시 현 Code_Uid의 Code_idx 값보다 +1 씩 해서 sort 값을 줘야 하나, 삭제시에는 Code_Uid 자리부터 시작하므로 +1 하지 않기 위함.
$Code_Idx = $Code_Idx?:1;
$where = new DB_where("and");
$where->add("Code_Uid != ?",$Code_Uid);
$where->add("Code_Idx >= ?",$Code_Idx);
if( $Bran_Uid == $Code_Uid ){
$where->add("Bran_Uid = ?",$this->DB->sqleval("Code_Uid"));
}else if( $Group_Uid == $Code_Uid ){
$where->add("Bran_Uid = ?",$Bran_Uid);
$where->add("Group_Uid = ?",$this->DB->sqleval("Code_Uid"));
$where->add("Bran_Uid != ?",$this->DB->sqleval("Code_Uid"));
}else{
$where->add("Bran_Uid = ?",$Bran_Uid);
$where->add("Group_Uid = ?",$Group_Uid);
$where->add("Bran_Uid != ?",$this->DB->sqleval("Code_Uid"));
$where->add("Group_Uid != ?",$this->DB->sqleval("Code_Uid"));
}
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
$sql = "select * from ". TB_basecode ." where {$whereqry} order by Code_Idx";
$rst = $this->DB->qry($sql, $whererow);
$sidx = $Code_Idx + $adv;
$urst = true;
while( $row = $this->DB->fetch_array($rst) ){
$sqldata = Array("Code_Idx" => $sidx++);
$uwhere = new DB_where("and");
$uwhere->add("Bran_Uid = ?", $row['Bran_Uid']);
$uwhere->add("Group_Uid = ?", $row['Group_Uid']);
$uwhere->add("Code_Uid = ?", $row['Code_Uid']);
$uwqry = $uwhere->get_where();
$uwhereqry = $uwqry['qry'];
$uwhererow = $uwqry['val'];
$urst = $urst && $this->DB->update(TB_basecode, $sqldata, $uwhereqry, $uwhererow);
}
return $urst;
}
public function getMaxBaseCodeIdx($Bran_Uid="", $Group_Uid="", $where=""){
if( !$where ){
$where = new DB_where("and");
}
if( $Bran_Uid !== "" ){
$where->add("Bran_Uid = ?", $Bran_Uid);
$where->add("Bran_Uid != ?", $this->DB->sqleval("Code_Uid"));
}else{
$where->add("Bran_Uid = ?", $this->DB->sqleval("Group_Uid"));
}
if( $Group_Uid !== "" ){
$where->add("Group_Uid = ?", $Group_Uid);
$where->add("Group_Uid != ?", $this->DB->sqleval("Code_Uid"));
}else{
$where->add("Group_Uid = ?", $this->DB->sqleval("Code_Uid"));
}
$wqry = $where->get_where();
$whereqry = $wqry['qry'];
$whererow = $wqry['val'];
$sql = "select max(Code_Idx) from ". TB_basecode ." where {$whereqry}";
$maxIdx = $this->DB->queryFirstField($sql, $whererow);
return $maxIdx;
}
public function getBaseCodeVars($Bran_Uid="", $Group_Uid=""){
$Bran_Uid = $Bran_Uid?:$Group_Uid;
$where = new DB_where("and");
$where->add("CD.Group_Uid != ?", $this->DB->sqleval("CD.Code_Uid"));
$row = $this->getBaseCodeList($Bran_Uid, $Group_Uid, "", $where);
$ret = array();
foreach( (array)$row as $val ){
$ret[$val['Code_Uid']] = $val['Code_Val'];
}
return $ret;
}
public function getBaseGroupVars($Bran_Uid){
$where = new DB_where("and");
$where->add("CD.Bran_Uid != ?", $this->DB->sqleval("CD.Code_Uid"));
$row = $this->getBaseCodeList($Bran_Uid, "", "", $where);
$ret = array();
foreach( (array)$row as $val ){
if( $val['Group_Uid'] == $val['Code_Uid'] ){
$ret[$val['Group_Uid']] = $val;
}else{
$ret[$val['Group_Uid']]['children'][$val['Code_Uid']] = $val['Code_Val'];
}
}
return $ret;
}
public function getBaseGCodeVars($Bran_Uid="", $Group_Uid=""){
$Bran_Uid = $Bran_Uid?:$Group_Uid;
$where = new DB_where("and");
$where->add("CD.Group_Uid != ?", $this->DB->sqleval("CD.Code_Uid"));
$row = $this->getBaseCodeList($Bran_Uid, $Group_Uid, "", $where);
$ret = array();
foreach( (array)$row as $val ){
if( !isset($ret[$val['Group_Uid']]) ){
$ret[$val['Group_Uid']] = array();
}
$ret[$val['Group_Uid']][$val['Code_Uid']] = $val['Code_Val'];
}
return $ret;
}
public function getBaseCodeVarsExp($Bran_Uid="", $Group_Uid=""){
$Bran_Uid = $Bran_Uid?:$Group_Uid;
$where = new DB_where("and");
$where->add("CD.Group_Uid != ?", $this->DB->sqleval("CD.Code_Uid"));
$row = $this->getBaseCodeList($Bran_Uid, $Group_Uid, "", $where);
$ret = array();
foreach( (array)$row as $val ){
$ret[$val['Code_Uid']] = Array($val['Code_Val'],$val['Code_Exp']);
}
return $ret;
}
public function getBaseCodeVarsAll($Bran_Uid="", $Group_Uid=""){
$Bran_Uid = $Bran_Uid?:$Group_Uid;
$where = new DB_where("and");
$where->add("CD.Group_Uid != ?", $this->DB->sqleval("CD.Code_Uid"));
$row = $this->getBaseCodeList($Bran_Uid, $Group_Uid, "", $where);
$ret = array(
"CODE" =>Array(),
"CODEEXP"=>Array(),
);
foreach( (array)$row as $val ){
if( !isset($ret['CODE'][$val['Bran_Uid']]) ){
$ret['CODE'][$val['Bran_Uid']] = Array();
$ret['CODEEXP'][$val['Bran_Uid']] = Array();
}
$ret['CODE'][$val['Bran_Uid']][$val['Code_Uid']] = $val['Code_Val'];;
$ret['CODEEXP'][$val['Bran_Uid']][$val['Code_Uid']] = Array($val['Code_Val'],$val['Code_Exp']);
}
return $ret;
}
// public static function val2code( $rows, $val ){
// foreach( $rows as $key => $vrow ){
// if( is_array($vrow) && $val == $vrow['val'] || $vrow == $val ){
// return $key;
// }
// }
// return false;
// }
//
// public static function val2txt( $rows, $val ){
// foreach( $rows as $key => $vrow ){
// if( is_array($vrow) && $val == $vrow['val'] ){
// return $vrow['txt'];
// }else if( $vrow == $val ){
// return $vrow;
// }
// }
// return false;
// }
}