dbmsv2_init...1

This commit is contained in:
choi.jh 2025-10-01 11:32:56 +09:00
parent 4b35876c75
commit c2dddcc035
14 changed files with 172 additions and 171 deletions

View File

@ -124,24 +124,27 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob', 'ServiceController::batchjob'); $routes->post('batchjob', 'ServiceController::batchjob');
$routes->post('batchjob_delete', 'ServiceController::batchjob_delete'); $routes->post('batchjob_delete', 'ServiceController::batchjob_delete');
$routes->get('download/(:alpha)', 'ServiceController::download/$1'); $routes->get('download/(:alpha)', 'ServiceController::download/$1');
$routes->get('alternative/(:num)', 'ServiceController::alternative_form/$1'); $routes->get('addServer/(:num)', 'ServiceController::addServer_form/$1');
$routes->post('alternative/(:num)', 'ServiceController::alternative/$1'); $routes->post('addServer/(:num)', 'ServiceController::addServer/$1');
$routes->get('main/(:num)', 'ServiceController::main/$1'); $routes->get('changeServere/(:num)', 'ServiceController::changeServere/$1');
$routes->get('terminate/(:num)', 'ServiceController::terminate/$1'); $routes->get('terminateServer/(:num)', 'ServiceController::terminateServer/$1');
$routes->post('history/(:num)', 'ServiceController::history/$1'); $routes->post('history/(:num)', 'ServiceController::history/$1');
}); });
$routes->group('payment', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) { $routes->group('payment', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
$routes->get('/', 'PaymentController::index'); $routes->get('/', 'PaymentController::index');
//일회성결제관련용
$routes->get('create', 'PaymentController::create_form'); $routes->get('create', 'PaymentController::create_form');
$routes->post('create', 'PaymentController::create'); $routes->post('create', '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');
$routes->get('delete/(:num)', 'PaymentController::delete/$1'); // $routes->get('delete/(:num)', 'PaymentController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'PaymentController::toggle/$1/$2'); // $routes->get('toggle/(:num)/(:any)', 'PaymentController::toggle/$1/$2');
//일괄결제용
$routes->post('batchjob', 'PaymentController::batchjob'); $routes->post('batchjob', 'PaymentController::batchjob');
$routes->post('batchjob_delete', 'PaymentController::batchjob_delete'); // $routes->post('batchjob_delete', 'PaymentController::batchjob_delete');
$routes->get('download/(:alpha)', 'PaymentController::download/$1'); $routes->get('download/(:alpha)', 'PaymentController::download/$1');
//청구서발행용
$routes->post('invoice', 'PaymentController::invoice'); $routes->post('invoice', 'PaymentController::invoice');
}); });
}); });

View File

@ -60,14 +60,19 @@ class PaymentController extends CustomerController
} }
//Index,FieldForm관련 //Index,FieldForm관련
//Invoice 관련 //Invoice 관련
private function invoice_process(): array public function invoice(): RedirectResponse|string
{ {
try {
$this->getService()->setAction(__FUNCTION__);
$this->getService()->setFormFields();
$this->getService()->setFormFilters();
$this->getService()->setFormRules();
//변경할 UIDS //변경할 UIDS
$uids = $this->request->getPost('batchjob_uids[]'); $uids = $this->request->getPost('batchjob_uids[]');
if (!is_array($uids) || !count($uids)) { if (!is_array($uids) || !count($uids)) {
throw new \Exception("청구서에 적용될 리스트를 선택하셔야합니다."); throw new \Exception("청구서에 적용될 리스트를 선택하셔야합니다.");
} }
$entities = []; $rows = [];
foreach ($uids as $uid) { foreach ($uids as $uid) {
//기존 Entity 가져오기 //기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid); $entity = $this->getService()->getEntity($uid);
@ -79,8 +84,8 @@ class PaymentController extends CustomerController
if (!$clientEntity instanceof ClientEntity) { if (!$clientEntity instanceof ClientEntity) {
throw new \Exception(__METHOD__ . "에서 {$entity->getClientInfoUID()}에 대한 고객정보를 찾을수 없습니다."); throw new \Exception(__METHOD__ . "에서 {$entity->getClientInfoUID()}에 대한 고객정보를 찾을수 없습니다.");
} }
if (!array_key_exists($clientEntity->getPK(), $entities)) { if (!array_key_exists($clientEntity->getPK(), $rows)) {
$entities[$clientEntity->getPK()] = [ $rows[$clientEntity->getPK()] = [
'name' => $clientEntity->getName(), 'name' => $clientEntity->getName(),
'total_amount' => 0, 'total_amount' => 0,
'services' => [] 'services' => []
@ -91,33 +96,26 @@ class PaymentController extends CustomerController
if (!$serviceEntity instanceof ServiceEntity) { if (!$serviceEntity instanceof ServiceEntity) {
throw new \Exception(__METHOD__ . "에서 {$entity->getServiceInfoUid()}에 대한 서비스정보를 찾을수 없습니다."); throw new \Exception(__METHOD__ . "에서 {$entity->getServiceInfoUid()}에 대한 서비스정보를 찾을수 없습니다.");
} }
if (!array_key_exists($serviceEntity->getPK(), $entities[$clientEntity->getPK()]['services'])) { if (!array_key_exists($serviceEntity->getPK(), $rows[$clientEntity->getPK()]['services'])) {
$entities[$clientEntity->getPK()]['services'][$serviceEntity->getPK()] = [ $rows[$clientEntity->getPK()]['services'][$serviceEntity->getPK()] = [
'code' => $serviceEntity->getTitle(), 'code' => $serviceEntity->getCode(),
'billing_at' => $serviceEntity->getBillingAt(), 'billing_at' => $serviceEntity->getBillingAt(),
'items' => [] 'items' => []
]; ];
} }
//entities에 총 결제금액 설정 //entities에 총 결제금액 설정
$entities[$clientEntity->getPK()]['total_amount'] += $entity->getAmount(); $rows[$clientEntity->getPK()]['services'][$serviceEntity->getPK()]['items'][] = ['title' => $entity->getTitle(), 'amount' => $entity->getAmount()];
$rows[$clientEntity->getPK()]['total_amount'] += $entity->getAmount();
} }
// dd($entities); // dd($rows);
return $entities; $this->rows = $rows;
}
public function invoice(): RedirectResponse|string
{
try {
$this->getService()->setAction(__FUNCTION__);
$this->getService()->setFormFields();
$this->getService()->setFormFilters();
$this->getService()->setFormRules();
$this->entities = $this->invoice_process();
return $this->getResultSuccess(); return $this->getResultSuccess();
} catch (\Exception $e) { } catch (\Exception $e) {
return $this->getResultFail($e->getMessage()); return $this->getResultFail($e->getMessage());
} }
} }
//일회성관련
protected function create_form_process(): void protected function create_form_process(): void
{ {
$formDatas = $this->getService()->getFormDatas(); $formDatas = $this->getService()->getFormDatas();

View File

@ -118,7 +118,7 @@ class ServiceController extends CustomerController
return $entities; return $entities;
} }
//대체서버선정 //대체서버선정
public function alternative_form(mixed $uid): RedirectResponse|string public function addServer_form(mixed $uid): RedirectResponse|string
{ {
try { try {
$this->getService()->setAction(__FUNCTION__); $this->getService()->setAction(__FUNCTION__);
@ -142,7 +142,7 @@ class ServiceController extends CustomerController
} }
} }
//대체서버 등록 //대체서버 등록
public function alternative(int $uid): RedirectResponse|string public function addServer(int $uid): RedirectResponse|string
{ {
//Transaction Start //Transaction Start
$db = \Config\Database::connect(); $db = \Config\Database::connect();
@ -162,7 +162,7 @@ class ServiceController extends CustomerController
} }
$formDatas = $this->getService()->getFormDatas(); $formDatas = $this->getService()->getFormDatas();
$formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요 $formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요
$this->entity = $this->getService()->addAlternativeServer($entity, $formDatas); $this->entity = $this->getService()->addServer($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess();
} catch (\Exception $e) { } catch (\Exception $e) {
@ -171,7 +171,7 @@ class ServiceController extends CustomerController
} }
} }
//대체서버를 MAIN서버로 설정 //대체서버를 MAIN서버로 설정
public function main(mixed $uid): RedirectResponse|string public function changeServere(mixed $uid): RedirectResponse|string
{ {
//Transaction Start //Transaction Start
$db = \Config\Database::connect(); $db = \Config\Database::connect();
@ -194,7 +194,7 @@ class ServiceController extends CustomerController
throw new \Exception("서비스의 메인서버로 설정할 서버정보가 없습니다."); throw new \Exception("서비스의 메인서버로 설정할 서버정보가 없습니다.");
} }
//서버정보설정 //서버정보설정
$this->getService()->changeAlternativeServer($entity, $formDatas); $this->getService()->changeServere($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess();
} catch (\Exception $e) { } catch (\Exception $e) {
@ -203,7 +203,7 @@ class ServiceController extends CustomerController
} }
} }
//서비스 서버해지 //서비스 서버해지
public function terminate(mixed $uid): RedirectResponse|string public function terminateServer(mixed $uid): RedirectResponse|string
{ {
//Transaction Start //Transaction Start
$db = \Config\Database::connect(); $db = \Config\Database::connect();
@ -219,7 +219,7 @@ class ServiceController extends CustomerController
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다."); throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
} }
$formDatas = $this->getService()->getFormDatas(); $formDatas = $this->getService()->getFormDatas();
$this->getService()->terminateAlternativeServer($entity, $formDatas); $this->getService()->terminateServer($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess();
} catch (\Exception $e) { } catch (\Exception $e) {

File diff suppressed because one or more lines are too long

View File

@ -106,13 +106,13 @@ class ServiceHelper extends CustomerHelper
case 'modify': case 'modify':
$action = parent::getListButton($action, $label, $viewDatas, $extras); $action = parent::getListButton($action, $label, $viewDatas, $extras);
break; break;
case 'alternative': case 'addServer':
$extras = ["class" => "btn btn-outline btn-info btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-info btn-circle", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['REBOOT'], $label ? $label : ICONS['REBOOT'],
$action, $action,
[ [
"data-src" => "/admin/customer/service/alternative/{$viewDatas['entity']->getPK()}", "data-src" => "/admin/customer/service/addServer/{$viewDatas['entity']->getPK()}",
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form", "data-bs-target" => "#index_action_form",
...$extras ...$extras

View File

@ -76,7 +76,7 @@ class ServerPartHelper extends EquipmentHelper
switch ($field) { switch ($field) {
case 'SERVER': case 'SERVER':
if (array_key_exists('serverEntity', $viewDatas)) { if (array_key_exists('serverEntity', $viewDatas)) {
$value = $viewDatas['serviceinfo_serverinfo_uid'] == $viewDatas['serverEntity']->getPK() ? "📌" : "<a href=\"/admin/customer/service/main/{$viewDatas['serverEntity']->getServiceInfoUID()}?serverinfo_uid={$viewDatas['serverEntity']->getPK()}\">✔️</a>"; $value = $viewDatas['serviceinfo_serverinfo_uid'] == $viewDatas['serverEntity']->getPK() ? "📌" : "<a href=\"/admin/customer/service/changeServere/{$viewDatas['serverEntity']->getServiceInfoUID()}?serverinfo_uid={$viewDatas['serverEntity']->getPK()}\">✔️</a>";
$value .= form_label( $value .= form_label(
"[" . lang("Equipment/Server.TYPE")[$viewDatas['serverEntity']->getType()] . "] " . $viewDatas['serverEntity']->getCode(), "[" . lang("Equipment/Server.TYPE")[$viewDatas['serverEntity']->getType()] . "] " . $viewDatas['serverEntity']->getCode(),
$field, $field,

View File

@ -189,46 +189,10 @@ class ServiceService extends CustomerService implements ServerInterface, ServerP
throw new \Exception(__METHOD__ . "에서 오류발생: 결제정보가 정의되지 않았습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: 결제정보가 정의되지 않았습니다.");
} }
//금액설정 //금액설정
parent::modify($entity, ['amount' => $caculatedAmount]); $entity = parent::modify($entity, ['amount' => $caculatedAmount]);
} }
return $entity; return $entity;
} }
//대체서버추가(가격변동은 없음)
final public function addAlternativeServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{
$this->getServerService()->setService($entity, $formDatas);
return $entity;
}
//대체 서버를 메인서버로 설정
final public function changeAlternativeServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{
// //기존메인서버 정보
// $oldServerEntity = $entity->getServerEntity();
// //메인서버로 선정된 대체서버정보
$serverEntity = $this->getServerService()->getEntity($formDatas['serverinfo_uid']);
if (!$serverEntity instanceof ServerEntity) {
throw new \Exception("{$formDatas['serverinfo_uid']}에 대한 서버정보를 찾을수 없습니다.");
}
// //메인서버로 선정된 서버의 형식을 기존메인서버의 형식으로 바꿈
// $serverEntity = $this->getServerService()->modify($serverEntity, ['type' => $oldServerEntity->getType()]);
//수정전 서비스정보
$oldEntity = $entity;
//메인서버 변경(메인서버를 선정된 대체서버로 바꾼다.)
$entity = parent::modify($entity, ['serverinfo_uid' => $serverEntity->getPK()]);
//전체 서비스금액 설정
$entity = $this->setAmount($entity);
//결제정보수정
$entity = $this->getPaymentService()->changeService($oldEntity, $entity, $formDatas);
//결제정보 PK설정
return parent::modify($entity, ['payment_uid' => $entity->getPaymentEntity()->getPK()]);
}
//뎇[서버해지(대체서버는 해지는 가격변동은 없음)
final public function terminateAlternativeServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{
$this->getServerService()->unsetService($entity, $formDatas);
return $entity;
}
//기본 기능부분 //기본 기능부분
//FieldForm관련용 //FieldForm관련용
public function getFormOption(string $field, array $options = []): array public function getFormOption(string $field, array $options = []): array
@ -296,35 +260,76 @@ class ServiceService extends CustomerService implements ServerInterface, ServerP
return parent::delete($entity); return parent::delete($entity);
} }
//대체서버추가(가격변동은 없음)
final public function addServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{
$this->getServerService()->setService($entity, $formDatas);
return $entity;
}
//대체 서버를 메인서버로 설정
final public function changeServere(ServiceEntity $entity, array $formDatas): ServiceEntity
{
// //기존메인서버 정보
// $oldServerEntity = $entity->getServerEntity();
// //메인서버로 선정된 대체서버정보
$serverEntity = $this->getServerService()->getEntity($formDatas['serverinfo_uid']);
if (!$serverEntity instanceof ServerEntity) {
throw new \Exception("{$formDatas['serverinfo_uid']}에 대한 서버정보를 찾을수 없습니다.");
}
// //메인서버로 선정된 서버의 형식을 기존메인서버의 형식으로 바꿈
// $serverEntity = $this->getServerService()->modify($serverEntity, ['type' => $oldServerEntity->getType()]);
//수정전 서비스정보
$oldEntity = $entity;
//메인서버 변경(메인서버를 선정된 대체서버로 바꾼다.)
$entity = parent::modify($entity, ['serverinfo_uid' => $serverEntity->getPK()]);
//전체 서비스금액 설정
$entity = $this->setAmount($entity);
//결제정보수정
$entity = $this->getPaymentService()->changeService($oldEntity, $entity, $formDatas);
//결제정보 PK설정
return parent::modify($entity, ['payment_uid' => $entity->getPaymentEntity()->getPK()]);
}
//뎇[서버해지(대체서버는 해지는 가격변동은 없음)
final public function terminateServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{
$this->getServerService()->unsetService($entity, $formDatas);
return $entity;
}
//서버관련 작업 //서버관련 작업
public function setServer(ServerEntity $serverEntity, array $serverDatas): ServerEntity public function setServer(ServerEntity $serverEntity, array $serverDatas): ServerEntity
{ {
//서비스중인지 확인
if ($serverEntity->getServiceInfoUID() === null || $serverEntity->getStatus() === STATUS['AVAILABLE']) {
throw new \Exception("서비스가 정의되지 않은 서버는 서비스정보를 설정할 수 없습니다.");
}
//아무것도 하지 않음 //아무것도 하지 않음
return $serverEntity; return $serverEntity;
} }
public function changeServer(ServerEntity $oldServerEntity, ServerEntity $serverEntity, array $serverDatas): ServerEntity public function changeServer(ServerEntity $oldServerEntity, ServerEntity $serverEntity, array $serverDatas): ServerEntity
{ {
//서비스정보가 NULL이 아니고 형식이 대체(alternative)가 아닌경우만 적용 //서비스정보가 NULL이 아니고 형식이 대체(alternative)가 아닌경우만 적용
if ($serverEntity->getServiceInfoUID() !== null && $serverEntity->getType() !== "alternative") { if ($serverEntity->getServiceInfoUID() === null || $serverEntity->getType() === "alternative") {
throw new \Exception(__METHOD__ . "에서 오류발생: 서비스가 정의되어있지 않거나 , 대체서버의 경우는 서비스정보를 변경할수 없습니다.");
}
//Service Entity 가져오기 //Service Entity 가져오기
$entity = $this->getEntity($serverEntity->getServiceInfoUID()); $oldEntity = $entity = $this->getEntity($serverEntity->getServiceInfoUID());
if (!$entity instanceof ServiceEntity) { if (!$oldEntity instanceof ServiceEntity) {
throw new \Exception("[{$serverEntity->getServiceInfoUID()}]에 대한 서비스정보를 찾을수 없습니다."); throw new \Exception("[{$serverEntity->getServiceInfoUID()}]에 대한 서비스정보를 찾을수 없습니다.");
} }
//서비스금액변경 사항이 있는지 확인후 처리 //서비스금액변경 사항이 있는지 확인후 처리
$entity = $this->setAmount($entity); $entity = $this->setAmount($oldEntity);
//결제정보수정 //결제정보수정
$entity = $this->getPaymentService()->setService($entity, []); $entity = $this->getPaymentService()->changeService($oldEntity, $entity, []);
//결제정보 PK설정 //결제정보 PK설정
parent::modify($entity, ['payment_uid' => $entity->getPaymentEntity()->getPK()]); $entity = parent::modify($entity, ['payment_uid' => $entity->getPaymentEntity()->getPK()]);
}
return $serverEntity; return $serverEntity;
} }
public function unsetServer(ServerEntity $serverEntity, array $serverDatas): ServerEntity public function unsetServer(ServerEntity $serverEntity, array $serverDatas): ServerEntity
{ {
//서비스중인지 확인 //서비스중인지 확인
if ($serverEntity->getServiceInfoUID() !== null || $serverEntity->getStatus() === STATUS['OCCUPIED']) { if ($serverEntity->getServiceInfoUID() !== null || $serverEntity->getStatus() === STATUS['OCCUPIED']) {
throw new \Exception("서비스중이 서버는 삭제하실수 없습니다."); throw new \Exception("서비스중 서버는 삭제하실수 없습니다.");
} }
//아무것도 하지 않음 //아무것도 하지 않음
return $serverEntity; return $serverEntity;
@ -351,11 +356,23 @@ class ServiceService extends CustomerService implements ServerInterface, ServerP
//setServerPart와 같은기능 //setServerPart와 같은기능
public function changeServerPart(ServerPartEntity $oldServerPartEntity, ServerPartEntity $serverPartEntity, array $serverPartDatas): ServerPartEntity public function changeServerPart(ServerPartEntity $oldServerPartEntity, ServerPartEntity $serverPartEntity, array $serverPartDatas): ServerPartEntity
{ {
return $this->setServerPart($serverPartEntity, $serverPartDatas); //Service Entity 가져오기
$oldEntity = $entity = $this->getEntity($serverPartEntity->getServiceInfoUID());
if (!$oldEntity instanceof ServiceEntity) {
throw new \Exception("[{$serverPartEntity->getServiceInfoUID()}]에 대한 서비스정보를 찾을수 없습니다.");
}
//서비스금액변경 사항이 있는지 확인후 처리
$entity = $this->setAmount($oldEntity);
//결제정보수정
$entity = $this->getPaymentService()->changeService($oldEntity, $entity, []);
//결제정보 PK설정
$entity = parent::modify($entity, ['payment_uid' => $entity->getPaymentEntity()->getPK()]);
return $serverPartEntity;
} }
//setServerPart와 같은기능 //setServerPart와 같은기능
public function unsetServerPart(ServerPartEntity $serverPartEntity, array $serverPartDatas): ServerPartEntity public function unsetServerPart(ServerPartEntity $serverPartEntity, array $serverPartDatas): ServerPartEntity
{ {
return $this->setServerPart($serverPartEntity, $serverPartDatas); //가격이 변동되므로 changeServerPart와 같은기능사용
return $this->changeServerPart($serverPartEntity, $serverPartEntity, $serverPartDatas);
} }
} }

View File

@ -166,8 +166,10 @@ class ServerService extends EquipmentService implements ServiceInterface
$oldEntity = $entity; $oldEntity = $entity;
//서버정보 수정 //서버정보 수정
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);
//서비스정보수정(청구액수정) //서비스가 연결되어 있고 대체서버가 아니면, 서비스정보수정(청구액수정)
if ($entity->getServiceInfoUID() !== null && $entity->getType() !== "alternative") {
$entity = $this->getServiceService()->changeServer($oldEntity, $entity, []); $entity = $this->getServiceService()->changeServer($oldEntity, $entity, []);
}
$entity = $this->getServerPartService()->changeServer($oldEntity, $entity, []); $entity = $this->getServerPartService()->changeServer($oldEntity, $entity, []);
return $entity; return $entity;
} }

View File

@ -118,6 +118,11 @@ class PaymentService extends CommonService implements ServiceInterface, ServerPa
} }
return $unPaids; return $unPaids;
} }
//결제금액설정
final public function setAmount(PaymentEntity $entity, int $amount): PaymentEntity
{
return parent::modify($entity, ['amount' => $amount]);
}
//기본 기능부분 //기본 기능부분
//FieldForm관련용 //FieldForm관련용
final public function getFormOption(string $field, array $options = []): array final public function getFormOption(string $field, array $options = []): array
@ -138,7 +143,7 @@ class PaymentService extends CommonService implements ServiceInterface, ServerPa
if (!array_key_exists('serviceinfo_uid', $formDatas)) { if (!array_key_exists('serviceinfo_uid', $formDatas)) {
throw new \Exception("서비스정보가 없습니다."); throw new \Exception("서비스정보가 없습니다.");
} }
//결제정보 가져오기 //서비스정보 가져오기
$serviceEntity = $this->getServiceService()->getEntity($formDatas['serviceinfo_uid']); $serviceEntity = $this->getServiceService()->getEntity($formDatas['serviceinfo_uid']);
if (!$serviceEntity instanceof ServiceEntity) { if (!$serviceEntity instanceof ServiceEntity) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서비스정보[{$formDatas['serviceinfo_uid']}]를 찾을수 없습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: 서비스정보[{$formDatas['serviceinfo_uid']}]를 찾을수 없습니다.");
@ -188,8 +193,7 @@ class PaymentService extends CommonService implements ServiceInterface, ServerPa
$formDatas['billing'] = PAYMENT['BILLING']['MONTH']; $formDatas['billing'] = PAYMENT['BILLING']['MONTH'];
$formDatas['billing_at'] = $serviceEntity->getBillingAt(); $formDatas['billing_at'] = $serviceEntity->getBillingAt();
//필수정보처리 후 결제정보수정 후 서비스정보 Entity에 결제정보 설정 //필수정보처리 후 결제정보수정 후 서비스정보 Entity에 결제정보 설정
$entity = $this->getModel()->modify($entity, $formDatas); return $serviceEntity->setPaymentEntity($this->getModel()->modify($entity, $formDatas));
return $serviceEntity->setPaymentEntity($entity);
} }
public function unsetService(ServiceEntity $serviceEntity, array $serviceDatas): ServiceEntity public function unsetService(ServiceEntity $serviceEntity, array $serviceDatas): ServiceEntity
{ {

View File

@ -12,22 +12,22 @@
</tr> </tr>
<tr> <tr>
<th class="p-0">발신자</th> <th class="p-0">발신자</th>
<td class="p-0">support@priem-idc.jp</td> <td class="p-0">support@prime-idc.jp</td>
<th class="p-0">발행일</th> <th class="p-0">발행일</th>
<td class="p-0"><?= date("Y-m-d") ?></td> <td class="p-0"><?= date("Y-m-d") ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<!-- 서비스 테이블 --> <!-- 서비스 테이블 -->
<?php foreach ($viewDatas['entities'] as $entity): ?> <?php foreach ($viewDatas['rows'] as $row): ?>
<table class="table table-sm table-bordered text-center"> <table class="table table-sm table-bordered text-center">
<tr> <tr>
<th class="p-0">관리자명</th> <th class="p-0">관리자명</th>
<th class="p-0"> 결제 금액</th> <th class="p-0"> 결제 금액</th>
</tr> </tr>
<tr> <tr>
<td class="p-0"><?= $entity['name'] ?></td> <td class="p-0"><?= $row['name'] ?></td>
<td class="p-0"><?= number_format($entity['total_amount']) ?>원</td> <td class="p-0"><?= number_format($row['total_amount']) ?>원</td>
</tr> </tr>
<tr> <tr>
<td colspan="2"> <td colspan="2">
@ -37,7 +37,7 @@
<th class="p-0">항목</th> <th class="p-0">항목</th>
<th class="p-0">지급기한</th> <th class="p-0">지급기한</th>
</tr> </tr>
<?php foreach ($entity['services'] as $service): ?> <?php foreach ($row['services'] as $service): ?>
<tr> <tr>
<td class="p-0"><?= $service['code'] ?></td> <td class="p-0"><?= $service['code'] ?></td>
<td class="p-0"> <td class="p-0">
@ -45,8 +45,8 @@
<?php foreach ($service['items'] as $item): ?> <?php foreach ($service['items'] as $item): ?>
<li class="m-0 p-0"> <li class="m-0 p-0">
<div class="row align-items-start p-0"> <div class="row align-items-start p-0">
<div class="col text-start"><?= $item['item_type'] ?></div> <div class="col text-start"><?= $item['title'] ?></div>
<div class="col text-nowrap"><?= $item['item_uid'] ?></div> <div class="col text-nowrap"><?= number_format($item['amount']) ?></div>
<div class="col text-end text-nowrap"><?= number_format($item['amount']) ?>원</div> <div class="col text-end text-nowrap"><?= number_format($item['amount']) ?>원</div>
</div> </div>
</li> </li>

View File

@ -1,12 +1,12 @@
<?php foreach ($viewDatas['entities'] as $entity): ?> <?php foreach ($viewDatas['rows'] as $row): ?>
<div class="action_form" style="background-color:azure; width:600px; margin-bottom:20px;"> <div class="action_form" style="background-color:azure; width:600px; margin-bottom:20px;">
안녕하세요 Prime IDC 입니다.<BR> 안녕하세요 Prime IDC 입니다.<BR>
항상 저희 IDC를 이용해 주셔서 감사합니다.<BR> 항상 저희 IDC를 이용해 주셔서 감사합니다.<BR>
서버비 안내 드립니다.<BR> 서버비 안내 드립니다.<BR>
<div class="p-0">고객명: <?= $entity['name'] ?> , 총 납부금액: <?= number_format($entity['total_amount']) ?>원</div> <div class="p-0">고객명: <?= $row['name'] ?> , 총 납부금액: <?= number_format($row['total_amount']) ?>원</div>
===========================<BR> ===========================<BR>
<ol> <ol>
<?php foreach ($entity['services'] as $service): ?> <?php foreach ($row['services'] as $service): ?>
<li class="p-0">서비스:<?= $service['code'] ?> , 납부기한:<?= $service['billing_at'] ?></li> <li class="p-0">서비스:<?= $service['code'] ?> , 납부기한:<?= $service['billing_at'] ?></li>
<?php endforeach; ?> <?php endforeach; ?>
</ol> </ol>

View File

@ -16,20 +16,6 @@
<div id="container" class="layout_content"> <div id="container" class="layout_content">
<link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" />
<div class="index_body"> <div class="index_body">
<?= form_open(current_url(), ["method" => "get"]) ?>
<nav class="index_top navbar navbar-expand-lg">
<div class="container-fluid">
<nav class="condition nav">
조건:
<?php foreach ($viewDatas['control']['actionFilters'] as $field): ?>
<?= $viewDatas['service']->getHelper()->getListFilter($field, $viewDatas['control']['index_filters'][$field] ?? old($field), $viewDatas) ?>&nbsp;
<?php endforeach ?>
</nav>
<?= $this->include("templates/{$viewDatas['layout']}/index_content_top"); ?>
</div>
</nav>
<?= form_close() ?>
<?= form_open(current_url(), ['id' => 'batchjob_form', 'method' => "post"]) ?>
<table class="index_table data table table-bordered table-hover table-striped" data-rtc-resizable-table="reisze_table"> <table class="index_table data table table-bordered table-hover table-striped" data-rtc-resizable-table="reisze_table">
<thead> <thead>
<tr> <tr>
@ -59,7 +45,6 @@
<th class="index_head_short_column"> <th class="index_head_short_column">
<?= $viewDatas['service']->getHelper()->getListLabel('start_at', lang("{$viewDatas['class_path']}.label.start_at"), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListLabel('start_at', lang("{$viewDatas['class_path']}.label.start_at"), $viewDatas) ?>
</th> </th>
<th class="index_head_short_column">작업</th>
</thead> </thead>
<tbody> <tbody>
<?php $cnt = 0 ?> <?php $cnt = 0 ?>
@ -67,7 +52,7 @@
<?php $viewDatas['entity'] = $entity; ?> <?php $viewDatas['entity'] = $entity; ?>
<tr <?= $entity->getStatus() === $entity::DEFAULT_STATUS ? "" : 'class="table-danger"' ?>> <tr <?= $entity->getStatus() === $entity::DEFAULT_STATUS ? "" : 'class="table-danger"' ?>>
<?php $num = $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt); ?> <?php $num = $viewDatas['total_count'] - (($viewDatas['page'] - 1) * $viewDatas['per_page'] + $cnt); ?>
<td nowrap><?= $viewDatas['service']->getHelper()->getListButton('modify', $num, $viewDatas) ?></td> <td nowrap class="text-center"><?= $num ?></td>
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getFieldView('site', $entity->site, $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('site', $entity->site, $viewDatas) ?>
/ <?= $viewDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $viewDatas) ?> / <?= $viewDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $viewDatas) ?>
@ -89,19 +74,11 @@
<?= $viewDatas['service']->getHelper()->getFieldView('status', $entity->getStatus(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('status', $entity->getStatus(), $viewDatas) ?>
</td> </td>
<td nowrap><?= $viewDatas['service']->getHelper()->getFieldView('start_at', $entity->getStartAt(), $viewDatas) ?></td> <td nowrap><?= $viewDatas['service']->getHelper()->getFieldView('start_at', $entity->getStartAt(), $viewDatas) ?></td>
<td nowrap>
<?= $viewDatas['service']->getHelper()->getListButton('alternative', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('onetime', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('view', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('delete', '', $viewDatas) ?>
</td>
</tr> </tr>
<?php $cnt++ ?> <?php $cnt++ ?>
<?php endforeach ?> <?php endforeach ?>
</tbody> </tbody>
</table> </table>
<?= $this->include("templates/{$viewDatas['layout']}/index_content_bottom"); ?>
<?= form_close() ?>
</div> </div>
</div> </div>
<div class=" layout_footer"><?= $this->include("templates/{$viewDatas['layout']}/index_footer"); ?></div> <div class=" layout_footer"><?= $this->include("templates/{$viewDatas['layout']}/index_footer"); ?></div>

View File

@ -90,7 +90,7 @@
</td> </td>
<td nowrap><?= $viewDatas['service']->getHelper()->getFieldView('start_at', $entity->getStartAt(), $viewDatas) ?></td> <td nowrap><?= $viewDatas['service']->getHelper()->getFieldView('start_at', $entity->getStartAt(), $viewDatas) ?></td>
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getListButton('alternative', '', $viewDatas) ?>&nbsp; <?= $viewDatas['service']->getHelper()->getListButton('addServer', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('onetime', '', $viewDatas) ?>&nbsp; <?= $viewDatas['service']->getHelper()->getListButton('onetime', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('view', '', $viewDatas) ?>&nbsp; <?= $viewDatas['service']->getHelper()->getListButton('view', '', $viewDatas) ?>&nbsp;
<?= $viewDatas['service']->getHelper()->getListButton('delete', '', $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListButton('delete', '', $viewDatas) ?>

View File

@ -23,6 +23,6 @@
<span class="rounded border border-primary" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span> <span class="rounded border border-primary" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span>
<?= implode(" / ", $view_htmls) ?> <?= implode(" / ", $view_htmls) ?>
<?php if ($serverPartCellDatas['serverEntity']): ?> <?php if ($serverPartCellDatas['serverEntity']): ?>
<a href="/admin/customer/service/terminate/<?= $serverPartCellDatas['serverEntity']->getServiceInfoUID() ?>?serverinfo_uid=<?= $serverPartCellDatas['serverEntity']->getPK() ?>"></a> <a href="/admin/customer/service/terminateServer/<?= $serverPartCellDatas['serverEntity']->getServiceInfoUID() ?>?serverinfo_uid=<?= $serverPartCellDatas['serverEntity']->getPK() ?>"></a>
<?php endif ?> <?php endif ?>
</div> </div>