현장확인매물 상세 페이지 기능 수정
This commit is contained in:
@@ -1309,17 +1309,29 @@ class ReceiptModel extends Model
|
||||
// 정보변경이력
|
||||
public function getHistory($id)
|
||||
{
|
||||
$sql = "SELECT rcpt_sq FROM receipt WHERE rcpt_key = ?";
|
||||
$query = $query = $this->db->query($sql, [$id]);
|
||||
$rcpt_sq = $query->getRow()->rcpt_sq;
|
||||
// $id가 숫자면 rcpt_sq로 간주, 아니면 rcpt_key로 간주
|
||||
if (is_numeric($id) && strpos($id, '-') === false) {
|
||||
// 순수 숫자면 rcpt_sq로 직접 사용
|
||||
$rcpt_sq = $id;
|
||||
} else {
|
||||
// rcpt_key로 간주하고 rcpt_sq 조회
|
||||
$sql = "SELECT rcpt_sq FROM receipt WHERE rcpt_key = ?";
|
||||
$query = $this->db->query($sql, [$id]);
|
||||
$row = $query->getRow();
|
||||
if ($row) {
|
||||
$rcpt_sq = $row->rcpt_sq;
|
||||
} else {
|
||||
log_message('warning', "[ReceiptModel::getHistory] rcpt_key '{$id}'에 해당하는 receipt를 찾을 수 없습니다.");
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
$sql = "SELECT seq" .
|
||||
" ,rcpt_sq" .
|
||||
" ,rcpt_stat" .
|
||||
" ,get_code_name('RECEIPT_STATUS3', rcpt_stat) AS rcpt_stat_nm" .
|
||||
" ,rcpt_stat" .
|
||||
" ,get_code_name('CHANGED_TYPE', changed_type) AS changed_type_nm" .
|
||||
" ,changed_type" .
|
||||
" ,get_code_name('CHANGED_TYPE', changed_type) AS changed_type_nm" .
|
||||
" ,changed_id" .
|
||||
" ,remark" .
|
||||
" ,DATE_FORMAT(changed_tm, '%Y.%m.%d %H:%i:%s') as changed_tm" .
|
||||
@@ -1434,12 +1446,14 @@ class ReceiptModel extends Model
|
||||
// 녹취파일정보
|
||||
public function getRecordInfo($rsrv_sq)
|
||||
{
|
||||
$sql = "SELECT record_sq, rsrv_sq, use_yn, record_path, record_filenm, record_orignm, record_size, record_tel, record_nm, record_dt, remark, insert_usr, insert_tm, update_usr, update_tm" .
|
||||
$sql = "SELECT record_sq, rsrv_sq, use_yn, record_path, record_filenm, record_orignm, record_size, record_tel, record_nm, record_dt, remark, insert_usr, DATE_FORMAT(insert_tm, '%Y-%m-%d %H:%i') as insert_tm, update_usr, update_tm" .
|
||||
" FROM result_record" .
|
||||
" WHERE rsrv_sq = ?" .
|
||||
" AND use_yn = 'Y'" .
|
||||
" AND record_sq = (SELECT MAX(record_sq)" .
|
||||
" FROM result_record" .
|
||||
" WHERE rsrv_sq = ?)";
|
||||
" WHERE rsrv_sq = ?" .
|
||||
" AND use_yn = 'Y')";
|
||||
$data = array(
|
||||
$rsrv_sq,
|
||||
$rsrv_sq
|
||||
@@ -1489,7 +1503,11 @@ class ReceiptModel extends Model
|
||||
$this->db->transStart();
|
||||
$usr_id = session('usr_id');
|
||||
|
||||
$sql = "SELECT result_cd3, resYn, dbUsageAgrYn FROM result WHERE rsrv_sq = ?";
|
||||
// 변경 전 데이터와 현재 상태 조회
|
||||
$sql = "SELECT r.result_cd3, r.resYn, r.dbUsageAgrYn, rc.rcpt_stat
|
||||
FROM result r
|
||||
LEFT JOIN receipt rc ON rc.rcpt_sq = r.rcpt_sq
|
||||
WHERE r.rsrv_sq = ?";
|
||||
$data = array($rsrv_sq);
|
||||
$query = $this->db->query($sql, $data);
|
||||
$row = $query->getRowArray();
|
||||
@@ -1508,7 +1526,13 @@ class ReceiptModel extends Model
|
||||
];
|
||||
}
|
||||
|
||||
$this->saveChangedHistory($rcpt_sq, $row['result_cd3'], 'C24', $usr_id, $row['resYn'] . "|" . $row['dbUsageAgrYn']);
|
||||
// 정보변경 이력 저장 (변경 전 → 변경 후)
|
||||
$before = "거주:" . ($row['resYn'] ?? 'N') . ", DB동의:" . ($row['dbUsageAgrYn'] ?? 'N');
|
||||
$after = "거주:" . $resYn . ", DB동의:" . $dbUsageAgrYn;
|
||||
$remark = $before . " => " . $after;
|
||||
$rcpt_stat = $row['rcpt_stat'] ?? $row['result_cd3'] ?? '100000';
|
||||
|
||||
$this->saveChangedHistory($rcpt_sq, $rcpt_stat, 'C36', $usr_id, $remark);
|
||||
|
||||
$this->db->transComplete();
|
||||
|
||||
@@ -1521,6 +1545,12 @@ class ReceiptModel extends Model
|
||||
public function saveGround($rcpt_sq, $ground_plan)
|
||||
{
|
||||
$this->db->transStart();
|
||||
$usr_id = session('usr_id');
|
||||
|
||||
// 변경 전 데이터 조회
|
||||
$sql = "SELECT ground_plan, rcpt_stat FROM receipt WHERE rcpt_sq = ?";
|
||||
$query = $this->db->query($sql, [$rcpt_sq]);
|
||||
$row = $query->getRowArray();
|
||||
|
||||
$sql = "UPDATE receipt" .
|
||||
" SET ground_plan = ?" .
|
||||
@@ -1535,6 +1565,10 @@ class ReceiptModel extends Model
|
||||
];
|
||||
}
|
||||
|
||||
// 정보변경 이력 저장
|
||||
$remark = "평면도요청: " . ($row['ground_plan'] ?? 'N') . " => " . $ground_plan;
|
||||
$this->saveChangedHistory($rcpt_sq, $row['rcpt_stat'], 'C37', $usr_id, $remark);
|
||||
|
||||
$this->db->transComplete();
|
||||
|
||||
return [
|
||||
@@ -1810,11 +1844,48 @@ class ReceiptModel extends Model
|
||||
|
||||
$this->db->transComplete();
|
||||
|
||||
// 저장 후 최신 거주인 정보 반환
|
||||
$record = $this->getRecordInfo($data['rsrv_sq']);
|
||||
|
||||
return [
|
||||
'success' => true,
|
||||
'rec_tel' => $data['rec_tel'],
|
||||
'rec_nm' => $data['rec_nm'],
|
||||
'remark' => $data['rec_remark'],
|
||||
'record' => $record
|
||||
];
|
||||
}
|
||||
|
||||
// 거주인 정보 조회
|
||||
public function getRecInfoByRcptSq($rcpt_sq)
|
||||
{
|
||||
try {
|
||||
// 기존 getDetail 메서드 활용 (이미 최적화된 쿼리)
|
||||
$data = $this->getDetail($rcpt_sq);
|
||||
|
||||
if (empty($data)) {
|
||||
log_message('error', '[ReceiptModel::getRecInfoByRcptSq] Receipt not found for rcpt_sq: ' . $rcpt_sq);
|
||||
return null;
|
||||
}
|
||||
|
||||
// 녹취파일 정보 조회 (기존 getRecordInfo 활용)
|
||||
$record = null;
|
||||
if (!empty($data['rsrv_sq'])) {
|
||||
$record = $this->getRecordInfo($data['rsrv_sq']);
|
||||
}
|
||||
|
||||
return [
|
||||
'rec_tel' => $data['rec_tel'] ?? '',
|
||||
'rec_nm' => $data['rec_nm'] ?? '',
|
||||
'remark' => $data['remark'] ?? '',
|
||||
'record' => $record ?: null
|
||||
];
|
||||
} catch (\Exception $e) {
|
||||
log_message('error', '[ReceiptModel::getRecInfoByRcptSq] Exception: ' . $e->getMessage());
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
// 워터마크 조회
|
||||
public function getWatermarkList($rcpt_cpid)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user