dbmsv4 init...3
This commit is contained in:
parent
d004bbb1e5
commit
071b779f6c
@ -72,8 +72,14 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
|||||||
});
|
});
|
||||||
$routes->group('payment', function ($routes) {
|
$routes->group('payment', function ($routes) {
|
||||||
$routes->get('/', 'PaymentController::index');
|
$routes->get('/', 'PaymentController::index');
|
||||||
$routes->get('create', 'PaymentController::create_form');
|
$routes->get('onetime', 'PaymentController::onetime_form');
|
||||||
$routes->post('create', 'PaymentController::create');
|
$routes->post('onetime', 'PaymentController::create');
|
||||||
|
$routes->get('prepayment', 'PaymentController::prepayment_form');
|
||||||
|
$routes->post('prepayment', 'PaymentController::create');
|
||||||
|
$routes->get('coupon', 'PaymentController::coupon_form');
|
||||||
|
$routes->post('coupon', 'PaymentController::create');
|
||||||
|
$routes->get('point', 'PaymentController::point_form');
|
||||||
|
$routes->post('point', 'PaymentController::create');
|
||||||
$routes->get('modify/(:num)', 'PaymentController::modify_form/$1');
|
$routes->get('modify/(:num)', 'PaymentController::modify_form/$1');
|
||||||
$routes->post('modify/(:num)', 'PaymentController::modify/$1');
|
$routes->post('modify/(:num)', 'PaymentController::modify/$1');
|
||||||
$routes->get('view/(:num)', 'PaymentController::view/$1');
|
$routes->get('view/(:num)', 'PaymentController::view/$1');
|
||||||
|
|||||||
@ -24,37 +24,95 @@ class PaymentController extends AdminController
|
|||||||
//Action작업관련
|
//Action작업관련
|
||||||
//기본 함수 작업
|
//기본 함수 작업
|
||||||
//Custom 추가 함수
|
//Custom 추가 함수
|
||||||
//일회성 추가용
|
final public function onetime_form(): string|RedirectResponse
|
||||||
public function create_form_process(array $formDatas = []): array
|
|
||||||
{
|
{
|
||||||
$formDatas = parent::create_form_process($formDatas);
|
try {
|
||||||
$formDatas['billing'] = PAYMENT['BILLING']['ONETIME'];
|
$action = __FUNCTION__;
|
||||||
$formDatas['billing_at'] = date('Y-m-d');
|
$formDatas = [];
|
||||||
$formDatas['pay'] = PAYMENT['PAY']['ACCOUNT'];
|
$formDatas['serviceinfo_uid'] = $this->request->getVar('serviceinfo_uid');
|
||||||
$formDatas['status'] = STATUS['UNPAID'];
|
$formDatas['billing'] = PAYMENT['BILLING']['ONETIME'];
|
||||||
return $formDatas;
|
$formDatas['billing_at'] = date('Y-m-d');
|
||||||
|
$formDatas['pay'] = PAYMENT['PAY']['ACCOUNT'];
|
||||||
|
$formDatas['status'] = STATUS['UNPAID'];
|
||||||
|
$this->action_init_process($action, $formDatas);
|
||||||
|
$this->addViewDatas('formDatas', $formDatas);
|
||||||
|
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate'));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 생성폼 오류:" . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final public function prepayment_form(): string|RedirectResponse
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$action = __FUNCTION__;
|
||||||
|
$formDatas = [];
|
||||||
|
$formDatas['serviceinfo_uid'] = $this->request->getVar('serviceinfo_uid');
|
||||||
|
$formDatas['billing'] = PAYMENT['BILLING']['PREPAYMENT'];
|
||||||
|
$formDatas['billing_at'] = date('Y-m-d');
|
||||||
|
$formDatas['pay'] = PAYMENT['PAY']['ACCOUNT'];
|
||||||
|
$formDatas['status'] = STATUS['PAID'];
|
||||||
|
$this->action_init_process($action, $formDatas);
|
||||||
|
$this->addViewDatas('formDatas', $formDatas);
|
||||||
|
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate'));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 생성폼 오류:" . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final public function coupon_form(): string|RedirectResponse
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$action = __FUNCTION__;
|
||||||
|
$formDatas = [];
|
||||||
|
$formDatas['serviceinfo_uid'] = $this->request->getVar('serviceinfo_uid');
|
||||||
|
$formDatas['billing'] = PAYMENT['BILLING']['ONETIME'];
|
||||||
|
$formDatas['billing_at'] = date('Y-m-d');
|
||||||
|
$formDatas['pay'] = PAYMENT['PAY']['COUPON'];
|
||||||
|
$formDatas['status'] = STATUS['PAID'];
|
||||||
|
$this->action_init_process($action, $formDatas);
|
||||||
|
$this->addViewDatas('formDatas', $formDatas);
|
||||||
|
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate'));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 생성폼 오류:" . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final public function point_form(): string|RedirectResponse
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$action = __FUNCTION__;
|
||||||
|
$formDatas = [];
|
||||||
|
$formDatas['serviceinfo_uid'] = $this->request->getVar('serviceinfo_uid');
|
||||||
|
$formDatas['billing'] = PAYMENT['BILLING']['ONETIME'];
|
||||||
|
$formDatas['billing_at'] = date('Y-m-d');
|
||||||
|
$formDatas['pay'] = PAYMENT['PAY']['POINT'];
|
||||||
|
$formDatas['status'] = STATUS['PAID'];
|
||||||
|
$this->action_init_process($action, $formDatas);
|
||||||
|
$this->addViewDatas('formDatas', $formDatas);
|
||||||
|
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate'));
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 생성폼 오류:" . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//단일 지불 완료처리
|
||||||
|
final public function paid($uid): string|RedirectResponse
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$entity = $this->service->modify($uid, $this->service->createDTO(['status' => STATUS['PAID']]));
|
||||||
|
return $this->action_redirect_process('info', "{$this->getTitle()}에서 {$entity->getTitle()} 결체처리가 완료되었습니다.");
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 결제 오류:" . $e->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//청구서 발행관련
|
//청구서 발행관련
|
||||||
private function invoice_pre_process(): array
|
final public function invoice(): string|RedirectResponse
|
||||||
{
|
|
||||||
$postDatas = $this->request->getPost();
|
|
||||||
$uids = $postDatas['batchjob_uids'] ?? [];
|
|
||||||
if (empty($uids)) {
|
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 청구서에 적용될 리스트를 선택하셔야합니다");
|
|
||||||
}
|
|
||||||
return $uids;
|
|
||||||
}
|
|
||||||
private function invoice_result_process(string $action): string|RedirectResponse
|
|
||||||
{
|
|
||||||
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate') ?? 'payment');
|
|
||||||
}
|
|
||||||
public function invoice(): string|RedirectResponse
|
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$action = __FUNCTION__;
|
$action = __FUNCTION__;
|
||||||
$this->action_init_process($action);
|
$this->action_init_process($action);
|
||||||
//변경할 UIDS
|
//변경할 UIDS
|
||||||
$uids = $this->invoice_pre_process();
|
$uids = $this->request->getPost('batchjob_uids') ?? [];
|
||||||
|
if (empty($uids)) {
|
||||||
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 청구서에 적용될 리스트를 선택하셔야합니다");
|
||||||
|
}
|
||||||
$rows = [];
|
$rows = [];
|
||||||
$clientEntities = [];
|
$clientEntities = [];
|
||||||
$serviceEntities = [];
|
$serviceEntities = [];
|
||||||
@ -92,18 +150,9 @@ class PaymentController extends AdminController
|
|||||||
}
|
}
|
||||||
// dd($rows);
|
// dd($rows);
|
||||||
$this->addViewDatas('rows', $rows);
|
$this->addViewDatas('rows', $rows);
|
||||||
return $this->invoice_result_process($action);
|
return $this->action_render_process($action, $this->getViewDatas(), $this->request->getVar('ActionTemplate') ?? 'payment');
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 청구서발행 오류:" . $e->getMessage());
|
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 청구서발행 오류:" . $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function paid($uid): string|RedirectResponse
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$entity = $this->service->paid($uid);
|
|
||||||
return $this->action_redirect_process('info', "{$this->getTitle()}에서 {$entity->getTitle()} 결체처리가 완료되었습니다.");
|
|
||||||
} catch (\Throwable $e) {
|
|
||||||
return $this->action_redirect_process('error', static::class . '->' . __FUNCTION__ . "에서 {$this->getTitle()} 결제 오류:" . $e->getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -47,6 +47,7 @@ class ClientHelper extends CustomerHelper
|
|||||||
break;
|
break;
|
||||||
case "email":
|
case "email":
|
||||||
case "phone":
|
case "phone":
|
||||||
|
//역활이 보안관리자가 아니면 정보숨김
|
||||||
$value = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getFieldView($field, $value, $viewDatas, $extras) : "***********";
|
$value = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getFieldView($field, $value, $viewDatas, $extras) : "***********";
|
||||||
break;
|
break;
|
||||||
case 'account_balance':
|
case 'account_balance':
|
||||||
@ -54,7 +55,7 @@ class ClientHelper extends CustomerHelper
|
|||||||
number_format(intval($value)) . "원",
|
number_format(intval($value)) . "원",
|
||||||
'index',
|
'index',
|
||||||
[
|
[
|
||||||
"data-src" => "/admin/customer/wallet/account?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionTemplate=popup",
|
"data-src" => "/admin/customer/wallet/account?clientinfo_uid={$viewDatas['entity']->getPK()}",
|
||||||
"data-bs-toggle" => "modal",
|
"data-bs-toggle" => "modal",
|
||||||
"data-bs-target" => "#modal_action_form",
|
"data-bs-target" => "#modal_action_form",
|
||||||
"class" => "btn btn-sm form-label-sm text-primary",
|
"class" => "btn btn-sm form-label-sm text-primary",
|
||||||
@ -67,7 +68,7 @@ class ClientHelper extends CustomerHelper
|
|||||||
number_format(intval($value)) . "개",
|
number_format(intval($value)) . "개",
|
||||||
'index',
|
'index',
|
||||||
[
|
[
|
||||||
"data-src" => "/admin/customer/wallet/coupon?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionTemplate=popup",
|
"data-src" => "/admin/customer/wallet/coupon?clientinfo_uid={$viewDatas['entity']->getPK()}",
|
||||||
"data-bs-toggle" => "modal",
|
"data-bs-toggle" => "modal",
|
||||||
"data-bs-target" => "#modal_action_form",
|
"data-bs-target" => "#modal_action_form",
|
||||||
"class" => "btn btn-sm form-label-sm text-primary",
|
"class" => "btn btn-sm form-label-sm text-primary",
|
||||||
@ -80,7 +81,7 @@ class ClientHelper extends CustomerHelper
|
|||||||
number_format(intval($value)) . "원",
|
number_format(intval($value)) . "원",
|
||||||
'index',
|
'index',
|
||||||
[
|
[
|
||||||
"data-src" => "/admin/customer/wallet/point?clientinfo_uid={$viewDatas['entity']->getPK()}&ActionTemplate=popup",
|
"data-src" => "/admin/customer/wallet/point?clientinfo_uid={$viewDatas['entity']->getPK()}",
|
||||||
"data-bs-toggle" => "modal",
|
"data-bs-toggle" => "modal",
|
||||||
"data-bs-target" => "#modal_action_form",
|
"data-bs-target" => "#modal_action_form",
|
||||||
"class" => "btn btn-sm form-label-sm text-primary",
|
"class" => "btn btn-sm form-label-sm text-primary",
|
||||||
@ -97,13 +98,14 @@ class ClientHelper extends CustomerHelper
|
|||||||
public function getListButton(string $action, string $label, array $viewDatas, array $extras = []): string
|
public function getListButton(string $action, string $label, array $viewDatas, array $extras = []): string
|
||||||
{
|
{
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case 'create':
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
case 'batchjob':
|
case 'batchjob':
|
||||||
case 'batchjob_delete':
|
case 'batchjob_delete':
|
||||||
|
//역활이 보안관리자가 아니면 사용불가
|
||||||
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : "";
|
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : "";
|
||||||
break;
|
break;
|
||||||
case 'modify':
|
case 'modify':
|
||||||
|
//역활이 보안관리자가 아니면 수정불가
|
||||||
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : $label;
|
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : $label;
|
||||||
break;
|
break;
|
||||||
case 'history':
|
case 'history':
|
||||||
@ -162,7 +164,7 @@ class ClientHelper extends CustomerHelper
|
|||||||
$action = "{$label} 0원";
|
$action = "{$label} 0원";
|
||||||
if (array_key_exists($viewDatas['entity']->getPK(), $viewDatas['unPaids'])) {
|
if (array_key_exists($viewDatas['entity']->getPK(), $viewDatas['unPaids'])) {
|
||||||
$action = form_label(
|
$action = form_label(
|
||||||
sprintf("총 %s: %s건/%s원", $label, $viewDatas['unPaids'][$viewDatas['entity']->getPK()]['cnt'], number_format($viewDatas['unPaids'][$viewDatas['entity']->getPK()]['amount'])),
|
sprintf("%s건/%s원", $viewDatas['unPaids'][$viewDatas['entity']->getPK()]['cnt'], number_format($viewDatas['unPaids'][$viewDatas['entity']->getPK()]['amount'])),
|
||||||
'payment_unpaid',
|
'payment_unpaid',
|
||||||
[
|
[
|
||||||
"data-src" => "/admin/payment?clientinfo_uid={$viewDatas['entity']->getPK()}&status=unpaid&ActionTemplate=popup",
|
"data-src" => "/admin/payment?clientinfo_uid={$viewDatas['entity']->getPK()}&status=unpaid&ActionTemplate=popup",
|
||||||
|
|||||||
@ -44,15 +44,13 @@ class ServiceHelper extends CustomerHelper
|
|||||||
$value = number_format($value) . "원";
|
$value = number_format($value) . "원";
|
||||||
break;
|
break;
|
||||||
case 'billing_at':
|
case 'billing_at':
|
||||||
if (array_key_exists('unPaids', $viewDatas)) {
|
if (array_key_exists('unPaids', $viewDatas) && array_key_exists($viewDatas['entity']->getPK(), $viewDatas['unPaids'])) {
|
||||||
if (array_key_exists($viewDatas['entity']->getPK(), $viewDatas['unPaids'])) {
|
$value .= sprintf(
|
||||||
$value .= sprintf(
|
"<div><a href=\"/admin/payment?serviceinfo_uid=%s\"><span style=\"color:red;\">%s개,총 %s원</span></a></div>",
|
||||||
"<div><a href=\"/admin/payment?serviceinfo_uid=%s\"><span style=\"color:red;\">%s개,총 %s원</span></a></div>",
|
$viewDatas['entity']->getPK(),
|
||||||
$viewDatas['entity']->getPK(),
|
$viewDatas['unPaids'][$viewDatas['entity']->getPK()]['cnt'],
|
||||||
$viewDatas['unPaids'][$viewDatas['entity']->getPK()]['cnt'],
|
number_format($viewDatas['unPaids'][$viewDatas['entity']->getPK()]['amount'])
|
||||||
number_format($viewDatas['unPaids'][$viewDatas['entity']->getPK()]['amount'])
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -102,18 +100,20 @@ class ServiceHelper extends CustomerHelper
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'onetime':
|
case 'unpaid':
|
||||||
$action = form_label(
|
$action = "{$label} 0원";
|
||||||
$label ? $label : ICONS['ONETIME'],
|
if (array_key_exists($viewDatas['entity']->getPK(), $viewDatas['unPaids'])) {
|
||||||
$action,
|
$action = form_label(
|
||||||
[
|
sprintf("%s건/%s원", $viewDatas['unPaids'][$viewDatas['entity']->getPK()]['cnt'], number_format($viewDatas['unPaids'][$viewDatas['entity']->getPK()]['amount'])),
|
||||||
"data-src" => "/admin/payment/create?serviceinfo_uid={$viewDatas['entity']->getPK()}",
|
'payment_unpaid',
|
||||||
"data-bs-toggle" => "modal",
|
[
|
||||||
"data-bs-target" => "#modal_action_form",
|
"data-src" => "/admin/payment?clientinfo_uid={$viewDatas['entity']->getPK()}&status=unpaid&ActionTemplate=popup",
|
||||||
"class" => "btn btn-sm form-label-sm",
|
"data-bs-toggle" => "modal",
|
||||||
...$extras
|
"data-bs-target" => "#modal_action_form",
|
||||||
]
|
"class" => "text-primary form-label-sm",
|
||||||
);
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'history':
|
case 'history':
|
||||||
$action = form_label(
|
$action = form_label(
|
||||||
@ -128,6 +128,22 @@ class ServiceHelper extends CustomerHelper
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
case 'onetime':
|
||||||
|
case 'prepayment':
|
||||||
|
case 'coupon':
|
||||||
|
case 'point':
|
||||||
|
$action = form_label(
|
||||||
|
$label ? $label : ICONS['ONETIME'],
|
||||||
|
$action,
|
||||||
|
[
|
||||||
|
"data-src" => "/admin/payment/{$action}?serviceinfo_uid={$viewDatas['entity']->getPK()}&ActionTemplate=popup/payment",
|
||||||
|
"data-bs-toggle" => "modal",
|
||||||
|
"data-bs-target" => "#modal_action_form",
|
||||||
|
"class" => "btn btn-sm form-label-sm",
|
||||||
|
...$extras
|
||||||
|
]
|
||||||
|
);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
$action = parent::getListButton($action, $label, $viewDatas, $extras);
|
$action = parent::getListButton($action, $label, $viewDatas, $extras);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -44,6 +44,7 @@ class PaymentHelper extends CommonHelper
|
|||||||
{
|
{
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case 'modify':
|
case 'modify':
|
||||||
|
//역활이 보안관리자가 아니면 수정불가
|
||||||
if ($this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']])) {
|
if ($this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']])) {
|
||||||
$action = parent::getListButton($action, $label, $viewDatas, $extras);
|
$action = parent::getListButton($action, $label, $viewDatas, $extras);
|
||||||
} else {
|
} else {
|
||||||
@ -60,6 +61,7 @@ class PaymentHelper extends CommonHelper
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
|
//역활이 보안관리자가 아니면 삭제불가
|
||||||
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : "";
|
$action = $this->getAuthContext()->isAccessRole([ROLE['USER']['SECURITY']]) ? parent::getListButton($action, $label, $viewDatas, $extras) : "";
|
||||||
break;
|
break;
|
||||||
case 'invoice':
|
case 'invoice':
|
||||||
|
|||||||
@ -131,11 +131,14 @@ class ServerPartService extends EquipmentService
|
|||||||
}
|
}
|
||||||
//해당 파트별 설정 수정
|
//해당 파트별 설정 수정
|
||||||
$this->getPartService($entity->getType())->attachToServerPart($entity);
|
$this->getPartService($entity->getType())->attachToServerPart($entity);
|
||||||
if ($entity->getServiceInfoUID() !== null) { //서비스가 정의 되어 있으면
|
//서비스가 정의 되어 있으면
|
||||||
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) { //Billing형식이 Month이면 서비스 금액설정 호출
|
if ($entity->getServiceInfoUID() !== null) {
|
||||||
|
//Billing형식이 Month이면 서비스 금액설정 호출
|
||||||
|
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) {
|
||||||
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
||||||
}
|
}
|
||||||
if ($entity->getBilling() == PAYMENT['BILLING']['ONETIME']) { //Billing형식이 Onetime이면 일회성결제 추가
|
//Billing형식이 Onetime이면 일회성결제 추가
|
||||||
|
if ($entity->getBilling() == PAYMENT['BILLING']['ONETIME']) {
|
||||||
service('paymentservice')->createByServerPart($entity);
|
service('paymentservice')->createByServerPart($entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,14 +155,16 @@ class ServerPartService extends EquipmentService
|
|||||||
$formDatas['title'] = $partEntity->getTitle();
|
$formDatas['title'] = $partEntity->getTitle();
|
||||||
//서버파트 수정
|
//서버파트 수정
|
||||||
$entity = parent::modify_process($entity, $formDatas);
|
$entity = parent::modify_process($entity, $formDatas);
|
||||||
|
//서비스가 정의 되어 있으면
|
||||||
if ($entity->getServiceInfoUID() !== null) {
|
if ($entity->getServiceInfoUID() !== null) {
|
||||||
//서비스가 정의 되어 있으면 서비스 비용 수정
|
//월비용 서버파트 인경우 서비스 금액 재설정
|
||||||
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) { //Billing형식이 Month이면 서비스 금액설정 호출
|
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) {
|
||||||
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
||||||
}
|
}
|
||||||
if ($entity->getBilling() == PAYMENT['BILLING']['ONETIME']) { //Billing형식이 Onetime이면 일회성결제 추가
|
//Billing형식이 Onetime이면 일회성결제 수정 (필요없는듯 하여 주석처리)
|
||||||
service('paymentservice')->modifyByServerPart($entity);
|
// if ($entity->getBilling() == PAYMENT['BILLING']['ONETIME']) {
|
||||||
}
|
// service('paymentservice')->modifyByServerPart($entity);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
@ -167,10 +172,16 @@ class ServerPartService extends EquipmentService
|
|||||||
{
|
{
|
||||||
$this->getPartService($entity->getType())->detachFromServerPart($entity);
|
$this->getPartService($entity->getType())->detachFromServerPart($entity);
|
||||||
$entity = parent::delete_process($entity);
|
$entity = parent::delete_process($entity);
|
||||||
if ($entity->getServiceInfoUID() !== null) { //서비스가 정의 되어 있으면
|
//서비스가 정의 되어 있으면
|
||||||
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) { //Billing형식이 Month이면 서비스 금액설정 호출
|
if ($entity->getServiceInfoUID() !== null) {
|
||||||
|
//월비용 서버파트 인경우 서비스 금액 재설정
|
||||||
|
if ($entity->getBilling() == PAYMENT['BILLING']['MONTH']) {
|
||||||
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
service('customer_serviceservice')->updateAmount($entity->getServiceInfoUID());
|
||||||
}
|
}
|
||||||
|
//Billing형식이 Onetime이면 일회성결제 수정 (필요없는듯 하여 주석처리)
|
||||||
|
// if ($entity->getBilling() == PAYMENT['BILLING']['ONETIME']) {
|
||||||
|
// service('paymentservice')->modifyByServerPart($entity);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ use App\Forms\PaymentForm;
|
|||||||
use App\Helpers\PaymentHelper;
|
use App\Helpers\PaymentHelper;
|
||||||
use App\Models\PaymentModel;
|
use App\Models\PaymentModel;
|
||||||
use App\Services\Customer\Wallet\WalletService;
|
use App\Services\Customer\Wallet\WalletService;
|
||||||
use CodeIgniter\Database\Exceptions\DatabaseException;
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
|
|
||||||
@ -25,6 +25,26 @@ class PaymentService extends CommonService
|
|||||||
parent::__construct($model);
|
parent::__construct($model);
|
||||||
$this->addClassPaths('Payment');
|
$this->addClassPaths('Payment');
|
||||||
}
|
}
|
||||||
|
//pay방식에따른 WalletService
|
||||||
|
private function getWalletService(string $pay): WalletService
|
||||||
|
{
|
||||||
|
$walletService = null;
|
||||||
|
switch ($pay) {
|
||||||
|
case PAYMENT['PAY']['ACCOUNT']:
|
||||||
|
$walletService = service('customer_wallet_accountservice');
|
||||||
|
break;
|
||||||
|
case PAYMENT['PAY']['COUPON']:
|
||||||
|
$walletService = service('customer_wallet_couponservice');
|
||||||
|
break;
|
||||||
|
case PAYMENT['PAY']['POINT']:
|
||||||
|
$walletService = service('customer_wallet_pointservice');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$pay}는 지정되지 않은 지불방식입니다.");
|
||||||
|
// break;
|
||||||
|
}
|
||||||
|
return $walletService;
|
||||||
|
}
|
||||||
protected function getDTOClass(): string
|
protected function getDTOClass(): string
|
||||||
{
|
{
|
||||||
return PaymentDTO::class;
|
return PaymentDTO::class;
|
||||||
@ -80,7 +100,7 @@ class PaymentService extends CommonService
|
|||||||
$filters = ['user_uid', 'clientinfo_uid', 'serviceinfo_uid', 'status', 'billing', 'pay'];
|
$filters = ['user_uid', 'clientinfo_uid', 'serviceinfo_uid', 'status', 'billing', 'pay'];
|
||||||
$indexFilter = ['clientinfo_uid', 'serviceinfo_uid', 'status', 'billing', 'pay'];
|
$indexFilter = ['clientinfo_uid', 'serviceinfo_uid', 'status', 'billing', 'pay'];
|
||||||
$batchjobFilters = ['status'];
|
$batchjobFilters = ['status'];
|
||||||
$actionButtons = ['view' => ICONS['SEARCH'], 'paid' => '결제'];
|
$actionButtons = ['view' => ICONS['SEARCH'], 'paid' => '결제', 'delete' => ICONS['DELETE']];
|
||||||
$batchjobButtons = ['batchjob' => '일괄결제', 'invoice' => '청구서발행'];
|
$batchjobButtons = ['batchjob' => '일괄결제', 'invoice' => '청구서발행'];
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case 'create':
|
case 'create':
|
||||||
@ -177,7 +197,7 @@ class PaymentService extends CommonService
|
|||||||
parent::setSearchWord($word);
|
parent::setSearchWord($word);
|
||||||
}
|
}
|
||||||
//추가기능
|
//추가기능
|
||||||
//일회성 입력용
|
//일회성,선결제,쿠폰,포인트 입력 관련
|
||||||
protected function create_process(array $formDatas): PaymentEntity
|
protected function create_process(array $formDatas): PaymentEntity
|
||||||
{
|
{
|
||||||
if (!array_key_exists('serviceinfo_uid', $formDatas)) {
|
if (!array_key_exists('serviceinfo_uid', $formDatas)) {
|
||||||
@ -189,8 +209,12 @@ class PaymentService extends CommonService
|
|||||||
if (!$entity instanceof PaymentEntity) {
|
if (!$entity instanceof PaymentEntity) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 PaymentEntity만 가능");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 PaymentEntity만 가능");
|
||||||
}
|
}
|
||||||
|
//지불이 완료된경우 지불처리
|
||||||
|
if ($entity->getStatus() === STATUS['PAID']) {
|
||||||
|
$this->getWalletService($entity->getPay())->withdrawalByPayment($entity);
|
||||||
|
}
|
||||||
//선결제인경우 서비스정보에 결제일 변경용
|
//선결제인경우 서비스정보에 결제일 변경용
|
||||||
if ($formDatas['billing'] === PAYMENT['BILLING']['PREPAYMENT'] && array_key_exists('billing_at', $formDatas)) {
|
if ($entity->getBilling() === PAYMENT['BILLING']['PREPAYMENT']) {
|
||||||
service('customer_serviceservice')->updateBillingAt($entity->getServiceInfoUID(), $entity->getBillingAt());
|
service('customer_serviceservice')->updateBillingAt($entity->getServiceInfoUID(), $entity->getBillingAt());
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
@ -202,34 +226,17 @@ class PaymentService extends CommonService
|
|||||||
if (!$entity instanceof PaymentEntity) {
|
if (!$entity instanceof PaymentEntity) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 PaymentEntity만 가능");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 PaymentEntity만 가능");
|
||||||
}
|
}
|
||||||
|
//지불이 완료된경우 지불처리
|
||||||
|
if ($entity->getStatus() === STATUS['PAID']) {
|
||||||
|
$this->getWalletService($entity->getPay())->withdrawalByPayment($entity);
|
||||||
|
}
|
||||||
//선결제인경우 서비스정보에 결제일 변경용
|
//선결제인경우 서비스정보에 결제일 변경용
|
||||||
if ($formDatas['billing'] === PAYMENT['BILLING']['PREPAYMENT'] && array_key_exists('billing_at', $formDatas)) {
|
if ($entity->getBilling() === PAYMENT['BILLING']['PREPAYMENT']) {
|
||||||
service('customer_serviceservice')->updateBillingAt($entity->getServiceInfoUID(), $entity->getBillingAt());
|
service('customer_serviceservice')->updateBillingAt($entity->getServiceInfoUID(), $entity->getBillingAt());
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
//지불 관련
|
//지불 관련
|
||||||
//pay방식에따른 WalletService
|
|
||||||
private function getWalletService(string $pay): WalletService
|
|
||||||
{
|
|
||||||
$walletService = null;
|
|
||||||
switch ($pay) {
|
|
||||||
case PAYMENT['PAY']['ACCOUNT']:
|
|
||||||
$walletService = service('customer_wallet_accountservice');
|
|
||||||
break;
|
|
||||||
case PAYMENT['PAY']['COUPON']:
|
|
||||||
$walletService = service('customer_wallet_couponservice');
|
|
||||||
break;
|
|
||||||
case PAYMENT['PAY']['POINT']:
|
|
||||||
$walletService = service('customer_wallet_pointservice');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$pay}는 지정되지 않은 지불방식입니다.");
|
|
||||||
// break;
|
|
||||||
}
|
|
||||||
return $walletService;
|
|
||||||
}
|
|
||||||
//일괄 지불용
|
//일괄 지불용
|
||||||
protected function batchjob_process($entity, array $formDatas): object
|
protected function batchjob_process($entity, array $formDatas): object
|
||||||
{
|
{
|
||||||
@ -239,36 +246,6 @@ class PaymentService extends CommonService
|
|||||||
$this->getWalletService($entity->getPay())->withdrawalByPayment($entity);
|
$this->getWalletService($entity->getPay())->withdrawalByPayment($entity);
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
//단일 지불용
|
|
||||||
public function paid($uid): PaymentEntity
|
|
||||||
{
|
|
||||||
$db = \Config\Database::connect();
|
|
||||||
try {
|
|
||||||
//트랜잭션 도중 DB 오류가 발생하면 DatabaseException을 던지도록 설정
|
|
||||||
$db->transException(true)->transStart();
|
|
||||||
$entity = $this->getEntity($uid);
|
|
||||||
if (!$entity instanceof PaymentEntity) {
|
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:[{$uid}]에 대한 결제정보를 찾을 수 없습니다.");
|
|
||||||
}
|
|
||||||
//결제 완료 처리 후 추가정보 처리
|
|
||||||
$entity = parent::modify_process($entity, ['status' => STATUS['PAID']]);
|
|
||||||
//지불방식에 따른 고객 예치금,쿠폰,포인트 처리
|
|
||||||
$this->getWalletService($entity->getPay())->withdrawalByPayment($entity);
|
|
||||||
$db->transComplete();
|
|
||||||
return $entity;
|
|
||||||
} catch (DatabaseException $e) {
|
|
||||||
// DatabaseException을 포착하면 자동으로 롤백 처리됨
|
|
||||||
throw new RuntimeException(sprintf(
|
|
||||||
"\n----[%s]에서 트랜잭션 실패: DB 오류----\n%s\n%s\n------------------------------\n",
|
|
||||||
__METHOD__,
|
|
||||||
$this->model->getLastQuery(),
|
|
||||||
$e->getMessage()
|
|
||||||
), $e->getCode(), $e);
|
|
||||||
} catch (\Throwable $e) {
|
|
||||||
$db->transRollback(); // 예외 발생 시 수동으로 롤백
|
|
||||||
throw new RuntimeException($e->getMessage(), 0, $e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//청구서 관련
|
//청구서 관련
|
||||||
public function getInvoices(ClientEntity $clientEntity, ServiceEntity $serviceEntity, PaymentEntity $entity, array $rows): array
|
public function getInvoices(ClientEntity $clientEntity, ServiceEntity $serviceEntity, PaymentEntity $entity, array $rows): array
|
||||||
@ -340,9 +317,6 @@ class PaymentService extends CommonService
|
|||||||
$entity = $this->createByService($serviceEntity);
|
$entity = $this->createByService($serviceEntity);
|
||||||
} else {
|
} else {
|
||||||
$formDatas = $this->getFormDatasByService($serviceEntity);
|
$formDatas = $this->getFormDatasByService($serviceEntity);
|
||||||
$fields = array_keys($formDatas);
|
|
||||||
$this->getFormService()->setFormFields($fields);
|
|
||||||
$this->getFormService()->setFormRules('modify', $fields);
|
|
||||||
$entity = parent::modify_process($entity, $formDatas);
|
$entity = parent::modify_process($entity, $formDatas);
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
@ -365,6 +339,9 @@ class PaymentService extends CommonService
|
|||||||
}
|
}
|
||||||
public function createByServerPart(ServerPartEntity $serverPartEntity): PaymentEntity
|
public function createByServerPart(ServerPartEntity $serverPartEntity): PaymentEntity
|
||||||
{
|
{
|
||||||
|
if ($serverPartEntity->getServiceInfoUID() === null) {
|
||||||
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 서비스정보가 정의되지 않아 일회성 상품을 설정하실수 없습니다.");
|
||||||
|
}
|
||||||
$formDatas = $this->getFormDatasByServerPart($serverPartEntity);
|
$formDatas = $this->getFormDatasByServerPart($serverPartEntity);
|
||||||
$fields = array_keys($formDatas);
|
$fields = array_keys($formDatas);
|
||||||
$this->getFormService()->setFormFields($fields);
|
$this->getFormService()->setFormFields($fields);
|
||||||
@ -387,9 +364,6 @@ class PaymentService extends CommonService
|
|||||||
$entity = $this->createByServerPart($serverPartEntity);
|
$entity = $this->createByServerPart($serverPartEntity);
|
||||||
} else {
|
} else {
|
||||||
$formDatas = $this->getFormDatasByServerPart($serverPartEntity);
|
$formDatas = $this->getFormDatasByServerPart($serverPartEntity);
|
||||||
$fields = array_keys($formDatas);
|
|
||||||
$this->getFormService()->setFormFields($fields);
|
|
||||||
$this->getFormService()->setFormRules('modify', $fields);
|
|
||||||
$entity = parent::modify_process($entity, $formDatas);
|
$entity = parent::modify_process($entity, $formDatas);
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
|
|||||||
25
app/Views/admin/popup/payment/coupon_form.php
Normal file
25
app/Views/admin/popup/payment/coupon_form.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?= $this->extend($viewDatas['layout']['layout']) ?>
|
||||||
|
<?= $this->section('content') ?>
|
||||||
|
<?= session('message') ? $viewDatas['helper']->alertTrait(session('message')) : ""; ?>
|
||||||
|
<div id="container" class="content">
|
||||||
|
<div class="form_top"><?= $this->include("{$viewDatas['layout']['template']}/form_content_top"); ?></div>
|
||||||
|
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="bg-light" colspan="2"><?= $viewDatas['title'] ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($viewDatas['formFields'] as $field => $label): ?>
|
||||||
|
<tr>
|
||||||
|
<th nowrap class="text-end bg-light" width="20%"><?= $viewDatas['helper']->getFieldLabel($field, $label, $viewDatas) ?></th>
|
||||||
|
<td nowrap class="text-start">
|
||||||
|
<?= $viewDatas['helper']->getFieldForm($field, old($field) ?? ($viewDatas['formDatas'][$field] ?? null), $viewDatas) ?>
|
||||||
|
<div><?= validation_show_error($field); ?></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</table>
|
||||||
|
<div class="text-center"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></div>
|
||||||
|
<?= form_close(); ?>
|
||||||
|
<div class="form_bottom"><?= $this->include("{$viewDatas['layout']['template']}/form_content_bottom"); ?></div>
|
||||||
|
</div>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
25
app/Views/admin/popup/payment/onetime_form.php
Normal file
25
app/Views/admin/popup/payment/onetime_form.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?= $this->extend($viewDatas['layout']['layout']) ?>
|
||||||
|
<?= $this->section('content') ?>
|
||||||
|
<?= session('message') ? $viewDatas['helper']->alertTrait(session('message')) : ""; ?>
|
||||||
|
<div id="container" class="content">
|
||||||
|
<div class="form_top"><?= $this->include("{$viewDatas['layout']['template']}/form_content_top"); ?></div>
|
||||||
|
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="bg-light" colspan="2"><?= $viewDatas['title'] ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($viewDatas['formFields'] as $field => $label): ?>
|
||||||
|
<tr>
|
||||||
|
<th nowrap class="text-end bg-light" width="20%"><?= $viewDatas['helper']->getFieldLabel($field, $label, $viewDatas) ?></th>
|
||||||
|
<td nowrap class="text-start">
|
||||||
|
<?= $viewDatas['helper']->getFieldForm($field, old($field) ?? ($viewDatas['formDatas'][$field] ?? null), $viewDatas) ?>
|
||||||
|
<div><?= validation_show_error($field); ?></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</table>
|
||||||
|
<div class="text-center"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></div>
|
||||||
|
<?= form_close(); ?>
|
||||||
|
<div class="form_bottom"><?= $this->include("{$viewDatas['layout']['template']}/form_content_bottom"); ?></div>
|
||||||
|
</div>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
25
app/Views/admin/popup/payment/point_form.php
Normal file
25
app/Views/admin/popup/payment/point_form.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?= $this->extend($viewDatas['layout']['layout']) ?>
|
||||||
|
<?= $this->section('content') ?>
|
||||||
|
<?= session('message') ? $viewDatas['helper']->alertTrait(session('message')) : ""; ?>
|
||||||
|
<div id="container" class="content">
|
||||||
|
<div class="form_top"><?= $this->include("{$viewDatas['layout']['template']}/form_content_top"); ?></div>
|
||||||
|
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="bg-light" colspan="2"><?= $viewDatas['title'] ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($viewDatas['formFields'] as $field => $label): ?>
|
||||||
|
<tr>
|
||||||
|
<th nowrap class="text-end bg-light" width="20%"><?= $viewDatas['helper']->getFieldLabel($field, $label, $viewDatas) ?></th>
|
||||||
|
<td nowrap class="text-start">
|
||||||
|
<?= $viewDatas['helper']->getFieldForm($field, old($field) ?? ($viewDatas['formDatas'][$field] ?? null), $viewDatas) ?>
|
||||||
|
<div><?= validation_show_error($field); ?></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</table>
|
||||||
|
<div class="text-center"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></div>
|
||||||
|
<?= form_close(); ?>
|
||||||
|
<div class="form_bottom"><?= $this->include("{$viewDatas['layout']['template']}/form_content_bottom"); ?></div>
|
||||||
|
</div>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
25
app/Views/admin/popup/payment/prepayment_form.php
Normal file
25
app/Views/admin/popup/payment/prepayment_form.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?= $this->extend($viewDatas['layout']['layout']) ?>
|
||||||
|
<?= $this->section('content') ?>
|
||||||
|
<?= session('message') ? $viewDatas['helper']->alertTrait(session('message')) : ""; ?>
|
||||||
|
<div id="container" class="content">
|
||||||
|
<div class="form_top"><?= $this->include("{$viewDatas['layout']['template']}/form_content_top"); ?></div>
|
||||||
|
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="bg-light" colspan="2"><?= $viewDatas['title'] ?></th>
|
||||||
|
</tr>
|
||||||
|
<?php foreach ($viewDatas['formFields'] as $field => $label): ?>
|
||||||
|
<tr>
|
||||||
|
<th nowrap class="text-end bg-light" width="20%"><?= $viewDatas['helper']->getFieldLabel($field, $label, $viewDatas) ?></th>
|
||||||
|
<td nowrap class="text-start">
|
||||||
|
<?= $viewDatas['helper']->getFieldForm($field, old($field) ?? ($viewDatas['formDatas'][$field] ?? null), $viewDatas) ?>
|
||||||
|
<div><?= validation_show_error($field); ?></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</table>
|
||||||
|
<div class="text-center"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></div>
|
||||||
|
<?= form_close(); ?>
|
||||||
|
<div class="form_bottom"><?= $this->include("{$viewDatas['layout']['template']}/form_content_bottom"); ?></div>
|
||||||
|
</div>
|
||||||
|
<?= $this->endSection() ?>
|
||||||
@ -4,18 +4,21 @@
|
|||||||
<td nowrap><?= $serviceEntity->getBillingAT() ?></td>
|
<td nowrap><?= $serviceEntity->getBillingAT() ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="fw-bold" nowrap>결제금</th>
|
<th class="fw-bold text-info" nowrap>결제금</th>
|
||||||
<td class="amount-green" nowrap><?= number_format(intval($serviceEntity->getAmount())) ?>원</td>
|
<td nowrap><?= number_format(intval($serviceEntity->getAmount())) ?>원</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="fw-bold" nowrap>미납금</th>
|
<th class="fw-bold text-danger" nowrap>미납금</th>
|
||||||
<td class="amount-red" nowrap>
|
<td nowrap>
|
||||||
<?php if (array_key_exists($serviceEntity->getPK(), $serviceCellDatas['unPaids'])): ?>
|
<?= $serviceCellDatas['helper']->getListButton('unpaid', '미납금', ['unPaids' => $serviceCellDatas['unPaids'], 'entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?>
|
||||||
<?= $serviceCellDatas['helper']->getListButton('unpaid', '미납금', ['serviceCellDatas' => $serviceCellDatas, 'entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?>
|
|
||||||
<?php endif ?>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2" class="text-center"><?= $serviceCellDatas['helper']->getListButton('onetime', '일회성/선결제 추가', ['entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?></td>
|
<td nowrap class="text-center"><?= $serviceCellDatas['helper']->getListButton('onetime', '일회성 결제', ['entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?></td>
|
||||||
|
<td nowrap class="text-center"><?= $serviceCellDatas['helper']->getListButton('prepayment', '선 결제', ['entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td nowrap class="text-center"><?= $serviceCellDatas['helper']->getListButton('coupon', '쿠폰 결제', ['entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?></td>
|
||||||
|
<td nowrap class="text-center"><?= $serviceCellDatas['helper']->getListButton('point', '포인트 결제', ['entity' => $serviceEntity], ['class' => 'btn btn-sm btn-primary']) ?></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
Loading…
Reference in New Issue
Block a user