From 003c1b4b8fe31b03c339b4d8ebcd6aeeffe41e3e Mon Sep 17 00:00:00 2001 From: yangsh Date: Tue, 30 Dec 2025 16:02:51 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=BC=EB=B0=98=EB=A7=A4=EB=AC=BC=ED=98=84?= =?UTF-8?q?=ED=99=A9=20=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Config/Routes.php | 31 + app/Controllers/Common/Common.php | 27 + app/Controllers/V2/M701.php | 119 +++ app/Models/common/CommonModel.php | 20 + app/Models/v2/M701Model.php | 684 ++++++++++++++++ app/Views/layouts/topbar.php | 4 +- app/Views/pages/v2/m701/lists.php | 728 ++++++++++++++++++ public/architectui/e621231ec630d4aa48e9.png | Bin 1860 -> 2710 bytes .../architectui/e621231ec630d4aa48e9.png.cp | Bin 0 -> 1860 bytes 9 files changed, 1611 insertions(+), 2 deletions(-) create mode 100644 app/Controllers/Common/Common.php create mode 100644 app/Controllers/V2/M701.php create mode 100644 app/Models/common/CommonModel.php create mode 100644 app/Models/v2/M701Model.php create mode 100644 app/Views/pages/v2/m701/lists.php create mode 100644 public/architectui/e621231ec630d4aa48e9.png.cp diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 5686df9..b89b327 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -19,7 +19,13 @@ $routes->get('/home', 'Home\Home::dashboard'); $routes->get('/home/viewStatData', to: 'Home\Home::viewStatData'); // 실적조회 $routes->get('/home/getHomeFaxCount', to: 'Home\Home::getHomeFaxCount'); // 팩스조회 +/** + * 공통 API + */ +$routes->group('common', ['namespace' => 'App\Controllers\Common'], function ($routes) { + $routes->get('common/getVrfcCode', 'Common::getVrfcCode'); +}); /** * 게시판 (board) 그룹 @@ -43,6 +49,27 @@ $routes->group('board', ['namespace' => 'App\Controllers\Board'], function ($rou }); +/** + * 실적관리 + */ +$routes->group('', ['namespace' => 'App\Controllers\V2'], static function ($routes) { + /** + * 일반확인매물관리 + */ + $routes->group('m701', static function ($routes) { + $routes->get('m701a/lists', 'M701::lists'); + + /** + * 확인매물현황 - API + */ + $routes->get('m701a/getResultList', 'M701::getResultList'); + $routes->get('m701a/excel', 'M701::excel'); + + }); + +}); + + /** * 아파트단지 DB구축 그룹 */ @@ -142,6 +169,10 @@ $routes->group('results', ['namespace' => 'App\Controllers\Results'], function ( /** API - 확인매물일별실적 */ }); + +/** + * 실적관리 그룹 + */ $routes->group('', ['namespace' => 'App\Controllers\Results'], static function ($routes) { // 확인매물일별실적 diff --git a/app/Controllers/Common/Common.php b/app/Controllers/Common/Common.php new file mode 100644 index 0000000..c06aafa --- /dev/null +++ b/app/Controllers/Common/Common.php @@ -0,0 +1,27 @@ +model = new CommonModel(); + } + + public function getVrfcCode() + { + $type = $this->request->getGet("type"); + $type = "VRFC_TYPE_SUB_" . $type; + + + $data = $this->model->getVrfcCode($type); + + return $this->response->setJSON($data); + + } +} \ No newline at end of file diff --git a/app/Controllers/V2/M701.php b/app/Controllers/V2/M701.php new file mode 100644 index 0000000..e644b96 --- /dev/null +++ b/app/Controllers/V2/M701.php @@ -0,0 +1,119 @@ +model = new M701Model(); + $this->codeModel = new CodeModel(); + } + + public function lists(): string + { + + $codes = $this->codeModel->getCodeLists(['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'ARTICLE_TYPE']); // 코드조회 + $sido = $this->model->getAreaList(); // 지역조회 + $bonbu = $this->model->getBonbuList(); + $team = $this->model->getTeamList(); + $user = $this->model->getUserList(); + + return view("pages/v2/m701/lists", [ + "sido" => $sido, + "bonbu" => $bonbu, + "team" => $team, + "user" => $user, + "codes" => $codes, + ]); + } + + 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'), // 매물번호 + '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'), // 담당 + 'vrfcreq_way' => $this->request->getGet('vrfcreq_way'), // 검증방식1 + 'vrfc_type_sub' => $this->request->getGet('vrfc_type_sub'), // 검증방식2 + 'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사 + 'rlet_type_cd' => $this->request->getGet('rlet_type_cd'), // 매물종류 + 'reference_file_url_yn' => $this->request->getGet('reference_file_url_yn'), // 참고용 + 'corp_own' => $this->request->getGet('corp_own'), // 법인 + ]; + + $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'), // 매물번호 + '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'), // 담당 + 'vrfcreq_way' => $this->request->getGet('vrfcreq_way'), // 검증방식1 + 'vrfc_type_sub' => $this->request->getGet('vrfc_type_sub'), // 검증방식2 + 'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사 + 'rlet_type_cd' => $this->request->getGet('rlet_type_cd'), // 매물종류 + 'reference_file_url_yn' => $this->request->getGet('reference_file_url_yn'), // 참고용 + 'corp_own' => $this->request->getGet('corp_own'), // 법인 + ]; + + $datas = $this->model->getExcelList($data); + + return $this->response->setJSON(body: [ + 'data' => $datas, + ]); + + } catch (\Exception $e) { + $e->getPrevious()->getTraceAsString(); + } + } +} + + diff --git a/app/Models/common/CommonModel.php b/app/Models/common/CommonModel.php new file mode 100644 index 0000000..5340252 --- /dev/null +++ b/app/Models/common/CommonModel.php @@ -0,0 +1,20 @@ +db->query($sql, [$type]); + + return $query->getResultArray(); + } +} \ No newline at end of file diff --git a/app/Models/v2/M701Model.php b/app/Models/v2/M701Model.php new file mode 100644 index 0000000..87731a1 --- /dev/null +++ b/app/Models/v2/M701Model.php @@ -0,0 +1,684 @@ +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_vrfc_req b ON a.vr_sq = b.vr_sq + LEFT JOIN v2_modify_info c ON a.vr_sq = c.vr_sq + LEFT JOIN v2_article_info_etc m ON a.vr_sq = m.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 d45 ON d45.vr_sq = a.vr_sq AND d45.stat_cd = '45' + LEFT JOIN v2_chg_stat d49 ON d49.vr_sq = a.vr_sq AND d49.stat_cd = '49' + 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 users i ON a.charger = i.usr_id + LEFT JOIN users j ON a.reg_charger = j.usr_id + LEFT JOIN v2_check_list k ON a.vr_sq = k.vr_sq AND k.type = '21' + LEFT JOIN v2_check_list l ON a.vr_sq = l.vr_sq AND l.type = '22' + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' + + WHERE 1=1 + "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 매물구분 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; + } + + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 완료기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + // 검증방식 + if (!empty($data['vrfc_type_sub'])) { + $sql .= "AND a.vrfc_type_sub = '{$data['vrfc_type_sub']}' "; + } else { + if (!empty($data['vrfcreq_way'])) { + $sql .= "AND b.vrfc_type = '{$data['vrfcreq_way']}' "; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 지역구분 + 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['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['reference_file_url_yn'])) { + $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; + } + + // 법인 + if (!empty($data['corp_own'])) { + $sql .= "AND m.corp_own = '{$data['a.corp_own']}' "; + } + + } + + + $query = $this->db->query($sql); + + return $query->getRow()->cnt; + } + + public function getResultList($start, $end, $data) + { + $sql = "SELECT + a.vr_sq, + j.usr_nm as reg_charger, + a.atcl_no, + a.cpid, + a.cp_atcl_id, + a.rlet_type_cd, + a.address1, + a.sise, + a.rdate, + a.seller_tel_no, + a.seller_nm, + a.realtor_nm, + a.realtor_tel_no, + a.rlet_type_cd, + a.charger, + b.insert_tm, + b.stat_cd, + c.bild_nm, + b.vrfc_type, + c.rm_no, + c.floor, + c.address_code, + c.address2, + m.address2a, + m.address2b, + c.address3, + c.trade_type, + 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, + greatest(ifnull(d45.insert_tm, ''), ifnull(d49.insert_tm, '')) as rgbk_check_tm, + e.insert_tm as result_tm, + f.region_nm, + g.cd_nm as pre_stat, + h.cd_nm as vrfc_type, + i.usr_nm, + d2.insert_tm as stat_39_tm, + a.vrfc_type_sub, + a.reference_file_url_yn, + k.comment AS reg_conf_yn_info_2, + l.comment AS reg_conf_yn_info_3, + m.corp_own + FROM + v2_article_info a + LEFT JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq + LEFT JOIN v2_modify_info c ON a.vr_sq = c.vr_sq + LEFT JOIN v2_article_info_etc m ON a.vr_sq = m.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 d45 ON d45.vr_sq = a.vr_sq AND d45.stat_cd = '45' + LEFT JOIN v2_chg_stat d49 ON d49.vr_sq = a.vr_sq AND d49.stat_cd = '49' + 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 users i ON a.charger = i.usr_id + LEFT JOIN users j ON a.reg_charger = j.usr_id + LEFT JOIN v2_check_list k ON a.vr_sq = k.vr_sq AND k.type = '21' + LEFT JOIN v2_check_list l ON a.vr_sq = l.vr_sq AND l.type = '22' + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' + + WHERE 1=1 "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 매물구분 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; + } + + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 완료기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + // 검증방식 + if (!empty($data['vrfc_type_sub'])) { + $sql .= "AND a.vrfc_type_sub = '{$data['vrfc_type_sub']}' "; + } else { + if (!empty($data['vrfcreq_way'])) { + $sql .= "AND b.vrfc_type = '{$data['vrfcreq_way']}' "; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 지역구분 + 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['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['reference_file_url_yn'])) { + $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; + } + + // 법인 + if (!empty($data['corp_own'])) { + $sql .= "AND m.corp_own = '{$data['a.corp_own']}' "; + } + + } + + + $sql .= "ORDER BY b.vr_sq DESC , b.insert_tm DESC + + LIMIT {$start}, {$end} "; + + $query = $this->db->query($sql); + + return $query->getResultArray(); + } + + + // 엑셀 다운로드 + public function getExcelList($data) + { + $sql = "SELECT + a.atcl_no AS '매물번호', + g.cd_nm AS '진행상태', + b.insert_tm AS '접수시간', + h.cd_nm AS '검증방식', + CONCAT(f.region_nm, ' ', c.rm_no) AS '주소', + CONCAT(c.address2, ' ', c.address3) AS '상세주소', + a.cpid AS '매체사', + a.realtor_nm AS '중개소', + i.usr_nm AS '서류/전화 담당자', + IFNULL(d.insert_tm, d2.insert_tm) AS '서류/전화 확인완료시간', + a.reg_charger AS '등기부등본 담당자', + greatest(ifnull(d45.insert_tm, ''), ifnull(d49.insert_tm, '')) AS '등기부등본 확인시간', + e.insert_tm AS '검증완료 일시', + k.comment AS '주소 불일치 사유', + l.comment AS '의뢰인 불일치 사유' + FROM + v2_article_info a + LEFT JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq + LEFT JOIN v2_modify_info c ON a.vr_sq = c.vr_sq + LEFT JOIN v2_article_info_etc m ON a.vr_sq = m.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 d45 ON d45.vr_sq = a.vr_sq AND d45.stat_cd = '45' + LEFT JOIN v2_chg_stat d49 ON d49.vr_sq = a.vr_sq AND d49.stat_cd = '49' + 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 users i ON a.charger = i.usr_id + LEFT JOIN users j ON a.reg_charger = j.usr_id + LEFT JOIN v2_check_list k ON a.vr_sq = k.vr_sq AND k.type = '21' + LEFT JOIN v2_check_list l ON a.vr_sq = l.vr_sq AND l.type = '22' + LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39' + + WHERE 1=1 "; + + // 매물번호 + if (!empty($data['atcl_no'])) { + $sql .= "AND a.atcl = '{$data['atcl_no']}' "; + } else { + // 현재상태 + if (!empty($data['stat_cd'])) { + $sql .= "AND b.stat_cd = '{$data['stat_cd']}' "; + } + + // 중개소 + if (!empty($data['realtor_nm'])) { + $sql .= "AND a.realtor_nm = '{$data['realtor_nm']}' "; + } + + // 매물구분 + if (!empty($data['rlet_type_cd'])) { + $sql .= "AND a.rlet_type_cd = '{$data['rlet_type_cd']}' "; + } + + + // 접수기간 + if (!empty($data['receipt_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['receipt_sdate']} 00:00:00' "; + } + + if (!empty($data['receipt_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['receipt_edate']} 23:59:59' "; + } + + // 완료기간 + if (!empty($data['complete_sdate'])) { + $sql .= "AND b.insert_tm >= '{$data['complete_sdate']} 00:00:00' "; + } + + if (!empty($data['complete_edate'])) { + $sql .= "AND b.insert_tm <= '{$data['complete_edate']} 23:59:59' "; + } + + // 검증방식 + if (!empty($data['vrfc_type_sub'])) { + $sql .= "AND a.vrfc_type_sub = '{$data['vrfc_type_sub']}' "; + } else { + if (!empty($data['vrfcreq_way'])) { + $sql .= "AND b.vrfc_type = '{$data['vrfcreq_way']}' "; + } + } + + // 매체사 + if (!empty($data['rcpt_cpid'])) { + $sql .= "AND a.cpid = '{$data['rcpt_cpid']}' "; + } + + // 지역구분 + 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['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['reference_file_url_yn'])) { + $sql .= "AND a.reference_file_url_yn = '{$data['a.reference_file_url_yn']}' "; + } + + // 법인 + if (!empty($data['corp_own'])) { + $sql .= "AND m.corp_own = '{$data['a.corp_own']}' "; + } + + } + + + $sql .= "ORDER BY b.vr_sq DESC , b.insert_tm DESC "; + + $query = $this->db->query($sql); + + return $query->getResultArray(); + } +} \ No newline at end of file diff --git a/app/Views/layouts/topbar.php b/app/Views/layouts/topbar.php index 2a19034..037ed4a 100644 --- a/app/Views/layouts/topbar.php +++ b/app/Views/layouts/topbar.php @@ -138,11 +138,11 @@ diff --git a/app/Views/pages/v2/m701/lists.php b/app/Views/pages/v2/m701/lists.php new file mode 100644 index 0000000..c6aff66 --- /dev/null +++ b/app/Views/pages/v2/m701/lists.php @@ -0,0 +1,728 @@ +extend('layouts/main') ?> + +section('content') ?> + + +

확인매물 현황

+ +
+
+
+
+ + + + + +
+ + 매물번호를 입력하면 다른 조건은 무시됩니다. + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ + +
+
+
+
+ +
+ +
+ + ~ + +
+
+ + +
+ +
+ + ~ + +
+
+ + +
+ +
+ + + +
+
+
+
+ +
+ +
+ + + +
+
+ + +
+ +
+ + +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+
+ + +
+
+
+
+ +
+
+
+
+ +
+ +
+ + + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
매물번호진행상태접수시간검증방식주소상세주소매체사중개소서류/전화
담당자
서류/전화
확인완료시간
등기부등본
담당자
등기부등본
확인시간
검증완료
일시
+
+
+
+ + + + + + + + +endSection() ?> \ No newline at end of file diff --git a/public/architectui/e621231ec630d4aa48e9.png b/public/architectui/e621231ec630d4aa48e9.png index 915de3adb2c9a3f4be7a4111c6bd44ff5df6c428..8af0164a4fd6a968e8a43406d6eb140e2240a595 100644 GIT binary patch delta 2702 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