diff --git a/extdbms/lib/Controllers/DBMS/Client/CouponController.php b/extdbms/lib/Controllers/DBMS/Client/CouponController.php new file mode 100644 index 0000000..5fa3e7e --- /dev/null +++ b/extdbms/lib/Controllers/DBMS/Client/CouponController.php @@ -0,0 +1,64 @@ +getView()->setPath('onetime'); + } // + public function getMemberService(): MemberService + { + if ($this->_memberService === null) { + $this->_memberService = new MemberService(); + } + return $this->_memberService; + } + //IdcCouponUseMK.jsp -> domain_coupon_use.php + //CLI 접속방법 : php index.php site/client/counpon + //WEB 접속방법 : http://localhost/site/client/coupon + public function index(array $params) + { + if (!array_key_exists('client_code', $params)) { + throw new \Exception("client_code 값이 정의되지 않았습니다."); + } + $client_code = $params['client_code']; + $client = $this->getClientService()->getEntityByCode($client_code); + if (!$client) { + throw new \Exception("[$client_code]에 해당하는 사용자정보가 존재하지 않습니다."); + } + $this->client = $client; + //전체 관리자정보(등록자) + $member_code = $params['member_code']; + $member = $this->getMemberService()->getEntityByCode($member_code); + if (!$member) { + throw new \Exception("[$member_code]에 해당하는 관리자정보가 존재하지 않습니다."); + } + $this->member = $member; + //쿠폰내역 + $this->getServiceService()->getModel()->where("client_code", $client_code); + $this->getServiceService()->getModel()->whereNotIn("service_line", ['vpn', 'test', 'soloLine', 'substitution']); + //Query문 Rest여부 -> 같은조건에 Count 받고, 결과값을 받고 싶을때는 continue() + $this->getServiceService()->getModel()->setContinue(true); + $this->total = $this->getServiceService()->getCount(); + //limit, offset 설정 + $this->curPage = intval($params['curPage'] ?? $this->getRequest()->get('curPage') ?? 1); + $this->perPage = intval($params['perPage'] ?? $this->getRequest()->get('perPage') ?? VIEW_LIST_PERPAGE); + $this->getServiceService()->getModel()->limit($this->perPage); + $this->getServiceService()->getModel()->offset(($this->curPage - 1) * $this->perPage); + $this->services = $this->getServiceService()->getEntities(); + $this->pagination = new Pagination($this->total, (int)$this->curPage, (int)$this->perPage); + $total_coupon = 0; + foreach ($this->services as $service) { + $total_coupon += $service->getCoupon(); + } + $this->total_coupon = $total_coupon; + return $this->render(__FUNCTION__); + } +} //Class diff --git a/extdbms/lib/Controllers/DBMS/Client/MemoController.php b/extdbms/lib/Controllers/DBMS/Client/MemoController.php index e683b73..845f353 100644 --- a/extdbms/lib/Controllers/DBMS/Client/MemoController.php +++ b/extdbms/lib/Controllers/DBMS/Client/MemoController.php @@ -21,8 +21,7 @@ class MemoController extends ClientController throw new \Exception("client_code 값이 정의되지 않았습니다."); } $client_code = $params['client_code']; - $this->getClientService()->getModel()->where("Client_Code", $client_code); - $entity = $this->getClientService()->getEntity(); + $entity = $this->getClientService()->getEntityByCode($client_code); if (!$entity) { throw new \Exception("[$client_code]에 해당하는 사용자정보가 존재하지 않습니다."); } diff --git a/extdbms/lib/Controllers/DBMS/Client/PaymentController.php b/extdbms/lib/Controllers/DBMS/Client/PaymentController.php index 08461cd..8c7100e 100644 --- a/extdbms/lib/Controllers/DBMS/Client/PaymentController.php +++ b/extdbms/lib/Controllers/DBMS/Client/PaymentController.php @@ -51,8 +51,6 @@ class PaymentController extends ClientController //mode 당일,1일전,2일전,3일전,custom $today = date("Y-m-d");; $mode = $params['mode'] ?? $this->getRequest()->get('mode') ?? 'all'; - $curPage = intval($params['curPage'] ?? $this->getRequest()->get('curPage') ?? 1); - $perPage = intval($params['perPage'] ?? $this->getRequest()->get('perPage') ?? VIEW_LIST_PERPAGE); switch ($mode) { case 'today': $this->getServiceService()->getModel()->where("service_payment_date = CURDATE()"); @@ -91,13 +89,12 @@ class PaymentController extends ClientController $this->getServiceService()->getModel()->setContinue(true); $this->total = $this->getServiceService()->getCount(); //limit, offset 설정 - $this->getServiceService()->getModel()->limit($perPage); - $this->getServiceService()->getModel()->offset(($curPage - 1) * $perPage); - + $this->curPage = intval($params['curPage'] ?? $this->getRequest()->get('curPage') ?? 1); + $this->perPage = intval($params['perPage'] ?? $this->getRequest()->get('perPage') ?? VIEW_LIST_PERPAGE); + $this->getServiceService()->getModel()->limit($this->perPage); + $this->getServiceService()->getModel()->offset(($this->curPage - 1) * $this->perPage); $this->entities = $this->getServiceService()->getEntities(); $this->mode = $mode; - $this->curPage = $curPage; - $this->perPage = $perPage; $this->pagination = new Pagination($this->total, (int)$this->curPage, (int)$this->perPage); return $this->render(path: __FUNCTION__); } diff --git a/extdbms/lib/Entities/ServiceEntity.php b/extdbms/lib/Entities/ServiceEntity.php index 0c6eed5..2a46d9e 100644 --- a/extdbms/lib/Entities/ServiceEntity.php +++ b/extdbms/lib/Entities/ServiceEntity.php @@ -31,4 +31,12 @@ class ServiceEntity extends Entity { return $this->client_code; } + public function getCoupon(): string + { + return $this->coupon; + } + public function getUsedCoupon(): string + { + return $this->coupon_use; + } } //Class diff --git a/extdbms/lib/Services/MemberService.php b/extdbms/lib/Services/MemberService.php index ae201fa..359a5f4 100644 --- a/extdbms/lib/Services/MemberService.php +++ b/extdbms/lib/Services/MemberService.php @@ -27,4 +27,9 @@ class MemberService extends CommonService { return Entity::class; } + public function getEntityByCode(string $key): Entity|null|false + { + $this->getModel()->where(Model::PKField, $key); + return $this->getEntity(); + } } diff --git a/extdbms/lib/Views/dbms/client/coupon/index.php b/extdbms/lib/Views/dbms/client/coupon/index.php new file mode 100644 index 0000000..df45676 --- /dev/null +++ b/extdbms/lib/Views/dbms/client/coupon/index.php @@ -0,0 +1,41 @@ +
| No | +발급쿠폰 | +남은수량 | +사용완료 | +고객명 | +서비스코드 | +장비명 | +서버IP | +서비스개시일 | +회선종류 | +사용 | +
|---|---|---|---|---|---|---|---|---|---|---|
| = $num ?> | += $service->getCoupon() + $service->getUsedCoupon() ?> | += $service->getCoupon() ?> | += $this->client->getName() ?> | += $service->getUsedCoupon() ?> | += $$service->getServiceCode() ?> | += $service->getServerCode() ?> | += $service->service_ip ?> | += $service->service_open_date ?> | += $service->service_line ?> | +getServiceCode() ?>&client_name== $this->client->getName() ?>&client_code== $service->getClientCode() ?>&server_code== $service->getServerCode() ?>&coupon== $service->getCoupon() ?>&mkid== $this->member->getPK() ?>>사용하기 | +