dbmsv4 init...2

This commit is contained in:
최준흠 2025-12-05 09:54:20 +09:00
parent fcfd9a9a05
commit 2cf179f8e6
3 changed files with 37 additions and 20 deletions

View File

@ -188,7 +188,7 @@ class ServerService extends EquipmentService
return $rows; return $rows;
} }
//총서버금액 //총서버금액
final public function getCacluatedAmount(int $uid): int final public function getCalculatedAmount(int $uid): int
{ {
$entity = $this->getEntity($uid); $entity = $this->getEntity($uid);
if (!$entity instanceof ServerEntity) { if (!$entity instanceof ServerEntity) {

View File

@ -268,16 +268,23 @@ class PaymentService extends CommonService
} }
public function modifyByService(ServiceEntity $serviceEntity): PaymentEntity public function modifyByService(ServiceEntity $serviceEntity): PaymentEntity
{ {
//서비스정보의 지급기한일과 같은 결제정보 가져와서 결제정보 수정 //서비스정보의 청구방식이 Month이고 지급기한일과 같고,상태가 UNPAID인 결제정보 가져와서 결제정보 수정
$entity = $this->getEntity(['serviceinfo_uid' => $serviceEntity->getPK(), 'billing_at' => $serviceEntity->getBillingAt()]); $entity = $this->getEntity([
if (!$entity instanceof PaymentEntity) { 'serviceinfo_uid' => $serviceEntity->getPK(),
throw new \Exception(__METHOD__ . "에서 오류발생: [{$serviceEntity->getPK()}]{$serviceEntity->getTitle()}에 해당하는 결제정보을 찾을수 없습니다."); 'billing' => PAYMENT['BILLING']['MONTH'],
'billing_at' => $serviceEntity->getBillingAt(),
'status' => STATUS['UNPAID']
]);
if (!$entity instanceof PaymentEntity) { //해당조건에 맞는게 없으면 생성
$entity = $this->createByService($serviceEntity);
} else {
$formDatas = $this->getFormDatasByService($serviceEntity);
$fields = array_keys($formDatas);
$this->getFormService()->setFormFields($fields);
$this->getFormService()->setFormRules('modify', $fields);
$entity = parent::modify_process($entity, $formDatas);
} }
$formDatas = $this->getFormDatasByService($serviceEntity); return $entity;
$fields = array_keys($formDatas);
$this->getFormService()->setFormFields($fields);
$this->getFormService()->setFormRules('modify', $fields);
return parent::modify_process($entity, $formDatas);
} }
//서버파트별 일회성 관련 //서버파트별 일회성 관련
private function getFormDatasByServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): array private function getFormDatasByServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): array
@ -308,15 +315,22 @@ class PaymentService extends CommonService
if ($serverPartEntity->getServiceInfoUID() === null) { if ($serverPartEntity->getServiceInfoUID() === null) {
throw new RuntimeException(__METHOD__ . "에서 오류발생: 서비스정보가 정의되지 않아 일회성 상품을 설정하실수 없습니다."); throw new RuntimeException(__METHOD__ . "에서 오류발생: 서비스정보가 정의되지 않아 일회성 상품을 설정하실수 없습니다.");
} }
//서비스정보의 지급기한일과 같은 결제정보 가져와서 결제정보 수정 //서버파트정보의 서비스번호가 같고, 청구방식이 onetime이고 상태가 UNPAID인 결제정보 가져와서 결제정보 수정
$entity = $this->getEntity(['serverpartinfo_uid' => $serverPartEntity->getPK()]); $entity = $this->getEntity([
'serverpartinfo_uid' => $serverPartEntity->getPK(),
'serviceinfo_uid' => $serverPartEntity->getServiceInfoUID(),
'billing' => PAYMENT['BILLING']['ONETIME'],
'status' => STATUS['UNPAID']
]);
if (!$entity instanceof PaymentEntity) { if (!$entity instanceof PaymentEntity) {
throw new \Exception(__METHOD__ . "에서 오류발생: [{$serverPartEntity->getPK()}]{$serverPartEntity->getTitle()}에 해당하는 결제정보을 찾을수 없습니다."); $entity = $this->createByServerPart($serverPartEntity);
} else {
$formDatas = $this->getFormDatasByServerPart($serverPartEntity);
$fields = array_keys($formDatas);
$this->getFormService()->setFormFields($fields);
$this->getFormService()->setFormRules('modify', $fields);
$entity = parent::modify_process($entity, $formDatas);
} }
$formDatas = $this->getFormDatasByServerPart($serverPartEntity); return $entity;
$fields = array_keys($formDatas);
$this->getFormService()->setFormFields($fields);
$this->getFormService()->setFormRules('modify', $fields);
return parent::modify_process($entity, $formDatas);
} }
} }

View File

@ -6,7 +6,7 @@
<th style="width: 120px">날자</th> <th style="width: 120px">날자</th>
<th style="width: 120px">결제금액</th> <th style="width: 120px">결제금액</th>
<th style="width: 250px">항목</th> <th style="width: 250px">항목</th>
<th style="width: 250px">내용</th> <th style="width: 250px">청구방식</th>
<th style="width: 250px">처리자</th> <th style="width: 250px">처리자</th>
</tr> </tr>
<?php foreach ($serviceCellDatas['entities'] as $entity): ?> <?php foreach ($serviceCellDatas['entities'] as $entity): ?>
@ -16,9 +16,12 @@
<td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('create_at', $entity->getCreatedAt(), $serviceCellDatas) ?></td> <td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('create_at', $entity->getCreatedAt(), $serviceCellDatas) ?></td>
<td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('amount', $entity->getAmount(), $serviceCellDatas) ?></td> <td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('amount', $entity->getAmount(), $serviceCellDatas) ?></td>
<td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('title', $entity->getTitle(), $serviceCellDatas) ?></td> <td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('title', $entity->getTitle(), $serviceCellDatas) ?></td>
<td class="text-start"><?= $serviceCellDatas['helper']->getFieldView('content', $entity->getContent(), $serviceCellDatas) ?></td> <td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('billing', $entity->getBilling(), $serviceCellDatas) ?></td>
<td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('user_uid', $entity->getUserUID(), $serviceCellDatas) ?></td> <td class="text-center"><?= $serviceCellDatas['helper']->getFieldView('user_uid', $entity->getUserUID(), $serviceCellDatas) ?></td>
</tr> </tr>
<tr>
<td class="text-start" colspan="6"><?= $serviceCellDatas['helper']->getFieldView('content', $entity->getTitle(), $serviceCellDatas) ?></td>
</tr>
<?php endforeach; ?> <?php endforeach; ?>
</table> </table>
</div> </div>