dbmsv3 init...1

This commit is contained in:
choi.jh 2025-10-16 17:02:07 +09:00
parent 09fce28493
commit 7a78b0887a
7 changed files with 90 additions and 24 deletions

View File

@ -62,4 +62,26 @@ class ServerPartController extends EquipmentController
$this->getService()->setFormDatas($formDatas);
parent::create_form_process();
}
//팝업상태에서 삭제처리용
public function delete(mixed $uid): RedirectResponse|string
{
//Transaction Start
$db = \Config\Database::connect();
$db->transStart();
try {
$this->getService()->setAction(__FUNCTION__);
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
$this->delete_process($entity);
$db->transCommit();
return "<script>alert('{$entity->getTitle()} 항목이 삭제되었습니다.');history.back();</script>";
} catch (\Exception $e) {
$db->transRollback();
return $this->getResultFail($e->getMessage());
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -140,7 +140,7 @@ class ServerPartHelper extends EquipmentHelper
$label ? $label : ICONS["SERVER_ITEM_{$action}"],
$action,
[
"data-src" => "/admin/equipment/serverpart?serverinfo_uid={$viewDatas['serverinfo_uid']}&type={$action}&ActionTemplate=popup",
"data-src" => "/admin/equipment/serverpart/create?serverinfo_uid={$viewDatas['serverinfo_uid']}&type={$action}&ActionTemplate=popup",
"data-bs-toggle" => "modal",
"data-bs-target" => "#modal_action_form",
"class" => "btn btn-sm form-label-sm text-primary",

View File

@ -369,7 +369,7 @@ class ServerPartService extends EquipmentService implements ServerInterface
break;
case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리
if ($oldEntity->getPaymentUID() !== null) { //결제정보가 정의되어 있으면
$oldEntity = $this->getPaymentService()->setServerPart('delete', $entity, $formDatas);
$oldEntity = $this->getPaymentService()->setServerPart('delete', $entity, []);
}
if ($entity->getPaymentUID() !== null) { //결제정보가 정의되어 있으면
$entity = $this->getPaymentService()->setServerPart('create', $entity, $formDatas);
@ -389,9 +389,28 @@ class ServerPartService extends EquipmentService implements ServerInterface
{
//Type에 따른 부품서비스 정의
$this->getPartService($entity->getType())->setServerPart('delete', $entity, []);
if ($entity->getServiceInfoUID() !== null) { //서비스가 정의되어 있으면
$this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID()));
//서버연결정보 식제
parent::delete($entity);
//서비스 및 결제정보 후처리작업
switch ($entity->getBilling()) {
case PAYMENT['BILLING']['MONTH']: //월별과금일때만 처리
if ($entity->getServiceInfoUID() !== null) { //서비스가 정의되어 있으면
//서비스 금액만 재계산변경
$this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID()));
}
break;
case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리
if ($entity->getPaymentUID() !== null) { //결제정보가 정의되어 있으면
$entity = $this->getPaymentService()->setServerPart('delete', $entity, []);
}
break;
case PAYMENT['BILLING']['BASE']: //기본처리
//아무처리 않함
break;
default:
throw new \Exception(__METHOD__ . "에서 오류발생:{$entity->getBilling()}은 지정되지 않은 결제방식입니다.");
// break;
}
return parent::delete($entity);
return $entity;
}
}

View File

@ -267,15 +267,10 @@ class ServerService extends EquipmentService implements ServiceInterface
//삭제
public function delete(mixed $entity): ServerEntity
{
//서비스중인지 확인
if ($entity->getServiceInfoUID() !== null || $entity->getStatus() === STATUS['OCCUPIED']) {
//서비스가 연결되어있거나 , 사용가능 상태가 아니면 삭제불가
if ($entity->getServiceInfoUID() !== null || $entity->getStatus() !== STATUS['AVAILABLE']) {
throw new \Exception("서비스중인 서버는 삭제하실수 없습니다.");
}
//선처리작업
//서비스가 연결되어 있고 대체서버가 아니면, 서비스정보수정(청구액수정)
if ($entity->getServiceInfoUID() !== null && $entity->getType() !== "alternative") {
$this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID()));
}
//서버파트정보해지
$entity = $this->getServerPartService()->setServer('delete', $entity, []);
return parent::delete($entity);

View File

@ -163,6 +163,19 @@ class PaymentService extends CommonService implements ServiceInterface, ServerPa
$formDatas['billing_at'] = $serviceEntity->getBillingAt();
$entity = parent::modify($entity, $formDatas);
break;
case 'delete':
if ($serviceEntity->getPaymentUID() === null) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:서비스정보에 결제정보가 정의되지 않았습니다.");
}
$entity = $this->getEntity($serviceEntity->getPaymentUID());
if (!$entity instanceof PaymentEntity) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:결제정보를 찾을수 없습니다.");
}
if ($entity->getStatus() === STATUS['PAID']) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:결제완료된 서비스는 수정할수 없습니다.");
}
$entity = parent::delete($entity);
break;
default:
throw new \Exception(__METHOD__ . "에서 오류발생:{$action}은 정의되지 않은 작업입니다.");
// break;
@ -206,6 +219,19 @@ class PaymentService extends CommonService implements ServiceInterface, ServerPa
$formDatas['billing'] = $serverPartEntity->getBilling();
$entity = parent::modify($entity, $formDatas);
break;
case 'delete':
if ($serverPartEntity->getPaymentUID() === null) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:일회성서비스정보에 결제정보가 정의되지 않았습니다.");
}
$entity = $this->getEntity($serverPartEntity->getPaymentUID());
if (!$entity instanceof PaymentEntity) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:결제정보를 찾을수 없습니다.");
}
if ($entity->getStatus() === STATUS['PAID']) {
throw new \Exception(__METHOD__ . "에서 {$action}오류발생:결제완료된 서비스는 수정할수 없습니다.");
}
$entity = parent::delete($entity);
break;
default:
throw new \Exception(__METHOD__ . "에서 오류발생:{$action}은 정의되지 않은 작업입니다.");
// break;

View File

@ -6,7 +6,8 @@
<?php $serverPartCellDatas['entity'] = $entity ?>
<?php $htmls[$type][] = [
'view' => $serverPartCellDatas['service']->getHelper()->getFieldView($type, $entity->getPK(), $serverPartCellDatas),
'amount' => $entity->getTotalAmount()
'amount' => $entity->getTotalAmount(),
'entity' => $entity
] ?>
<?php endforeach ?>
<?php endforeach ?>
@ -15,7 +16,10 @@
<?php foreach ($serverPartCellDatas['types'] as $type): ?>
<tr class="m-0 p-0">
<th class="text-end m-0 p-0" width="15%"><?= $serverPartCellDatas['service']->getHelper()->getListButton($type, '', $serverPartCellDatas) ?></th>
<td class="text-start m-0 p-0"><?php foreach ($htmls[$type] as $html): ?><?= $html['view'] ?>[<?= number_format($html['amount']) ?>원]<BR><?php endforeach ?></td>
<td class="text-start m-0 p-0">
<?php foreach ($htmls[$type] as $html): ?>
<?= $html['view'] ?>[<?= number_format($html['amount']) ?>원]<a href="/admin/equipment/serverpart/delete/<?= $html['entity']->getPK() ?>">❌</a><BR>
<?php endforeach ?>
</td>
</tr>
<?php endforeach ?>