diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php index b37354a..fe69f7d 100644 --- a/app/Services/Customer/ServiceService.php +++ b/app/Services/Customer/ServiceService.php @@ -133,14 +133,21 @@ class ServiceService extends CustomerService } protected function create_process(array $formDatas): ServiceEntity { + $formDatas['code'] = $formDatas['site'] . "_s" . uniqid(); $entity = parent::create_process($formDatas); if (!$entity instanceof ServiceEntity) { throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 ServiceEntity만 가능"); } //서비스추가시 자동추가용 service('equipment_serverservice')->attachToService($entity); - service('paymentservice')->attachToService($entity); - return $entity; + $paymentEntity = service('paymentservice')->attachToService($entity); + //서비스정보에 결제정보 연결하기 + $formDatas = ['payment_uid' => $paymentEntity->getPK()]; + //action 초기화 + $fields = array_keys($formDatas); + $this->getFormService()->setFormFields($fields); + $this->getFormService()->setFormRules('modify', $fields); + return $this->modify_process($entity->getPK(), $formDatas); } protected function modify_process($uid, array $formDatas): ServiceEntity { diff --git a/app/Services/Equipment/ServerService.php b/app/Services/Equipment/ServerService.php index 39b21de..6706159 100644 --- a/app/Services/Equipment/ServerService.php +++ b/app/Services/Equipment/ServerService.php @@ -252,7 +252,7 @@ class ServerService extends EquipmentService //OrderBy 처리 //서비스추가시 서버정보 자동추가용 - public function attachToService(ServiceEntity $serviceEntity): void + public function attachToService(ServiceEntity $serviceEntity): ServerEntity { //서버파트정보 생성 $formDatas = []; @@ -268,5 +268,6 @@ class ServerService extends EquipmentService if (!$entity instanceof ServerEntity) { throw new \Exception(__METHOD__ . "에서 오류발생: Return Type은 ServerEntity만 가능합니다."); } + return $entity; } } diff --git a/app/Services/PaymentService.php b/app/Services/PaymentService.php index d860dee..afa1581 100644 --- a/app/Services/PaymentService.php +++ b/app/Services/PaymentService.php @@ -132,8 +132,34 @@ class PaymentService extends CommonService { return $entity; } + //기본 일회성 입력 protected function create_process(array $formDatas): PaymentEntity { + if (!array_key_exists('serviceinfo_uid', $formDatas)) { + throw new RuntimeException(__METHOD__ . '에서 오류발생: 서비스정보가 정의되지 않았습니다.'); + } + if (!array_key_exists('title', $formDatas)) { + throw new RuntimeException(__METHOD__ . '에서 오류발생: 결제 제목이 정의되지 않았습니다.'); + } + if (!array_key_exists('billing', $formDatas)) { + throw new RuntimeException(__METHOD__ . '에서 오류발생: 결제방식이 정의되지 않았습니다.'); + } + if (!array_key_exists('billing_at', $formDatas)) { + throw new RuntimeException(__METHOD__ . '에서 오류발생: 결제일이 정의되지 않았습니다.'); + } + if (!array_key_exists('status', $formDatas)) { + throw new RuntimeException(__METHOD__ . '에서 오류발생: 결제상태가 정의되지 않았습니다.'); + } + //서비스 정보 가져오기 + $serviceEntity = service('customer_serviceservice')->getEntity($formDatas['serviceinfo_uid']); + if (!$serviceEntity instanceof ServiceEntity) { + throw new RuntimeException(__METHOD__ . "에서 오류발생: {$formDatas['serviceinfo_uid']} 서비스정보를 찾을수 없습니다."); + } + //서버파트정보 생성 + $formDatas['serviceinfo_uid'] = $serviceEntity->getPK(); + $formDatas["clientinfo_uid"] = $serviceEntity->getClientInfoUID(); + $formDatas['user_uid'] = $this->getAuthContext()->getUID(); + $formDatas['amount'] = $serviceEntity->getAmount(); $entity = parent::create_process($formDatas); if (!$entity instanceof PaymentEntity) { throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 PaymentEntity만 가능"); @@ -142,11 +168,12 @@ class PaymentService extends CommonService } protected function modify_process($uid, array $formDatas): PaymentEntity { - $entity = parent::modify_process($uid, $formDatas); - if (!$entity instanceof PaymentEntity) { - throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 PaymentEntity만 가능"); - } - return $entity; + throw new RuntimeException(__METHOD__ . "에서 오류발생: 결제정보는 수정이 불가합니다."); + // $entity = parent::modify_process($uid, $formDatas); + // if (!$entity instanceof PaymentEntity) { + // throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 PaymentEntity만 가능"); + // } + // return $entity; } //List 검색용 //FormFilter 조건절 처리 @@ -222,21 +249,19 @@ class PaymentService extends CommonService } //서비스추가시 결제정보 자동추가용 - public function attachToService(ServiceEntity $serviceEntity): void + public function attachToService(ServiceEntity $serviceEntity): PaymentEntity { //서버파트정보 생성 $formDatas = []; $formDatas['serviceinfo_uid'] = $serviceEntity->getPK(); - $formDatas["clientinfo_uid"] = $serviceEntity->getClientInfoUID(); - $formDatas['user_uid'] = $this->getAuthContext()->getUID(); $formDatas['title'] = sprintf( "%s %s 서비스비용", - $serviceEntity->getClientInfoUID(), - date("Y-m") + $serviceEntity->getTitle(), + date("Y년/m월") ); - $formDatas['amount'] = $serviceEntity->getAmount(); $formDatas['billing'] = PAYMENT['BILLING']['MONTH']; $formDatas['billing_at'] = $serviceEntity->getBillingAt(); + $formDatas['pay'] = PAYMENT['PAY']['ACCOUNT']; $formDatas['status'] = STATUS['UNPAID']; //action 초기화 $fields = array_keys($formDatas); @@ -246,5 +271,6 @@ class PaymentService extends CommonService if (!$entity instanceof PaymentEntity) { throw new \Exception(__METHOD__ . "에서 오류발생: Return Type은 PaymentEntity만 가능합니다."); } + return $entity; } }