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 getTotalCount($data) { $sql = "SELECT COUNT(*) AS cnt FROM v2_article_info a LEFT JOIN v2_article_info_etc b ON a.vr_sq = b.vr_sq LEFT JOIN v2_vrfc_req c ON a.vr_sq = c.vr_sq LEFT JOIN v2_modify_info m ON a.vr_sq = m.vr_sq LEFT JOIN v2_chg_stat s45 ON a.vr_sq = s45.vr_sq AND s45.stat_cd = '45' LEFT JOIN v2_chg_stat s49 ON a.vr_sq = s49.vr_sq AND s49.stat_cd = '49' LEFT JOIN v2_chg_stat s60 ON a.vr_sq = s60.vr_sq AND s60.stat_cd = '60' LEFT JOIN v2_chg_stat s39 ON a.vr_sq = s39.vr_sq AND s39.stat_cd = '39' LEFT JOIN v2_check_list c21 ON a.vr_sq = c21.vr_sq AND c21.type = '21' LEFT JOIN v2_check_list c22 ON a.vr_sq = c22.vr_sq AND c22.type = '22' WHERE c.vrfc_type = 'N' "; // 매물번호 if (!empty($data['atcl_no'])) { $sql .= "AND a.atcl = '{$data['atcl_no']}' "; } else { // 접수기간 if (!empty($data['receipt_sdate'])) { $sql .= "AND c.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; } if (!empty($data['receipt_edate'])) { $sql .= "AND c.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; } // 완료기간 if (!empty($data['complete_sdate'])) { $sql .= "AND s60.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; } if (!empty($data['complete_edate'])) { $sql .= "AND s60.insert_tm <= '{$data['complete_edate']} 23:59:59' "; } // 지역구분 if (!empty($data['srcDong'])) { $sql .= "AND a.address_code = '{$data['srcDong']}' "; } else { if (!empty($data['srcGugun'])) { $str_gugun = substr($data['srcGugun'], '0', '2'); if ($str_gugun == '36') { //세종시는 군구가 없고 바로 동이라서 예외 $sql .= "AND a.address_code = '{$data['srcGugun']}' "; } else { $gugunPrefix = substr($data['srcGugun'], '0', '5'); $sql .= "AND a.address_code LIKE '{$gugunPrefix}%' "; } } else { if (!empty($data['srcSido'])) { $sidoPrefix = substr($data['srcSido'], '0', '2'); $sql .= "AND a.address_code LIKE '{$sidoPrefix}%' "; } } } // 매체사 if (!empty($data['rcpt_cpid'])) { $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; } // 참고파일 if (!empty($data['reference_file_url_yn'])) { $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; } // 현재상태 if (!empty($data['stat_cd'])) { $sql .= "AND c.stat_cd = '{$data['stat_cd']}' "; } // 중개소 if (!empty($data['realtor_nm'])) { $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; } // 담당자 if (!empty($data['damdang'])) { switch ($data['charger_gbn']) { case "1": $sql .= "a.charger = '{$data['damdang']}' "; break; case "2": $sql .= "a.reg_charger = '{$data['damdang']}' "; break; } } else { // 배정여부 if ($data['assign_yn'] !== "A") { switch ($data['charger_gbn'] . $data['assign_yn']) { case "1Y": // 전화/서류 담당자 $sql .= "a.charger != '' "; break; case "1N": // 전화/서류 담당자 $sql .= "a.charger = '' "; break; case "2Y": // 등기부등본 담당자 $sql .= "a.reg_charger != '' "; break; case "2N": // 등기부등본 담당자 $sql .= "a.reg_charger IS NULL "; break; } } } // 매물종류 if (!empty($data['rlet_type_cd'])) { $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; } // 소유자구분 if (!empty($data['ownerTypeCode'])) { $sql .= "AND b.ownerTypeCode = '{$data['ownerTypeCode']}' "; } // 서류미수취 if (!empty($data['document_not_received_yn'])) { $sql .= "AND b.document_not_received_yn = '{$data['document_not_received_yn']}' "; } } $query = $this->db->query($sql); return $query->getRow()->cnt; } public function getResultList($start, $end, $data) { $sql = "SELECT a.vr_sq, a.atcl_no, (SELECT cd_nm FROM codes d WHERE d.cd = c.stat_cd AND d.category = 'STEP_VERIFICATION' ) AS pre_stat , c.insert_tm, ( case b.ownerTypeCode when '0' then '개인' when '1' then '법인' when '2' then '외국인' when '3' then '위임장' ELSE '' END ) AS ownerTypeCodeNm, b.ownerTypeCode , a.address_code, (SELECT cd_nm FROM codes d WHERE d.cd = c.vrfc_type AND d.category = 'VRFCREQ_WAY' ) AS vrfc_type , CONCAT ( (SELECT region_nm FROM region_codes r WHERE a.address_code = r.region_cd ) , ' ' , ifnull(m.rm_no,'') ) AS address , ( case IFNULL(b.address2b , '') when '' then CONCAT(ifnull(a.address2,'') , ' ' , ifnull(a.address3,'')) ELSE CONCAT(ifnull(b.address2b,'') , ' ' , ifnull(a.address3,'')) END ) AS address_ext, a.cpid, a.realtor_nm, (SELECT usr_nm FROM users u WHERE a.charger = u.usr_id) AS usr_nm , (SELECT usr_nm FROM users u WHERE a.reg_charger = u.usr_id) AS reg_charger , greatest(ifnull(s45.insert_tm,''),ifnull(s49.insert_tm,'') ) AS rgbk_check_tm, s60.insert_tm AS result_tm, s39.insert_tm as stat_39_tm, c21.comment AS reg_conf_yn_info_2, c22.comment AS reg_conf_yn_info_3, a.reg_charger as rc FROM v2_article_info a LEFT JOIN v2_article_info_etc b ON a.vr_sq = b.vr_sq LEFT JOIN v2_vrfc_req c ON a.vr_sq = c.vr_sq LEFT JOIN v2_modify_info m ON a.vr_sq = m.vr_sq LEFT JOIN v2_chg_stat s45 ON a.vr_sq = s45.vr_sq AND s45.stat_cd = '45' LEFT JOIN v2_chg_stat s49 ON a.vr_sq = s49.vr_sq AND s49.stat_cd = '49' LEFT JOIN v2_chg_stat s60 ON a.vr_sq = s60.vr_sq AND s60.stat_cd = '60' LEFT JOIN v2_chg_stat s39 ON a.vr_sq = s39.vr_sq AND s39.stat_cd = '39' LEFT JOIN v2_check_list c21 ON a.vr_sq = c21.vr_sq AND c21.type = '21' LEFT JOIN v2_check_list c22 ON a.vr_sq = c22.vr_sq AND c22.type = '22' WHERE c.vrfc_type = 'N' "; // 매물번호 if (!empty($data['atcl_no'])) { $sql .= "AND a.atcl = '{$data['atcl_no']}' "; } else { // 접수기간 if (!empty($data['receipt_sdate'])) { $sql .= "AND c.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; } if (!empty($data['receipt_edate'])) { $sql .= "AND c.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; } // 완료기간 if (!empty($data['complete_sdate'])) { $sql .= "AND s60.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; } if (!empty($data['complete_edate'])) { $sql .= "AND s60.insert_tm <= '{$data['complete_edate']} 23:59:59' "; } // 지역구분 if (!empty($data['srcDong'])) { $sql .= "AND a.address_code = '{$data['srcDong']}' "; } else { if (!empty($data['srcGugun'])) { $str_gugun = substr($data['srcGugun'], '0', '2'); if ($str_gugun == '36') { //세종시는 군구가 없고 바로 동이라서 예외 $sql .= "AND a.address_code = '{$data['srcGugun']}' "; } else { $gugunPrefix = substr($data['srcGugun'], '0', '5'); $sql .= "AND a.address_code LIKE '{$gugunPrefix}%' "; } } else { if (!empty($data['srcSido'])) { $sidoPrefix = substr($data['srcSido'], '0', '2'); $sql .= "AND a.address_code LIKE '{$sidoPrefix}%' "; } } } // 매체사 if (!empty($data['rcpt_cpid'])) { $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; } // 참고파일 if (!empty($data['reference_file_url_yn'])) { $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; } // 현재상태 if (!empty($data['stat_cd'])) { $sql .= "AND c.stat_cd = '{$data['stat_cd']}' "; } // 중개소 if (!empty($data['realtor_nm'])) { $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; } // 담당자 if (!empty($data['damdang'])) { switch ($data['charger_gbn']) { case "1": $sql .= "a.charger = '{$data['damdang']}' "; break; case "2": $sql .= "a.reg_charger = '{$data['damdang']}' "; break; } } else { // 배정여부 if ($data['assign_yn'] !== "A") { switch ($data['charger_gbn'] . $data['assign_yn']) { case "1Y": // 전화/서류 담당자 $sql .= "a.charger != '' "; break; case "1N": // 전화/서류 담당자 $sql .= "a.charger = '' "; break; case "2Y": // 등기부등본 담당자 $sql .= "a.reg_charger != '' "; break; case "2N": // 등기부등본 담당자 $sql .= "a.reg_charger IS NULL "; break; } } } // 매물종류 if (!empty($data['rlet_type_cd'])) { $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; } // 소유자구분 if (!empty($data['ownerTypeCode'])) { $sql .= "AND b.ownerTypeCode = '{$data['ownerTypeCode']}' "; } // 서류미수취 if (!empty($data['document_not_received_yn'])) { $sql .= "AND b.document_not_received_yn = '{$data['document_not_received_yn']}' "; } } $sql .= "ORDER BY a.vr_sq DESC "; $sql .= "LIMIT {$start}, {$end}"; $query = $this->db->query($sql); return $query->getResultArray(); } // 엑셀다운로드 public function getExcelList($data) { $sql = "SELECT a.atcl_no AS '매물번호', (SELECT cd_nm FROM codes d WHERE d.cd = c.stat_cd AND d.category = 'STEP_VERIFICATION' ) AS '진행상태', c.insert_tm AS '접수시간', (SELECT cd_nm FROM codes d WHERE d.cd = c.vrfc_type AND d.category = 'VRFCREQ_WAY' ) AS '검증방식', CONCAT ( (SELECT region_nm FROM region_codes r WHERE a.address_code = r.region_cd ) , ' ' , ifnull(m.rm_no,'') ) AS '주소', CONCAT ( (SELECT region_nm FROM region_codes r WHERE a.address_code = r.region_cd ) , ' ' , ifnull(m.rm_no,'') ) AS address , ( case IFNULL(b.address2b , '') when '' then CONCAT(ifnull(a.address2,'') , ' ' , ifnull(a.address3,'')) ELSE CONCAT(ifnull(b.address2b,'') , ' ' , ifnull(a.address3,'')) END ) AS '상세주소', a.cpid AS '매체사', a.realtor_nm AS '중개소', (SELECT usr_nm FROM users u WHERE a.charger = u.usr_id) AS '서류/전화 담당자', s39.insert_tm AS '서류/전화 확인완료시간', a.reg_charger AS '등기부등본 담당자', greatest(ifnull(s45.insert_tm,''),ifnull(s49.insert_tm,'') ) AS '등기부등본 확인시간', s60.insert_tm AS '검증완료 일시', c21.comment AS '주소 불일치 사유', c22.comment '의뢰인 불일치 사유' FROM v2_article_info a LEFT JOIN v2_article_info_etc b ON a.vr_sq = b.vr_sq LEFT JOIN v2_vrfc_req c ON a.vr_sq = c.vr_sq LEFT JOIN v2_modify_info m ON a.vr_sq = m.vr_sq LEFT JOIN v2_chg_stat s45 ON a.vr_sq = s45.vr_sq AND s45.stat_cd = '45' LEFT JOIN v2_chg_stat s49 ON a.vr_sq = s49.vr_sq AND s49.stat_cd = '49' LEFT JOIN v2_chg_stat s60 ON a.vr_sq = s60.vr_sq AND s60.stat_cd = '60' LEFT JOIN v2_chg_stat s39 ON a.vr_sq = s39.vr_sq AND s39.stat_cd = '39' LEFT JOIN v2_check_list c21 ON a.vr_sq = c21.vr_sq AND c21.type = '21' LEFT JOIN v2_check_list c22 ON a.vr_sq = c22.vr_sq AND c22.type = '22' WHERE c.vrfc_type = 'N'"; // 매물번호 if (!empty($data['atcl_no'])) { $sql .= "AND a.atcl = '{$data['atcl_no']}' "; } else { // 접수기간 if (!empty($data['receipt_sdate'])) { $sql .= "AND c.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; } if (!empty($data['receipt_edate'])) { $sql .= "AND c.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; } // 완료기간 if (!empty($data['complete_sdate'])) { $sql .= "AND s60.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; } if (!empty($data['complete_edate'])) { $sql .= "AND s60.insert_tm <= '{$data['complete_edate']} 23:59:59' "; } // 지역구분 if (!empty($data['srcDong'])) { $sql .= "AND a.address_code = '{$data['srcDong']}' "; } else { if (!empty($data['srcGugun'])) { $str_gugun = substr($data['srcGugun'], '0', '2'); if ($str_gugun == '36') { //세종시는 군구가 없고 바로 동이라서 예외 $sql .= "AND a.address_code = '{$data['srcGugun']}' "; } else { $gugunPrefix = substr($data['srcGugun'], '0', '5'); $sql .= "AND a.address_code LIKE '{$gugunPrefix}%' "; } } else { if (!empty($data['srcSido'])) { $sidoPrefix = substr($data['srcSido'], '0', '2'); $sql .= "AND a.address_code LIKE '{$sidoPrefix}%' "; } } } // 매체사 if (!empty($data['rcpt_cpid'])) { $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; } // 참고파일 if (!empty($data['reference_file_url_yn'])) { $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; } // 현재상태 if (!empty($data['stat_cd'])) { $sql .= "AND c.stat_cd = '{$data['stat_cd']}' "; } // 중개소 if (!empty($data['realtor_nm'])) { $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; } // 담당자 if (!empty($data['damdang'])) { switch ($data['charger_gbn']) { case "1": $sql .= "a.charger = '{$data['damdang']}' "; break; case "2": $sql .= "a.reg_charger = '{$data['damdang']}' "; break; } } else { // 배정여부 if ($data['assign_yn'] !== "A") { switch ($data['charger_gbn'] . $data['assign_yn']) { case "1Y": // 전화/서류 담당자 $sql .= "a.charger != '' "; break; case "1N": // 전화/서류 담당자 $sql .= "a.charger = '' "; break; case "2Y": // 등기부등본 담당자 $sql .= "a.reg_charger != '' "; break; case "2N": // 등기부등본 담당자 $sql .= "a.reg_charger IS NULL "; break; } } } // 매물종류 if (!empty($data['rlet_type_cd'])) { $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; } // 소유자구분 if (!empty($data['ownerTypeCode'])) { $sql .= "AND b.ownerTypeCode = '{$data['ownerTypeCode']}' "; } // 서류미수취 if (!empty($data['document_not_received_yn'])) { $sql .= "AND b.document_not_received_yn = '{$data['document_not_received_yn']}' "; } } $sql .= "ORDER BY a.vr_sq DESC "; $query = $this->db->query($sql); return $query->getResultArray(); } // 상세 public function getDetail($vr_sq) { $sql = "SELECT a.vr_sq, a.dong_ho_chk, a.reg_status, a.hscplqry_lv, a.atcl_no, b.stat_cd, a.cpid, a.cp_atcl_id, a.rlet_type_cd, a.address1, a.sise, a.rdate, a.hscp_no as chk_hscp_no, b.try_cnt, a.seller_tel_no, a.seller_nm, a.realtor_nm, a.realtor_tel_no, a.charger, a.ownerNm, a.ownerTelNo, b.reg_try_cnt, b.insert_tm, a.reg_charger, i2.usr_nm as reg_charger_nm, c.bild_nm, b.vrfc_type as vrfc_type_cd, c.rm_no, c.floor, c.floor2, c.address_code, c.address2, c1.address2a, c1.address2b, c1.registerBookUniqueNo, c1.ownerTypeCode, c1.orgRepCphNo, c1.orgRepTelNo, c1.orgRltrNm, c1.orgRepNm, c1.smsSendTime, c1.document_cert_method, c.address3, c.address4, c.trade_type as trade_type_cd, c.deal_amt, c.wrrnt_amt, c.lease_amt, c.isale_amt, c.prem_amt, c.sply_spc, c.excls_spc, c.tot_spc, c.grnd_spc, c.bldg_spc, c.hscp_no, c.ptp_no, d.insert_tm as update_res_tm, e.insert_tm as result_tm, f.region_nm, g.cd_nm as pre_stat, g.cd as pre_stat_cd, h.cd_nm as vrfc_type, i.usr_nm, j.cd_nm as trade_type, j.cd as trade_type_cd, c.hscp_nm, c.ptp_nm, l.success, k.cd_nm as atcl_nm, m.code as result_d11, m.comment, n.code as fax_conf_yn_2, o.code as fax_conf_yn_3, p.code as fax_conf_yn_4, n.comment as fax_conf_yn_info_2, o.comment as fax_conf_yn_info_3, p.comment as fax_conf_yn_info_4, v.success AS tel_suc, r.code AS tel_agree, s.code AS tel_conf_yn_2, t.code AS tel_conf_yn_3, u.code AS tel_conf_yn_4, s.comment AS tel_conf_yn_info_2, t.comment AS tel_conf_yn_info_3, u.comment AS tel_conf_yn_info_4, w.success AS reg_conf_yn_1, x.code AS reg_conf_yn_2, y.code AS reg_conf_yn_3, x.comment AS reg_conf_yn_info_2, y.comment AS reg_conf_yn_info_3, b.rgbk_confirm, a.redvlp_area_nm, a.biz_stp_desc, a.cert_register, a.confirm_doc_img_url, a.cert_register_save_yn, a.confirm_doc_img_url_save_yn, b.confirm_doc_owner_check_yn, a.owner_birth, a.vrfc_type_sub, b.owner_verifiable, a.reference_file_url, a.reference_file_url_save_yn, a.reference_file_url_yn, z.corp_own, c1.vir_addr_yn, c1.cert_uncnfrm_status, b.referenceFileUrl, b.certRegister, c1.noRgbkVrfcReqYn, c1.areaByBdbkVrfcReqYn, c1.document_not_received, sm.sm_apporval_date , sm.sm_end_date, sm.sm_seq, a.registerBookUniqueNumber FROM v2_article_info a JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq JOIN v2_modify_info c ON a.vr_sq = c.vr_sq LEFT OUTER JOIN v2_article_info_etc c1 ON c1.vr_sq = a.vr_sq LEFT JOIN region_codes f ON a.address_code = f.region_cd LEFT JOIN v2_chg_stat d ON a.vr_sq = d.vr_sq AND d.stat_cd = '35' LEFT JOIN v2_chg_stat e ON a.vr_sq = e.vr_sq AND e.stat_cd = '60' LEFT JOIN codes g ON b.stat_cd = g.cd AND g.category = 'STEP_VERIFICATION' LEFT JOIN codes h ON b.vrfc_type = h.cd AND h.category = 'VRFCREQ_WAY' LEFT JOIN codes j ON c.trade_type = j.cd AND j.category = 'TRADE_TYPE' LEFT JOIN codes k ON a.rlet_type_cd = k.cd AND k.category = 'ARTICLE_TYPE' LEFT JOIN v2_confirm l ON a.vr_sq = l.vr_sq AND l.vrfc_type = 'D' LEFT JOIN v2_check_list m ON a.vr_sq = m.vr_sq AND m.type = 'D11' LEFT JOIN v2_check_list n ON a.vr_sq = n.vr_sq AND n.type = 'D12' LEFT JOIN v2_check_list o ON a.vr_sq = o.vr_sq AND o.type = 'D13' LEFT JOIN v2_check_list p ON a.vr_sq = p.vr_sq AND p.type = 'D14' LEFT JOIN v2_confirm v ON a.vr_sq = v.vr_sq AND v.vrfc_type = 'T' LEFT JOIN v2_check_list r ON a.vr_sq = r.vr_sq AND r.type = 'T11' LEFT JOIN v2_check_list s ON a.vr_sq = s.vr_sq AND s.type = 'T12' LEFT JOIN v2_check_list t ON a.vr_sq = t.vr_sq AND t.type = 'T13' LEFT JOIN v2_check_list u ON a.vr_sq = u.vr_sq AND u.type = 'T14' LEFT JOIN v2_confirm w ON a.vr_sq = w.vr_sq AND w.vrfc_type = 'R' LEFT JOIN v2_check_list x ON a.vr_sq = x.vr_sq AND x.type = '21' LEFT JOIN v2_check_list y ON a.vr_sq = y.vr_sq AND y.type = '22' LEFT JOIN users i ON a.charger = i.usr_id LEFT JOIN users i2 ON a.reg_charger = i2.usr_id LEFT JOIN v2_article_info_etc z ON a.vr_sq = z.vr_sq LEFT JOIN scomplex_manage sm ON a.hscp_no = sm.sm_code WHERE a.vr_sq = ?"; $query = $this->db->query($sql, [$vr_sq]); return $query->getRowArray(); } // 메모 public function getMemo($vr_sq) { $sql = "SELECT memo FROM v2_vrfc_req where vr_sq = ?"; $query = $this->db->query($sql, [$vr_sq]); return $query->getRowArray(); } public function getRecordInfo($vr_sq, $file_type) { $sql = "SELECT seq, vr_sq, use_yn, file_type, view_odr, file_path, file_name, file_ext, file_size, img_width, img_height, meta_data, insert_user, insert_tm , cloud_upload_yn " . " FROM v2_files" . " WHERE vr_sq = ?" . " AND use_yn = 'Y'" . " AND file_type = ?" . " ORDER BY seq DESC"; $data = [ $vr_sq, $file_type ]; $query = $this->db->query($sql, [$vr_sq, $file_type]); return $query->getRowArray(); } public function getDisplay($menu_position) { $sql = "SELECT display_yn " . "FROM page_display " . "WHERE menu_position = ? "; $data = [$menu_position]; $query = $this->db->query($sql, $data); $row = $query->getRowArray(); return $row; } // 파일업로드 public function saveFileInfo($data) { $this->db->transStart(); $usr_id = session('usr_id'); // 기존파일 확인후 업데이트 $sql = "SELECT seq FROM v2_files WHERE vr_sq = {$data['vr_sq']} AND use_yn = 'Y' AND file_type = '2'"; $query = $this->db->query($sql); $row = $query->getNumRows(); if ($row > 0) { $sql = "UPDATE v2_files SET use_yn = 'N' WHERE vr_sq = {$data['vr_sq']} AND use_yn = 'Y' AND file_type '2'"; $this->db->query($sql); $sql = "INSERT INTO v2_files (vr_sq, file_type, view_odr, file_path, file_name, file_ext, file_size, insert_user, insert_tm, cloud_upload_yn) VALUES (?, '2', 0, ?, ?, ?, ?, ?, NOW(), 'Y') "; $param = [ $data['vr_sq'], $data['file_path'], $data['new_name'], $data['ext'], $data['size'], $data['usr_id'], ]; if ($this->db->query($sql, $param)) { return [ 'success' => false, 'msg' => '파일정보 저장 실패', ]; } $row = $this->getDetail($data['vr_sq']); $this->saveChangedHistory($data['vr_sq'], $row['stat_cd'], 'C28', $usr_id, '이미지파일 업로드'); } $this->db->transComplete(); return [ 'success' => true ]; } // 서류미수취 저장 public function saveNotReceived($vr_sq) { $sql = "SELECT document_not_received from v2_article_info_etc where vr_sq = ?"; $query = $this->db->query($sql, [$vr_sq]); $row = $query->getRowArray(); $document_not_received = $row['document_not_received']; if ($document_not_received == "Y") { $sql = "UPDATE v2_article_info_etc SET document_not_received = 'N' WHERE vr_sq = ?"; } else { $sql = "UPDATE v2_article_info_etc SET document_not_received = 'Y' WHERE vr_sq = ?"; } if ($this->db->query($sql, [$vr_sq]) === false) { return [ 'success' => false, 'msg' => '저장 실패', ]; } return [ 'success' => true, ]; } // 다음매물 public function getNextInfo($vr_sq) { $usr_id = session('usr_id'); $sql = "SELECT b.vr_sq FROM v2_article_info b INNER JOIN v2_vrfc_req a ON a.vr_sq = b.vr_sq AND a.vr_sq != ? AND a.stat_cd BETWEEN '35' AND '49' AND a.stat_cd NOT IN ('39','45') LEFT JOIN v2_chg_stat c ON c.vr_sq = b.vr_sq AND c.stat_cd = '40' WHERE a.insert_tm < DATE_FORMAT(curdate(), '%Y%m%d172959') AND (b.reg_charger IS NULL OR b.reg_charger = '') AND a.vrfc_type = 'N' ORDER BY CASE a.vrfc_type WHEN 'N' THEN 1 ELSE 2 END, a.vr_sq LIMIT 1 for update skip locked "; $query = $this->db->query($sql, [$vr_sq]); $row = $query->getRowArray(); if (!empty($row)) { $this->db->transStart(); $sql = "UPDATE v2_article_info SET reg_charger = ? WHERE vr_sq = ?"; if ($this->db->query($sql, [$usr_id, $vr_sq]) === false) { return [ 'success' => false, 'msg' => '저장 실패', ]; } $this->db->transComplete(); return $row; } else { 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(); } //1차 검증인지 2차 검증인지 확인. public function chkRegiTryCnt($atcl_vr_sq) { $sql = "SELECT reg_try_cnt FROM v2_vrfc_req WHERE vr_sq = ?"; $query = $this->db->query($sql, [$atcl_vr_sq]); return $query->getRowArray(); } //검증결과 table에 있는지 확인. public function chkConfirm($atcl_vr_sq, $reg_yn) { $builder = $this->db->table('v2_confirm a'); $builder->select('a.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 getUpdateFailTime($vr_sq) { $sql = "select vr_sq, stat_cd, insert_user, insert_tm " . "from v2_chg_stat " . "where vr_sq = ? and stat_cd = '49' " . "order by insert_tm desc " . "limit 1"; $data = array($vr_sq); $query = $this->db->query($sql, $data); $row = $query->getRowArray(); return $row; } //v2_confirm INSERT public function insertConfirm($vr_sq, $vrfc_type, $success, $type, $usr_id = '', $usr_sq = '') { if (empty($usr_sq)) $usr_sq = session('usr_sq'); if (empty($usr_id)) $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()) " . " ON DUPLICATE KEY UPDATE" . " success=values(success), type=values(type), charger=values(charger), date=values(date) , update_user=values(update_user), update_tm=values(update_tm)"; $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, ]; $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'] ]; } 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 ); //echo $this->db->last_query(); $res = $this->db->query($sql, $data); $log_v = $this->db->getLastQuery(); log_message('debug', $log_v); } public function add_cert_uncnfrm_status($vr_sq, $cert_uncnfrm_status) { $sql = "UPDATE v2_article_info_etc" . " SET cert_uncnfrm_status = ?" . " WHERE vr_sq = ?"; $data = array( $cert_uncnfrm_status, $vr_sq ); $this->db->query($sql, $data); } public function insertChkList($vr_sq, $vrfc_type, $type, $code, $comment) { //v2_check_list INSERT $usr_sq = session('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); } /** * update updatedocument_cert_method */ public function updatedocument_cert_method($vr_sq, $document_cert_method) { $sql = "UPDATE v2_article_info_etc SET " . " document_cert_method = ? " . " WHERE vr_sq = ? "; $document_cert_method = json_encode($document_cert_method, JSON_UNESCAPED_UNICODE); if ($document_cert_method == 'false') { $document_cert_method = NULL; } $data = array( $document_cert_method, $vr_sq ); $this->db->query($sql, $data); $s = $this->db->getLastQuery(); log_message('debug', "====updatedocument_cert_method:712====" . $s); } public function update_owner_verifiable($vr_sq, $owner_verifiable) { $sql = "UPDATE v2_vrfc_req" . " SET owner_verifiable = ?" . " WHERE vr_sq = ?"; $data = array( $owner_verifiable, $vr_sq ); $this->db->query($sql, $data); $s = $this->db->getLastQuery(); log_message('debug', "====update_owner_verifiable:712====" . $s); } /* 등기부등본 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', 'getDatacertApi_query => ' . $this->db->getLastQuery()); log_message('debug', 'getDatacertApi_result => ' . json_encode($row_vrfc_req)); // 매물정보 $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, vrfc_type_sub" . " FROM v2_article_info where vr_sq = ?"; $query = $this->db->query($sql, [$vr_sq]); $row_article_info = $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'] ?? ''; switch ($row_vrfc_req['owner_verifiable']) { case "1": case "true": $ownerVerifiable = true; break; default: $ownerVerifiable = false; break; } $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, 'vrfcType' => $row_article_info['vrfc_type_sub'], 'ownerVerifiable' => $ownerVerifiable, ]; } else { return [ 'atclNo' => $atclNo, 'type' => $type, 'success' => $success, 'checkList' => $checkList, 'charger' => $charger, 'date' => $date, 'vrfcType' => $row_article_info['vrfc_type_sub'], 'ownerVerifiable' => $ownerVerifiable, ]; } } public function get_send_yn($type) { $sql = "SELECT stop_yn FROM v2_stop_api_chg_stat WHERE TYPE = ? ORDER BY pk DESC LIMIT 1"; $date = array( $type ); $query = $this->db->query($sql, $date); $return = $query->getRowArray(); return $return; } public function insert_v2_stop_api_save_info($atcl_no, $vr_sq, $type, $fax_sq) { $sql = "INSERT INTO v2_stop_api_save_info(atcl_no,vr_sq,type,status,stop_dt,fax_sq)" . " VALUE(?,?,?,'stop',now(),?)"; $date = array( $atcl_no, $vr_sq, $type, $fax_sq ); $this->db->query($sql, $date); } /** * 712 소유자 확인 을 위한 쿼리 */ public function getOwnerVerifiable($atcl_no) { $sql = "select * , case when owner_verifiable = 'true' then '1' when owner_verifiable = '1' then '1' when owner_verifiable = 'false' then '0' when owner_verifiable = '0' then '0' ELSE null END AS OwnerVerifiable_change from v2_vrfc_req where atcl_no = ? "; $data = array( $atcl_no ); $query = $this->db->query($sql, $data); $row = $query->getRowArray(); return $row; } public function chgStat($vr_sq, $stat_cd, $insert_tm) { //상태변경 TABLE INSERT $usr_sq = session('usr_sq'); $usr_id = session('usr_id'); $list = $this->get_detail($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 = array( 'vr_sq' => $vr_sq, 'stat_cd' => $stat_cd, 'usr_sq' => $usr_sq, 'insert_tm' => $insert_tm ); $this->db->transStart(); $res = $this->db->query($sql, $data); $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'], $stat_cd, 'C9', $usr_id, "상태변경 저장"); //검증결과 변동사항 HISTORY } } } $this->db->transComplete(); } 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); return [ 'error_number' => $this->db->error()['code'], 'error_message' => $this->db->error()['message'] ]; } 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); return [ 'error_number' => $this->db->error()['code'], 'error_message' => $this->db->error()['message'] ]; } //v2_vrfc_req try_cnt 값 변경. public function chgRegiTryCnt($vr_sq, $try_cnt) { $sql = "UPDATE v2_vrfc_req" . " SET reg_try_cnt = ?" . " WHERE vr_sq = ?"; $data = array( $try_cnt, $vr_sq ); $res = $this->db->query($sql, $data); } public function resetTelConf($vr_sq) { $sql = "update v2_check_list " . "set code = '' " . "where type in ('T11', 'T12', 'T13', 'T14') " . "and vr_sq = ?"; $data = array($vr_sq); $this->db->query($sql, $data); } // 메모저장 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 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); } }