상세수정
Some checks failed
Close Pull Request / main (pull_request_target) Has been cancelled

This commit is contained in:
yangsh
2026-02-05 10:36:12 +09:00
parent 8b77448128
commit 36355f75f3
12 changed files with 2939 additions and 1028 deletions

View File

@@ -1,6 +1,7 @@
<?php
namespace App\Models\v2;
use App\Models\webfax\FaxModel;
use CodeIgniter\Model;
class M706Model extends Model
@@ -757,6 +758,679 @@ class M706Model extends Model
return $query->getRowArray();
}
/* 매물정보를 수정 */
public function saveModifyInfo($atcl_vr_sq, $atcl_hscp_nm, $atcl_ptp_nm, $atcl_vrfc_type, $trade_type, $atcl_addr1, $atcl_addr1a, $atcl_addr1b, $atcl_addr2, $atcl_hscp_no, $atcl_ptp_no, $atcl_amt1, $atcl_amt2, $atcl_amt3, $atcl_floor, $atcl_floor2)
{
$session = session();
$usr_id = $session->get('usr_id');
$list = $this->getDetail($atcl_vr_sq);
$data = [];
if ($trade_type != 'B2') {
$atcl_amt3 = '0';
$data['lease_amt'] = $atcl_amt3;
}
if (!empty($trade_type))
$data['trade_type'] = $trade_type;
if (!empty($atcl_hscp_nm))
$data['hscp_nm'] = $atcl_hscp_nm;
if (!empty($atcl_ptp_nm))
$data['ptp_nm'] = $atcl_ptp_nm;
if (!empty($atcl_addr1))
$data['address2'] = $atcl_addr1;
if (!empty($atcl_addr1a))
$data['address2a'] = $atcl_addr1a;
if (!empty($atcl_addr1b))
$data['address2b'] = $atcl_addr1b;
if (!empty($atcl_addr2))
$data['address3'] = $atcl_addr2;
if (!empty($atcl_hscp_no))
$data['hscp_no'] = $atcl_hscp_no;
if (!empty($atcl_ptp_no))
$data['ptp_no'] = $atcl_ptp_no;
if (!empty($atcl_amt1))
$data['deal_amt'] = $atcl_amt1;
if (!empty($atcl_amt2))
$data['wrrnt_amt'] = $atcl_amt2;
if (!empty($atcl_amt3))
$data['lease_amt'] = $atcl_amt3;
if (!empty($atcl_floor))
$data['floor'] = $atcl_floor;
if (!empty($atcl_floor2))
$data['floor2'] = $atcl_floor2;
$data['modify_yn'] = 'Y';
$this->db->transStart();
$builder = $this->db->table('v2_modify_info');
$builder->where('vr_sq', $atcl_vr_sq);
$builder->update($data);
$last_query = $this->db->getLastQuery();
$current_url = current_url();
log_message('debug', $current_url . ' :: ' . $last_query);
$data['trade_type_cd'] = $trade_type;
$return['error_number'] = $this->db->error()['code'];
$return['error_message'] = $this->db->error()['message'];
if (empty($return['error_number'])) {
if ($this->db->affectedRows() > 0) {
if (!empty($changed)) {
$this->saveChangedHistory($list['vr_sq'], $list['pre_stat_cd'], 'C25', $usr_id, "매물정보 수정");
}
}
}
$this->db->transComplete();
// 홍보확인서인 경우 주소 변경시 FAX 이미지의 정보도 함께 변경한다.
$faxModel = new FaxModel();
$faxModel->updateAddress($atcl_vr_sq, $list['address_code'], $data['address2'] ?? '', $data['address3'] ?? '', $data['hscp_no'] ?? '', $data['hscp_nm'] ?? '');
return $return;
}
public function saveModifyVrfc($atcl_vr_sq, $atcl_vrfc_type)
{
$usr_id = session('usr_id');
$list = $this->getDetail($atcl_vr_sq); //변경된 내용 비교를 위해.
$data['vrfc_type'] = $atcl_vrfc_type;
$this->db->where('vr_sq', $atcl_vr_sq);
$this->db->trans_start();
$this->db->update('v2_vrfc_req', $data);
$data['vrfc_type_cd'] = $atcl_vrfc_type;
//echo $this->db->last_query();
$return['error_number'] = $this->db->_error_number();
$return['error_message'] = $this->db->_error_message();
if (empty($return['error_number'])) {
// 로그를 남긴다.
if ($this->db->affected_rows() > 0) {
if (!empty($changed)) {
$this->saveChangedHistory($list['data']['vr_sq'], $list['data']['pre_stat_cd'], 'C25', $usr_id, "매물정보 저장");
}
}
}
$this->db->trans_complete();
return $return;
}
/* 현재 상태 확인 */
public function chkStat($vr_sq)
{
$sql = "SELECT stat_cd FROM v2_vrfc_req WHERE vr_sq = ?";
$data = array(
$vr_sq
);
$query = $this->db->query($sql, $data);
return $query->getRowArray();
}
public function InsCharger($atcl_vr_sq)
{
$usr_id = session('usr_id');
$sql = "UPDATE v2_article_info" .
" SET charger = ?" .
" WHERE vr_sq = ?";
$data = array(
$usr_id,
$atcl_vr_sq
);
$res = $this->db->query($sql, $data);
$log_v = $this->db->getLastQuery();
log_message('debug', $log_v);
}
public function chkTryCnt($atcl_vr_sq)
{
// 1차 검증인지 2차 검증인지 확인.
$builder = $this->db->table('v2_vrfc_req');
$builder->select('try_cnt');
$builder->where('vr_sq', $atcl_vr_sq);
$query = $builder->get();
return $query->getRowArray();
}
public function chkConfirm($atcl_vr_sq, $reg_yn = null)
{
// 검증결과 table에 있는지 확인.
$builder = $this->db->table('v2_confirm');
$builder->select('vr_sq');
$builder->where('vr_sq', $atcl_vr_sq);
if ($reg_yn) {
$builder->where('vrfc_type', $reg_yn); // 등기부등본 정보 확인시
}
$query = $builder->get();
return $query->getNumRows();
}
public function insertConfirm($vr_sq, $vrfc_type, $success, $type)
{ //v2_confirm INSERT
$usr_sq = session('usr_sq');
$usr_id = session('usr_id');
$sql = "INSERT INTO v2_confirm" .
"(vr_sq, vrfc_type, success, type, charger, date, insert_user, insert_tm, update_user, update_tm)" .
"VALUES" .
"(?, ?, ?, ?, ?, '" . date('YmdHis') . "', ?, NOW(), ?, NOW())";
$data = array(
$vr_sq,
$vrfc_type,
$success,
$type,
$usr_id,
$usr_sq,
$usr_sq
);
$this->db->query($sql, $data);
}
public function updateConfirm($vr_sq, $vrfc_type, $success)
{
$data = [
'success' => $success,
'update_tm' => date('Y-m-d H:i:s')
];
$builder = $this->db->table('v2_confirm');
$builder->where('vr_sq', $vr_sq);
$builder->where('vrfc_type', $vrfc_type);
$builder->update($data);
$return = [
'error_number' => $this->db->error()['code'],
'error_message' => $this->db->error()['message']
];
return $return;
}
public function chgStat($vr_sq, $stat_cd, $insert_tm)
{
// 상태변경 TABLE INSERT
$usr_sq = session('usr_sq');
$usr_id = session('usr_id');
$list = $this->getDetail($vr_sq);
$sql = "INSERT INTO v2_chg_stat (vr_sq, stat_cd, insert_user, insert_tm) " .
"VALUES (?, ?, ?, ?) " .
"ON DUPLICATE KEY UPDATE " .
"vr_sq=VALUES(vr_sq), stat_cd=VALUES(stat_cd), insert_user=VALUES(insert_user), insert_tm=VALUES(insert_tm)";
$data = [
$vr_sq,
$stat_cd,
$usr_sq,
$insert_tm
];
$this->db->transStart();
$query = $this->db->query($sql, $data);
$last_query = $this->db->getLastQuery();
log_message('debug', $last_query);
$return['error_number'] = $this->db->error()['code'];
$return['error_message'] = $this->db->error()['message'];
if (empty($return['error_number'])) {
// 로그를 남긴다.
if ($this->db->affectedRows() > 0) {
$changed = $this->whatIsChanged($list, $data, '');
if (!empty($changed)) {
$this->saveChangedHistory($list['vr_sq'], $stat_cd, 'C9', $usr_id, $changed);
}
}
}
$this->db->transComplete();
return $return;
}
public function chgStatVrfc($vr_sq, $stat_cd)
{
$data = ['stat_cd' => $stat_cd];
$builder = $this->db->table('v2_vrfc_req');
$builder->where('vr_sq', $vr_sq);
$builder->update($data);
$last_query = $this->db->getLastQuery();
log_message('debug', $last_query);
$return['error_number'] = $this->db->error()['code'];
$return['error_message'] = $this->db->error()['message'];
return $return;
}
public function chgStatFax($vr_sq, $stat_cd)
{
$data = ['stat_cd' => $stat_cd];
$builder = $this->db->table('fax_imgs');
$builder->where('vr_sq', $vr_sq);
$builder->update($data);
$last_query = $this->db->getLastQuery();
log_message('debug', $last_query);
$return['error_number'] = $this->db->error()['code'];
$return['error_message'] = $this->db->error()['message'];
return $return;
}
public function chgTryCnt($vr_sq, $try_cnt)
{ //v2_vrfc_req try_cnt 값 변경.
$sql = "UPDATE v2_vrfc_req" .
" SET try_cnt = ?" .
" WHERE vr_sq = ?";
$data = array(
$try_cnt,
$vr_sq
);
$this->db->query($sql, $data);
}
public function insertChkList($vr_sq, $vrfc_type, $type, $code, $comment)
{ //v2_check_list INSERT
$usr_sq = $this->session->userdata('usr_sq');
$sql = "INSERT INTO v2_check_list" .
"(vr_sq, vrfc_type, type, code, comment, insert_user, insert_tm)" .
"VALUES" .
"(?, ?, ?, ?, ?, ?, NOW())" .
" ON DUPLICATE KEY UPDATE" .
" vr_sq=values(vr_sq), vrfc_type=values(vrfc_type), type=values(type), code=values(code), comment=values(comment), insert_user=values(insert_user), insert_tm=values(insert_tm)";
$data = array(
$vr_sq,
$vrfc_type,
$type,
$code,
$comment,
$usr_sq
);
$this->db->query($sql, $data);
}
/**
* 검증결과 전송 API를 위한 데이터 조회..
*/
public function getDataConfirmAPI($vr_sq)
{
// 요청정보
$sql = "SELECT vr_sq, atcl_no, step, cpid, cp_atcl_id, trade_type, realtor_nm, realtor_tel_no, seller_tel_no, vrfc_type, rgbk_confirm, req_type, rdate, stat_cd, try_cnt, insert_user, insert_tm" .
" FROM v2_vrfc_req WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$row_vrfc_req = $query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 매물정보
$sql = "SELECT vr_sq, atcl_no, cpid, cp_atcl_id, rlet_type_cd, trade_type, address_code, address1, address2, address3, sply_spc, excls_spc, tot_spc, grnd_spc, bldg_spc, deal_amt, wrrnt_amt, lease_amt, isale_amt, prem_amt, sise, floor, rdate, seller_tel_no, seller_nm, realtor_nm, realtor_tel_no, hscp_no, hscp_nm, ptp_no, ptp_nm, charger, req_price_yn, reg_charger, dept1_sq, dept2_sq, reg_dept1_sq, reg_dept2_sq, floor2" .
" FROM v2_article_info WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 수정정보
$sql = "SELECT vr_sq, bild_nm, rm_no, floor, address_code, address2, address3, address4, trade_type, deal_amt, wrrnt_amt, lease_amt, isale_amt, prem_amt, sply_spc, excls_spc, tot_spc, grnd_spc, bldg_spc, hscp_no, hscp_nm, ptp_no, ptp_nm, modify_yn, floor2 FROM v2_modify_info WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$row_modify_info = $query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 검증결과
$sql = "SELECT vr_sq, vrfc_type, success, type, charger, date, insert_user, insert_tm, update_user, update_tm, work_type" .
" FROM v2_confirm WHERE vr_sq = ? AND vrfc_type = ?";
$query = $this->db->query($sql, [$vr_sq, $row_vrfc_req['vrfc_type']]);
$row_confirm = $query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 확인정보
$sql = "SELECT type, code, comment, ownerNm, ownerBirth FROM v2_check_list WHERE vr_sq = ? AND vrfc_type = ? AND type LIKE CONCAT(vrfc_type, '%')";
$query = $this->db->query($sql, [$vr_sq, $row_vrfc_req['vrfc_type']]);
$res_check_list = $query->getResultArray();
log_message('debug', $this->db->getLastQuery());
log_message('debug', implode(', ', $row_confirm));
$atclNo = $row_vrfc_req['atcl_no'];
$success = empty($row_confirm['success']) ? false : true;
$charger = $row_confirm['charger'];
$date = $row_confirm['date'];
$try_cnt = $row_vrfc_req['try_cnt'];
$checkList = [];
foreach ($res_check_list as $row) {
$checkList[] = [
'type' => $row['type'],
'code' => $row['code'],
'comment' => $row['comment'],
'ownerNm' => $row['ownerNm'],
'ownerBirth' => $row['ownerBirth'],
];
}
$modifyInfo = [];
if ($row_modify_info['modify_yn'] === 'Y') {
if (!empty($row_modify_info['hscp_no'])) {
// 공동주택
$modifyInfo = [
'hscpNo' => $row_modify_info['hscp_no'],
'ptpNo' => $row_modify_info['ptp_no'],
'bildNm' => $row_modify_info['address2'],
'rmNo' => $row_modify_info['address3'],
'tradeType' => $row_modify_info['trade_type'],
'dealAmt' => $row_modify_info['deal_amt'],
'wrrntAmt' => $row_modify_info['wrrnt_amt'],
'leaseAmt' => $row_modify_info['lease_amt'],
'isaleAmt' => $row_modify_info['isale_amt'],
'premAmt' => $row_modify_info['prem_amt'],
'floor' => $row_modify_info['floor'],
];
} else {
// 비공동주택
$modifyInfo = [
'addressCode' => $row_modify_info['address_code'],
'address2' => $row_modify_info['address2'],
'address3' => $row_modify_info['address3'],
'tradeType' => $row_modify_info['trade_type'],
'dealAmt' => $row_modify_info['deal_amt'],
'wrrntAmt' => $row_modify_info['wrrnt_amt'],
'leaseAmt' => $row_modify_info['lease_amt'],
'splySpc' => $row_modify_info['sply_spc'],
'exclsSpc' => $row_modify_info['excls_spc'],
'totSpc' => $row_modify_info['tot_spc'],
'grndSpc' => $row_modify_info['grnd_spc'],
'bldgSpc' => $row_modify_info['bldg_spc'],
'floor' => $row_modify_info['floor'],
'floor2' => $row_modify_info['floor2'],
];
}
return [
'atclNo' => $atclNo,
'success' => $success,
'checkList' => $checkList,
'charger' => $charger,
'modifyInfo' => $modifyInfo,
'date' => $date,
'try_cnt' => $try_cnt,
];
} else {
return [
'atclNo' => $atclNo,
'success' => $success,
'checkList' => $checkList,
'charger' => $charger,
'date' => $date,
'try_cnt' => $try_cnt,
];
}
}
public function InsResChar($atcl_vr_sq)
{
$usr_id = session('usr_id');
$sql = "UPDATE v2_article_info" .
" SET reg_charger = ?" .
" WHERE vr_sq = ?";
$data = array(
$usr_id,
$atcl_vr_sq
);
$res = $this->db->query($sql, $data);
$log_v = $this->db->getLastQuery();
log_message('debug', $log_v);
}
public function chkRegiTryCnt($atcl_vr_sq)
{
// 1차 검증인지 2차 검증인지 확인.
$builder = $this->db->table('v2_vrfc_req');
$builder->select('reg_try_cnt');
$builder->where('vr_sq', $atcl_vr_sq);
$query = $builder->get();
$last_query = $this->db->getLastQuery();
log_message('debug', $last_query);
return $query->getRowArray();
}
/* 등기부등본 API 호출*/
public function getDatacertAPI($vr_sq, $vrfc_type = '')
{
// 요청정보
$sql = "SELECT vr_sq, atcl_no, step, cpid, cp_atcl_id, trade_type, realtor_nm, realtor_tel_no, seller_tel_no, vrfc_type, rgbk_confirm, req_type, rdate, stat_cd, try_cnt, insert_user, insert_tm, owner_verifiable" .
" FROM v2_vrfc_req WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$row_vrfc_req = $query->getRowArray();
if (!empty($vrfc_type)) {
$row_vrfc_req['vrfc_type'] = $vrfc_type;
}
log_message('debug', $this->db->getLastQuery());
// 매물정보
$sql = "SELECT vr_sq, atcl_no, cpid, cp_atcl_id, rlet_type_cd, trade_type, address_code, address1, address2, address3, sply_spc, excls_spc, tot_spc, grnd_spc, bldg_spc, deal_amt, wrrnt_amt, lease_amt, isale_amt, prem_amt, sise, floor, rdate, seller_tel_no, seller_nm, realtor_nm, realtor_tel_no, hscp_no, hscp_nm, ptp_no, ptp_nm, charger, req_price_yn, reg_charger, dept1_sq, dept2_sq, reg_dept1_sq, reg_dept2_sq, floor2" .
" FROM v2_article_info WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 수정정보
$sql = "SELECT vr_sq, bild_nm, rm_no, floor, address_code, address2, address3, trade_type, deal_amt, wrrnt_amt, lease_amt, isale_amt, prem_amt, sply_spc, excls_spc, tot_spc, grnd_spc, bldg_spc, hscp_no, hscp_nm, ptp_no, ptp_nm, modify_yn, floor2" .
" FROM v2_modify_info WHERE vr_sq = ?";
$query = $this->db->query($sql, [$vr_sq]);
$row_modify_info = $query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 검증결과
$sql = "SELECT vr_sq, vrfc_type, success, type, charger, date, insert_user, insert_tm, update_user, update_tm, work_type" .
" FROM v2_confirm WHERE vr_sq = ? AND vrfc_type = ?";
$query = $this->db->query($sql, [$vr_sq, $row_vrfc_req['vrfc_type']]);
$row_confirm = $query->getRowArray();
log_message('debug', $this->db->getLastQuery());
// 확인정보
$sql = "SELECT a.type, a.code, a.comment, b.ownerNm, b.owner_birth" .
" FROM v2_check_list a " .
" INNER JOIN v2_article_info b ON a.vr_sq = b.vr_sq" .
" WHERE a.vr_sq = ? AND a.vrfc_type = ?";
$query = $this->db->query($sql, [$vr_sq, $row_vrfc_req['vrfc_type']]);
$res_check_list = $query->getResultArray();
log_message('debug', $this->db->getLastQuery());
log_message('debug', implode(', ', $row_confirm));
$atclNo = $row_vrfc_req['atcl_no'];
$type = $row_vrfc_req['try_cnt'];
$success = empty($row_confirm['success']) ? false : true;
$charger = $row_confirm['charger'];
$date = $row_confirm['date'];
$ownerVerifiable = ($row_vrfc_req['owner_verifiable'] === 'false') ? false : true;
$checkList = [];
foreach ($res_check_list as $row) {
$checkList[] = [
'type' => $row['type'],
'code' => $row['code'],
'comment' => $row['comment'],
'ownerNm' => $row['ownerNm'],
'ownerBirth' => $row['owner_birth'],
];
}
$modifyInfo = [];
if ($row_modify_info['modify_yn'] === 'Y') {
if (!empty($row_modify_info['hscp_no'])) {
// 공동주택
$modifyInfo = [
'hscpNo' => $row_modify_info['hscp_no'],
'ptpNo' => $row_modify_info['ptp_no'],
'bildNm' => $row_modify_info['address2'],
'rmNo' => $row_modify_info['address3'],
'tradeType' => $row_modify_info['trade_type'],
'dealAmt' => $row_modify_info['deal_amt'],
'wrrntAmt' => $row_modify_info['wrrnt_amt'],
'leaseAmt' => $row_modify_info['lease_amt'],
'isaleAmt' => $row_modify_info['isale_amt'],
'premAmt' => $row_modify_info['prem_amt'],
'floor' => $row_modify_info['floor'],
];
} else {
// 비공동주택
$modifyInfo = [
'addressCode' => $row_modify_info['address_code'],
'address2' => $row_modify_info['address2'],
'address3' => $row_modify_info['address3'],
'tradeType' => $row_modify_info['trade_type'],
'dealAmt' => $row_modify_info['deal_amt'],
'wrrntAmt' => $row_modify_info['wrrnt_amt'],
'leaseAmt' => $row_modify_info['lease_amt'],
'splySpc' => $row_modify_info['sply_spc'],
'exclsSpc' => $row_modify_info['excls_spc'],
'totSpc' => $row_modify_info['tot_spc'],
'grndSpc' => $row_modify_info['grnd_spc'],
'bldgSpc' => $row_modify_info['bldg_spc'],
'floor' => $row_modify_info['floor'],
'floor2' => $row_modify_info['floor2'],
];
}
return [
'atclNo' => $atclNo,
'type' => $type,
'success' => $success,
'checkList' => $checkList,
'charger' => $charger,
'modifyInfo' => $modifyInfo,
'date' => $date,
'ownerVerifiable' => $ownerVerifiable,
];
} else {
return [
'atclNo' => $atclNo,
'type' => $type,
'success' => $success,
'checkList' => $checkList,
'charger' => $charger,
'date' => $date,
'ownerVerifiable' => $ownerVerifiable,
];
}
}
// 메모저장
public function saveMemo($data)
{
$usr_id = session('usr_id');
$sql = "UPDATE v2_vrfc_req SET
memo = ?
WHERE vr_sq = ?";
if ($this->db->query($sql, $data) === false) {
return [
'success' => false,
'msg' => '파일정보 저장 실패',
];
}
$row = $this->getDetail($data[1]);
$memo = "메모변경 : " . $row['memo'] . " => " . $data[0];
$this->saveChangedHistory($data[1], $row['pre_stat_cd'], 'C19', $usr_id, $memo);
return [
'success' => true
];
}
public function saveApiErr($err_sq, $err_code, $err_nm, $err_time, $err_no, $err_server = '')
{
$sql = "INSERT INTO err_api (err_sq, err_code, err_nm, err_time, err_no, err_server)" .
" VALUES (?, ?, ?, ?, ?, ?);";
$data = array(
$err_sq,
$err_code,
$err_nm,
$err_time,
$err_no,
$err_server
);
$this->db->query($sql, $data);
}
// 정보변경 이력 저장
public function saveChangedHistory($vr_sq, $stat_cd, $chg_type, $usr_id, $memo)
{
$sql = "INSERT INTO v2_chg_history" .
" (vr_sq, stat_cd, chg_type, insert_id, insert_tm, memo)" .
" VALUES" .
" (?, ?, ?, ?, now(), ?)";
$data = [
$vr_sq,
$stat_cd,
$chg_type,
$usr_id,
$memo
];
$res = $this->db->query($sql, $data);
}
// 변경이력 조회
public function getHistory($id)
{