공통화 작업 및 워커 해더
This commit is contained in:
@@ -1338,4 +1338,66 @@ class Receipt extends BaseController
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function modifyPriceInfo(){
|
||||
try {
|
||||
$rcpt_sq = $this->request->getPost('rcpt_sq'); // 필수
|
||||
$rcpt_key = $this->request->getPost('rcpt_key'); // 필수
|
||||
$rcpt_no = $this->request->getPost('rcpt_no'); // 선택
|
||||
$trade_type = $this->request->getPost('trade_type'); // 거래구분
|
||||
$rcpt_product_info2 = $this->request->getPost('rcpt_product_info2'); // 보증금
|
||||
$rcpt_product_info3 = $this->request->getPost('rcpt_product_info3'); // 월세
|
||||
$rcpt_product_info4 = $this->request->getPost('rcpt_product_info4'); // 분양가
|
||||
$rcpt_product_info5 = $this->request->getPost('rcpt_product_info5'); // 프리미엄
|
||||
$rcpt_ptp_no = $this->request->getPost('rcpt_ptp_no'); // 단지정보
|
||||
$rcpt_hscp_no = $this->request->getPost('rcpt_hscp_no'); // 평형정보
|
||||
|
||||
// 거래유형에 따른 가격 정보 제한
|
||||
$return = limitHscpMarketPriceInfo($trade_type, $rcpt_hscp_no, $rcpt_ptp_no, $rcpt_product_info2);
|
||||
if (empty($return)){
|
||||
|
||||
}
|
||||
|
||||
if (empty($rcpt_sq) || empty($trade_type)) {
|
||||
return $this->response->setJSON([
|
||||
'code' => '1',
|
||||
'msg' => '필수 파라미터가 누락되었습니다.'
|
||||
]);
|
||||
}
|
||||
|
||||
$params = [
|
||||
'rcpt_sq' => $rcpt_sq,
|
||||
'rcpt_key' => $rcpt_key,
|
||||
'rcpt_no' => $rcpt_no,
|
||||
'trade_type' => $trade_type,
|
||||
'rcpt_product_info2' => $rcpt_product_info2,
|
||||
'rcpt_product_info3' => $rcpt_product_info3,
|
||||
'rcpt_product_info4' => $rcpt_product_info4,
|
||||
'rcpt_product_info5' => $rcpt_product_info5,
|
||||
'rcpt_ptp_no' => $rcpt_ptp_no,
|
||||
'rcpt_hscp_no' => $rcpt_hscp_no,
|
||||
];
|
||||
|
||||
$result = $this->model->modifyPriceInfo($params);
|
||||
|
||||
if (!$result['success']) {
|
||||
return $this->response->setJSON([
|
||||
'code' => '1',
|
||||
'msg' => $result['msg'] ?? '가격 정보 수정 실패'
|
||||
]);
|
||||
}
|
||||
|
||||
return $this->response->setJSON([
|
||||
'code' => '0',
|
||||
'msg' => '가격 정보가 수정되었습니다.'
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
log_message('error', 'modifyPriceInfo error: ' . $e->getMessage());
|
||||
return $this->response->setJSON([
|
||||
'code' => '1',
|
||||
'msg' => '가격 정보 수정 중 에러가 발생했습니다: ' . $e->getMessage()
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,28 +81,36 @@ class WorkerLog extends BaseController
|
||||
$lines = file($filePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||
|
||||
foreach ($lines as $line) {
|
||||
// 로그 포맷: [2025-12-22 10:30:45] [INFO] [NaverWorker::run:95] 메시지
|
||||
if (preg_match('/\[(.+?)\]\s*\[(.+?)\]\s*(?:\[(.+?)\]\s*)?(.+)/', $line, $matches)) {
|
||||
$logs[] = [
|
||||
'timestamp' => $matches[1],
|
||||
'level' => $matches[2],
|
||||
'location' => $matches[3] ?? '',
|
||||
'message' => $matches[4]
|
||||
];
|
||||
} else {
|
||||
// 파싱 실패한 경우 원본 그대로
|
||||
$logs[] = [
|
||||
'timestamp' => date('Y-m-d H:i:s'),
|
||||
'level' => 'UNKNOWN',
|
||||
'location' => '',
|
||||
'message' => $line
|
||||
];
|
||||
}
|
||||
$logs[] = $this->parseLogLine($line);
|
||||
}
|
||||
|
||||
return $logs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 로그 한 줄 파싱
|
||||
*/
|
||||
private function parseLogLine($line)
|
||||
{
|
||||
// 로그 포맷: [2025-12-22 10:30:45] [INFO] [NaverWorker::run:95] 메시지
|
||||
if (preg_match('/\[(.+?)\]\s*\[(.+?)\]\s*(?:\[(.+?)\]\s*)?(.+)/', $line, $matches)) {
|
||||
return [
|
||||
'timestamp' => $matches[1],
|
||||
'level' => $matches[2],
|
||||
'location' => $matches[3] ?? '',
|
||||
'message' => $matches[4]
|
||||
];
|
||||
}
|
||||
|
||||
// 파싱 실패한 경우 원본 그대로
|
||||
return [
|
||||
'timestamp' => date('Y-m-d H:i:s'),
|
||||
'level' => 'UNKNOWN',
|
||||
'location' => '',
|
||||
'message' => $line
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 로그 파일이 존재하는 날짜 목록 가져오기
|
||||
*/
|
||||
@@ -151,14 +159,7 @@ class WorkerLog extends BaseController
|
||||
$newLines = array_slice($lines, $lastId);
|
||||
|
||||
foreach ($newLines as $line) {
|
||||
if (preg_match('/\[(.+?)\]\s*\[(.+?)\]\s*(?:\[(.+?)\]\s*)?(.+)/', $line, $matches)) {
|
||||
$newLogs[] = [
|
||||
'timestamp' => $matches[1],
|
||||
'level' => $matches[2],
|
||||
'location' => $matches[3] ?? '',
|
||||
'message' => $matches[4]
|
||||
];
|
||||
}
|
||||
$newLogs[] = $this->parseLogLine($line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
163
app/Controllers/V2/BaseV2Controller.php
Normal file
163
app/Controllers/V2/BaseV2Controller.php
Normal file
@@ -0,0 +1,163 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Models\common\CodeModel;
|
||||
|
||||
/**
|
||||
* BaseV2Controller
|
||||
* V2 모듈 공통 로직: lists / getResultList / excel
|
||||
*
|
||||
* 하위 클래스에서 구현해야 하는 메서드:
|
||||
* - createModel() : 모듈 전용 Model 인스턴스 반환
|
||||
* - getCodeKeys() : lists()에서 로드할 코드 카테고리 배열 반환
|
||||
* - getViewName() : lists()에서 렌더링할 뷰 경로 반환
|
||||
* - getSearchKeys() : getResultList/excel에서 수집할 GET 파라미터 키 배열 반환
|
||||
*/
|
||||
abstract class BaseV2Controller extends BaseController
|
||||
{
|
||||
protected $model;
|
||||
protected $codeModel;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->codeModel = new CodeModel();
|
||||
$this->model = $this->createModel();
|
||||
}
|
||||
|
||||
abstract protected function createModel();
|
||||
abstract protected function getCodeKeys(): array;
|
||||
abstract protected function getViewName(): string;
|
||||
abstract protected function getSearchKeys(): array;
|
||||
|
||||
public function lists(): string
|
||||
{
|
||||
$codes = $this->codeModel->getCodeLists($this->getCodeKeys());
|
||||
$sido = $this->model->getAreaList();
|
||||
$bonbu = $this->model->getBonbuList();
|
||||
$team = $this->model->getTeamList();
|
||||
$user = $this->model->getUserList();
|
||||
|
||||
$this->data['codes'] = $codes;
|
||||
$this->data['sido'] = $sido;
|
||||
$this->data['bonbu'] = $bonbu;
|
||||
$this->data['team'] = $team;
|
||||
$this->data['user'] = $user;
|
||||
|
||||
return view($this->getViewName(), $this->data);
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
|
||||
$data = $this->buildSearchData();
|
||||
|
||||
$totalCount = $this->model->getTotalCount($data);
|
||||
$datas = $this->model->getResultList($start, $end, $data);
|
||||
|
||||
return $this->response->setJSON([
|
||||
'recordsTotal' => $totalCount,
|
||||
'recordsFiltered' => $totalCount,
|
||||
'data' => $datas,
|
||||
]);
|
||||
}
|
||||
|
||||
public function excel()
|
||||
{
|
||||
try {
|
||||
$data = $this->buildSearchData();
|
||||
$datas = $this->model->getExcelList($data);
|
||||
|
||||
return $this->response->setJSON(['data' => $datas]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$e->getPrevious()->getTraceAsString();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getSearchKeys()에 정의된 키만 GET에서 수집해서 배열로 반환
|
||||
*/
|
||||
protected function buildSearchData(): array
|
||||
{
|
||||
$data = [];
|
||||
foreach ($this->getSearchKeys() as $key) {
|
||||
$rawValue = $this->request->getGet($key);
|
||||
$data[$key] = $this->normalizeSearchValue($key, $rawValue);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 공통 파라미터 정규화
|
||||
* - null/공백은 빈 문자열로 통일
|
||||
* - 문자열은 trim 처리
|
||||
* - 날짜 키(date 포함)는 형식 검증 실패 시 빈 문자열로 처리
|
||||
*/
|
||||
protected function normalizeSearchValue(string $key, $value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
return array_map(static function ($item) {
|
||||
if ($item === null) {
|
||||
return '';
|
||||
}
|
||||
if (is_string($item)) {
|
||||
$item = trim($item);
|
||||
return $item === '' ? '' : $item;
|
||||
}
|
||||
return $item;
|
||||
}, $value);
|
||||
}
|
||||
|
||||
if ($value === null) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (is_string($value)) {
|
||||
$value = trim($value);
|
||||
if ($value === '') {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->isDateKey($key) && !$this->isValidDateValue((string) $value)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 날짜 성격 파라미터 판별
|
||||
* 예: receipt_sdate, receipt_edate, complete_sdate, stat_complete_date 등
|
||||
*/
|
||||
protected function isDateKey(string $key): bool
|
||||
{
|
||||
return strpos($key, 'date') !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 허용 날짜 형식 검증
|
||||
* - YYYY-MM-DD
|
||||
* - YYYYMMDD
|
||||
*/
|
||||
protected function isValidDateValue(string $value): bool
|
||||
{
|
||||
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $value) === 1) {
|
||||
[$year, $month, $day] = explode('-', $value);
|
||||
return checkdate((int) $month, (int) $day, (int) $year);
|
||||
}
|
||||
|
||||
if (preg_match('/^\d{8}$/', $value) === 1) {
|
||||
$year = substr($value, 0, 4);
|
||||
$month = substr($value, 4, 2);
|
||||
$day = substr($value, 6, 2);
|
||||
return checkdate((int) $month, (int) $day, (int) $year);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1,130 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\FormValidation;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M701Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use Exception;
|
||||
use function PHPUnit\Framework\throwException;
|
||||
use App\Models\v2\M701Model;
|
||||
|
||||
class M701 extends BaseController
|
||||
class M701 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M701Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M701Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
|
||||
$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();
|
||||
|
||||
$this->data['sido'] = $sido;
|
||||
$this->data['bonbu'] = $bonbu;
|
||||
$this->data['team'] = $team;
|
||||
$this->data['user'] = $user;
|
||||
$this->data['codes'] = $codes;
|
||||
|
||||
return view("pages/v2/m701/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m701/lists';
|
||||
}
|
||||
|
||||
$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'), // 법인
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'reference_file_url_yn',
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id = null)
|
||||
{
|
||||
$id = (int) $id;
|
||||
@@ -1700,5 +1630,3 @@ class M701 extends BaseController
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,123 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M702Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use Exception;
|
||||
use App\Models\v2\M702Model;
|
||||
|
||||
class M702 extends BaseController
|
||||
class M702 extends BaseV2Controller
|
||||
{
|
||||
private $model;
|
||||
private $codeModel;
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M702Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M702Model();
|
||||
}
|
||||
|
||||
public function lists()
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$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();
|
||||
|
||||
$this->data['codes'] = $codes;
|
||||
$this->data['sido'] = $sido;
|
||||
$this->data['bonbu'] = $bonbu;
|
||||
$this->data['team'] = $team;
|
||||
$this->data['user'] = $user;
|
||||
|
||||
return view("pages/v2/m702/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m702/lists';
|
||||
}
|
||||
|
||||
$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'), // 매물종류
|
||||
'corp_own' => $this->request->getGet('corp_own'), // 법인
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'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'), // 매물종류
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 배정변경
|
||||
public function updateAssign()
|
||||
{
|
||||
try {
|
||||
|
||||
@@ -1,129 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M703Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use App\Models\v2\M703Model;
|
||||
|
||||
class M703 extends BaseController
|
||||
class M703 extends BaseV2Controller
|
||||
{
|
||||
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M703Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M703Model();
|
||||
}
|
||||
|
||||
public function lists()
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$codes = $this->codeModel->getCodeLists(['CP_ID', 'STEP_VERIFICATION', 'RECEIPT_STATUS3', 'FAX_CORP']); // 코드조회
|
||||
$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/m703/lists", $this->data);
|
||||
return ['CP_ID', 'STEP_VERIFICATION', 'RECEIPT_STATUS3', 'FAX_CORP'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m703/lists';
|
||||
}
|
||||
|
||||
$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'), // 담당
|
||||
'vrfcreq_way' => $this->request->getGet('vrfcreq_way'), // 검증방식1
|
||||
'vrfc_type_sub' => $this->request->getGet('vrfc_type_sub'), // 검증방식2
|
||||
'target_yn' => $this->request->getGet('target_yn'), // 홍보확인서여부
|
||||
'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사
|
||||
'chk_rec' => $this->request->getGet('chk_rec'), // 동의서 유무
|
||||
'fax_corp' => $this->request->getGet('fax_corp'), // 팩스업체
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'chk_atcl_no',
|
||||
'caller_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'target_yn',
|
||||
'rcpt_cpid',
|
||||
'chk_rec',
|
||||
'fax_corp',
|
||||
];
|
||||
|
||||
$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'), // 담당
|
||||
'vrfcreq_way' => $this->request->getGet('vrfcreq_way'), // 검증방식1
|
||||
'vrfc_type_sub' => $this->request->getGet('vrfc_type_sub'), // 검증방식2
|
||||
'target_yn' => $this->request->getGet('target_yn'), // 홍보확인서여부
|
||||
'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사
|
||||
'chk_rec' => $this->request->getGet('chk_rec'), // 동의서 유무
|
||||
'fax_corp' => $this->request->getGet('fax_corp'), // 팩스업체
|
||||
];
|
||||
|
||||
$datas = $this->model->getExcelList($data);
|
||||
|
||||
return $this->response->setJSON(body: [
|
||||
'data' => $datas,
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$e->getPrevious()->getTraceAsString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id)
|
||||
{
|
||||
$naver = new NaverApiClient();
|
||||
|
||||
@@ -1,128 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M704Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use Exception;
|
||||
use App\Models\v2\M704Model;
|
||||
|
||||
class M704 extends BaseController
|
||||
class M704 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M704Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M704Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$codes = $this->codeModel->getCodeLists(['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'TEL_FAIL_CAUSE', '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/m704/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'TEL_FAIL_CAUSE', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m704/lists';
|
||||
}
|
||||
|
||||
$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
|
||||
'stat_complete_date' => $this->request->getGet('stat_complete_date'), // 진행상태별시간유형
|
||||
'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'), // 법인
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'stat_complete_date',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'reference_file_url_yn',
|
||||
'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
|
||||
'stat_complete_date' => $this->request->getGet('stat_complete_date'), // 진행상태별시간유형
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id)
|
||||
{
|
||||
$naver = new NaverApiClient();
|
||||
|
||||
@@ -1,86 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\Common;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M705Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use App\Models\v2\M705Model;
|
||||
|
||||
class M705 extends BaseController
|
||||
class M705 extends BaseV2Controller
|
||||
{
|
||||
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M705Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M705Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$codes = $this->codeModel->getCodeLists(['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'TEL_FAIL_CAUSE', '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/m705/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'TEL_FAIL_CAUSE', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m705/lists';
|
||||
}
|
||||
|
||||
$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'), // 매물종류
|
||||
'chk_spc_yn' => $this->request->getGet('chk_spc_yn'), // 면적여부
|
||||
'reference_file_url_yn' => $this->request->getGet('reference_file_url_yn'), // 참고용
|
||||
'corp_own' => $this->request->getGet('corp_own'), // 법인
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'chk_spc_yn',
|
||||
'reference_file_url_yn',
|
||||
'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 getNotAssign()
|
||||
{
|
||||
try {
|
||||
|
||||
@@ -1,117 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M706Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use Exception;
|
||||
use App\Models\v2\M706Model;
|
||||
|
||||
class M706 extends BaseController
|
||||
class M706 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M706Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M706Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$codes = $this->codeModel->getCodeLists(['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID']); // 코드조회
|
||||
$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/m706/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m706/lists';
|
||||
}
|
||||
|
||||
$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
|
||||
'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'rcpt_cpid',
|
||||
];
|
||||
|
||||
$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
|
||||
'rcpt_cpid' => $this->request->getGet('rcpt_cpid'), // 매체사
|
||||
];
|
||||
|
||||
$datas = $this->model->getExcelList($data);
|
||||
|
||||
return $this->response->setJSON(body: [
|
||||
'data' => $datas,
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$e->getPrevious()->getTraceAsString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id)
|
||||
{
|
||||
$naver = new NaverApiClient();
|
||||
|
||||
@@ -1,125 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\Common;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M708Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use Exception;
|
||||
use App\Models\v2\M708Model;
|
||||
|
||||
class M708 extends BaseController
|
||||
class M708 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M708Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M708Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$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);
|
||||
return ['CP_ID', 'STEP_VERIFICATION', 'RECEIPT_STATUS3', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m708/lists';
|
||||
}
|
||||
|
||||
$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'), // 검증방식
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'chk_atcl_no',
|
||||
'caller_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'target_yn',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id)
|
||||
{
|
||||
$id = (string) $id;
|
||||
|
||||
@@ -1,120 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\Common;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\v2\M709Model;
|
||||
|
||||
class M709 extends BaseController
|
||||
class M709 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M709Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M709Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$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/m709/lists", $this->data);
|
||||
return ['CP_ID', 'STEP_VERIFICATION', 'RECEIPT_STATUS3', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m709/lists';
|
||||
}
|
||||
|
||||
$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'), // 검증방식
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'chk_atcl_no',
|
||||
'caller_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'target_yn',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id)
|
||||
{
|
||||
$id = (string) $id;
|
||||
|
||||
@@ -1,128 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\Common;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M712Model;
|
||||
|
||||
class M712 extends BaseController
|
||||
class M712 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M712Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M712Model();
|
||||
}
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$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();
|
||||
|
||||
$this->data['sido'] = $sido;
|
||||
$this->data['bonbu'] = $bonbu;
|
||||
$this->data['team'] = $team;
|
||||
$this->data['user'] = $user;
|
||||
$this->data['codes'] = $codes;
|
||||
|
||||
return view("pages/v2/m712/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m712/lists';
|
||||
}
|
||||
|
||||
$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'), // 참고용
|
||||
'ownerTypeCode' => $this->request->getGet('ownerTypeCode'), // 소유자 구분
|
||||
'document_not_received_yn' => $this->request->getGet('document_not_received_yn'), // 서류미수취
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'reference_file_url_yn',
|
||||
'ownerTypeCode',
|
||||
'document_not_received_yn',
|
||||
];
|
||||
|
||||
$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'), // 참고용
|
||||
'ownerTypeCode' => $this->request->getGet('ownerTypeCode'), // 소유자 구분
|
||||
'document_not_received_yn' => $this->request->getGet('document_not_received_yn'), // 서류미수취
|
||||
];
|
||||
|
||||
$datas = $this->model->getExcelList($data);
|
||||
|
||||
return $this->response->setJSON(body: [
|
||||
'data' => $datas,
|
||||
]);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$e->getPrevious()->getTraceAsString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id): string
|
||||
{
|
||||
|
||||
|
||||
@@ -1,127 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\V2;
|
||||
|
||||
use App\Controllers\BaseController;
|
||||
use App\Controllers\V2\BaseV2Controller;
|
||||
use App\Libraries\MyUpload;
|
||||
use App\Libraries\NaverApiClient;
|
||||
use App\Models\common\CodeModel;
|
||||
use App\Models\results\M415Model;
|
||||
use App\Models\v2\M710Model;
|
||||
use App\Models\v2\M713Model;
|
||||
|
||||
class M713 extends BaseController
|
||||
class M713 extends BaseV2Controller
|
||||
{
|
||||
private $model, $codeModel;
|
||||
|
||||
public function __construct()
|
||||
protected function createModel()
|
||||
{
|
||||
$this->model = new M713Model();
|
||||
$this->codeModel = new CodeModel();
|
||||
return new M713Model();
|
||||
}
|
||||
|
||||
|
||||
public function lists(): string
|
||||
protected function getCodeKeys(): array
|
||||
{
|
||||
$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();
|
||||
|
||||
$this->data['sido'] = $sido;
|
||||
$this->data['bonbu'] = $bonbu;
|
||||
$this->data['team'] = $team;
|
||||
$this->data['user'] = $user;
|
||||
$this->data['codes'] = $codes;
|
||||
|
||||
return view("pages/v2/m713/lists", $this->data);
|
||||
return ['STEP_VERIFICATION', 'VRFCREQ_WAY', 'CP_ID', 'ARTICLE_TYPE'];
|
||||
}
|
||||
|
||||
public function getResultList()
|
||||
protected function getViewName(): string
|
||||
{
|
||||
$start = (int) $this->request->getGet('start') ?: 0;
|
||||
$end = (int) $this->request->getGet('length') ?: 10;
|
||||
return 'pages/v2/m713/lists';
|
||||
}
|
||||
|
||||
$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'), // 매물종류
|
||||
'chk_spc_yn' => $this->request->getGet('chk_spc_yn'), // 면적확인
|
||||
'reference_file_url_yn' => $this->request->getGet('reference_file_url_yn'), // 참고용
|
||||
'corp_own' => $this->request->getGet('corp_own'), // 법인소유
|
||||
protected function getSearchKeys(): array
|
||||
{
|
||||
return [
|
||||
'atcl_no',
|
||||
'stat_cd',
|
||||
'realtor_nm',
|
||||
'charger_gbn',
|
||||
'assign_yn',
|
||||
'receipt_sdate',
|
||||
'receipt_edate',
|
||||
'complete_sdate',
|
||||
'complete_edate',
|
||||
'srcSido',
|
||||
'srcGugun',
|
||||
'srcDong',
|
||||
'bonbu',
|
||||
'team',
|
||||
'damdang',
|
||||
'vrfcreq_way',
|
||||
'vrfc_type_sub',
|
||||
'rcpt_cpid',
|
||||
'rlet_type_cd',
|
||||
'chk_spc_yn',
|
||||
'reference_file_url_yn',
|
||||
'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'), // 매물종류
|
||||
'chk_spc_yn' => $this->request->getGet('chk_spc_yn'), // 면적확인
|
||||
'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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 상세화면
|
||||
public function detail($id): string
|
||||
{
|
||||
$naver = new NaverApiClient();
|
||||
|
||||
@@ -7,13 +7,14 @@ if (!function_exists('limitHscpMarketPriceInfo')) {
|
||||
* @param string $ptp_no 평형코드
|
||||
* @param string $atcl_amt 가격
|
||||
*/
|
||||
function limitHscpMarketPriceInfo($CI, $trade_type, $hscp_no, $ptp_no, $atcl_amt)
|
||||
function limitHscpMarketPriceInfo($trade_type, $hscp_no, $ptp_no, $atcl_amt)
|
||||
{
|
||||
$return = array();
|
||||
|
||||
if (!empty($hscp_no) && !empty($ptp_no)) {
|
||||
|
||||
$hscpMarketPriceInfo = $CI->call_kiso_api->hscpMarketPriceInfo($hscp_no, $ptp_no);
|
||||
$naver = new \App\Libraries\NaverApiClient();
|
||||
$hscpMarketPriceInfo = $naver->hscpMarketPriceInfo($hscp_no, $ptp_no);
|
||||
|
||||
if (isset($hscpMarketPriceInfo['error'])) { //결과값 확인
|
||||
if ($hscpMarketPriceInfo['error']['code'] == 'VC027') {
|
||||
|
||||
@@ -174,6 +174,25 @@ class NaverApiClient
|
||||
return $this->request('POST', $url, $reportData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 특정 단지/평형 시세조회()
|
||||
* @param string hscpNo 단지번호
|
||||
* @param string ptpNo 평형번호
|
||||
* API: GET /confirms/hscpMarketPriceInfo.nhn?hscpNo={단지번호}&ptpNo={평형번호}
|
||||
*/
|
||||
public function hscpMarketPriceInfo($hscpNo, $ptpNo){
|
||||
$url = '/confirms/hscpMarketPriceInfo.nhn';
|
||||
$url = $this->commonModel->getCompanyInfo(3);
|
||||
$url = $url['api_server'] . $url;
|
||||
$data = [
|
||||
'hscpNo' => $hscpNo,
|
||||
'ptpNo' => $ptpNo
|
||||
];
|
||||
|
||||
return $this->request('GET', $url, $data);
|
||||
}
|
||||
|
||||
|
||||
public function submitSyncResult(string $reserveNoList): ?array
|
||||
{
|
||||
$url = "{$this->baseUrl}/site/submitSyncResult.nhn";
|
||||
|
||||
@@ -1215,8 +1215,6 @@ class ReceiptModel extends Model
|
||||
$builder->join('result b', 'b.rcpt_sq = a.rcpt_sq', 'inner');
|
||||
$builder->join('region_codes c', 'a.rcpt_dong = c.region_cd', 'left');
|
||||
$builder->join('departments d', 'b.dept_sq = d.dept_sq', 'left');
|
||||
|
||||
|
||||
$builder->where('a.rcpt_key', $id);
|
||||
|
||||
return $builder->get()->getRowArray();
|
||||
|
||||
119
app/Models/v2/BaseV2Model.php
Normal file
119
app/Models/v2/BaseV2Model.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
|
||||
/**
|
||||
* BaseV2Model
|
||||
* V2 모듈 공통 메서드: 지역/본부/팀/담당자 조회
|
||||
* 각 모듈 Model은 이 클래스를 상속받아 getTotalCount/getResultList/getExcelList 등 모듈 고유 메서드만 구현합니다.
|
||||
*/
|
||||
abstract class BaseV2Model 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();
|
||||
}
|
||||
}
|
||||
@@ -2,121 +2,11 @@
|
||||
namespace App\Models\v2;
|
||||
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M701Model extends Model
|
||||
class M701Model extends BaseV2Model
|
||||
{
|
||||
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
$sql = "SELECT
|
||||
|
||||
@@ -2,119 +2,10 @@
|
||||
namespace App\Models\v2;
|
||||
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M702Model extends Model
|
||||
class M702Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -3,119 +3,10 @@ namespace App\Models\v2;
|
||||
|
||||
use App\Models\receipt\ReceiptModel;
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M703Model extends Model
|
||||
class M703Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -2,119 +2,10 @@
|
||||
namespace App\Models\v2;
|
||||
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M704Model extends Model
|
||||
class M704Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -1,119 +1,10 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M705Model extends Model
|
||||
class M705Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -2,119 +2,10 @@
|
||||
namespace App\Models\v2;
|
||||
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M706Model extends Model
|
||||
class M706Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -3,119 +3,10 @@ namespace App\Models\v2;
|
||||
|
||||
use App\Models\receipt\ReceiptModel;
|
||||
use App\Models\webfax\FaxModel;
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M708Model extends Model
|
||||
class M708Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -1,119 +1,10 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M709Model extends Model
|
||||
class M709Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getDepartmentPath($usr_sq)
|
||||
|
||||
@@ -1,121 +1,11 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M710Model extends Model
|
||||
class M710Model extends BaseV2Model
|
||||
{
|
||||
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
$sql = "SELECT
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M711Model extends Model
|
||||
class M711Model extends BaseV2Model
|
||||
{
|
||||
|
||||
}
|
||||
@@ -1,119 +1,10 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M712Model extends Model
|
||||
class M712Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
@@ -1,119 +1,10 @@
|
||||
<?php
|
||||
namespace App\Models\v2;
|
||||
|
||||
use CodeIgniter\Model;
|
||||
use App\Models\v2\BaseV2Model;
|
||||
|
||||
class M713Model extends Model
|
||||
class M713Model extends BaseV2Model
|
||||
{
|
||||
// 지역 목록 조회
|
||||
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 getTotalCount($data)
|
||||
{
|
||||
|
||||
2
app/Views/layouts/partials/datatables_bs5_css.php
Normal file
2
app/Views/layouts/partials/datatables_bs5_css.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
3
app/Views/layouts/partials/datatables_bs5_js.php
Normal file
3
app/Views/layouts/partials/datatables_bs5_js.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
2
app/Views/layouts/partials/datatables_css.php
Normal file
2
app/Views/layouts/partials/datatables_css.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
2
app/Views/layouts/partials/datatables_js.php
Normal file
2
app/Views/layouts/partials/datatables_js.php
Normal file
@@ -0,0 +1,2 @@
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
67
app/Views/layouts/partials/datatables_v2_layout_helpers.php
Normal file
67
app/Views/layouts/partials/datatables_v2_layout_helpers.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<script type="text/javascript">
|
||||
/**
|
||||
* DataTables v2 layout topEnd 버튼 헬퍼
|
||||
* @param {Object} options - 옵션 객체
|
||||
* @param {boolean} options.showSendButton - 등기부등본 전송 버튼 표시 여부 (기본값: false)
|
||||
* @param {string} options.sendButtonText - 전송 버튼 텍스트
|
||||
* @param {boolean} options.showExcelButton - 엑셀 버튼 표시 여부 (기본값: true)
|
||||
* @param {string} options.excelButtonId - 엑셀 버튼 id
|
||||
* @param {string} options.excelButtonClass - 엑셀 버튼 class
|
||||
* @param {string} options.excelButtonHtml - 엑셀 버튼 innerHTML
|
||||
* @returns {Function} DataTable layout.topEnd 콜백 함수
|
||||
*/
|
||||
function v2TopEndButtons(options) {
|
||||
const opts = options || {};
|
||||
|
||||
return function () {
|
||||
const container = document.createElement('div');
|
||||
container.className = 'd-flex';
|
||||
container.style.gap = '8px';
|
||||
container.style.justifyContent = 'flex-end';
|
||||
|
||||
if (opts.showSendButton === true) {
|
||||
const btnSend = document.createElement('button');
|
||||
btnSend.className = 'btn btn-sm btn-outline-light';
|
||||
btnSend.textContent = opts.sendButtonText || '등기부등본 전송';
|
||||
container.append(btnSend);
|
||||
}
|
||||
|
||||
if (opts.showExcelButton !== false) {
|
||||
const btnExcel = document.createElement('button');
|
||||
btnExcel.id = opts.excelButtonId || 'excel-download';
|
||||
btnExcel.className = opts.excelButtonClass || 'btn btn-sm btn-outline-success';
|
||||
btnExcel.innerHTML = opts.excelButtonHtml || '<i class="fa fa-fw fa-file-excel-o" aria-hidden="true"></i> 엑셀다운로드';
|
||||
container.append(btnExcel);
|
||||
}
|
||||
|
||||
return container;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* DataTables v2 layout bottomStart/bottomEnd 통합 설정
|
||||
* @param {Object} options - 옵션 객체
|
||||
* @param {boolean} options.hasPageLength - pageLength 표시 여부 (기본값: true)
|
||||
* @param {boolean} options.hasInfo - info 표시 여부 (기본값: true)
|
||||
* @returns {Object} { bottomStart, bottomEnd } 객체
|
||||
*/
|
||||
function v2BottomLayout(options) {
|
||||
const opts = options || {};
|
||||
const hasPageLength = opts.hasPageLength !== false;
|
||||
const hasInfo = opts.hasInfo !== false;
|
||||
|
||||
const config = {};
|
||||
|
||||
if (hasPageLength && hasInfo) {
|
||||
config.bottomStart = ['pageLength', 'info'];
|
||||
} else if (hasPageLength) {
|
||||
config.bottomStart = 'pageLength';
|
||||
} else if (hasInfo) {
|
||||
config.bottomStart = 'info';
|
||||
}
|
||||
|
||||
config.bottomEnd = 'paging';
|
||||
|
||||
return config;
|
||||
}
|
||||
</script>
|
||||
@@ -4,104 +4,38 @@
|
||||
table th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.tab-header {
|
||||
display: inline;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<h4 class="mb-3">처리가능 수량관리</h4>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="main-card mb-3 card">
|
||||
|
||||
<!-- 탭은 card-header 안에 -->
|
||||
<div class="card-header tab-header pb-0">
|
||||
<ul class="nav nav-tabs card-header-tabs">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-bs-toggle="tab" href="#tab-eg10-0">일자별 처리가능 수량</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#tab-eg10-1">지역별 수량</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#tab-eg10-2">기본 수량</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 타이틀 -->
|
||||
<div class="card-header bg-white border-bottom shadow-sm">
|
||||
<h4 class="mb-0 fw-bold text-dark">처리가능 수량관리</h4>
|
||||
</div>
|
||||
|
||||
<!-- 탭 -->
|
||||
<ul class="nav nav-tabs px-3 pt-3 bg-white border-bottom">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-bs-toggle="tab" href="#tab-eg10-0">일자별 처리가능 수량</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#tab-eg10-1">지역별 수량</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-bs-toggle="tab" href="#tab-eg10-2">기본 수량</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
<!-- 공통 검색/필터 영역 -->
|
||||
<div class="d-flex flex-wrap align-items-end justify-content-between gap-2 mb-3">
|
||||
<div class="d-flex flex-wrap align-items-end gap-2">
|
||||
<label class="form-label mb-1 small me-2">조회조건</label>
|
||||
|
||||
<!-- 첫번째탭 -->
|
||||
<div id="form1" class="d-flex flex-wrap align-items-end gap-2">
|
||||
<div class="input-group input-group-sm" style="min-width: 320px;">
|
||||
<input type="date" class="form-control" name="sdate" id="sdate">
|
||||
<span class="input-group-text">~</span>
|
||||
<input type="date" class="form-control" name="edate" id="edate">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 두번째탭 -->
|
||||
<div id="form2" class="d-none">
|
||||
<div class="d-flex align-items-end gap-1">
|
||||
<select class="form-select form-select-sm" name="region2" id="region2" style="min-width: 180px;">
|
||||
<option value="">지역 선택</option>
|
||||
<?php foreach ($sido as $s): ?>
|
||||
<option value="<?= $s['region_cd'] ?>" <?php if ($s['region_cd'] == "1100000000") {
|
||||
echo "selected";
|
||||
} ?>>
|
||||
<?= $s['region_nm'] ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
|
||||
<div class="input-group input-group-sm" style="min-width: 180px;">
|
||||
<input type="date" class="form-control" name="sdate2" id="sdate2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 세번째탭 -->
|
||||
<div id="form3" class="d-none">
|
||||
<div class="d-flex align-items-end gap-1">
|
||||
<select class="form-select form-select-sm" name="region3" id="region3" style="min-width: 180px;">
|
||||
<option value="">지역 선택</option>
|
||||
<?php foreach ($sido as $s): ?>
|
||||
<option value="<?= $s['region_cd'] ?>" <?php if ($s['region_cd'] == "1100000000") {
|
||||
echo "selected";
|
||||
} ?>>
|
||||
<?= $s['region_nm'] ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="d-flex gap-1 ms-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download" type="button">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i> 엑셀다운로드
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-light" type="button" id="btnSearch">
|
||||
조회
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 탭 컨텐츠는 tab-content 바로 아래에 -->
|
||||
<div class="tab-content">
|
||||
|
||||
<!-- 1) 일자별 -->
|
||||
<div class="tab-pane fade show active" id="tab-eg10-0" role="tabpanel">
|
||||
<div class="border rounded p-3 bg-white">
|
||||
<table class="table table-sm table-hover table-striped mb-0 align-middle text-center w-100" id="tbl1">
|
||||
<table class="table table-sm table-hover table-striped mb-0 align-middle text-center w-100" id="tbl1" >
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2" class="align-middle">날짜</th>
|
||||
@@ -121,6 +55,36 @@
|
||||
|
||||
<!-- 2) 지역별 -->
|
||||
<div class="tab-pane fade" id="tab-eg10-1" role="tabpanel">
|
||||
<!-- 조회조건 -->
|
||||
<div class="d-flex flex-wrap align-items-end justify-content-between gap-2 mb-3">
|
||||
<div class="d-flex flex-wrap align-items-end gap-2">
|
||||
<label class="form-label mb-1 small me-2">조회조건</label>
|
||||
<div id="form2" class="d-flex align-items-end gap-1">
|
||||
<select class="form-select form-select-sm" name="region2" id="region2" style="min-width: 180px;">
|
||||
<option value="">지역 선택</option>
|
||||
<?php foreach ($sido as $s): ?>
|
||||
<option value="<?= $s['region_cd'] ?>" <?php if ($s['region_cd'] == "1100000000") {
|
||||
echo "selected";
|
||||
} ?>>
|
||||
<?= $s['region_nm'] ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<div class="input-group input-group-sm" style="min-width: 180px;">
|
||||
<input type="date" class="form-control" name="sdate2" id="sdate2">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex gap-1 ms-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download" type="button">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i> 엑셀다운로드
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-light" type="button" id="btnSearch">
|
||||
조회
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border rounded p-3 bg-white">
|
||||
<table class="table table-sm table-hover table-striped mb-0 align-middle text-center w-100" id="tbl2">
|
||||
<thead>
|
||||
@@ -142,6 +106,33 @@
|
||||
|
||||
<!-- 3) 기본 수량 -->
|
||||
<div class="tab-pane fade" id="tab-eg10-2" role="tabpanel">
|
||||
<!-- 조회조건 -->
|
||||
<div class="d-flex flex-wrap align-items-end justify-content-between gap-2 mb-3">
|
||||
<div class="d-flex flex-wrap align-items-end gap-2">
|
||||
<label class="form-label mb-1 small me-2">조회조건</label>
|
||||
<div id="form3" class="d-flex align-items-end gap-1">
|
||||
<select class="form-select form-select-sm" name="region3" id="region3" style="min-width: 180px;">
|
||||
<option value="">지역 선택</option>
|
||||
<?php foreach ($sido as $s): ?>
|
||||
<option value="<?= $s['region_cd'] ?>" <?php if ($s['region_cd'] == "1100000000") {
|
||||
echo "selected";
|
||||
} ?>>
|
||||
<?= $s['region_nm'] ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex gap-1 ms-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download" type="button">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i> 엑셀다운로드
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-light" type="button" id="btnSearch">
|
||||
조회
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="border rounded p-3 bg-white">
|
||||
<table class="table table-sm table-hover table-striped mb-0 align-middle text-center w-100" id="tbl3">
|
||||
<thead>
|
||||
@@ -193,9 +184,12 @@
|
||||
|
||||
initForm();
|
||||
|
||||
$("#sdate, #edate").on("change", function () {
|
||||
table1.ajax.reload();
|
||||
});
|
||||
// DataTable 초기화 후 날짜 변경 이벤트 등록
|
||||
setTimeout(() => {
|
||||
$("#sdate-dt, #edate-dt").on("change", function () {
|
||||
if (table1) table1.ajax.reload();
|
||||
});
|
||||
}, 500);
|
||||
|
||||
$("#btnSearch").on("click", function () {
|
||||
|
||||
@@ -216,6 +210,47 @@
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
dom: '<"d-flex flex-wrap align-items-end justify-content-between gap-2 mb-2"<"#tbl1-filter">r>tip',
|
||||
initComplete: function () {
|
||||
// DataTable 생성 완료 후 필터 영역에 조회조건 삽입
|
||||
const fmt = d => d.toISOString().slice(0, 10);
|
||||
const lastDate = getLastDateOfMonth(date.getFullYear(), date.getMonth() + 1);
|
||||
|
||||
$('#tbl1-filter').html(`
|
||||
<div class="d-flex flex-wrap align-items-end gap-2">
|
||||
<label class="form-label mb-1 small me-2">조회조건</label>
|
||||
<div class="input-group input-group-sm" style="min-width: 320px;">
|
||||
<input type="date" class="form-control" id="sdate-dt" value="${fmt(date)}">
|
||||
<span class="input-group-text">~</span>
|
||||
<input type="date" class="form-control" id="edate-dt" value="${fmt(lastDate)}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex gap-1 ms-auto">
|
||||
<button id="excel-download-dt" class="btn btn-sm btn-outline-success" type="button">
|
||||
<i class="fa fa-fw fa-file-excel-o"></i> 엑셀다운로드
|
||||
</button>
|
||||
<button id="btnSearch1" class="btn btn-sm btn-outline-light" type="button">조회</button>
|
||||
</div>
|
||||
`);
|
||||
|
||||
// 이벤트 바인딩
|
||||
$('#sdate-dt, #edate-dt').on('change', function () {
|
||||
table1.ajax.reload();
|
||||
});
|
||||
$('#btnSearch1').on('click', function () {
|
||||
table1.ajax.reload();
|
||||
});
|
||||
$('#excel-download-dt').on('click', function () {
|
||||
$.ajax({
|
||||
url: "/article/processible/excel",
|
||||
method: "GET",
|
||||
data: { sdate: $("#sdate-dt").val(), edate: $("#edate-dt").val() },
|
||||
beforeSend: function () { blockUI.blockPage({ message: tpl }) },
|
||||
complete: function () { blockUI.unblockPage() },
|
||||
success: function (result) { downloadExcelWithHeader(result.data); }
|
||||
});
|
||||
});
|
||||
},
|
||||
ajax: {
|
||||
url: '/article/processible/getList1',
|
||||
type: 'GET',
|
||||
@@ -228,11 +263,15 @@
|
||||
blockUI.unblockPage()
|
||||
},
|
||||
data: function (d) {
|
||||
d.sdate = $("#sdate").val(); // 시작일
|
||||
d.edate = $("#edate").val(); // 종료일
|
||||
const fmt = d2 => d2.toISOString().slice(0, 10);
|
||||
const lastDate = getLastDateOfMonth(date.getFullYear(), date.getMonth() + 1);
|
||||
|
||||
d.start = d.start || 0
|
||||
d.length = d.length || 10
|
||||
// input이 DOM에 있으면 그 값, 없으면 오늘/말일 기본값
|
||||
d.sdate = $("#sdate-dt").val() || fmt(date);
|
||||
d.edate = $("#edate-dt").val() || fmt(lastDate);
|
||||
|
||||
d.start = d.start || 0;
|
||||
d.length = d.length || 10;
|
||||
},
|
||||
},
|
||||
"columnDefs": [
|
||||
@@ -357,10 +396,10 @@
|
||||
|
||||
const fmt = d => d.toISOString().slice(0, 10);
|
||||
|
||||
$('#sdate').val(fmt(date));
|
||||
$('#sdate-dt').val(fmt(date));
|
||||
|
||||
const lastDate = getLastDateOfMonth(date.getFullYear(), date.getMonth() + 1);
|
||||
$('#edate').val(fmt(lastDate));
|
||||
$('#edate-dt').val(fmt(lastDate));
|
||||
|
||||
$('#sdate2').val(fmt(date));
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
$usr_level = session('usr_level');
|
||||
|
||||
$isV2 = (($data['isSiteVRVerification'] ?? '') === 'Y');
|
||||
?>
|
||||
<?= $this->extend('layouts/main') ?>
|
||||
<?= $this->section('content') ?>
|
||||
@@ -257,7 +257,8 @@ $usr_level = session('usr_level');
|
||||
<button type="button" class="btn btn-sm btn-outline-light btn-edit"
|
||||
onclick="editPriceInfo();">수정</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-success btn-save"
|
||||
onclick="modifyPriceInfo();">가격수정</button>
|
||||
data-hscp_no="<?php echo $data['rcpt_hscp_no'];?>" data-ptp_no="<?php echo $data['rcpt_ptp_no'];?>"
|
||||
onclick="modifyPriceInfo(this);">가격수정</button>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
@@ -1288,12 +1289,16 @@ $usr_level = session('usr_level');
|
||||
<div class="my-3">
|
||||
<div class="border rounded-3 p-2">
|
||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||
<div class="fw-semibold">매물사진 (최대 15장)</div>
|
||||
<?php
|
||||
$isV2 = (($data['isSiteVRVerification'] ?? '') === 'Y');
|
||||
$maxPhotos = $isV2 ? 1 : 15;
|
||||
?>
|
||||
<div class="fw-semibold">매물사진 (최대 <?= $maxPhotos ?>장)</div>
|
||||
|
||||
<div class="d-flex gap-1 flex-wrap">
|
||||
<button type="button" class="btn btn-sm btn-outline-secondary" onclick="viewFilePop('I4', '')">파일</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-primary"
|
||||
onclick="savePropertyImageOrder()">순서저장</button>
|
||||
onclick="savePropertyImageOrder()" <?= $isV2 ? 'disabled' : '' ?>>순서저장</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-success"
|
||||
onclick="downloadImagesByType('I4', '매물사진')">일괄다운로드</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-danger"
|
||||
@@ -1348,6 +1353,7 @@ $usr_level = session('usr_level');
|
||||
</div>
|
||||
|
||||
<!-- 동영상 / 평면도 / 체크리스트 -->
|
||||
<?php if (!$isV2): ?>
|
||||
<div class="row g-3">
|
||||
<!-- 동영상 -->
|
||||
<div class="col-12 col-lg-10p">
|
||||
@@ -1463,6 +1469,8 @@ $usr_level = session('usr_level');
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- 평면도중복 -->
|
||||
<?php if (!empty($dupleGroundPlan)): ?>
|
||||
<div class="border rounded-3 p-3 mb-3 bg-white">
|
||||
@@ -1762,6 +1770,7 @@ $usr_level = session('usr_level');
|
||||
</div>
|
||||
|
||||
<!-- 360이미지 / 촬영위치 -->
|
||||
<?php if (!$isV2): ?>
|
||||
<div class="my-3">
|
||||
<div class="border rounded-3 p-2">
|
||||
<div class="d-flex justify-content-between align-items-center mb-2">
|
||||
@@ -1816,6 +1825,7 @@ $usr_level = session('usr_level');
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2036,7 +2046,8 @@ $usr_level = session('usr_level');
|
||||
</div>
|
||||
|
||||
<!-- Dropzone 영역 -->
|
||||
<div id="myDropzone" class="dropzone border rounded-3 p-2" style="max-height: 520px;overflow-y: auto; overflow-x: hidden; min-height: 250px;">
|
||||
<div id="myDropzone" class="dropzone border rounded-3 p-2" style="max-height: 520px;overflow-y: auto; overflow-x: hidden; min-height: 250px;"
|
||||
data-is-v2="<?= (($data['isSiteVRVerification'] ?? '') === 'Y') ? 'true' : 'false' ?>">
|
||||
<div class="dz-message dz-message-fixed needsclick text-center py-3">
|
||||
<i class="pe-7s-upload" style="font-size:28px; color: #6c757d;"></i><br>
|
||||
<span style="font-size: 13px; color: #6c757d;">파일을 드래그하거나 위 [파일선택] 버튼을 클릭하세요</span>
|
||||
|
||||
@@ -704,10 +704,10 @@ $usr_nm = session('usr_nm');
|
||||
{ data: null, render: fn_addr_render },
|
||||
{ data: null, render: fn_prd_render },
|
||||
{ data: 'rcpt_product_info1' },
|
||||
<?php if ($usr_level != "45"): ?>
|
||||
{ data: 'dept_nm' },
|
||||
{ data: 'usr_nm' },
|
||||
<?php endif; ?>
|
||||
<?php if ($usr_level != "45"):
|
||||
echo "{ data: 'dept_nm' },
|
||||
{ data: 'usr_nm' },";
|
||||
endif; ?>
|
||||
{ data: 'parcel_out_yn' },
|
||||
{ data: 'conf_img_yn' },
|
||||
{ data: 'exp_movie_yn' },
|
||||
|
||||
@@ -237,14 +237,15 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -229,14 +229,16 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -508,26 +510,7 @@
|
||||
container.append(damdangT, bonbu2, team2, damdang2, btnChange, btnOmit);
|
||||
return container;
|
||||
},
|
||||
topEnd: function () {
|
||||
const container = document.createElement('div');
|
||||
container.className = 'd-flex';
|
||||
container.style.gap = '8px';
|
||||
container.style.justifyContent = 'flex-end';
|
||||
|
||||
// 등기부등본 전송 버튼
|
||||
const btnSend = document.createElement('button');
|
||||
btnSend.className = 'btn btn-sm btn-outline-light';
|
||||
btnSend.textContent = '등기부등본 전송';
|
||||
|
||||
// 엑셀 다운로드 버튼
|
||||
const btnExcel = document.createElement('button');
|
||||
btnExcel.id = 'excel-download';
|
||||
btnExcel.className = 'btn btn-sm btn-outline-success';
|
||||
btnExcel.innerHTML = '<i class="fa fa-fw fa-file-excel-o" aria-hidden="true"></i> 엑셀다운로드';
|
||||
|
||||
container.append(btnSend, btnExcel);
|
||||
return container;
|
||||
}
|
||||
topEnd: v2TopEndButtons({ showSendButton: true })
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
|
||||
@@ -208,21 +208,6 @@
|
||||
|
||||
<div class="col-md-12 col-xl-12">
|
||||
<div class="main-card mb-3 card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="d-flex align-items-center flex-wrap" style="gap: 8px; flex: 1">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
|
||||
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i>
|
||||
엑셀다운로드
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table id="resultList" class="table table-hover table-striped table-bordered">
|
||||
<thead>
|
||||
@@ -254,14 +239,16 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -281,6 +268,7 @@
|
||||
// 검색 조건 복원
|
||||
function restoreSearchForm() {
|
||||
const saved = localStorage.getItem("m703_search");
|
||||
// console.log(saved);
|
||||
if (!saved) return;
|
||||
const data = JSON.parse(saved);
|
||||
data.forEach(function(item) {
|
||||
@@ -450,6 +438,12 @@ $(function () {
|
||||
|
||||
initReceiptDate();
|
||||
table = $('#resultList').DataTable({
|
||||
layout: {
|
||||
topStart: '',
|
||||
topEnd: v2TopEndButtons(),
|
||||
bottomStart: ['pageLength', 'info'],
|
||||
bottomEnd: 'paging'
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
@@ -533,7 +527,7 @@ $(function () {
|
||||
|
||||
$('#btnSearch').on('click', function () {
|
||||
saveSearchForm();
|
||||
table.ajax.reload()
|
||||
table.ajax.reload();
|
||||
});
|
||||
|
||||
// 엑셀 다운로드 click
|
||||
@@ -769,4 +763,6 @@ $(function () {
|
||||
return str;
|
||||
}
|
||||
</script>
|
||||
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
|
||||
@@ -187,14 +187,6 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
|
||||
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i>
|
||||
엑셀다운로드
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@@ -227,14 +219,16 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_bs5_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_bs5_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -429,6 +423,10 @@
|
||||
|
||||
initReceiptDate();
|
||||
table = $('#resultList').DataTable({
|
||||
layout: {
|
||||
topEnd: v2TopEndButtons(),
|
||||
...v2BottomLayout()
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
|
||||
@@ -221,20 +221,6 @@
|
||||
|
||||
<div class="col-md-12 col-xl-12">
|
||||
<div class="main-card mb-3 card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="d-flex align-items-center flex-wrap" style="gap: 8px; flex: 1">
|
||||
<button class="btn btn-sm btn-outline-secondary" onclick="ajax_getNotAssign();">
|
||||
배정확인
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i>
|
||||
엑셀다운로드
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table id="resultList" class="table table-hover table-striped table-bordered">
|
||||
@@ -266,14 +252,16 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -490,6 +478,17 @@ $(function () {
|
||||
|
||||
initReceiptDate();
|
||||
table = $('#resultList').DataTable({
|
||||
layout: {
|
||||
topStart: function() {
|
||||
const btn = document.createElement('button');
|
||||
btn.className = 'btn btn-sm btn-outline-secondary';
|
||||
btn.textContent = '배정확인';
|
||||
btn.onclick = function() { ajax_getNotAssign(); };
|
||||
return btn;
|
||||
},
|
||||
topEnd: v2TopEndButtons(),
|
||||
...v2BottomLayout()
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
background-color: #ff0000 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
|
||||
<h1>1차 재검증 매물현황</h1>
|
||||
@@ -57,13 +59,6 @@
|
||||
<input type="hidden" name="todo" id="todo" value="inq" />
|
||||
<input type="hidden" name="usr_id" value="" />
|
||||
|
||||
<!-- 안내 -->
|
||||
<div class="alert alert-warning py-2 mb-3">
|
||||
<small class="mb-0">
|
||||
매물번호를 입력하면 <b>다른 조건은 무시</b>됩니다.
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<!-- 검색 폼 -->
|
||||
<div class="row g-3">
|
||||
|
||||
@@ -212,19 +207,6 @@
|
||||
|
||||
<div class="col-md-12 col-xl-12">
|
||||
<div class="main-card mb-3 card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="d-flex align-items-center flex-wrap" style="gap: 8px; flex: 1">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i>
|
||||
엑셀다운로드
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table id="resultList" class="table table-hover table-striped table-bordered">
|
||||
<thead>
|
||||
@@ -252,10 +234,10 @@
|
||||
</div>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
@@ -411,6 +393,12 @@
|
||||
|
||||
initReceiptDate();
|
||||
table = $('#resultList').DataTable({
|
||||
layout: {
|
||||
topStart: '',
|
||||
topEnd: v2TopEndButtons(),
|
||||
bottomStart: ['pageLength', 'info'],
|
||||
bottomEnd: 'paging'
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
|
||||
@@ -45,6 +45,8 @@
|
||||
background-color: #ff0000 !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
@@ -259,19 +261,6 @@
|
||||
|
||||
<div class="col-md-12 col-xl-12">
|
||||
<div class="main-card mb-3 card">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<div class="d-flex align-items-center flex-wrap" style="gap: 8px; flex: 1">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ml-auto">
|
||||
<button class="btn btn-sm btn-outline-success" id="excel-download">
|
||||
<i class="fa fa-fw" aria-hidden="true" title="file-excel-o"></i>
|
||||
엑셀다운로드
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table id="resultList" class="table table-hover table-striped table-bordered">
|
||||
<thead>
|
||||
@@ -302,9 +291,9 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.dataTables.min.css" />
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<?= $this->include('layouts/partials/datatables_v2_layout_helpers') ?>
|
||||
<script type="text/javascript">
|
||||
|
||||
const date = new Date();
|
||||
@@ -499,6 +488,12 @@
|
||||
|
||||
initReceiptDate();
|
||||
table = $('#resultList').DataTable({
|
||||
layout: {
|
||||
topStart: '',
|
||||
topEnd: v2TopEndButtons(),
|
||||
bottomStart: ['pageLength', 'info'],
|
||||
bottomEnd: 'paging'
|
||||
},
|
||||
language: lang_kor,
|
||||
serverSide: true,
|
||||
processing: true,
|
||||
|
||||
@@ -18,13 +18,6 @@
|
||||
<input type="hidden" name="todo" id="todo" value="inq" />
|
||||
<input type="hidden" name="usr_id" value="" />
|
||||
|
||||
<!-- 안내 -->
|
||||
<div class="alert alert-warning py-2 mb-3">
|
||||
<small class="mb-0">
|
||||
매물번호 또는 발신팩스번호를 입력하면 <b>다른 조건은 무시</b>됩니다.
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<!-- 검색 폼 -->
|
||||
<div class="row g-3">
|
||||
|
||||
@@ -256,14 +249,15 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_bs5_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
#resultList_wrapper .dt-start { display: flex; align-items: center; gap: 1rem; align-items: baseline;}
|
||||
</style>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_bs5_js') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -296,10 +296,9 @@
|
||||
</div>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.13.6/css/jquery.dataTables.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_js') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -73,13 +73,11 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_bs5_css') ?>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_bs5_js') ?>
|
||||
<script type="text/javascript">
|
||||
|
||||
const codes = [];
|
||||
|
||||
@@ -252,14 +252,12 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_bs5_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_bs5_js') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -276,14 +276,12 @@
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_styles') ?>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/2.0.7/css/dataTables.bootstrap5.min.css" />
|
||||
<?= $this->include('layouts/partials/datatables_bs5_css') ?>
|
||||
<link href="https://unpkg.com/dropzone@6.0.0-beta.1/dist/dropzone.css" rel="stylesheet" type="text/css" />
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('page_scripts') ?>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/2.0.7/js/dataTables.bootstrap5.min.js"></script>
|
||||
<script defer src="/architectui/assets/js/datatable.kor.js"></script>
|
||||
<?= $this->include('layouts/partials/datatables_bs5_js') ?>
|
||||
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=dtounkwjc5"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
@@ -875,7 +875,18 @@ function editPriceInfo() {
|
||||
}
|
||||
|
||||
// 가격수정 저장
|
||||
function modifyPriceInfo() {
|
||||
function modifyPriceInfo(btn) {
|
||||
// 거래구분 값 검증
|
||||
var tradeType = $("#trade_type").val();
|
||||
if (!tradeType || tradeType.trim() === "") {
|
||||
Swal.fire({
|
||||
text: "거래구분을 선택해주세요.",
|
||||
icon: "warning",
|
||||
confirmButtonText: "확인"
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
Swal.fire({
|
||||
text: "저장 하시겠습니까?",
|
||||
icon: "warning",
|
||||
@@ -888,10 +899,21 @@ function modifyPriceInfo() {
|
||||
if (result.isConfirmed) {
|
||||
var params = {
|
||||
'rcpt_sq': window.rcpt_sq,
|
||||
'rcpt_key': $("#rcpt_key").val(),
|
||||
'rcpt_no': $("#rcpt_atclno").val(),
|
||||
'trade_type': tradeType,
|
||||
'rcpt_product_info2': $("#rcpt_product_info2").val(),
|
||||
'rcpt_product_info3': $("#rcpt_product_info3").val(),
|
||||
'rcpt_product_info4': $("#rcpt_product_info4").val(),
|
||||
'rcpt_product_info5': $("#rcpt_product_info5").val(),
|
||||
'rcpt_ptp_no': $("#rcpt_ptp_no").val(),
|
||||
'agent_tel': $("#agent_tel").val(),
|
||||
'rcpt_hscp_no': $(btn).data('hscp_no'),
|
||||
'rcpt_ptp_no': $(btn).data('ptp_no'),
|
||||
};
|
||||
|
||||
callAjax("/article/receipt/modifyPriceInfo", params, fn_result);
|
||||
console.log( params );
|
||||
// callAjax("/article/receipt/modifyPriceInfo", params, fn_result);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1524,8 +1546,11 @@ function initDropzone(imgType) {
|
||||
}
|
||||
|
||||
// 파일 타입별 최대 개수 설정
|
||||
const isV2 = document.getElementById('myDropzone')?.getAttribute('data-is-v2') === 'true';
|
||||
console.log('[Dropzone] isV2:', isV2);
|
||||
|
||||
const maxFilesConfig = {
|
||||
'I4': 15, // 매물사진
|
||||
'I4': isV2 ? 1 : 15, // 매물사진 (V2는 1장, 일반은 15장)
|
||||
'I8': 5, // 평면도
|
||||
'I9': 5, // 녹취파일
|
||||
'V1': 5 // 동영상
|
||||
|
||||
@@ -38,6 +38,41 @@ function loadEnvFile($filePath) {
|
||||
// .env 파일 로드 (한 단계 상위 디렉토리)
|
||||
loadEnvFile(__DIR__ . '/../.env');
|
||||
|
||||
/**
|
||||
* X-Forwarded-For 헤더에서 실제 클라이언트 IP 추출
|
||||
* @return string 클라이언트 IP
|
||||
*/
|
||||
function getRealClientIP() {
|
||||
// 1. X-Forwarded-For 헤더 확인 (여러 프록시를 거친 경우)
|
||||
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
// "123.123.123.123, 192.168.10.1" 같은 형식에서 첫 번째 IP 추출
|
||||
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
|
||||
$clientIP = trim($ips[0]); // 첫 번째 = 원래 클라이언트
|
||||
|
||||
// IP 형식 검증
|
||||
if (filter_var($clientIP, FILTER_VALIDATE_IP)) {
|
||||
return $clientIP;
|
||||
}
|
||||
}
|
||||
|
||||
// 2. X-Real-IP 헤더 확인 (단일 프록시)
|
||||
if (!empty($_SERVER['HTTP_X_REAL_IP'])) {
|
||||
if (filter_var($_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP)) {
|
||||
return $_SERVER['HTTP_X_REAL_IP'];
|
||||
}
|
||||
}
|
||||
|
||||
// 3. CF-Connecting-IP (Cloudflare)
|
||||
if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
|
||||
if (filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP)) {
|
||||
return $_SERVER['HTTP_CF_CONNECTING_IP'];
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 기본값: REMOTE_ADDR (nginx가 set_real_ip_from으로 이미 변경함)
|
||||
return $_SERVER['REMOTE_ADDR'] ?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 날짜별 로그 기록 함수
|
||||
* @param string $message 로그 내용
|
||||
@@ -93,6 +128,8 @@ $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "
|
||||
$fullUrl = $protocol . "://" . ($_SERVER['HTTP_HOST'] ?? 'localhost') . ($_SERVER['REQUEST_URI'] ?? '');
|
||||
$rawData = file_get_contents('php://input');
|
||||
|
||||
writeLog("REQUEST_INFO | " . json_encode($rawData, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 'INFO');
|
||||
|
||||
$requestInfo = [
|
||||
'timestamp' => date('Y-m-d H:i:s'),
|
||||
'method' => $_SERVER['REQUEST_METHOD'] ?? 'UNKNOWN',
|
||||
@@ -102,7 +139,8 @@ $requestInfo = [
|
||||
'get_params' => $_GET,
|
||||
'post_data' => $rawData,
|
||||
'client_ip' => $_SERVER['REMOTE_ADDR'] ?? '',
|
||||
'real_ip' => $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR'] ?? '',
|
||||
'real_ip' => getRealClientIP(),
|
||||
'x_forwarded_for' => $_SERVER['HTTP_X_FORWARDED_FOR'] ?? '',
|
||||
'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? '',
|
||||
'referer' => $_SERVER['HTTP_REFERER'] ?? '',
|
||||
'content_type' => $_SERVER['CONTENT_TYPE'] ?? $_SERVER['HTTP_CONTENT_TYPE'] ?? '',
|
||||
@@ -135,10 +173,32 @@ try {
|
||||
throw new Exception("No data received");
|
||||
}
|
||||
|
||||
$data = null;
|
||||
$contentType = $_SERVER['CONTENT_TYPE'] ?? $_SERVER['HTTP_CONTENT_TYPE'] ?? '';
|
||||
|
||||
// 1차 시도: JSON으로 직접 파싱
|
||||
$data = json_decode($rawData, true);
|
||||
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
throw new Exception("Invalid JSON format: " . json_last_error_msg());
|
||||
// JSON 파싱 성공
|
||||
if ($data !== null && json_last_error() === JSON_ERROR_NONE) {
|
||||
// 성공
|
||||
}
|
||||
// JSON 파싱 실패 → form-urlencoded 시도
|
||||
else if (strpos($contentType, 'application/x-www-form-urlencoded') !== false || empty($contentType)) {
|
||||
parse_str($rawData, $postData);
|
||||
|
||||
// post_data 키가 있으면 그 값을 JSON으로 파싱
|
||||
if (isset($postData['post_data'])) {
|
||||
$data = json_decode($postData['post_data'], true);
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
throw new Exception("Invalid JSON format in post_data: " . json_last_error_msg());
|
||||
}
|
||||
} else {
|
||||
// post_data 키가 없으면 form 데이터 자체를 사용
|
||||
$data = $postData;
|
||||
}
|
||||
} else {
|
||||
throw new Exception("Invalid JSON format: " . json_last_error_msg() . " | Data: " . substr($rawData, 0, 200));
|
||||
}
|
||||
|
||||
if (empty($data)) {
|
||||
@@ -149,7 +209,7 @@ try {
|
||||
$payload = [
|
||||
'request_data' => $data,
|
||||
'received_at' => date('Y-m-d H:i:s'),
|
||||
'client_ip' => $_SERVER['REMOTE_ADDR'] ?? 'unknown'
|
||||
'client_ip' => getRealClientIP()
|
||||
];
|
||||
|
||||
// 5. Redis 연결 시도 및 폴백 처리
|
||||
|
||||
Reference in New Issue
Block a user