diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php index 50fecca..59cf80e 100644 --- a/app/Services/Customer/ServiceService.php +++ b/app/Services/Customer/ServiceService.php @@ -188,7 +188,9 @@ class ServiceService extends CustomerService //서비스 총금액설정 final public function setAmount(ServiceEntity $entity): ServiceEntity { - return parent::modify($entity, ['amount' => $this->getCaculatedAmount($entity)]); + $entity = parent::modify($entity, ['amount' => $this->getCaculatedAmount($entity)]); + $entity = $this->getPaymentService()->setService('modify', $entity, []); + return $entity; } //기본 기능부분 //FieldForm관련용 @@ -226,7 +228,8 @@ class ServiceService extends CustomerService $entity = $this->getServerService()->setService('create', $entity, $formDatas); //전체 서비스금액 설정 $entity = $this->getPaymentService()->setService('create', $entity, $formDatas); - return parent::modify($entity, ['paymentifo_uid' => $entity->getPaymentEntity()->getPK()]); + $entity = parent::modify($entity, ['paymentifo_uid' => $entity->getPaymentEntity()->getPK()]); + return $entity; } //수정 public function modify(mixed $entity, array $formDatas): ServiceEntity @@ -235,8 +238,6 @@ class ServiceService extends CustomerService $oldEntity = clone $entity; //반드시 clone 할것 //서비스정보 수정 $entity = parent::modify($entity, $formDatas); - //서비스 금액 재계산 - $entity = $this->setAmount($entity); //기존 서버정보와 다르다면 서버변경 if ($oldEntity->getServerEntity()->getPK() != $formDatas['serverinfo_uid']) { //기존서버처리 @@ -244,8 +245,8 @@ class ServiceService extends CustomerService //수정할신규서버처리 $entity = $this->getServerService()->setService('create', $entity, $formDatas); } - //전체 서비스금액 설정 - return $this->getPaymentService()->setService('modify', $entity, []); + //전체 서비스 금액 재계산 후 설정 + return $this->setAmount($entity); } //삭제 public function delete(mixed $entity): ServiceEntity @@ -272,21 +273,20 @@ class ServiceService extends CustomerService { //수정전 정보 $oldEntity = clone $entity; //반드시 clone 할것 + //기존 서버의 Type정보가져오기 위함 $oldServerEntity = $oldEntity->getServerEntity(); if (!$oldServerEntity instanceof ServerEntity) { throw new \Exception(__METHOD__ . "에서 오류발생: 기존 메인 서버정보를 찾을수 없습니다."); } - //서비스정보 수정 - $entity = parent::modify($entity, $formDatas); - //서비스 금액 재계산 - $entity = $this->setAmount($entity); - //메인서버로 선정된 대체서버정보 Type을 기존 메인서버의 Type으로 변경 - $entity = $this->getServerService()->setService('modify', $entity, ['type' => $oldServerEntity->getType()]); - //전체 서비스금액 설정 - $entity = $this->getPaymentService()->setService('modify', $entity, []); + $type = $oldServerEntity->getType(); //기존메인서버 정보를 대체서버로 변경 $oldEntity = $this->getServerService()->setService('modify', $oldEntity, ['type' => SERVER['TYPES']['ALTERNATIVE']]); - return $entity; + //서비스정보 수정 + $entity = parent::modify($entity, $formDatas); + //메인서버로 선정된 대체서버정보 Type을 기존 메인서버의 Type으로 변경 + $entity = $this->getServerService()->setService('modify', $entity, ['type' => $type]); + //전체 서비스 금액 재계산 후 설정 + return $this->setAmount($entity); } //대체서버해지(대체서버는 해지는 가격변동은 없음) public function terminateServer(ServiceEntity $entity, array $formDatas): ServiceEntity diff --git a/app/Views/layouts/admin/top.php b/app/Views/layouts/admin/top.php index 9a178c7..d6736f3 100644 --- a/app/Views/layouts/admin/top.php +++ b/app/Views/layouts/admin/top.php @@ -5,7 +5,7 @@ 'GET']) ?> + \ No newline at end of file