2321 lines
87 KiB
PHP
2321 lines
87 KiB
PHP
<?php
|
|
namespace App\Models\article;
|
|
|
|
use App\Models\common\CodeModel;
|
|
use CodeIgniter\Model;
|
|
|
|
class ReceiptModel extends Model
|
|
{
|
|
// 지역 목록 조회
|
|
public function getAreaList($sido = '', $gugun = '')
|
|
{
|
|
|
|
if (!empty($gugun)) {
|
|
$gugun = substr($gugun, '0', '5');
|
|
|
|
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
|
|
" FROM region_codes a" .
|
|
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,5),'00000')" .
|
|
" WHERE a.region_cd LIKE concat(?, '%')" .
|
|
" AND a.region_cd NOT LIKE '%00000'" .
|
|
" AND a.region_cd LIKE '%00'" .
|
|
" AND a.use_yn = 'Y'" .
|
|
" ORDER BY a.region_nm ASC";
|
|
|
|
$query = $this->db->query($sql, [$gugun]);
|
|
|
|
} else if (!empty($sido)) {
|
|
$chk_sido = substr($sido, '0', '2');
|
|
|
|
if ($chk_sido === '36') {
|
|
$sido = substr($sido, '0', '4');
|
|
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm " .
|
|
"FROM region_codes a " .
|
|
"LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,4),'000000') " .
|
|
"WHERE a.region_cd LIKE concat(?, '%') " .
|
|
"AND a.region_cd NOT LIKE '%000000' " .
|
|
"AND a.region_cd LIKE '%00' " .
|
|
"AND a.use_yn = 'Y' " .
|
|
"AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000')) " .
|
|
"ORDER BY a.region_nm ASC";
|
|
} else {
|
|
$sido = substr($sido, '0', '2');
|
|
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
|
|
" FROM region_codes a" .
|
|
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,2),'00000000')" .
|
|
" WHERE a.region_cd LIKE concat(?, '%')" .
|
|
" AND a.region_cd NOT LIKE '%00000000'" .
|
|
" AND a.region_cd LIKE '%00000'" .
|
|
" AND a.use_yn = 'Y'" .
|
|
" AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000'))" .
|
|
" ORDER BY a.region_nm ASC";
|
|
}
|
|
|
|
$query = $this->db->query($sql, [$sido]);
|
|
} else {
|
|
$sql = "SELECT a.region_cd, a.region_nm " .
|
|
"FROM region_codes a " .
|
|
"WHERE (a.region_cd LIKE '%00000000' " .
|
|
"AND a.use_yn = 'Y') " .
|
|
"OR region_cd = 3611000000;";
|
|
|
|
$query = $this->db->query($sql);
|
|
}
|
|
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
// 소속본부조회
|
|
public function getBonbuList()
|
|
{
|
|
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
|
|
" FROM departments" .
|
|
" WHERE depth = 1" .
|
|
" AND use_yn = 'Y'" .
|
|
" ORDER BY lft";
|
|
|
|
$query = $this->db->query($sql);
|
|
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
// 소속팀 조회
|
|
public function getTeamList()
|
|
{
|
|
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
|
|
" FROM departments" .
|
|
" WHERE depth = 2" .
|
|
" AND use_yn = 'Y'" .
|
|
" ORDER BY dept_nm";
|
|
|
|
$query = $this->db->query($sql);
|
|
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
// 유저 조회
|
|
public function getUserList()
|
|
{
|
|
$sql = "SELECT
|
|
a.usr_sq, a.usr_id, a.usr_nm, a.dept_sq
|
|
FROM users a
|
|
WHERE
|
|
a.usr_level IN ('3','4','40','5','50','6','60','61','62','7','8','70')
|
|
AND a.use_yn = 'Y'
|
|
AND EXISTS (
|
|
SELECT 'x' FROM departments a1 INNER JOIN departments a2 ON a2.lft BETWEEN a1.lft AND a1.rgt AND a2.use_yn = 'Y'
|
|
WHERE 1=1 AND a2.dept_sq = a.dept_sq AND a1.use_yn = 'Y'
|
|
)
|
|
ORDER BY a.usr_level DESC, a.usr_nm ASC ";
|
|
|
|
$query = $this->db->query($sql);
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
/**
|
|
* 부서검색(상세)
|
|
*/
|
|
public function getDeptDetail($dept_sq)
|
|
{
|
|
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
|
|
" FROM departments" .
|
|
" WHERE dept_sq = ?";
|
|
|
|
$data = [$dept_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
return $row;
|
|
}
|
|
|
|
/**
|
|
* 하위 부서 검색
|
|
*/
|
|
public function getChildDept($dept)
|
|
{
|
|
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
|
|
" FROM departments" .
|
|
" WHERE lft >= ?" .
|
|
" AND rgt <= ?" .
|
|
" ORDER BY lft ASC";
|
|
|
|
$data = [$dept['lft'], $dept['rgt']];
|
|
$query = $this->db->query($sql, $data);
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
/**
|
|
* 사용자 상세정보
|
|
*/
|
|
public function getUserDetail($usr_sq)
|
|
{
|
|
$builder = $this->db->table('users a');
|
|
|
|
$builder->select("
|
|
a.usr_sq,
|
|
a.dept_sq,
|
|
a.usr_id,
|
|
a.usr_nm,
|
|
a.usr_level,
|
|
a.usr_tel1,
|
|
a.usr_tel2,
|
|
b.dept_nm
|
|
", false);
|
|
|
|
$builder->join('departments b', 'a.dept_sq = b.dept_sq', 'left');
|
|
$builder->where('a.usr_sq', $usr_sq);
|
|
|
|
return $builder->get()->getRowArray();
|
|
|
|
}
|
|
|
|
public function getTotalCount($data)
|
|
{
|
|
$usr_sq = session('usr_sq');
|
|
$usr_level = session('usr_level');
|
|
$dept_sq = session('dept_sq');
|
|
|
|
$builder = $this->db->table('receipt a');
|
|
|
|
$builder->select("COUNT(*) AS cnt", false);
|
|
|
|
$builder->join('result b', 'b.rcpt_sq = a.rcpt_sq', 'inner');
|
|
$builder->join('region_codes c', 'a.rcpt_dong = c.region_cd', 'inner');
|
|
$builder->join('departments d', 'b.dept_sq = d.dept_sq', 'left');
|
|
$builder->join('users u', 'b.usr_sq = u.usr_sq', 'left');
|
|
$builder->join('result_imgs e', "e.rsrv_sq = b.rsrv_sq AND e.img_type = 'I1' AND e.use_yn = 'Y'", 'left');
|
|
$builder->join('receipt_transimage_log l', 'a.rcpt_key = l.rcpt_key', 'left');
|
|
|
|
|
|
$login_dept_info = $this->getDeptDetail($dept_sq); // 로그인 사용자 소속부서정보
|
|
$child_dept = []; // 하위조직 목록
|
|
if (strcmp($usr_level, '40') == 0) {
|
|
$child = $this->getChildDept($login_dept_info);
|
|
if (!empty($child)) {
|
|
foreach ($child as $child) {
|
|
$child_dept[] = $child['dept_sq'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((int) $usr_level >= 4 && $usr_level != '45') {
|
|
if (!empty($child_dept)) {
|
|
$builder->whereIn('b.dept_sq', $child_dept);
|
|
} else {
|
|
$builder->where('b.usr_sq', $usr_sq);
|
|
}
|
|
}
|
|
|
|
$builder->where('a.rcpt_tm >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH)', null, false);
|
|
$builder->where('b.use_yn', 'Y');
|
|
|
|
if (!empty($data['rcpt_atclno'])) {
|
|
$builder->where('a.rcpt_atclno', $data['rcpt_atclno']);
|
|
} else {
|
|
if ($data['schDateGb'] == '2') {
|
|
$builder->where('a.rcpt_tm >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('a.rcpt_tm <=', $data['edate'] . ' 23:59:59');
|
|
} else {
|
|
$builder->where('b.rsrv_date >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('b.rsrv_date <=', $data['edate'] . ' 23:59:59');
|
|
}
|
|
|
|
// 지역
|
|
if (!empty($data['dong'])) {
|
|
$builder->where('a.rcpt_dong', $data['dong']);
|
|
} else {
|
|
if (!empty($data['gugun'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['gugun'], 0, 5), 'after');
|
|
} else {
|
|
if (!empty($data['sido'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['sido'], 0, 2), 'after');
|
|
}
|
|
}
|
|
}
|
|
|
|
// 관할조직
|
|
if (!empty($data['bonbu'])) {
|
|
$builder->where('d.pdept_sq', $data['bonbu']);
|
|
}
|
|
|
|
if (!empty($data['team'])) {
|
|
$builder->where('d.dept_sq', $data['team']);
|
|
}
|
|
|
|
if (!empty($data['user'])) {
|
|
$builder->where('d.usr_sq', $data['user']);
|
|
}
|
|
|
|
// 거래구분
|
|
if (!empty($data['rcpt_product_info1'])) {
|
|
$builder->where('a.rcpt_product_info1', $data['rcpt_product_info1']);
|
|
}
|
|
|
|
// 현재상태
|
|
if (!empty($data['rcpt_stat1'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat1'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat2'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat2'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat3'])) {
|
|
$builder->where('a.rcpt_stat', $data['rcpt_stat3']);
|
|
}
|
|
|
|
// 중개사명
|
|
if (!empty($data['agent_nm'])) {
|
|
$builder->like('a.agent_nm', $data['agent_nm'], 'both');
|
|
}
|
|
|
|
// 동영상촬영여부
|
|
if (!empty($data['exp_movie_yn'])) {
|
|
$builder->where('a.exp_movie_yn', $data['exp_movie_yn']);
|
|
}
|
|
|
|
// 홍보확인서여부
|
|
if ($data['conf_img_yn'] == 'Y') {
|
|
$builder->where('e.rsrv_sq IS NOT NULL', null, false);
|
|
} else if ($data['conf_img_yn'] == 'N') {
|
|
$builder->where('e.rsrv_sq IS NULL', null, false);
|
|
}
|
|
|
|
// 분양권
|
|
if ($data['parcel_out_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['parcel_out_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// CP ID
|
|
if (!empty($data['rcpt_cpid'])) {
|
|
if (strcmp($data['rcpt_cpid'], 'naver') == 0) {
|
|
$builder->where('a.rcpt_cpid =', '');
|
|
} else if (strcmp($data['rcpt_cpid'], 'cleancente') == 0) {
|
|
$builder->where("a.rcpt_cpid !=", "");
|
|
} else {
|
|
$builder->where('a.rcpt_cpid', $data['rcpt_cpid']);
|
|
}
|
|
}
|
|
|
|
// 매물종류
|
|
if (!empty($data['rcpt_product'])) {
|
|
$builder->where('a.parcel_out_yn', $data['rcpt_product']);
|
|
}
|
|
|
|
// 면적확인
|
|
if ($data['exp_spc_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['exp_spc_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// 체크리스트
|
|
if ($data['check_list_img_yn'] == 'Y') {
|
|
$builder->where('a.check_list_img_yn', 'Y');
|
|
} else if ($data['check_list_img_yn'] == 'N') {
|
|
$builder->where('a.check_list_img_yn', 'N');
|
|
}
|
|
|
|
// 평면도유무
|
|
if ($data['ground_plan_yn'] == 'Y') {
|
|
$builder->where('exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
} else if ($data['ground_plan_yn'] == 'N') {
|
|
$builder->where('not exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
}
|
|
|
|
// 평면도요청
|
|
if (!empty($data['ground_plan'])) {
|
|
$builder->where('a.ground_plan', $data['ground_plan']);
|
|
}
|
|
|
|
// 직거래
|
|
if ($data['direct_trad_yn'] == "Y") {
|
|
$builder->where('a.direct_trad_yn', 'Y');
|
|
} else if ($data['direct_trad_yn'] == "N") {
|
|
$builder->where('a.direct_trad_yn', 'N');
|
|
}
|
|
|
|
// 360촬영여부
|
|
if ($data['image_360_yn'] == "Y") {
|
|
$builder->where('a.image_360_yn', 'Y');
|
|
} else if ($data['image_360_yn'] == "N") {
|
|
$builder->where('a.image_360_yn', 'N');
|
|
}
|
|
|
|
// 검증방식
|
|
if (!empty($data['isSiteVRVerification'])) {
|
|
$builder->where('a.isSiteVRVerification', $data['isSiteVRVerification']);
|
|
}
|
|
|
|
// 프로모션
|
|
if (!empty($data['isPromotionApply'])) {
|
|
$builder->where('a.isPromotionApply', $data['isPromotionApply']);
|
|
}
|
|
|
|
if (!empty($data['srchTxt'])) {
|
|
// 중개사
|
|
if ($data['srchType'] == '1') {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 주소
|
|
} else if ($data['srchType'] == '2') {
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 사업자번호
|
|
} else if ($data['srchType'] == '3') {
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
} else {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// log_message('debug', '[getTotalCount] SQL = ' . $builder->getCompiledSelect());
|
|
|
|
|
|
$row = $builder->get()->getRowArray();
|
|
return (int) ($row['cnt'] ?? 0);
|
|
}
|
|
|
|
|
|
public function getResultList($start, $end, $data)
|
|
{
|
|
$usr_sq = session('usr_sq');
|
|
$usr_level = session('usr_level');
|
|
$dept_sq = session('dept_sq');
|
|
|
|
$builder = $this->db->table('receipt a');
|
|
|
|
$builder->select("
|
|
a.rcpt_sq,
|
|
a.comp_sq,
|
|
a.rcpt_rating,
|
|
a.rcpt_key,
|
|
a.rcpt_atclno,
|
|
a.rcpt_floor,
|
|
a.rcpt_floor2,
|
|
a.rcpt_type,
|
|
a.rcpt_product,
|
|
a.rcpt_product_nm,
|
|
a.rcpt_product_area,
|
|
a.rcpt_product_price,
|
|
a.rcpt_deal_type,
|
|
a.rcpt_product_info1,
|
|
a.rcpt_product_info2,
|
|
a.rcpt_product_info3,
|
|
a.rcpt_product_info4,
|
|
a.rcpt_product_info5,
|
|
a.rcpt_office,
|
|
(CASE WHEN a.rcpt_agent IS NULL THEN 'N' ELSE 'Y' END) AS rcpt_agent,
|
|
a.rcpt_sido,
|
|
a.rcpt_gugun,
|
|
IFNULL(a.rcpt_dong, '') AS rcpt_dong,
|
|
IFNULL(a.rcpt_bunji, '') AS rcpt_bunji,
|
|
IFNULL(a.rcpt_ho, '') AS rcpt_ho,
|
|
a.rcpt_tm,
|
|
a.rcpt_stat,
|
|
a.rcpt_x,
|
|
a.rcpt_y,
|
|
a.rcpt_exps_type,
|
|
a.cust_nm,
|
|
a.cust_tel1,
|
|
a.cust_tel2,
|
|
a.rcpt_hscp_nm,
|
|
a.cust_zip,
|
|
a.cust_addr1,
|
|
a.cust_addr2,
|
|
a.remark,
|
|
a.cupnNo,
|
|
a.rcpt_cpid,
|
|
a.agent_id,
|
|
a.agent_nm,
|
|
a.agent_head,
|
|
a.agent_head_tel,
|
|
a.agent_contact,
|
|
a.agent_contact_tel,
|
|
a.agent_fax,
|
|
DATE_FORMAT(COALESCE(b.rsrv_date, a.rsrv_date), '%Y-%m-%d') AS rsrv_date,
|
|
COALESCE(b.rsrv_tm_ap, a.rsrv_tm_ap) AS rsrv_tm_ap,
|
|
a.insert_usr,
|
|
a.insert_tm,
|
|
a.update_usr,
|
|
a.update_tm,
|
|
a.svc_type1,
|
|
a.svc_type2,
|
|
a.reconf_yn,
|
|
a.agent_tel,
|
|
a.sply_spc,
|
|
a.excls_spc,
|
|
a.room_cnt,
|
|
a.exp_spc_yn,
|
|
a.spc_stat,
|
|
a.parcel_out_yn,
|
|
a.rcpt_hscp_nm,
|
|
b.rsrv_sq,
|
|
b.dept_sq,
|
|
b.usr_sq,
|
|
b.rsrv_tm_hour,
|
|
b.result_cd1,
|
|
b.result_cd2,
|
|
b.result_cd3,
|
|
get_code_name('RECEIPT_STATUS1', b.result_cd1) AS result_cd1_nm,
|
|
get_code_name('RECEIPT_STATUS2', b.result_cd2) AS result_cd2_nm,
|
|
get_code_name('RECEIPT_STATUS3', b.result_cd3) AS result_cd3_nm,
|
|
b.result_msg,
|
|
b.photo_save_dt,
|
|
b.rsrv_delay_dt,
|
|
b.rsrv_cplt_dt,
|
|
b.check_dt,
|
|
b.check_cplt_dt,
|
|
(CASE (SELECT 'x' FROM result_record WHERE rsrv_sq = b.rsrv_sq AND use_yn = 'Y')
|
|
WHEN 'x' THEN 'Y' ELSE 'N' END) AS rec_yn,
|
|
get_code_name('RECEIPT_STATUS1', SUBSTRING(a.rcpt_stat, 1, 2)) AS rcpt_stat_nm,
|
|
c.region_nm AS addr,
|
|
IFNULL(a.rcpt_dtl_addr, '') AS rcpt_dtl_addr,
|
|
IFNULL(a.rcpt_li_addr, '') AS rcpt_li_addr,
|
|
IFNULL(a.rcpt_jibun_addr, '') AS rcpt_jibun_addr,
|
|
IFNULL(a.rcpt_etc_addr, '') AS rcpt_etc_addr,
|
|
d.pdept_sq,
|
|
d.dept_nm,
|
|
b.resYn,
|
|
u.usr_nm,
|
|
a.rcpt_exps_type,
|
|
a.exp_photo_yn,
|
|
a.exp_movie_yn,
|
|
a.ground_plan,
|
|
CASE (SELECT COUNT(1) FROM result_imgs WHERE rsrv_sq = b.rsrv_sq AND img_type = 'I1' AND use_yn = 'Y')
|
|
WHEN 0 THEN 'N' ELSE 'Y' END AS conf_img_yn,
|
|
CASE (SELECT COUNT(1) FROM result_imgs WHERE rsrv_sq = b.rsrv_sq AND img_type = 'I5' AND use_yn = 'Y')
|
|
WHEN 0 THEN 'N' ELSE 'Y' END AS ground_plan_yn,
|
|
a.direct_trad_yn,
|
|
a.sellr_nm,
|
|
a.image_360_yn,
|
|
a.check_list_img_yn,
|
|
l.exposedImageCnt,
|
|
l.transferedImagesCnt,
|
|
a.isSiteVRVerification,
|
|
a.isPromotionApply
|
|
", false);
|
|
|
|
$builder->join('result b', 'b.rcpt_sq = a.rcpt_sq', 'inner');
|
|
$builder->join('region_codes c', 'a.rcpt_dong = c.region_cd', 'inner');
|
|
$builder->join('departments d', 'b.dept_sq = d.dept_sq', 'left');
|
|
$builder->join('users u', 'b.usr_sq = u.usr_sq', 'left');
|
|
$builder->join('result_imgs e', "e.rsrv_sq = b.rsrv_sq AND e.img_type = 'I1' AND e.use_yn = 'Y'", 'left');
|
|
$builder->join('receipt_transimage_log l', 'a.rcpt_key = l.rcpt_key', 'left');
|
|
|
|
|
|
$login_dept_info = $this->getDeptDetail($dept_sq); // 로그인 사용자 소속부서정보
|
|
$child_dept = []; // 하위조직 목록
|
|
if (strcmp($usr_level, '40') == 0) {
|
|
$child = $this->getChildDept($login_dept_info);
|
|
if (!empty($child)) {
|
|
foreach ($child as $child) {
|
|
$child_dept[] = $child['dept_sq'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((int) $usr_level >= 4 && $usr_level != '45') {
|
|
if (!empty($child_dept)) {
|
|
$builder->whereIn('b.dept_sq', $child_dept);
|
|
} else {
|
|
$builder->where('b.usr_sq', $usr_sq);
|
|
}
|
|
}
|
|
|
|
$builder->where('a.rcpt_tm >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH)', null, false);
|
|
$builder->where('b.use_yn', 'Y');
|
|
|
|
if (!empty($data['rcpt_atclno'])) {
|
|
$builder->where('a.rcpt_atclno', $data['rcpt_atclno']);
|
|
} else {
|
|
if ($data['schDateGb'] == '2') {
|
|
$builder->where('a.rcpt_tm >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('a.rcpt_tm <=', $data['edate'] . ' 23:59:59');
|
|
} else {
|
|
$builder->where('b.rsrv_date >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('b.rsrv_date <=', $data['edate'] . ' 23:59:59');
|
|
}
|
|
|
|
// 지역
|
|
if (!empty($data['dong'])) {
|
|
$builder->where('a.rcpt_dong', $data['dong']);
|
|
} else {
|
|
if (!empty($data['gugun'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['gugun'], 0, 5), 'after');
|
|
} else {
|
|
if (!empty($data['sido'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['sido'], 0, 2), 'after');
|
|
}
|
|
}
|
|
}
|
|
|
|
// 관할조직
|
|
if (!empty($data['bonbu'])) {
|
|
$builder->where('d.pdept_sq', $data['bonbu']);
|
|
}
|
|
|
|
if (!empty($data['team'])) {
|
|
$builder->where('d.dept_sq', $data['team']);
|
|
}
|
|
|
|
if (!empty($data['user'])) {
|
|
$builder->where('d.usr_sq', $data['user']);
|
|
}
|
|
|
|
// 거래구분
|
|
if (!empty($data['rcpt_product_info1'])) {
|
|
$builder->where('a.rcpt_product_info1', $data['rcpt_product_info1']);
|
|
}
|
|
|
|
// 현재상태
|
|
if (!empty($data['rcpt_stat1'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat1'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat2'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat2'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat3'])) {
|
|
$builder->where('a.rcpt_stat', $data['rcpt_stat3']);
|
|
}
|
|
|
|
// 중개사명
|
|
if (!empty($data['agent_nm'])) {
|
|
$builder->like('a.agent_nm', $data['agent_nm'], 'both');
|
|
}
|
|
|
|
// 동영상촬영여부
|
|
if (!empty($data['exp_movie_yn'])) {
|
|
$builder->where('a.exp_movie_yn', $data['exp_movie_yn']);
|
|
}
|
|
|
|
// 홍보확인서여부
|
|
if ($data['conf_img_yn'] == 'Y') {
|
|
$builder->where('e.rsrv_sq IS NOT NULL', null, false);
|
|
} else if ($data['conf_img_yn'] == 'N') {
|
|
$builder->where('e.rsrv_sq IS NULL', null, false);
|
|
}
|
|
|
|
// 분양권
|
|
if ($data['parcel_out_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['parcel_out_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// CP ID
|
|
if (!empty($data['rcpt_cpid'])) {
|
|
if (strcmp($data['rcpt_cpid'], 'naver') == 0) {
|
|
$builder->where('a.rcpt_cpid =', '');
|
|
} else if (strcmp($data['rcpt_cpid'], 'cleancente') == 0) {
|
|
$builder->where("a.rcpt_cpid !=", "");
|
|
} else {
|
|
$builder->where('a.rcpt_cpid', $data['rcpt_cpid']);
|
|
}
|
|
}
|
|
|
|
// 매물종류
|
|
if (!empty($data['rcpt_product'])) {
|
|
$builder->where('a.parcel_out_yn', $data['rcpt_product']);
|
|
}
|
|
|
|
// 면적확인
|
|
if ($data['exp_spc_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['exp_spc_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// 체크리스트
|
|
if ($data['check_list_img_yn'] == 'Y') {
|
|
$builder->where('a.check_list_img_yn', 'Y');
|
|
} else if ($data['check_list_img_yn'] == 'N') {
|
|
$builder->where('a.check_list_img_yn', 'N');
|
|
}
|
|
|
|
// 평면도유무
|
|
if ($data['ground_plan_yn'] == 'Y') {
|
|
$builder->where('exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
} else if ($data['ground_plan_yn'] == 'N') {
|
|
$builder->where('not exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
}
|
|
|
|
// 평면도요청
|
|
if (!empty($data['ground_plan'])) {
|
|
$builder->where('a.ground_plan', $data['ground_plan']);
|
|
}
|
|
|
|
// 직거래
|
|
if ($data['direct_trad_yn'] == "Y") {
|
|
$builder->where('a.direct_trad_yn', 'Y');
|
|
} else if ($data['direct_trad_yn'] == "N") {
|
|
$builder->where('a.direct_trad_yn', 'N');
|
|
}
|
|
|
|
// 360촬영여부
|
|
if ($data['image_360_yn'] == "Y") {
|
|
$builder->where('a.image_360_yn', 'Y');
|
|
} else if ($data['image_360_yn'] == "N") {
|
|
$builder->where('a.image_360_yn', 'N');
|
|
}
|
|
|
|
// 검증방식
|
|
if (!empty($data['isSiteVRVerification'])) {
|
|
$builder->where('a.isSiteVRVerification', $data['isSiteVRVerification']);
|
|
}
|
|
|
|
// 프로모션
|
|
if (!empty($data['isPromotionApply'])) {
|
|
$builder->where('a.isPromotionApply', $data['isPromotionApply']);
|
|
}
|
|
|
|
if (!empty($data['srchTxt'])) {
|
|
// 중개사
|
|
if ($data['srchType'] == '1') {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 주소
|
|
} else if ($data['srchType'] == '2') {
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 사업자번호
|
|
} else if ($data['srchType'] == '3') {
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
} else {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$builder->orderBy('a.rcpt_atclno', 'DESC');
|
|
|
|
$builder->limit($end, $start);
|
|
|
|
// log_message('debug', '[getResultList] SQL = ' . $builder->getCompiledSelect());
|
|
|
|
return $builder->get()->getResultArray();
|
|
|
|
}
|
|
|
|
|
|
|
|
// 엑셀다운로드
|
|
public function getExcelList($data)
|
|
{
|
|
$usr_sq = session('usr_sq');
|
|
$usr_level = session('usr_level');
|
|
$dept_sq = session('dept_sq');
|
|
|
|
$builder = $this->db->table('receipt a');
|
|
|
|
$builder->select("
|
|
get_code_name('RECEIPT_STATUS1', b.result_cd1) AS '현재상태',
|
|
CASE WHEN b.result_cd1 = '90' THEN get_code_name('RECEIPT_STATUS2', b.result_cd2) ELSE '' END AS '매물ID',
|
|
CASE WHEN b.result_cd1 = '90' THEN get_code_name('RECEIPT_STATUS3', b.result_cd3) ELSE '' END AS '접수(등록)일자',
|
|
a.rcpt_atclno AS '예약일자',
|
|
a.insert_tm '방문희망시간',
|
|
CONCAT(b.rsrv_date, ' ', b.rsrv_tm_ap) AS '촬영완료일자',
|
|
b.rsrv_tm_hour AS '중개사명',
|
|
b.photo_save_dt AS '대표전화',
|
|
'' AS '담당자전화',
|
|
a.agent_head_tel AS '연락가능전화',
|
|
'' AS '중개사ID',
|
|
a.rcpt_cpid 'CP ID',
|
|
CASE
|
|
WHEN IFNULL(a.rcpt_jibun_addr, '') = '' THEN
|
|
CASE
|
|
WHEN IFNULL(a.rcpt_hscp_nm, '') = '' THEN
|
|
CONCAT(c.region_nm, ' ', a.rcpt_dtl_addr, ' ', a.rcpt_ho)
|
|
ELSE
|
|
CONCAT(c.region_nm, ' ', a.rcpt_hscp_nm, ' ', a.rcpt_dtl_addr, ' ', a.rcpt_ho)
|
|
END
|
|
ELSE
|
|
CASE
|
|
WHEN IFNULL(a.rcpt_li_addr, '') != '' THEN
|
|
CONCAT(c.region_nm, ' ', a.rcpt_li_addr, ' ', a.rcpt_jibun_addr, ' ', a.rcpt_etc_addr)
|
|
ELSE
|
|
CONCAT(c.region_nm, ' ', a.rcpt_jibun_addr, ' ', a.rcpt_etc_addr)
|
|
END
|
|
END AS '주소',
|
|
CONCAT(a.rcpt_floor, '/', a.rcpt_floor2) AS '층',
|
|
a.rcpt_product_nm AS '매물종류',
|
|
a.rcpt_product_info1 AS '거래구분',
|
|
d.dept_nm AS '관할조직(팀)',
|
|
u.usr_nm AS '방문담당',
|
|
a.rcpt_exps_type AS '노출옵션',
|
|
CASE (SELECT COUNT(1) FROM result_imgs WHERE rsrv_sq = b.rsrv_sq AND img_type = 'I1' AND use_yn = 'Y')
|
|
WHEN 0 THEN 'N' ELSE 'Y' END AS '홍보확인서',
|
|
a.exp_movie_yn AS '동영상촬영',
|
|
a.exp_spc_yn AS '면적확인',
|
|
b.resYn AS '거주여부',
|
|
(CASE (SELECT 'x' FROM result_record WHERE rsrv_sq = b.rsrv_sq AND use_yn = 'Y')
|
|
WHEN 'x' THEN 'Y' ELSE 'N' END) AS '녹취여부',
|
|
a.excls_spc AS '전용면적',
|
|
a.sply_spc AS '공급면적',
|
|
a.cupnNo AS '쿠폰번호',
|
|
a.image_360_yn AS '360촬영여부',
|
|
a.rcpt_y AS '경도',
|
|
a.rcpt_y AS '위도',
|
|
a.check_list_img_yn AS '체크리스트',
|
|
l.transferedImagesCnt AS '전달이미지',
|
|
l.exposedImageCnt AS '노출이미지'
|
|
", false);
|
|
|
|
$builder->join('result b', 'b.rcpt_sq = a.rcpt_sq', 'inner');
|
|
$builder->join('region_codes c', 'a.rcpt_dong = c.region_cd', 'inner');
|
|
$builder->join('departments d', 'b.dept_sq = d.dept_sq', 'left');
|
|
$builder->join('users u', 'b.usr_sq = u.usr_sq', 'left');
|
|
$builder->join('result_imgs e', "e.rsrv_sq = b.rsrv_sq AND e.img_type = 'I1' AND e.use_yn = 'Y'", 'left');
|
|
$builder->join('receipt_transimage_log l', 'a.rcpt_key = l.rcpt_key', 'left');
|
|
|
|
|
|
$login_dept_info = $this->getDeptDetail($dept_sq); // 로그인 사용자 소속부서정보
|
|
$child_dept = []; // 하위조직 목록
|
|
if (strcmp($usr_level, '40') == 0) {
|
|
$child = $this->getChildDept($login_dept_info);
|
|
if (!empty($child)) {
|
|
foreach ($child as $child) {
|
|
$child_dept[] = $child['dept_sq'];
|
|
}
|
|
}
|
|
}
|
|
|
|
if ((int) $usr_level >= 4 && $usr_level != '45') {
|
|
if (!empty($child_dept)) {
|
|
$builder->whereIn('b.dept_sq', $child_dept);
|
|
} else {
|
|
$builder->where('b.usr_sq', $usr_sq);
|
|
}
|
|
}
|
|
|
|
$builder->where('a.rcpt_tm >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH)', null, false);
|
|
$builder->where('b.use_yn', 'Y');
|
|
|
|
if (!empty($data['rcpt_atclno'])) {
|
|
$builder->where('a.rcpt_atclno', $data['rcpt_atclno']);
|
|
} else {
|
|
if ($data['schDateGb'] == '2') {
|
|
$builder->where('a.rcpt_tm >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('a.rcpt_tm <=', $data['edate'] . ' 23:59:59');
|
|
} else {
|
|
$builder->where('b.rsrv_date >=', $data['sdate'] . ' 00:00:00');
|
|
$builder->where('b.rsrv_date <=', $data['edate'] . ' 23:59:59');
|
|
}
|
|
|
|
// 지역
|
|
if (!empty($data['dong'])) {
|
|
$builder->where('a.rcpt_dong', $data['dong']);
|
|
} else {
|
|
if (!empty($data['gugun'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['gugun'], 0, 5), 'after');
|
|
} else {
|
|
if (!empty($data['sido'])) {
|
|
$builder->like('a.rcpt_gugun', substr($data['sido'], 0, 2), 'after');
|
|
}
|
|
}
|
|
}
|
|
|
|
// 관할조직
|
|
if (!empty($data['bonbu'])) {
|
|
$builder->where('d.pdept_sq', $data['bonbu']);
|
|
}
|
|
|
|
if (!empty($data['team'])) {
|
|
$builder->where('d.dept_sq', $data['team']);
|
|
}
|
|
|
|
if (!empty($data['user'])) {
|
|
$builder->where('d.usr_sq', $data['user']);
|
|
}
|
|
|
|
// 거래구분
|
|
if (!empty($data['rcpt_product_info1'])) {
|
|
$builder->where('a.rcpt_product_info1', $data['rcpt_product_info1']);
|
|
}
|
|
|
|
// 현재상태
|
|
if (!empty($data['rcpt_stat1'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat1'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat2'])) {
|
|
$builder->like('a.rcpt_stat', $data['rcpt_stat2'], 'after');
|
|
}
|
|
|
|
if (!empty($data['rcpt_stat3'])) {
|
|
$builder->where('a.rcpt_stat', $data['rcpt_stat3']);
|
|
}
|
|
|
|
// 중개사명
|
|
if (!empty($data['agent_nm'])) {
|
|
$builder->like('a.agent_nm', $data['agent_nm'], 'both');
|
|
}
|
|
|
|
// 동영상촬영여부
|
|
if (!empty($data['exp_movie_yn'])) {
|
|
$builder->where('a.exp_movie_yn', $data['exp_movie_yn']);
|
|
}
|
|
|
|
// 홍보확인서여부
|
|
if ($data['conf_img_yn'] == 'Y') {
|
|
$builder->where('e.rsrv_sq IS NOT NULL', null, false);
|
|
} else if ($data['conf_img_yn'] == 'N') {
|
|
$builder->where('e.rsrv_sq IS NULL', null, false);
|
|
}
|
|
|
|
// 분양권
|
|
if ($data['parcel_out_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['parcel_out_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// CP ID
|
|
if (!empty($data['rcpt_cpid'])) {
|
|
if (strcmp($data['rcpt_cpid'], 'naver') == 0) {
|
|
$builder->where('a.rcpt_cpid =', '');
|
|
} else if (strcmp($data['rcpt_cpid'], 'cleancente') == 0) {
|
|
$builder->where("a.rcpt_cpid !=", "");
|
|
} else {
|
|
$builder->where('a.rcpt_cpid', $data['rcpt_cpid']);
|
|
}
|
|
}
|
|
|
|
// 매물종류
|
|
if (!empty($data['rcpt_product'])) {
|
|
$builder->where('a.parcel_out_yn', $data['rcpt_product']);
|
|
}
|
|
|
|
// 면적확인
|
|
if ($data['exp_spc_yn'] == 'Y') {
|
|
$builder->where('a.parcel_out_yn', 'Y');
|
|
} else if ($data['exp_spc_yn'] == 'N') {
|
|
$builder->where('a.parcel_out_yn', 'N');
|
|
}
|
|
|
|
// 체크리스트
|
|
if ($data['check_list_img_yn'] == 'Y') {
|
|
$builder->where('a.check_list_img_yn', 'Y');
|
|
} else if ($data['check_list_img_yn'] == 'N') {
|
|
$builder->where('a.check_list_img_yn', 'N');
|
|
}
|
|
|
|
// 평면도유무
|
|
if ($data['ground_plan_yn'] == 'Y') {
|
|
$builder->where('exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
} else if ($data['ground_plan_yn'] == 'N') {
|
|
$builder->where('not exists (select \'x\' from result_imgs imgs where imgs.rsrv_sq = b.rsrv_sq and imgs.img_type = \'I5\' and imgs.use_yn=\'Y\')', NULL, FALSE);
|
|
}
|
|
|
|
// 평면도요청
|
|
if (!empty($data['ground_plan'])) {
|
|
$builder->where('a.ground_plan', $data['ground_plan']);
|
|
}
|
|
|
|
// 직거래
|
|
if ($data['direct_trad_yn'] == "Y") {
|
|
$builder->where('a.direct_trad_yn', 'Y');
|
|
} else if ($data['direct_trad_yn'] == "N") {
|
|
$builder->where('a.direct_trad_yn', 'N');
|
|
}
|
|
|
|
// 360촬영여부
|
|
if ($data['image_360_yn'] == "Y") {
|
|
$builder->where('a.image_360_yn', 'Y');
|
|
} else if ($data['image_360_yn'] == "N") {
|
|
$builder->where('a.image_360_yn', 'N');
|
|
}
|
|
|
|
// 검증방식
|
|
if (!empty($data['isSiteVRVerification'])) {
|
|
$builder->where('a.isSiteVRVerification', $data['isSiteVRVerification']);
|
|
}
|
|
|
|
// 프로모션
|
|
if (!empty($data['isPromotionApply'])) {
|
|
$builder->where('a.isPromotionApply', $data['isPromotionApply']);
|
|
}
|
|
|
|
if (!empty($data['srchTxt'])) {
|
|
// 중개사
|
|
if ($data['srchType'] == '1') {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 주소
|
|
} else if ($data['srchType'] == '2') {
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
// 사업자번호
|
|
} else if ($data['srchType'] == '3') {
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
} else {
|
|
$builder->groupStart()
|
|
->like('a.agent_nm', $data['srchTxt'])
|
|
->orLike('a.sellr_nm', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->groupStart()
|
|
->like('a.rcpt_dtl_addr', $data['srchTxt'])
|
|
->orLike('a.rcpt_hscp_nm', $data['srchTxt'])
|
|
->orLike('a.rcpt_jibun_addr', $data['srchTxt'])
|
|
->groupEnd();
|
|
|
|
$builder->like('a.image_360_yn', $data['srchTxt'], 'both');
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
$builder->orderBy('a.rcpt_atclno', 'DESC');
|
|
|
|
|
|
// log_message('debug', '[getResultList] SQL = ' . $builder->getCompiledSelect());
|
|
|
|
return $builder->get()->getResultArray();
|
|
}
|
|
|
|
// 상세
|
|
public function getDetail($id)
|
|
{
|
|
|
|
$builder = $this->db->table('receipt a');
|
|
|
|
$builder->select("
|
|
a.rcpt_sq
|
|
,a.comp_sq
|
|
,a.excls_spc
|
|
,a.rcpt_rating
|
|
,a.rcpt_key
|
|
,a.rcpt_atclno
|
|
,a.rcpt_type
|
|
,a.rcpt_product
|
|
,a.rcpt_product_nm
|
|
,a.rcpt_product_area
|
|
,a.rcpt_product_price
|
|
, a.rcpt_deal_type
|
|
,a.rcpt_product_info1
|
|
,a.rcpt_product_info2
|
|
,a.rcpt_product_info3
|
|
,a.rcpt_product_info4
|
|
,a.rcpt_product_info5
|
|
,a.rcpt_office
|
|
,(CASE WHEN a.rcpt_agent IS NULL THEN 'N' ELSE 'Y' END) as rcpt_agent
|
|
,a.rcpt_sido
|
|
,a.rcpt_gugun
|
|
,a.rcpt_dong
|
|
,c.region_nm AS addr
|
|
,a.rcpt_dtl_addr
|
|
,a.rcpt_li_addr
|
|
,a.rcpt_jibun_addr
|
|
,a.rcpt_etc_addr
|
|
,a.rcpt_ref_addr
|
|
,a.rcpt_ho
|
|
,a.rcpt_hscp_nm
|
|
,a.rcpt_floor
|
|
,a.rcpt_floor2
|
|
,a.chg_floor_yn
|
|
,a.rcpt_tm
|
|
,a.rcpt_stat
|
|
,a.rcpt_x
|
|
,a.rcpt_y
|
|
,a.rcpt_living_yn
|
|
,a.cust_nm
|
|
,a.cust_tel1
|
|
,a.cust_tel2
|
|
,a.cust_zip
|
|
,a.cust_addr1
|
|
,a.cust_addr2
|
|
,a.remark rcpt_remark
|
|
, a.rcpt_cpid
|
|
,a.agent_id
|
|
,a.agent_nm
|
|
,a.agent_head
|
|
,a.agent_head_tel
|
|
,a.agent_contact
|
|
,a.agent_contact_tel
|
|
,a.agent_fax
|
|
,a.agent_tel
|
|
,a.excls_spc
|
|
,a.excls_spc1
|
|
,a.excls_spc2
|
|
,a.sply_spc
|
|
,a.share_spc
|
|
,a.share_spc1
|
|
,a.share_spc2
|
|
,a.share_spc3
|
|
,a.share_spc4
|
|
,a.share_spc5
|
|
,a.room_cnt
|
|
,a.tot_spc
|
|
,a.tot_spc1
|
|
,a.tot_spc2
|
|
,a.grnd_spc
|
|
,a.grnd_spc1
|
|
,a.grnd_spc2
|
|
,a.grnd_spc3
|
|
,a.grnd_spc4
|
|
,a.grnd_spc5
|
|
,a.spc_stat
|
|
,a.exp_spc_yn
|
|
,DATE_FORMAT(COALESCE(b.rsrv_date, a.rsrv_date), '%Y-%m-%d') AS rsrv_date
|
|
,COALESCE(b.rsrv_tm_ap, a.rsrv_tm_ap) as rsrv_tm_ap
|
|
,a.insert_usr
|
|
,a.insert_tm
|
|
,a.update_usr
|
|
,a.update_tm
|
|
,a.svc_type1
|
|
,a.svc_type2
|
|
,a.reconf_yn
|
|
,a.cupnNo
|
|
,b.rsrv_sq
|
|
,b.dept_sq
|
|
,b.usr_sq
|
|
,b.req_rec_yn
|
|
,b.rec_yn
|
|
,b.rec_tel
|
|
,b.rec_nm
|
|
,b.remark
|
|
,b.rsrv_tm_hour
|
|
,b.result_cd1
|
|
,get_code_name('RECEIPT_STATUS1', b.result_cd1) AS result_cd1_nm
|
|
,b.result_cd2
|
|
,get_code_name('RECEIPT_STATUS2', b.result_cd2) AS result_cd2_nm
|
|
,b.result_cd3
|
|
,get_code_name('RECEIPT_STATUS3', b.result_cd3) AS result_cd3_nm
|
|
,b.result_msg
|
|
,b.rsrv_save_dt
|
|
,b.photo_save_dt
|
|
,DATE_FORMAT(b.photo_save_dt, '%Y-%m-%d') as photo_save_dt_dt
|
|
,DATE_FORMAT(b.photo_save_dt, '%H:%i:%s') as photo_save_dt_tm
|
|
,b.assign_save_dt
|
|
,b.result_save_dt
|
|
,b.request_msg
|
|
,b.rsrv_delay_dt
|
|
,DATE_FORMAT(b.rsrv_delay_dt, '%Y-%m-%d') as rsrv_delay_dt_dt
|
|
,DATE_FORMAT(b.rsrv_delay_dt, '%H:%i:%s') as rsrv_delay_dt_tm
|
|
,b.rsrv_cplt_dt
|
|
,DATE_FORMAT(b.rsrv_cplt_dt, '%Y-%m-%d') as rsrv_cplt_dt_dt
|
|
,DATE_FORMAT(b.rsrv_cplt_dt, '%H:%i:%s') as rsrv_cplt_dt_tm
|
|
,b.check_dt
|
|
,DATE_FORMAT(b.check_dt, '%Y-%m-%d') as check_dt_dt
|
|
,DATE_FORMAT(b.check_dt, '%H:%i:%s') as check_dt_tm
|
|
,b.check_cplt_dt
|
|
,DATE_FORMAT(b.check_cplt_dt, '%Y-%m-%d') as check_cplt_dt_dt
|
|
,DATE_FORMAT(b.check_cplt_dt, '%H:%i:%s') as check_cplt_dt_tm
|
|
,b.cancel_dt
|
|
,DATE_FORMAT(b.cancel_dt, '%Y-%m-%d') as cancel_dt_dt
|
|
,DATE_FORMAT(b.cancel_dt, '%H:%i:%s') as cancel_dt_tm
|
|
,b.check_delay_dt
|
|
,DATE_FORMAT(b.check_delay_dt, '%Y-%m-%d') as check_delay_dt_dt
|
|
,DATE_FORMAT(b.check_delay_dt, '%H:%i:%s') as check_delay_dt_tm
|
|
,b.check_fail_dt
|
|
,DATE_FORMAT(b.check_fail_dt, '%Y-%m-%d') as check_fail_dt_dt
|
|
,DATE_FORMAT(b.check_fail_dt, '%H:%i:%s') as check_fail_dt_tm
|
|
,get_code_name('RECEIPT_STATUS3', a.rcpt_stat) AS rcpt_stat_nm
|
|
,DATE_FORMAT(a.insert_tm, '%Y년 %m월 %d일') as insert_tm2
|
|
,DATE_FORMAT(a.rsrv_date, '%Y-%m-%d') as rsrv_date2
|
|
,c.dept_sq as region_dept_sq
|
|
,c.usr_sq as region_usr_sq
|
|
,d.pdept_sq
|
|
,d.dept_nm
|
|
,a.rcpt_exps_type
|
|
,a.exp_photo_yn
|
|
,a.exp_movie_yn
|
|
,b.resYn
|
|
,DATE_ADD(a.insert_tm, INTERVAL +3 MONTH) as months
|
|
,b.dbUsageAgrYn
|
|
,a.trade_type
|
|
, a.rcpt_hscp_no
|
|
, a.rcpt_ptp_nm
|
|
, a.rcpt_ptp_no
|
|
, a.modify_yn
|
|
, a.ground_plan
|
|
,a.direct_trad_yn
|
|
,a.sellr_nm
|
|
,a.sellr_tel_no
|
|
,a.virAddr_yn
|
|
,a.isSiteVRVerification
|
|
,a.isPromotionApply
|
|
,DATE_FORMAT(b.vr_check_cplt_dt, '%Y-%m-%d') as vr_check_cplt_dt_dt
|
|
,DATE_FORMAT(b.vr_check_cplt_dt, '%H:%i:%s') as vr_check_cplt_dt_dm
|
|
", false);
|
|
|
|
$builder->join('result b', 'b.rcpt_sq = a.rcpt_sq', 'inner');
|
|
$builder->join('region_codes c', 'a.rcpt_dong = c.region_cd', 'inner');
|
|
$builder->join('departments d', 'b.dept_sq = d.dept_sq', 'left');
|
|
|
|
|
|
$builder->where('a.rcpt_key', $id);
|
|
|
|
return $builder->get()->getRowArray();
|
|
}
|
|
|
|
/**
|
|
* 사용자의 지정일자에 배정된 목록을 가져온다. (시간, 위치만...)
|
|
*/
|
|
public function getAssignReceiptListByUser($rsrv_date, $usr_sq, $arrExcept = [])
|
|
{
|
|
$sql = "SELECT a.rcpt_key, a.rcpt_atclno, a.rcpt_x, a.rcpt_y, b.rsrv_tm_ap, b.rsrv_tm_hour" .
|
|
" FROM receipt a" .
|
|
" INNER JOIN result b ON b.rcpt_sq = a.rcpt_sq AND b.usr_sq = ? AND b.rsrv_date = ?" .
|
|
" WHERE a.rcpt_key not in (?)";
|
|
$except_rcptKey = implode(',', $arrExcept);
|
|
$data = array($usr_sq, $rsrv_date, $except_rcptKey);
|
|
$query = $this->db->query($sql, $data);
|
|
$res = $query->getResultArray();
|
|
|
|
|
|
return $res;
|
|
}
|
|
|
|
public function getDupleGP($rcpt_key, $rcpt_sido, $rcpt_gugun, $rcpt_dong, $rcpt_hscp_nm, $rcpt_dtl_addr, $rcpt_ho)
|
|
{
|
|
$sql = "select rcpt_sq, c.rcpt_key, c.photo_save_dt from" .
|
|
" (select a.rcpt_sq, b.rsrv_sq, a.rcpt_key, b.photo_save_dt " .
|
|
" from receipt a " .
|
|
" LEFT OUTER JOIN result b ON b.rcpt_sq = a.rcpt_sq " .
|
|
" where a.rcpt_sido = ? " .
|
|
" and a.rcpt_gugun = ? " .
|
|
" and a.rcpt_dong = ? " .
|
|
" and a.rcpt_hscp_nm = ? " .
|
|
" and a.rcpt_dtl_addr = ? " .
|
|
" and a.rcpt_ho = ? " .
|
|
" and a.insert_tm >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH) " .
|
|
" and a.rcpt_key != ? " .
|
|
" and b.result_cd3 = 600000) c " .
|
|
" LEFT OUTER JOIN result_imgs d ON c.rsrv_sq = d.rsrv_sq " .
|
|
" where d.img_type = 'I5'";
|
|
|
|
$data = [
|
|
$rcpt_sido,
|
|
$rcpt_gugun,
|
|
$rcpt_dong,
|
|
$rcpt_hscp_nm,
|
|
$rcpt_dtl_addr,
|
|
$rcpt_ho,
|
|
$rcpt_key
|
|
];
|
|
|
|
$res = $this->db->query($sql, $data);
|
|
return $res->getResultArray();
|
|
}
|
|
|
|
public function getDupleGP_na($rcpt_key, $rcpt_sido, $rcpt_gugun, $rcpt_dong, $rcpt_hscp_nm, $rcpt_dtl_addr, $rcpt_li_addr, $rcpt_jibun_addr, $rcpt_etc_addr)
|
|
{
|
|
$sql = "select rcpt_sq, c.rcpt_key, c.photo_save_dt from" .
|
|
" (select a.rcpt_sq, b.rsrv_sq, a.rcpt_key, b.photo_save_dt " .
|
|
" from receipt a " .
|
|
" LEFT OUTER JOIN result b ON b.rcpt_sq = a.rcpt_sq " .
|
|
" where a.rcpt_sido = ? " .
|
|
" and a.rcpt_gugun = ? " .
|
|
" and a.rcpt_dong = ? " .
|
|
" and a.rcpt_hscp_nm = ? " .
|
|
" and a.rcpt_li_addr = ? " .
|
|
" and a.rcpt_jibun_addr = ? " .
|
|
" and a.rcpt_etc_addr = ? " .
|
|
" and a.insert_tm >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH) " .
|
|
" and a.rcpt_key != ? " .
|
|
" and b.result_cd3 = 600000) c " .
|
|
" LEFT OUTER JOIN result_imgs d ON c.rsrv_sq = d.rsrv_sq " .
|
|
" where d.img_type = 'I5'";
|
|
|
|
$data = [
|
|
$rcpt_sido,
|
|
$rcpt_gugun,
|
|
$rcpt_dong,
|
|
$rcpt_hscp_nm,
|
|
isset($rpct_li_addr) ? $rpct_li_addr : '',
|
|
$rcpt_jibun_addr,
|
|
$rcpt_etc_addr,
|
|
$rcpt_key
|
|
];
|
|
|
|
$res = $this->db->query($sql, $data);
|
|
return $res->getResultArray();
|
|
}
|
|
|
|
// 정보변경이력
|
|
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;
|
|
|
|
$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" .
|
|
" ,changed_id" .
|
|
" ,remark" .
|
|
" ,DATE_FORMAT(changed_tm, '%Y.%m.%d %H:%i:%s') as changed_tm" .
|
|
" FROM changed_history" .
|
|
" WHERE rcpt_sq = ?" .
|
|
" ORDER BY changed_tm DESC";
|
|
|
|
$data = [$rcpt_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
public function getAptGround($rcpt_dong)
|
|
{
|
|
|
|
$sql = "SELECT ";
|
|
$sql .= "* ";
|
|
$sql .= "FROM apt_ground ";
|
|
$sql .= "WHERE region_cd = ? ";
|
|
|
|
$data = [$rcpt_dong];
|
|
|
|
$query = $this->db->query($sql, $data);
|
|
|
|
return $query->getResultArray();
|
|
|
|
}
|
|
|
|
// 시간대별통계
|
|
public function getUsrRsrvDateTmCount($id)
|
|
{
|
|
$sql = "SELECT b.usr_sq, b.rsrv_date FROM receipt a INNER JOIN result b ON a.rcpt_sq = b.rcpt_sq WHERE a.rcpt_key = ?";
|
|
$data = [$id];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
if (!empty($row['usr_sq'])) {
|
|
$sql2 = "SELECT usr_sq, rsrv_tm_ap, rsrv_tm_hour, COUNT(rsrv_tm_hour) as cnt" .
|
|
" FROM result" .
|
|
" WHERE rsrv_date = ?" .
|
|
" AND usr_sq = ?" .
|
|
" GROUP BY usr_sq, rsrv_tm_ap, rsrv_tm_hour" .
|
|
" ORDER BY rsrv_tm_ap, rsrv_tm_hour";
|
|
|
|
$data2 = [$row['rsrv_date'], $row['usr_sq']];
|
|
} else {
|
|
$sql2 = "SELECT usr_sq, rsrv_tm_ap, rsrv_tm_hour, COUNT(rsrv_tm_hour) as cnt" .
|
|
" FROM result" .
|
|
" WHERE rsrv_date = ?" .
|
|
" AND usr_sq = (SELECT b.usr_sq FROM receipt a, region_codes b WHERE a.rcpt_dong = b.region_cd AND a.rcpt_key = ?)" .
|
|
" GROUP BY usr_sq, rsrv_tm_ap, rsrv_tm_hour" .
|
|
" ORDER BY rsrv_tm_ap, rsrv_tm_hour";
|
|
|
|
$data2 = [$row['rsrv_date'], $id];
|
|
}
|
|
|
|
$query2 = $this->db->query($sql2, $data2);
|
|
|
|
return $query2->getResultArray();
|
|
}
|
|
|
|
// 체크리스트 결과 조회
|
|
public function getChecklist($rsrv_sq)
|
|
{
|
|
$sql = "select rsrv_sq, elevator_yn, maintenance_fee, elevator_cctv_yn, building_in_cctv_yn, building_ou_cctv_yn, heating_type, security_dept_yn, parking_lot_yn, interphone_yn, building_security_yn, window_direction, living_room_yn, balcony_yn, balcony_ext_yn, restroom_cnt, bath_yn, showerbooth_yn, utility_yn, built_in_chest_yn, airconditioner_yn, shoe_chest_yn, dress_room_yn, gas_stove_yn, refrigerator_yn, sink_yn, washing_machine_yn, insert_usr, insert_tm from result_check where rsrv_sq = ?";
|
|
$data = [$rsrv_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
return $row;
|
|
}
|
|
|
|
public function getImageList2($rsrv_sq)
|
|
{
|
|
$sql = "SELECT * " .
|
|
" FROM result_imgs" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND use_yn = 'Y'" .
|
|
" ORDER BY rsrv_sq, view_odr";
|
|
|
|
$data = [$rsrv_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
public function getImageListByType($rsrv_sq, $img_type)
|
|
{
|
|
$sql = "SELECT * " .
|
|
" FROM result_imgs" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND img_type = ?" .
|
|
" AND use_yn = 'Y'" .
|
|
" ORDER BY view_odr";
|
|
|
|
$data = [$rsrv_sq, $img_type];
|
|
$query = $this->db->query($sql, $data);
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
public function getImageCountByType($rsrv_sq)
|
|
{
|
|
$sql = "SELECT img_type, COUNT(*) img_cnt" .
|
|
" FROM result_imgs" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND use_yn = 'Y'" .
|
|
" GROUP BY img_type";
|
|
$data = [$rsrv_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
return $query->getResultArray();
|
|
}
|
|
|
|
// 녹취파일정보
|
|
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" .
|
|
" FROM result_record" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND record_sq = (SELECT MAX(record_sq)" .
|
|
" FROM result_record" .
|
|
" WHERE rsrv_sq = ?)";
|
|
$data = array(
|
|
$rsrv_sq,
|
|
$rsrv_sq
|
|
);
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
return $row;
|
|
}
|
|
|
|
// 연락처 저장
|
|
public function saveTel($rcpt_sq, $tel)
|
|
{
|
|
$this->db->transStart();
|
|
$usr_id = session('usr_id');
|
|
|
|
$sql = "SELECT rcpt_stat, agent_tel FROM receipt WHERE rcpt_sq = ?";
|
|
$data = [$rcpt_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
$sql = "UPDATE receipt" .
|
|
" SET agent_tel = ?" .
|
|
" WHERE rcpt_sq = ?";
|
|
$data = [$tel, $rcpt_sq];
|
|
|
|
|
|
if ($query = $this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
$this->saveChangedHistory($rcpt_sq, $row['rcpt_stat'], 'C20', $usr_id, $row['agent_tel']);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
// 거주여부 저장
|
|
public function saveResDB($rcpt_sq, $rsrv_sq, $resYn, $dbUsageAgrYn)
|
|
{
|
|
$this->db->transStart();
|
|
$usr_id = session('usr_id');
|
|
|
|
$sql = "SELECT result_cd3, resYn, dbUsageAgrYn FROM result WHERE rsrv_sq = ?";
|
|
$data = array($rsrv_sq);
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
$sql = "UPDATE result" .
|
|
" SET resYn = ?" .
|
|
" ,dbUsageAgrYn = ?" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND rcpt_sq = ?";
|
|
$data = array($resYn, $dbUsageAgrYn, $rsrv_sq, $rcpt_sq);
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
$this->saveChangedHistory($rcpt_sq, $row['result_cd3'], 'C24', $usr_id, $row['resYn'] . "|" . $row['dbUsageAgrYn']);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
// 평면도요청 저장
|
|
public function saveGround($rcpt_sq, $ground_plan)
|
|
{
|
|
$this->db->transStart();
|
|
|
|
$sql = "UPDATE receipt" .
|
|
" SET ground_plan = ?" .
|
|
" WHERE rcpt_sq = ?";
|
|
|
|
$data = [$ground_plan, $rcpt_sq];
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
// 동영상촬영여부 저장
|
|
public function saveRequestMovie($rcpt_sq, $rsrv_sq, $exp_movie_yn)
|
|
{
|
|
$this->db->transStart();
|
|
$usr_id = session('usr_id');
|
|
|
|
$sql = "SELECT a.result_cd3, b.exp_movie_yn FROM result a INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq WHERE rsrv_sq = ?";
|
|
$data = [$rsrv_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
$sql = "UPDATE receipt" .
|
|
" SET exp_movie_yn = ?" .
|
|
" WHERE rcpt_sq = ?";
|
|
$data = [$exp_movie_yn, $rcpt_sq];
|
|
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
$this->saveChangedHistory($rcpt_sq, $row['result_cd3'], 'C24', $usr_id, $row['exp_movie_yn'] . ' => ' . $exp_movie_yn);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
|
|
}
|
|
|
|
// 중개사메모 저장
|
|
public function saveRequestMessage($rcpt_sq, $rsrv_sq, $request_msg)
|
|
{
|
|
$this->db->transStart();
|
|
$usr_id = session('usr_id');
|
|
|
|
if (empty($rsrv_sq)) {
|
|
$sql = "SELECT rsrv_sq FROM result WHERE rcpt_sq = ? ORDER BY rsrv_sq DESC LIMIT 1";
|
|
$data = [$rcpt_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getResultArray();
|
|
|
|
$rsrv_sq = $row['rsrv_sq'];
|
|
}
|
|
|
|
$sql = "SELECT result_cd3, request_msg FROM result WHERE rsrv_sq = ?";
|
|
$data = [$rsrv_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getResultArray();
|
|
|
|
$sql = "UPDATE result" .
|
|
" SET request_msg = ?" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND rcpt_sq = ?";
|
|
$data = [
|
|
'request_msg' => $request_msg,
|
|
'rsrv_sq' => $rsrv_sq,
|
|
'rcpt_sq' => $rcpt_sq
|
|
];
|
|
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
$memo = "메모변경";
|
|
$this->saveChangedHistory($rcpt_sq, $row['result_cd3'], 'C19', $usr_id, $memo);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
|
|
// 문자발송
|
|
public function sendSms($dest_phone, $dest_name, $send_phone, $send_name, $msg_type, $rsrv_sq, $rcpt_sq, $cd, $data)
|
|
{
|
|
$this->db->transStart();
|
|
|
|
$usr_id = session('usr_id');
|
|
|
|
|
|
$sql = "SELECT DATE_FORMAT(NOW(), '%Y%m%d-%H%i%s') as cmid, NOW() as currDttm FROM DUAL";
|
|
$query = $this->db->query($sql);
|
|
$row = $query->getRowArray();
|
|
|
|
$cmid = $row['cmid'];
|
|
$currDate = $row['currDttm'];
|
|
|
|
$category = 'SMS_MSG_TYPE';
|
|
if ($data['comp_sq'] == '2') {
|
|
$category = 'SMS_MSG_TYPE2';
|
|
}
|
|
|
|
$codeModel = new CodeModel();
|
|
$code = $codeModel->getCodeDetail($category, $cd);
|
|
|
|
$subject = $code['category_nm'];
|
|
|
|
if ($cd === "S10") {
|
|
$body = sprintf($code['cd_nm'], $data['rcpt_atclno'], $data['agent_nm'], $data['addr'], $data['rcpt_hscp_nm'], $data['rcpt_dtl_addr'], $data['rcpt_ho']);
|
|
} else {
|
|
$body = $code['cd_nm'];
|
|
}
|
|
|
|
$body = str_replace('#매물번호#', $data['rcpt_atclno'], $code['cd_nm']);
|
|
|
|
$msg_length = strlen(iconv('UTF-8', 'EUCKR', $body));
|
|
if ($msg_length > 80 && $msg_type == 0) {
|
|
$msg_type = 5;
|
|
}
|
|
|
|
$param = [
|
|
//'cmid' => $cmid,
|
|
'dest_phone' => $dest_phone,
|
|
'dest_name' => $dest_name,
|
|
'send_phone' => $send_phone,
|
|
'send_name' => $send_name,
|
|
'subject' => $subject,
|
|
'msg_body' => $body,
|
|
'msg_type' => $msg_type,
|
|
'request_time' => $currDate,
|
|
'send_time' => $currDate,
|
|
'etc1' => $rsrv_sq,
|
|
'etc2' => $cd
|
|
];
|
|
|
|
$this->db->transStart();
|
|
$this->db->table('ums_data')->insert($param);
|
|
$this->db->table('ums_log')->insert($param);
|
|
|
|
$remark = "문자 발송 - " . $subject . "(" . $dest_phone . ")";
|
|
$this->saveChangedHistory($rcpt_sq, $data['rcpt_stat'], 'C8', $usr_id, $remark);
|
|
$this->db->transComplete();
|
|
|
|
if ($this->db->transStatus() === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
} else {
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
}
|
|
|
|
public function saveChangedHistory($rcpt_sq, $rcpt_stat, $changed_type, $usr_id, $remark)
|
|
{
|
|
$sql = "INSERT INTO changed_history" .
|
|
" (rcpt_sq, rcpt_stat, changed_type, changed_id, changed_tm, remark)" .
|
|
" VALUES" .
|
|
" (?, ?, ?, ?, now(), ?)";
|
|
$data = [
|
|
$rcpt_sq,
|
|
$rcpt_stat,
|
|
$changed_type,
|
|
$usr_id,
|
|
$remark
|
|
];
|
|
$res = $this->db->query($sql, $data);
|
|
}
|
|
|
|
|
|
// 거주인정보저장
|
|
public function saveRecInfo($data)
|
|
{
|
|
$usr_id = session('usr_id');
|
|
$usr_sq = session('usr_sq');
|
|
|
|
$this->db->transStart();
|
|
|
|
$detail = $this->getDetail($data['rcpt_key']);
|
|
|
|
!empty($data['file']) ? $rec_yn = "Y" : $rec_yn = "N";
|
|
|
|
$param = [
|
|
$rec_yn,
|
|
$data['rec_tel'],
|
|
$data['rec_nm'],
|
|
$data['rec_remark'],
|
|
$usr_sq,
|
|
$data['rsrv_sq'],
|
|
];
|
|
|
|
$sql = "UPDATE result SET
|
|
rec_yn = ? ";
|
|
if ($rec_yn == "Y") {
|
|
$sql .= ", record_cplt_dt = NOW()";
|
|
}
|
|
$sql .= ", rec_tel = ?
|
|
, rec_nm = ?
|
|
, remark = ?
|
|
, update_tm = NOW()
|
|
, update_usr = ?
|
|
WHERE rsrv_sq = ?
|
|
";
|
|
|
|
if ($this->db->query($sql, $param) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
|
|
if (!empty($data['file'])) {
|
|
$rec_sql = "SELECT * FROM result_record WHERE rsrv_sq = ? AND use_yn = 'Y'";
|
|
$rec_data = array($data['rsrv_sq']);
|
|
$query = $this->db->query($rec_sql, $rec_data);
|
|
$preData = $query->getRowArray();
|
|
|
|
|
|
$f = $data['file'];
|
|
|
|
$sql = "INSERT INTO result_record
|
|
(rsrv_sq, use_yn, record_path, record_filenm, record_orignm, record_size, record_tel, record_nm, record_dt, remark, insert_usr, insert_tm, cloud_upload_yn)
|
|
VALUES
|
|
(?, 'Y', ?, ?, ?, ?, ?, ?, NOW(), ?, ?, NOW(), 'Y')
|
|
";
|
|
$param = [
|
|
$data['rsrv_sq'],
|
|
$f['upload_path'],
|
|
$f['file_name'],
|
|
$f['origin_name'],
|
|
$f['size'],
|
|
$data['rec_tel'],
|
|
$data['rec_nm'],
|
|
$data['rec_remark'],
|
|
$usr_sq
|
|
];
|
|
|
|
$this->db->query($sql, $param);
|
|
|
|
// 이전 데이터 미사용 처리
|
|
if (!empty($preData)) {
|
|
$rec_sql = "UPDATE result_record SET use_yn = 'N' WHERE record_sq = ? AND rsrv_sq = ?";
|
|
$this->db->query($rec_sql, [$preData['record_sq'], $data['rsrv_sq']]);
|
|
|
|
$remark = "녹취파일 업로드 - " . $preData['record_nm'] . "(" . $preData['record_tel'] . ") -> " . $data['rec_nm'] . "(" . $data['rec_tel'] . ")";
|
|
} else {
|
|
$remark = "녹취파일 업로드 - " . $data['rec_nm'] . "(" . $data['rec_tel'] . ")";
|
|
}
|
|
|
|
$this->saveChangedHistory($data['rcpt_sq'], $detail['rcpt_stat'], 'C15', $usr_id, $remark);
|
|
|
|
}
|
|
|
|
if (!empty($detail['rec_tel'])) {
|
|
$remark = "거주인정보변경 - " . $detail['rec_nm'] . "(" . $detail['rec_tel'] . ") -> " . $data['rec_nm'] . "(" . $data['rec_tel'] . ")";
|
|
} else {
|
|
$remark = "거주인정보변경 - " . $data['rec_nm'] . "(" . $data['rec_tel'] . ")";
|
|
}
|
|
|
|
$this->saveChangedHistory($data['rcpt_sq'], $detail['rcpt_stat'], 'C15', $usr_id, $remark);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
// 워터마크 조회
|
|
public function getWatermarkList($rcpt_cpid)
|
|
{
|
|
$builder = $this->db->table('watermark');
|
|
|
|
$builder->select('cpid, wm_type, wm_img_path, wm_img_height, wm_img_width, wm_position, wm_img_opacity, wm_space, text_font, text_color, text_opacity, text_size, text_pixel, img_width_min, img_width_max');
|
|
|
|
$builder->where('cpid', $rcpt_cpid);
|
|
|
|
|
|
$row = $builder->get()->getResultArray();
|
|
return $row;
|
|
}
|
|
|
|
// 업로드정보 저장
|
|
public function saveImg($param)
|
|
{
|
|
$this->db->transStart();
|
|
|
|
$usr_id = session('usr_id');
|
|
$usr_sq = session('usr_sq');
|
|
|
|
$receipt = $param['receipt'];
|
|
|
|
$cloud_upload_yn = 'Y';
|
|
|
|
if ($param['img_type'] == 'I6' || $param['img_type'] == 'I7') {
|
|
$yn_sql = "update receipt " .
|
|
" set exp_spc_yn = 'Y' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$param['rcpt_sq']];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($param['img_type'] == 'I8') {
|
|
$yn_sql = "update receipt " .
|
|
" set exp_spc_yn = 'Y' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$param['rcpt_sq']];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($param['img_type'] == 'I9') {
|
|
$yn_sql = "update receipt " .
|
|
" set image_360_yn = 'Y' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$param['rcpt_sq']];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($param['img_type'] == 'I11') {
|
|
$yn_sql = "update receipt " .
|
|
" set check_list_img_yn = 'Y' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$param['rcpt_sq']];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
}
|
|
|
|
//한장의 사진만 업로드하는것들은 UPDATE -> INSERT
|
|
$img_list = ['I1', 'I2', 'I5', 'I6', 'I7', 'V1', 'I10', 'I11'];
|
|
|
|
// 주소가 rcpt_jibun_addr 있을때는 그 주소로
|
|
$addr_nm = $receipt['addr'];
|
|
if ($receipt['rcpt_jibun_addr']) {
|
|
$img_hannm = '컨펌스_' . $addr_nm . ' ' . $receipt['rcpt_jibun_addr'] . ' ' . $receipt['rcpt_etc_addr'] . '_' . $receipt['excls_spc'] . '.jpeg';
|
|
} else {
|
|
$img_hannm = '컨펌스_' . $addr_nm . ' ' . $receipt['rcpt_dtl_addr'] . ' ' . $receipt['rcpt_ho'] . '_' . $receipt['excls_spc'] . '.jpeg';
|
|
}
|
|
|
|
if (in_array($param['img_type'], $img_list)) {
|
|
//업데이트할게없어도 에러가 안난다 단지 row(s)affected 가 0 일뿐
|
|
$sql = "UPDATE result_imgs" .
|
|
" SET use_yn = 'N'" .
|
|
" WHERE rsrv_sq = ?" .
|
|
" AND img_type = ?" .
|
|
" AND use_yn = 'Y'";
|
|
$data = [$param['rsrv_sq'], $param['img_type']];
|
|
$this->db->query($sql, $data);
|
|
|
|
//새로운 이미지 생성
|
|
$sql = "INSERT INTO result_imgs(rsrv_sq, use_yn, img_type, view_odr, img_path, img_filenm, img_nm, img_size, img_width, img_height, insert_usr, insert_tm, meta_data, img_hannm , cloud_upload_yn )" .
|
|
"VALUES (?, 'Y', ?, 1, ?, ?, ?, ?, ?, ?, ?, NOW(), ?,? , ?)";
|
|
$data = [
|
|
$param['rsrv_sq'],
|
|
$param['img_type'],
|
|
$param['upload_path'],
|
|
$param['file_name'],
|
|
$param['origin_name'],
|
|
$param['size'],
|
|
$param['width'],
|
|
$param['height'],
|
|
$usr_sq,
|
|
isset($param['meta_data']) ? $param['meta_data'] : null,
|
|
$img_hannm,
|
|
$cloud_upload_yn
|
|
];
|
|
$res = $this->db->query($sql, $data);
|
|
} else {
|
|
$odr_sql = "SELECT COALESCE(MAX(view_odr), 0) + 1 as seq FROM result_imgs WHERE rsrv_sq = ? AND img_type = ? AND use_yn = 'Y'";
|
|
$odr_data = array($param['rsrv_sq'], $param['img_type']);
|
|
$query = $this->db->query($odr_sql, $odr_data);
|
|
$row = $query->getRowArray();
|
|
$view_odr = $row['seq'];
|
|
|
|
$sql = "INSERT INTO result_imgs(rsrv_sq, use_yn, img_type, view_odr, img_path, img_filenm, img_nm, img_size, img_width, img_height, insert_usr, insert_tm, meta_data, img_hannm , cloud_upload_yn )" .
|
|
"VALUES (?, 'Y', ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?,?, ?)";
|
|
|
|
$data = [
|
|
$param['rsrv_sq'],
|
|
$param['img_type'],
|
|
$view_odr,
|
|
$param['upload_path'],
|
|
$param['file_name'],
|
|
$param['origin_name'],
|
|
$param['size'],
|
|
$param['width'],
|
|
$param['height'],
|
|
$usr_sq,
|
|
isset($param['meta_data']) ? $param['meta_data'] : null,
|
|
$img_hannm,
|
|
$cloud_upload_yn
|
|
];
|
|
$res = $this->db->query($sql, $data);
|
|
}
|
|
|
|
if ($res) {
|
|
switch ($param['img_type']) {
|
|
case 'I1':
|
|
$remark = "홍보확인서 사진 업로드";
|
|
break;
|
|
case 'I2':
|
|
$remark = "현장확인 내역서 사진 업로드";
|
|
break;
|
|
case 'I3':
|
|
$remark = "건물외관 사진 업르도";
|
|
break;
|
|
case 'I4':
|
|
$remark = "매물사진 업로드";
|
|
break;
|
|
case 'I5':
|
|
$remark = "평면도 업로드";
|
|
break;
|
|
case 'I6':
|
|
$remark = "전용면적 파일 업로드";
|
|
break;
|
|
case 'I7':
|
|
$remark = "공용면적 파일 업로드";
|
|
break;
|
|
case 'I8':
|
|
$remark = "분양권 파일 업로드";
|
|
break;
|
|
case 'I9':
|
|
$remark = "360이미지 업로드";
|
|
break;
|
|
case 'I10':
|
|
$remark = "촬영동의서 사진 업로드";
|
|
break;
|
|
case 'I11':
|
|
$remark = "체크리스트 사진 업로드";
|
|
break;
|
|
case 'V1':
|
|
$remark = "동영상 업로드";
|
|
break;
|
|
}
|
|
|
|
|
|
$this->saveChangedHistory($param['rcpt_sq'], $receipt['rcpt_stat'], 'C16', $usr_id, $remark);
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
} else {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
}
|
|
|
|
}
|
|
|
|
// 파일정보조회
|
|
public function getUploadFileInfo($img_sq)
|
|
{
|
|
$sql = "SELECT * FROM result_imgs WHERE img_sq = ?";
|
|
|
|
$query = $this->db->query($sql, [$img_sq]);
|
|
$row = $query->getRowArray();
|
|
|
|
return $row;
|
|
|
|
}
|
|
|
|
// 업로드파일 삭제
|
|
public function removeUploadFile($rcpt_sq, $img_sq)
|
|
{
|
|
$this->db->transStart();
|
|
|
|
$usr_id = session('usr_id');
|
|
|
|
// 이미지정보 조회
|
|
$row = $this->getUploadFileInfo($img_sq);
|
|
|
|
if (!empty($row)) {
|
|
|
|
if ($row['img_type'] == 'I6' || $row['img_type'] == 'I7') {
|
|
$yn_sql = "update receipt " .
|
|
" set exp_spc_yn = 'N' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$rcpt_sq];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($row['img_type'] == 'I8') {
|
|
$yn_sql = "UPDATE receipt" .
|
|
" SET parcel_out_yn = CASE (SELECT COUNT('x')" .
|
|
" FROM result_imgs " .
|
|
" WHERE rsrv_sq = (SELECT rsrv_sq FROM result_imgs WHERE img_sq = ? AND img_type = 'I8')" .
|
|
" AND use_yn = 'Y'" .
|
|
" AND img_type = 'I8') WHEN 0 THEN 'N' ELSE 'Y' END" .
|
|
" WHERE rcpt_sq = ? ";
|
|
$yn_data = [$rcpt_sq];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($row['img_type'] == 'I9') {
|
|
$yn_sql = "UPDATE receipt" .
|
|
" SET image_360_yn = (" .
|
|
" CASE (SELECT COUNT(1)" .
|
|
" FROM result_imgs" .
|
|
" WHERE rsrv_sq = (SELECT rsrv_sq FROM result_imgs WHERE img_sq = ? AND img_type = 'I9')" .
|
|
" AND img_type = 'I9' AND use_yn = 'Y')" .
|
|
" WHEN 0 THEN 'N'" .
|
|
" ELSE 'Y'" .
|
|
" END" .
|
|
" )" .
|
|
" WHERE rcpt_sq = ?";
|
|
$yn_data = [$rcpt_sq];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
} else if ($row['img_type'] == 'I11') {
|
|
$yn_sql = "update receipt " .
|
|
" set check_list_img_yn = 'N' " .
|
|
" where rcpt_sq = ? ";
|
|
$yn_data = [$rcpt_sq];
|
|
$this->db->query($yn_sql, $yn_data);
|
|
|
|
}
|
|
|
|
|
|
//삭제이미지보다 순번이 높은거는 순번 업데이트
|
|
$sql = "UPDATE result_imgs SET view_odr = view_odr - 1 WHERE rsrv_sq = ? AND img_type = ? AND view_odr > ? AND use_yn = 'Y'";
|
|
$data = [$row['rsrv_sq'], $row['img_type'], $row['view_odr']];
|
|
|
|
$this->db->query($sql, $data);
|
|
|
|
|
|
//이미지 삭제
|
|
$sql = "DELETE FROM result_imgs WHERE img_sq = ?";
|
|
$data = [$img_sq];
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '삭제실패',
|
|
];
|
|
}
|
|
|
|
|
|
if (in_array($row['img_type'], ['I1', 'I2', 'I8', 'I10', 'I11'])) {
|
|
$remark = "";
|
|
switch ($row['img_type']) {
|
|
case 'I1':
|
|
$remark = "홍보확인서 사진 삭제";
|
|
break;
|
|
case 'I2':
|
|
$remark = "현장확인 내역서 사진 삭제";
|
|
break;
|
|
case 'I8':
|
|
$remark = "분양권 파일 삭제";
|
|
break;
|
|
case 'I10':
|
|
$remark = "촬영동의서 사진 삭제";
|
|
break;
|
|
case 'I11':
|
|
$remark = "체크리스트 사진 삭제";
|
|
break;
|
|
}
|
|
|
|
// 상태값을 가져오기위한 쿼리 해오기
|
|
$sql = "SELECT rcpt_stat FROM receipt WHERE rcpt_sq = ?";
|
|
$data = [$rcpt_sq];
|
|
$query = $this->db->query($sql, $data);
|
|
$row = $query->getRowArray();
|
|
|
|
$this->saveChangedHistory($rcpt_sq, $row['rcpt_stat'], 'C31', $usr_id, $remark);
|
|
}
|
|
|
|
$this->db->transComplete();
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
|
|
|
|
}
|
|
}
|
|
|
|
// 촬영위치 저장
|
|
public function saveImgLocation($img_sq, $rsrv_sq, $location)
|
|
{
|
|
$sql = "UPDATE result_imgs" .
|
|
" SET img_location = ?" .
|
|
" WHERE img_sq = ?" .
|
|
" AND rsrv_sq = ?";
|
|
|
|
$data = [$location, $img_sq, $rsrv_sq];
|
|
|
|
if ($this->db->query($sql, $data) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
} else {
|
|
return [
|
|
'success' => true,
|
|
];
|
|
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 배정자 등록
|
|
*/
|
|
public function assignRegist($rcpt_sq, $rsrv_date, $rsrv_tm_ap, $rsrv_tm_hour, $dept_sq, $usr_sq, $receipt)
|
|
{
|
|
// 세션정보
|
|
$usr_id = session('usr_id');
|
|
$reg_usr_sq = session('usr_sq');
|
|
|
|
$this->db->transStart();
|
|
|
|
// 변경전 기존 데이터 가져오기
|
|
$org_sql = "SELECT * FROM result WHERE rcpt_sq = ?";
|
|
$query = $this->db->query($org_sql, [$rcpt_sq]);
|
|
$row = $query->getRowArray();
|
|
|
|
// 예약확인
|
|
$sql1 = "UPDATE result" .
|
|
" SET rsrv_date = ?" .
|
|
" ,rsrv_tm_ap = ?" .
|
|
" ,rsrv_tm_hour = ?" .
|
|
" ,rsrv_save_dt = now()" .
|
|
" ,update_tm = now()" .
|
|
" ,update_usr = ?" .
|
|
" WHERE rcpt_sq = ?";
|
|
|
|
$data1 = [
|
|
$rsrv_date,
|
|
$rsrv_tm_ap,
|
|
$rsrv_tm_hour,
|
|
$reg_usr_sq,
|
|
$rcpt_sq
|
|
];
|
|
|
|
if ($this->db->query($sql1, $data1) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장 실패',
|
|
];
|
|
}
|
|
|
|
// 배정
|
|
$sql2 = "UPDATE result" .
|
|
" SET dept_sq = ?" .
|
|
" ,usr_sq = ?" .
|
|
" ,result_cd1 = 20" .
|
|
" ,result_cd2 = 2000" .
|
|
" ,result_cd3 = 200000" .
|
|
" ,update_usr = ?" .
|
|
" ,update_tm = now()" .
|
|
" ,assign_save_dt = now()" .
|
|
" ,rsrv_cplt_dt = now()" .
|
|
" WHERE rcpt_sq = ?";
|
|
|
|
$data2 = [
|
|
$dept_sq,
|
|
$usr_sq,
|
|
$reg_usr_sq,
|
|
$rcpt_sq
|
|
];
|
|
|
|
if ($this->db->query($sql2, $data2) === false) {
|
|
return [
|
|
'success' => false,
|
|
'msg' => '저장 실패',
|
|
];
|
|
}
|
|
|
|
// 매물상태 변경
|
|
$rcpt_sql = "UPDATE receipt" .
|
|
" SET rcpt_stat = 200000" .
|
|
" WHERE rcpt_sq = ?";
|
|
$this->db->query($rcpt_sql, [$rcpt_sq]);
|
|
|
|
// 정보변경이력 저장
|
|
if (!empty($row)) {
|
|
$remark = "{$row['rsrv_date']} {$row['rsrv_tm_ap']} {$row['rsrv_tm_hour']}시 -> {$rsrv_date} {$rsrv_tm_ap} {$rsrv_tm_hour}시";
|
|
} else {
|
|
$remark = "{$receipt['rsrv_date']} {$receipt['rsrv_tm_ap']} -> {$rsrv_date} {$rsrv_tm_hour}";
|
|
}
|
|
|
|
$this->saveChangedHistory($rcpt_sq, '200000', 'C11', $usr_id, $remark);
|
|
|
|
$this->db->transComplete();
|
|
|
|
|
|
return [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
|
|
/**
|
|
* 취소
|
|
*/
|
|
public function rsrvcancel($rcpt_sq, $rsrv_sq, $result_cd2, $result_cd3, $result_msg, $receipt)
|
|
{
|
|
// 세션정보
|
|
$usr_id = session('usr_id');
|
|
$usr_sq = session('usr_sq');
|
|
$usr_nm = session('usr_nm');
|
|
|
|
// 변경전 기존 데이터 가져오기
|
|
$org_sql = "SELECT * FROM result WHERE rcpt_sq = ?";
|
|
$query = $this->db->query($org_sql, [$rcpt_sq]);
|
|
$row = $query->getRowArray();
|
|
|
|
$this->db->transStart();
|
|
|
|
if ($result_cd2 == "9050") {
|
|
$sql = "UPDATE result" .
|
|
" SET result_cd1 = '90'" .
|
|
" ,result_cd2 = ?" .
|
|
" ,result_cd3 = ?" .
|
|
" ,result_msg = ?" .
|
|
" ,check_fail_dt = now()" .
|
|
" ,update_usr = ?" .
|
|
" ,update_tm = now()" .
|
|
" WHERE rsrv_sq = ?";
|
|
} else {
|
|
$sql = "UPDATE result" .
|
|
" SET result_cd1 = '90'" .
|
|
" ,result_cd2 = ?" .
|
|
" ,result_cd3 = ?" .
|
|
" ,result_msg = ?" .
|
|
" ,cancel_dt = now()" .
|
|
" ,update_usr = ?" .
|
|
" ,update_tm = now()" .
|
|
" WHERE rsrv_sq = ?";
|
|
}
|
|
|
|
$data = [
|
|
$result_cd2,
|
|
$result_cd3,
|
|
$result_msg,
|
|
$usr_sq,
|
|
$rsrv_sq
|
|
];
|
|
|
|
$res = $this->db->query($sql, $data);
|
|
|
|
if (!$res) {
|
|
$return = [
|
|
'success' => false,
|
|
'msg' => '저장실패',
|
|
];
|
|
} else {
|
|
// 매물상태 변경
|
|
$rcpt_sql = "UPDATE receipt" .
|
|
" SET rcpt_stat = ?" .
|
|
" WHERE rcpt_sq = ?";
|
|
$rcpt_data = [$result_cd3, $rcpt_sq];
|
|
$this->db->query($rcpt_sql, $rcpt_data);
|
|
|
|
// 정보변경이력 저장
|
|
if (!empty($row['result_msg'])) {
|
|
$remark = $row['result_msg'] . " -> " . $result_msg;
|
|
} else {
|
|
$remark = $result_msg;
|
|
}
|
|
$this->saveChangedHistory($rcpt_sq, $result_cd3, 'C5', $usr_id, $remark);
|
|
|
|
// 문자발송
|
|
if ($result_cd2 == "9010" || $result_cd2 == "9020") {
|
|
// 접수취소, 예약취소
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S2', $receipt);
|
|
} else if ($result_cd2 == "9030") {
|
|
// 방문전 취소
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S4', $receipt);
|
|
} else if ($result_cd2 == "9040") {
|
|
// 방문후 취소
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S5', $receipt);
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S5-1', $receipt);
|
|
} else if ($result_cd2 == "9045") {
|
|
// 촬영후 취소
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S6', $receipt);
|
|
}
|
|
|
|
if ($result_cd3 == "905010") {
|
|
// 거주인녹취실패 취소(검수실패)
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S9', $receipt);
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S9-1', $receipt);
|
|
} else if ($result_cd3 == "905020") {
|
|
// 홍보확인서 미수취 취소(검수실패)
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S11', $receipt);
|
|
$this->sendSms($receipt['agent_head_tel'], $receipt['agent_nm'], '1600-5749', $usr_nm, 0, $rsrv_sq, $rcpt_sq, 'S11-1', $receipt);
|
|
}
|
|
|
|
$return = [
|
|
'success' => true,
|
|
];
|
|
}
|
|
|
|
$this->db->transComplete();
|
|
|
|
return $return;
|
|
}
|
|
} |