dbms_primeidc/extdbms/lib/Controllers/Client/PaymentController.php
2025-04-24 16:55:28 +09:00

83 lines
4.0 KiB
PHP

<?php
namespace lib\Controllers\Client;
use lib\Models\AddDbModel;
use lib\Models\ClientModel;
class PaymentController extends ClientController
{
public function __construct(array $params = [])
{
parent::__construct($params);
$this->setPath('payment');
} //
//청구서, depositbillpaper.php
//CLI 접속방법 : php index.php site/client/payment/billpaper
//WEB 접속방법 : http://localhostsite/client/payment/billpaper
public function billpaper()
{
$sitekey = $this->request->get('sitekey');
if (!$sitekey) {
throw new \Exception("sitekey 값이 정의되지 않았습니다.");
}
$this->siteInfo = DBMS_SITEINFOS[$sitekey];
//기본적으로 필요한 client_code, mkid, service_code를 설정합니다.
list($client_code, $member_code, $service_code) = $this->setDefaultRequestData();
return $this->render(__FUNCTION__);
}
//미납리스트트, NonPaymentList.php
//CLI 접속방법 : php index.php site/client/payment/index
//WEB 접속방법 : http://localhostsite/client/payment/index
public function index()
{
//Client_Code = ["C219"=>WinIDC,"C116"=>IDC-JP"] -> 미지급금계산 제외 Client_Code
$exclude_clients = ['C116', 'C219'];
//mode 당일,1일전,2일전,3일전,custom
$today = date("Y-m-d");;
$mode = $this->request->get('mode', 'all');
switch ($mode) {
case 'today':
$this->message = "[{$today}] 기준 당일 ";
$this->getServiceService()->getModel()->where("service_payment_date = CURDATE()");
break;
case '1day':
$nonpaymentDay = 1;
$this->message = "[{$today}] 기준 {$nonpaymentDay}일전";
$this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)");
break;
case '2day':
$nonpaymentDay = 2;
$this->message = "[{$today}] 기준 {$nonpaymentDay}일전";
$this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)");
break;
case '3day':
$nonpaymentDay = 3;
$this->message = "[{$today}] 기준 {$nonpaymentDay}일전";
$this->getServiceService()->getModel()->where("service_payment_date = Date_Add(CURDATE(),INTERVAL {$nonpaymentDay} DAY)");
break;
case 'all':
default:
$this->message = "[{$today}] 기준 전체";
break;
}
$this->mode = $mode;
$table = $this->getServiceService()->getModel()->getTable();
$clientTable = ClientModel::TABLE;
$addDbTable = AddDbModel::TABLE;
$this->getServiceService()->getModel()->select("{$clientTable}.Client_Name,{$table}.service_code,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,addDB_case,addDB_nonpayment,addDB_payment,addDB_accountStatus,addDB_ip,addDB_payment_date");
$this->getServiceService()->getModel()->join($clientTable, "{$table}.client_code = {$clientTable}.Client_Code");
$this->getServiceService()->getModel()->join($addDbTable, "{$table}.service_code = {$addDbTable}.service_code");
$this->getServiceService()->getModel()->whereNotIn("{$addDbTable}.client_code", $exclude_clients);
$this->getServiceService()->getModel()->whereNotIn("{$addDbTable}.addDB_accountStatus", ["complete"]);
$this->getServiceService()->getModel()->orderBy("service_payment_date", "DESC");
[$this->total, $this->entities, $this->pagination, $this->curPage, $this->perPage] = $this->getServiceService()->getList(
$this->request->get('curPage'),
$this->request->get('perPage')
);
return $this->render(__FUNCTION__);
}
} //Class