diff --git a/app/Config/Routes.php b/app/Config/Routes.php index f253ddf..0004ad6 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -173,6 +173,20 @@ $routes->group('', ['namespace' => 'App\Controllers\V2'], static function ($rout }); + /** + * 현장확인매물 홍보확인서 + */ + $routes->group('m708', static function ($routes) { + $routes->get('m708a/lists', 'M708::lists'); + $routes->get('m708a/detail/(:num)', 'M708::detail/$1'); + + /** + * 1차 재검증 매물현황 - API + */ + $routes->get('m708a/getResultList', 'M708::getResultList'); + $routes->get('m708a/excel', 'M708::excel'); + + }); }); diff --git a/app/Controllers/V2/M708.php b/app/Controllers/V2/M708.php new file mode 100644 index 0000000..6ccd395 --- /dev/null +++ b/app/Controllers/V2/M708.php @@ -0,0 +1,115 @@ +model = new M708Model(); + $this->codeModel = new CodeModel(); + } + + public function lists(): string + { + $codes = $this->codeModel->getCodeLists(['CP_ID', 'STEP_VERIFICATION', 'RECEIPT_STATUS3', 'ARTICLE_TYPE']); // 코드조회 + $sido = $this->model->getAreaList(); // 지역조회 + $bonbu = $this->model->getBonbuList(); + $team = $this->model->getTeamList(); + $user = $this->model->getUserList(); + + $this->data['sido'] = $sido; + $this->data['bonbu'] = $bonbu; + $this->data['team'] = $team; + $this->data['user'] = $user; + $this->data['codes'] = $codes; + + return view("pages/v2/m708/lists", $this->data); + } + + public function getResultList() + { + $start = (int) $this->request->getGet('start') ?: 0; + $end = (int) $this->request->getGet('length') ?: 10; + + $data = [ + 'atcl_no' => $this->request->getGet('atcl_no'), // 매물번호 + 'chk_atcl_no' => $this->request->getGet('chk_atcl_no'), // 매물번호입력 + 'caller_no' => $this->request->getGet('caller_no'), // 발신팩스번호 + 'stat_cd' => $this->request->getGet('stat_cd'), // 현재상태 + 'realtor_nm' => $this->request->getGet('realtor_nm'), // 중개소 + 'charger_gbn' => $this->request->getGet('charger_gbn'), // 배정여부 + 'assign_yn' => $this->request->getGet('assign_yn'), // 배정여부2 + 'receipt_sdate' => $this->request->getGet('receipt_sdate'), // 접수기간1 + 'receipt_edate' => $this->request->getGet('receipt_edate'), // 접수기간2 + 'complete_sdate' => $this->request->getGet('complete_sdate'), // 완료기간1 + 'complete_edate' => $this->request->getGet('complete_edate'), // 완료기간2 + 'srcSido' => $this->request->getGet('srcSido'), // 시도 + 'srcGugun' => $this->request->getGet('srcGugun'), // 시군구 + 'srcDong' => $this->request->getGet('srcDong'), // 읍면동 + 'bonbu' => $this->request->getGet('bonbu'), // 본부 + 'team' => $this->request->getGet('team'), // 팀 + 'damdang' => $this->request->getGet('damdang'), // 담당 + 'target_yn' => $this->request->getGet('target_yn'), // 홍보확인서여부 + 'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사 + 'rlet_type_cd' => $this->request->getGet('rlet_type_cd'), // 매물종류 + 'rcpt_v2' => $this->request->getGet('rcpt_v2'), // 검증방식 + ]; + + $totalCount = $this->model->getTotalCount($data); + + $datas = $this->model->getResultList($start, $end, $data); + + return $this->response->setJSON(body: [ + 'recordsTotal' => $totalCount, + 'recordsFiltered' => $totalCount, + 'data' => $datas, + ]); + } + + + // 엑셀 다운로드 + public function excel() + { + try { + + $data = [ + 'atcl_no' => $this->request->getGet('atcl_no'), // 매물번호 + 'chk_atcl_no' => $this->request->getGet('chk_atcl_no'), // 매물번호입력 + 'caller_no' => $this->request->getGet('caller_no'), // 발신팩스번호 + 'stat_cd' => $this->request->getGet('stat_cd'), // 현재상태 + 'realtor_nm' => $this->request->getGet('realtor_nm'), // 중개소 + 'charger_gbn' => $this->request->getGet('charger_gbn'), // 배정여부 + 'assign_yn' => $this->request->getGet('assign_yn'), // 배정여부2 + 'receipt_sdate' => $this->request->getGet('receipt_sdate'), // 접수기간1 + 'receipt_edate' => $this->request->getGet('receipt_edate'), // 접수기간2 + 'complete_sdate' => $this->request->getGet('complete_sdate'), // 완료기간1 + 'complete_edate' => $this->request->getGet('complete_edate'), // 완료기간2 + 'srcSido' => $this->request->getGet('srcSido'), // 시도 + 'srcGugun' => $this->request->getGet('srcGugun'), // 시군구 + 'srcDong' => $this->request->getGet('srcDong'), // 읍면동 + 'bonbu' => $this->request->getGet('bonbu'), // 본부 + 'team' => $this->request->getGet('team'), // 팀 + 'damdang' => $this->request->getGet('damdang'), // 담당 + 'target_yn' => $this->request->getGet('target_yn'), // 홍보확인서여부 + 'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사 + 'rlet_type_cd' => $this->request->getGet('rlet_type_cd'), // 매물종류 + 'rcpt_v2' => $this->request->getGet('rcpt_v2'), // 검증방식 + ]; + + $datas = $this->model->getExcelList($data); + + return $this->response->setJSON(body: [ + 'data' => $datas, + ]); + + } catch (\Exception $e) { + $e->getPrevious()->getTraceAsString(); + } + } +} \ No newline at end of file diff --git a/app/Models/v2/M708Model.php b/app/Models/v2/M708Model.php new file mode 100644 index 0000000..f62af9d --- /dev/null +++ b/app/Models/v2/M708Model.php @@ -0,0 +1,695 @@ +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 + fax_imgs a + LEFT JOIN region_codes c ON c.region_cd = a.address_code + LEFT JOIN users d ON d.usr_id = a.charger + LEFT JOIN users e ON e.usr_id = a.reg_charger + LEFT JOIN receipt f1 ON f1.rcpt_sq = a.vr_sq + LEFT JOIN v2_vrfc_req f2 ON f2.vr_sq = a.vr_sq + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' "; + + $sql .= "WHERE 1=1 + AND (a.work_type = '1' or a.work_type = '3' or a.work_type ='E') + AND a.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -2 MONTH) + "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + + // 발신팩스번호 + } else if (!empty($data['caller_no'])) { + $sql .= "EXISTS (SELECT 'x' + FROM fax_imgs b + WHERE b.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH) + AND b.RECV_TIME >= '" . $data['receipt_sdate'] . "' AND b.RECV_TIME <= '" . $data['receipt_edate'] . "' + AND b.caller_no LIKE CONCAT('%', '" . $data['caller_no'] . "', '%') + AND b.fax_sq = a.fax_sq + ) "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 매물번호입력 + if ($data['chk_atcl_no'] == "Y") { + $sql .= "AND a.atcl_no != '' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND a.RECV_TIME >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND a.RECV_TIME <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 처리기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND a.send_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND a.send_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + if (!empty($data['srcSido'])) { + $sql .= "a.address_code LIKE " . substr($data['srcSido'], 0, 2) . "% "; + } + + if (!empty($data['srcGugun'])) { + $chk_gugun = substr($data['srcGugun'], 0, 2); + if ($chk_gugun == '36') { + $sql .= "AND a.address_code = '{$data['srcGugun']}' "; + } else { + $sql .= "AND a.address_code LIKE " . substr($data['srcGugun'], 0, 5) . "% "; + } + } + + if (!empty($data['srcDong'])) { + $sql .= "AND a.address_code = '{$data['srcDong']}' "; + } + + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND a.work_type = '1' "; + $sql .= "EXISTS(SELECT 1 FROM receipt z WHERE z.rcpt_sq = a.vr_sq AND z.rcpt_stat LIKE '{$data['stat_cd']}%') "; + } + + // 매물종류 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND f1.rcpt_product = '{$data['rlet_type_cd']}' "; + } + + // 담당자 + 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['bonbu'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept1_sq = '{$data['bonbu']}' "; + } else { + $sql .= "AND a.reg_dept1_sq = '{$data['bonbu']}' "; + } + } + + // 팀 + if (!empty($data['team'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept2_sq = '{$data['team']}' "; + } else { + $sql .= "AND a.reg_dept2_sq = '{$data['team']}' "; + } + } + + // 홍보확인서여부 + if (!empty($data['target_yn'])) { + switch ($data['target_yn']) { + case "1": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'Y') "; + break; + case "E": + $sql .= "AND a.work_type ='E' "; + break; + case "3": + $sql .= "AND (a.work_type = '1' and a.bunyang_yn = 'Y') "; + break; + case "A": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'N') "; + break; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 검증방식 + if (!empty($data['rcpt_v2'])) { + $sql .= "AND f1.isSiteVRVerification = '{$data['rcpt_v2']}' "; + } + + } + + $sql .= "ORDER BY a.fax_sq DESC, a.RECV_TIME DESC "; + + + + $query = $this->db->query($sql); + + return $query->getRow()->cnt; + } + + public function getResultList($start, $end, $data) + { + $sql = "SELECT + a.fax_sq, a.mid, a.file_name, a.file_path, a.thumbnail, a.img_width, a.img_height, a.img_size, a.img_sq, a.remark, a.work_type, a.bunyang_yn + , case when a.atcl_no = '' and a.work_type = '1' then f1.rcpt_atclno when a.atcl_no = '' and a.work_type = '2' then f2.atcl_no else a.atcl_no end as atcl_no + , a.cpid, a.realtor_nm, a.stat_cd, a.proc_tm, a.send_tm, a.send_yn + , a.address_code, IFNULL(a.address2, '') AS address2, IFNULL(a.address3, '') AS address3, a.charger, a.reg_charger, a.CALLER_NO, a.callee_no, a.tiff_file_name, a.tiff_save_path, a.tiff_file_size, a.RECV_TIME, a.save_time + , c.region_nm, d.usr_nm, e.usr_nm reg_charger_nm, d2.insert_tm as stat_39_tm, f1.rcpt_stat, f1.rcpt_sq, f2.stat_cd as stat_cd2 + FROM + fax_imgs a + LEFT JOIN region_codes c ON c.region_cd = a.address_code + LEFT JOIN users d ON d.usr_id = a.charger + LEFT JOIN users e ON e.usr_id = a.reg_charger + LEFT JOIN receipt f1 ON f1.rcpt_sq = a.vr_sq + LEFT JOIN v2_vrfc_req f2 ON f2.vr_sq = a.vr_sq + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' "; + + $sql .= "WHERE 1=1 + AND (a.work_type = '1' or a.work_type = '3' or a.work_type ='E') + AND a.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -2 MONTH) + "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + + // 발신팩스번호 + } else if (!empty($data['caller_no'])) { + $sql .= "EXISTS (SELECT 'x' + FROM fax_imgs b + WHERE b.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH) + AND b.RECV_TIME >= '" . $data['receipt_sdate'] . "' AND b.RECV_TIME <= '" . $data['receipt_edate'] . "' + AND b.caller_no LIKE CONCAT('%', '" . $data['caller_no'] . "', '%') + AND b.fax_sq = a.fax_sq + ) "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 매물번호입력 + if ($data['chk_atcl_no'] == "Y") { + $sql .= "AND a.atcl_no != '' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND a.RECV_TIME >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND a.RECV_TIME <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 처리기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND a.send_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND a.send_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + if (!empty($data['srcSido'])) { + $sql .= "a.address_code LIKE " . substr($data['srcSido'], 0, 2) . "% "; + } + + if (!empty($data['srcGugun'])) { + $chk_gugun = substr($data['srcGugun'], 0, 2); + if ($chk_gugun == '36') { + $sql .= "AND a.address_code = '{$data['srcGugun']}' "; + } else { + $sql .= "AND a.address_code LIKE " . substr($data['srcGugun'], 0, 5) . "% "; + } + } + + if (!empty($data['srcDong'])) { + $sql .= "AND a.address_code = '{$data['srcDong']}' "; + } + + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND a.work_type = '1' "; + $sql .= "EXISTS(SELECT 1 FROM receipt z WHERE z.rcpt_sq = a.vr_sq AND z.rcpt_stat LIKE '{$data['stat_cd']}%') "; + } + + // 매물종류 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND f1.rcpt_product = '{$data['rlet_type_cd']}' "; + } + + // 담당자 + 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['bonbu'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept1_sq = '{$data['bonbu']}' "; + } else { + $sql .= "AND a.reg_dept1_sq = '{$data['bonbu']}' "; + } + } + + // 팀 + if (!empty($data['team'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept2_sq = '{$data['team']}' "; + } else { + $sql .= "AND a.reg_dept2_sq = '{$data['team']}' "; + } + } + + // 홍보확인서여부 + if (!empty($data['target_yn'])) { + switch ($data['target_yn']) { + case "1": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'Y') "; + break; + case "E": + $sql .= "AND a.work_type ='E' "; + break; + case "3": + $sql .= "AND (a.work_type = '1' and a.bunyang_yn = 'Y') "; + break; + case "A": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'N') "; + break; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 검증방식 + if (!empty($data['rcpt_v2'])) { + $sql .= "AND f1.isSiteVRVerification = '{$data['rcpt_v2']}' "; + } + + } + + $sql .= "ORDER BY a.fax_sq DESC, a.RECV_TIME DESC "; + + $sql .= "LIMIT {$start}, {$end} "; + + + $query = $this->db->query($sql); + + return $query->getResultArray(); + } + + + // 엑셀다운로드 + public function getExcelList($data) + { + $sql = "SELECT + a.atcl_no AS '매물번호', + CASE WHEN f2.stat_cd IS NULL + THEN + CASE WHEN f1.rcpt_stat IS NULL + THEN + (SELECT cd_nm FROM codes WHERE cd = a.stat_cd AND category = 'STEP_VERIFICATION') + ELSE + (SELECT cd_nm FROM codes WHERE cd = f1.rcpt_stat AND category = 'RECEIPT_STATUS3') + END + ELSE + (SELECT cd_nm FROM codes WHERE cd = f2.stat_cd AND category = 'STEP_VERIFICATION') + END AS '현재상태', + CASE + WHEN a.work_type = '1' AND a.send_yn = 'Y' THEN '홍보확인서' + WHEN a.work_type = '3' THEN '분양권' + WHEN a.work_type = 'E' THEN '홍보확인서 아님' + WHEN a.work_type = '1' AND a.send_yn = 'N' THEN '미처리' + END AS '홍보확인서여부', + a.RECV_TIME AS '수신시간', + a.CALLER_NO AS '발신번호', + c.region_nm AS '주소', + IFNULL(a.address2, '') AS '상세주소', + a.cpid AS '매체사', + a.realtor_nm AS '중개소', + d.usr_nm AS '서류/전화 담당자', + IFNULL(a.proc_tm, d2.insert_tm) AS '서류/전화 확인시간', + e.usr_nm AS '등기부등본 담당자', + a.send_tm AS '검증완료일시' + FROM + fax_imgs a + LEFT JOIN region_codes c ON c.region_cd = a.address_code + LEFT JOIN users d ON d.usr_id = a.charger + LEFT JOIN users e ON e.usr_id = a.reg_charger + LEFT JOIN receipt f1 ON f1.rcpt_sq = a.vr_sq + LEFT JOIN v2_vrfc_req f2 ON f2.vr_sq = a.vr_sq + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' "; + + $sql .= "WHERE 1=1 + AND (a.work_type = '1' or a.work_type = '3' or a.work_type ='E') + AND a.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -2 MONTH) + "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + + // 발신팩스번호 + } else if (!empty($data['caller_no'])) { + $sql .= "EXISTS (SELECT 'x' + FROM fax_imgs b + WHERE b.RECV_TIME >= DATE_ADD(CURDATE(), INTERVAL -3 MONTH) + AND b.RECV_TIME >= '" . $data['receipt_sdate'] . "' AND b.RECV_TIME <= '" . $data['receipt_edate'] . "' + AND b.caller_no LIKE CONCAT('%', '" . $data['caller_no'] . "', '%') + AND b.fax_sq = a.fax_sq + ) "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 매물번호입력 + if ($data['chk_atcl_no'] == "Y") { + $sql .= "AND a.atcl_no != '' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND a.RECV_TIME >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND a.RECV_TIME <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 처리기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND a.send_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND a.send_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + if (!empty($data['srcSido'])) { + $sql .= "a.address_code LIKE " . substr($data['srcSido'], 0, 2) . "% "; + } + + if (!empty($data['srcGugun'])) { + $chk_gugun = substr($data['srcGugun'], 0, 2); + if ($chk_gugun == '36') { + $sql .= "AND a.address_code = '{$data['srcGugun']}' "; + } else { + $sql .= "AND a.address_code LIKE " . substr($data['srcGugun'], 0, 5) . "% "; + } + } + + if (!empty($data['srcDong'])) { + $sql .= "AND a.address_code = '{$data['srcDong']}' "; + } + + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND a.work_type = '1' "; + $sql .= "EXISTS(SELECT 1 FROM receipt z WHERE z.rcpt_sq = a.vr_sq AND z.rcpt_stat LIKE '{$data['stat_cd']}%') "; + } + + // 매물종류 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND f1.rcpt_product = '{$data['rlet_type_cd']}' "; + } + + // 담당자 + 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['bonbu'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept1_sq = '{$data['bonbu']}' "; + } else { + $sql .= "AND a.reg_dept1_sq = '{$data['bonbu']}' "; + } + } + + // 팀 + if (!empty($data['team'])) { + if ($data['charger_gbn'] === "1") { + $sql .= "AND a.dept2_sq = '{$data['team']}' "; + } else { + $sql .= "AND a.reg_dept2_sq = '{$data['team']}' "; + } + } + + // 홍보확인서여부 + if (!empty($data['target_yn'])) { + switch ($data['target_yn']) { + case "1": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'Y') "; + break; + case "E": + $sql .= "AND a.work_type ='E' "; + break; + case "3": + $sql .= "AND (a.work_type = '1' and a.bunyang_yn = 'Y') "; + break; + case "A": + $sql .= "AND (a.work_type = '1' and a.send_yn = 'N') "; + break; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 검증방식 + if (!empty($data['rcpt_v2'])) { + $sql .= "AND f1.isSiteVRVerification = '{$data['rcpt_v2']}' "; + } + + } + + $sql .= "ORDER BY a.fax_sq DESC, a.RECV_TIME DESC "; + + $query = $this->db->query($sql); + + return $query->getResultArray(); + } +} \ No newline at end of file diff --git a/app/Views/pages/v2/m708/lists.php b/app/Views/pages/v2/m708/lists.php new file mode 100644 index 0000000..e1046a6 --- /dev/null +++ b/app/Views/pages/v2/m708/lists.php @@ -0,0 +1,774 @@ += $this->extend('layouts/main') ?> + += $this->section('content') ?> + + +
| 매물번호 | +현재상태 | +홍보확인서 여부 |
+ 수신기간 | +발신번호 | +주소 | +상세주소 | +매체사 | +중개소 | +서류/전화 담당자 |
+ 서류/전화 확인시간 |
+ 등기부등본 담당자 |
+ 검증완료 일시 |
+
|---|