shoppingmallv2 init...
This commit is contained in:
parent
f592b90073
commit
3de4a451c2
@ -218,6 +218,10 @@ define('ICONS', [
|
||||
'HOME' => '<i class="bi bi-house-door-fill"></i>',
|
||||
'PLAY' => '<i class="bi bi-play-fill"></i>',
|
||||
'CART' => '<i class="bi bi-cart4"></i>',
|
||||
'UP' => '<i class="bi bi-arrow-up"></i>',
|
||||
'DOWN' => '<i class="bi bi-arrow-down"></i>',
|
||||
'LEFT' => '<i class="bi bi-arrow-left"></i>',
|
||||
'RIGHT' => '<i class="bi bi-arrow-right"></i>',
|
||||
'IMAGE_FILE' => '<i class="bi bi-file-earmark-image"></i>',
|
||||
]);
|
||||
define('CLASS_ICONS', [
|
||||
|
||||
@ -169,6 +169,7 @@ $routes->group('front', ['namespace' => 'App\Controllers\Front'], function ($rou
|
||||
$routes->get('', 'PaymentController::index');
|
||||
$routes->get('card/(:uuid)', 'PaymentController::card_form/$1');
|
||||
$routes->post('card/(:uuid)', 'PaymentController::card/$1');
|
||||
$routes->get('deposit/(:uuid)', 'PaymentController::deposit_form/$1');
|
||||
});
|
||||
});
|
||||
/*
|
||||
|
||||
@ -2,16 +2,18 @@
|
||||
|
||||
namespace App\Controllers\Front;
|
||||
|
||||
use App\Entities\PaymentEntity;
|
||||
use App\Libraries\Adapter\Payment\CookiePayment as PaymentAdapter;
|
||||
use App\Models\OrderModel;
|
||||
use App\Models\PaymentModel;
|
||||
use App\Models\UserModel;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use App\Models\OrderModel;
|
||||
use App\Entities\PaymentEntity;
|
||||
use App\Libraries\Adapter\Payment\CookiePayment as PaymentAdapter;
|
||||
|
||||
class PaymentController extends FrontController
|
||||
{
|
||||
private $_userModel = null;
|
||||
private $_orderModel = null;
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
@ -23,6 +25,10 @@ class PaymentController extends FrontController
|
||||
$this->isRole('index');
|
||||
}
|
||||
|
||||
private function getUserModel()
|
||||
{
|
||||
return $this->_userModel = $this->_userModel ?: new UserModel();
|
||||
}
|
||||
private function getOrderModel()
|
||||
{
|
||||
return $this->_orderModel = $this->_orderModel ?: new OrderModel();
|
||||
@ -74,6 +80,7 @@ class PaymentController extends FrontController
|
||||
{
|
||||
try {
|
||||
$this->card_init();
|
||||
$this->_viewDatas['user'] = $this->getUserModel()->getEntity([$this->getUserModel()->getPrimaryKey() => $this->_viewDatas['auth'][AUTH_FIELDS['ID']]]);
|
||||
$this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]);
|
||||
helper(['form']);
|
||||
$this->_viewDatas['forms'] = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
@ -111,7 +118,7 @@ class PaymentController extends FrontController
|
||||
{
|
||||
$msg = "";
|
||||
try {
|
||||
$this->_viewDatas = $this->card_init();
|
||||
$this->card_init();
|
||||
$this->card_validate();
|
||||
$entity = $this->card_process();
|
||||
$msg = "{$this->_viewDatas['title']}에서 {$entity->getTitle()}의 " . __FUNCTION__ . " 완료하였습니다.";
|
||||
@ -125,4 +132,21 @@ class PaymentController extends FrontController
|
||||
$this->_session->setFlashdata("return_message", $msg);
|
||||
}
|
||||
}
|
||||
|
||||
public function deposit_form($uid)
|
||||
{
|
||||
try {
|
||||
$this->_viewDatas['bank'] = [
|
||||
"name" => getenv("payment.deposit.bank.name") ?: "은행명",
|
||||
"account" => getenv("payment.deposit.bank.account") ?: "계좌번호",
|
||||
"holder" => getenv("payment.deposit.bank.holder") ?: "예금주"
|
||||
];
|
||||
$this->_viewDatas['order'] = $this->getOrderModel()->getEntity([$this->getOrderModel()->getPrimaryKey() => $uid]);
|
||||
$this->_session->keepFlashdata(SESSION_NAMES['RETURN_URL']);
|
||||
return view($this->_viewPath . '/deposit', ['viewDatas' => $this->_viewDatas]);
|
||||
} catch (\Exception $e) {
|
||||
log_message("error", $e->getMessage());
|
||||
return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL']) ?: "/")->with('return_message', $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,11 +105,23 @@ function getFieldFilter_BoardHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_BoardHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
function getFieldIndex_Row_BoardHelper($field, $entity, array $viewDatas): string
|
||||
{
|
||||
|
||||
@ -105,9 +105,22 @@ function getFieldFilter_CategoryHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_CategoryHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -99,9 +99,22 @@ function getFieldFilter_OrderHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_OrderHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
@ -112,7 +125,7 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf(
|
||||
"<div class=\"location-left\">%s : %s<BR>%s</div>",
|
||||
"%s : %s<BR>%s",
|
||||
lang("{$viewDatas['className']}.label.uid"),
|
||||
$entity->getOrderHint(),
|
||||
anchor(
|
||||
@ -124,11 +137,15 @@ function getFieldIndex_Row_OrderHelper($field, $entity, array $viewDatas): strin
|
||||
break;
|
||||
case 'status':
|
||||
if ($value == DEFAULTS['STATUS']) {
|
||||
return anchor(
|
||||
return sprintf("<div class=\"payment_card\">%s</div><div class=\"payment_deposit\">%s</div>", anchor(
|
||||
'/front/payment/card/' . $entity->getPrimaryKey(),
|
||||
$viewDatas['fieldFormOptions'][$field][$value],
|
||||
"카드결제",
|
||||
["class" => "btn btn-sm btn-primary btn-circle", "style" => "color:white", "target" => "_self"]
|
||||
);
|
||||
), anchor(
|
||||
'/front/payment/deposit/' . $entity->getPrimaryKey(),
|
||||
"무통장입금",
|
||||
["class" => "btn btn-sm btn-info btn-circle", "style" => "color:white", "target" => "_self"]
|
||||
));
|
||||
} else {
|
||||
return getFieldView_OrderHelper($field, $entity, $viewDatas);
|
||||
}
|
||||
|
||||
@ -88,6 +88,12 @@ function getFieldForm_PaymentHelper($field, $value, array $viewDatas, array $att
|
||||
form_dropdown("{$field}[]", $years, DEFAULTS['EMPTY']),
|
||||
);
|
||||
break;
|
||||
case 'card_email':
|
||||
return form_input($field, $viewDatas['user']->email);
|
||||
break;
|
||||
case 'card_mobile':
|
||||
return form_input($field, $viewDatas['user']->mobile);
|
||||
break;
|
||||
default:
|
||||
return form_input($field, $value);
|
||||
break;
|
||||
@ -129,9 +135,22 @@ function getFieldFilter_PaymentHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_PaymentHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -114,12 +114,25 @@ function getFieldFilter_ProductHelper($field, $value, array $viewDatas)
|
||||
return form_dropdown($field, $viewDatas['fieldFormOptions'][$field], $value, ['class' => "select-field"]);
|
||||
} //
|
||||
|
||||
function getFieldIndex_Column_ProductHelper($field, array $viewDatas)
|
||||
function getFieldIndex_Column_Productelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -105,9 +105,22 @@ function getFieldFilter_SitepageHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_SitepageHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -93,9 +93,22 @@ function getFieldFilter_UserSNSHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_UserSNSHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -109,9 +109,22 @@ function getFieldFilter_UserHelper($field, $value, array $viewDatas)
|
||||
function getFieldIndex_Column_UserHelper($field, array $viewDatas)
|
||||
{
|
||||
$label = lang("{$viewDatas['className']}.label.{$field}");
|
||||
$label = $field == $viewDatas['order_field'] ? sprintf('%s <i class="fa fa-arrow-%s"></i>', $label, $viewDatas['order_value'] == 'ASC' ? "up" : "down") : $label;
|
||||
if ($field == $viewDatas['order_field']) {
|
||||
$label .= $viewDatas['order_value'] == 'ASC' ? ICONS['UP'] : ICONS['DOWN'];
|
||||
}
|
||||
$value = $viewDatas['order_value'] == 'DESC' ? "ASC" : "DESC";
|
||||
return anchor(current_url() . "?order_field={$field}&order_value={$value}", $label);
|
||||
$viewDatas['uri']->addQuery('order_field', $field);
|
||||
$viewDatas['uri']->addQuery('order_value', $value);
|
||||
$columnData = anchor($viewDatas['uri'], $label);
|
||||
switch ($field) {
|
||||
case 'title':
|
||||
case 'name':
|
||||
return sprintf("<th style=\"width:100px;\">%s</th>", $columnData);
|
||||
break;
|
||||
default:
|
||||
return sprintf("<th>%s</th>", $columnData);
|
||||
break;
|
||||
}
|
||||
} //
|
||||
|
||||
//Front용
|
||||
|
||||
@ -16,7 +16,7 @@ return [
|
||||
'created_at' => "작성일"
|
||||
],
|
||||
"STATUS" => [
|
||||
"use" => "결제하기",
|
||||
"use" => "장바구니",
|
||||
"unuse" => "주문취소",
|
||||
"paid" => "결제완료"
|
||||
]
|
||||
|
||||
@ -19,10 +19,10 @@ class CookiePayment extends Payment
|
||||
$adapter = new APIAdapter();
|
||||
$adapter->setHeader("content-type", "application/json; charset=utf-8");
|
||||
/* 토큰 발행 API */
|
||||
$adapter->setURL(getenv("payment.cookiepay.token_url") ?: "{TOKEN 발행 URL}");
|
||||
$adapter->setURL(getenv("payment.card.pay2.token_url") ?: "{TOKEN 발행 URL}");
|
||||
$adapter->setDatas(array(
|
||||
'pay2_id' => 'cookiepayments에서 발급받은 ID',
|
||||
'pay2_key' => 'cookiepayments에서 발급받은 연동키',
|
||||
'pay2_id' => getenv("payment.card.pay2.id") ?: 'cookiepayments에서 발급받은 ID',
|
||||
'pay2_key' => getenv("payment.card.pay2.key") ?: 'cookiepayments에서 발급받은 연동키',
|
||||
));
|
||||
$token = $adapter->execute();
|
||||
/* 여기 까지 */
|
||||
@ -35,9 +35,9 @@ class CookiePayment extends Payment
|
||||
{
|
||||
$adapter = new APIAdapter();
|
||||
$adapter->setHeader("content-type", "application/json; charset=utf-8");
|
||||
$adapter->setHeader("ApiKey", getenv("payment.cookiepay.apikey") ?: "COOKIEPAY에서 발급받은 연동키");
|
||||
$adapter->setHeader("ApiKey", getenv("payment.card.pay2.apikey") ?: "COOKIEPAY에서 발급받은 연동키");
|
||||
$adapter->setHeader("TOKEN", $this->getToken());
|
||||
$adapter->setURL(getenv("payment.cookiepay.url") ?: "{요청도메인}/keyin/payment");
|
||||
$adapter->setURL(getenv("payment.card.pay2.url") ?: "{요청도메인}/keyin/payment");
|
||||
$adapter->setDatas(array(
|
||||
'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
|
||||
'ORDERNO' => '주문번호',
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>번호</th>
|
||||
<?php foreach ($viewDatas['fields'] as $field) : ?><th><?= getFieldIndex_Column_OrderHelper($field, $viewDatas) ?></th><?php endforeach ?>
|
||||
<?php foreach ($viewDatas['fields'] as $field) : ?><?= getFieldIndex_Column_OrderHelper($field, $viewDatas) ?><?php endforeach ?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@ -21,7 +21,7 @@
|
||||
<?= $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt) ?>
|
||||
</td>
|
||||
<?php foreach ($viewDatas['fields'] as $field) : ?>
|
||||
<td nowrap><?= getFieldIndex_Row_OrderHelper($field, $entity, $viewDatas) ?></td>
|
||||
<td><?= getFieldIndex_Row_OrderHelper($field, $entity, $viewDatas) ?></td>
|
||||
<?php endforeach ?>
|
||||
</tr>
|
||||
<?php $cnt++ ?>
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<tr>
|
||||
<td valign="bottom" colspan="2"><?= form_submit('', '입력', array("class" => "btn btn-outline btn-primary")); ?></td>
|
||||
<td valign="bottom" colspan="2"><?= form_submit('', '결제', array("class" => "btn btn-outline btn-primary")); ?></td>
|
||||
</tr>
|
||||
</table>
|
||||
<?= form_close(); ?>
|
||||
|
||||
38
app/Views/front/payment/deposit.php
Normal file
38
app/Views/front/payment/deposit.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?= $this->extend('layouts/front') ?>
|
||||
<?= $this->section('content') ?>
|
||||
<link href="/css/front/content.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<div id="content">
|
||||
<div><?= html_entity_decode($viewDatas['category']->head) ?></div>
|
||||
<table class="form table table-bordered table-hover table-striped">
|
||||
<tr>
|
||||
<td class="label">상품명</td>
|
||||
<td class="column"><?= $viewDatas['order']->getTitle() ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">결제금액</td>
|
||||
<td class="column"><?= number_format($viewDatas['order']->price) ?>원</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">은행명</td>
|
||||
<td class="column"><?= $viewDatas['bank']['name'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">계좌번호</td>
|
||||
<td class="column"><?= $viewDatas['bank']['account'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">예금주</td>
|
||||
<td class="column"><?= $viewDatas['bank']['holder'] ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
설명문......
|
||||
설명문......
|
||||
설명문......
|
||||
설명문......
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div><?= html_entity_decode($viewDatas['category']->tail) ?></div>
|
||||
</div>
|
||||
<?= $this->endSection() ?>
|
||||
Loading…
Reference in New Issue
Block a user