addClassName('Server'); } public function getFormFields(): array { return [ "code", "type", "title", "price", "manufactur_at", ]; } public function getFormFilters(): array { return [ "type", "title", "status" ]; } public function getIndexFields(): array { return [ 'clientinfo_uid', 'serviceinfo_uid', "type", 'title', 'price', 'manufactur_at', "format_at", 'status', ]; } public function getIndexFilters(): array { return [ 'clientinfo_uid', 'serviceinfo_uid', 'type', "title", 'status' ]; } public function getBatchjobFields(): array { return ['clientinfo_uid', 'status']; } final public function getServiceService(): ServiceService { if ($this->_serviceService === null) { $this->_serviceService = new ServiceService(); } return $this->_serviceService; } final public function getServerPartService(): ServerPartService { if (!$this->_serverPartService) { $this->_serverPartService = new ServerPartService(); } return $this->_serverPartService; } //partEntity 정보 추가 protected function getEntity_process(mixed $entity): ServerEntity { if (!$entity instanceof ServerEntity) { throw new \Exception(__METHOD__ . "에서 형식오류:ServerEntity만 허용됩니다."); } return $entity; } //기본 기능부분 //FieldForm관련용 public function getFormOption(string $field, $options = []): array { switch ($field) { case 'serviceinfo_uid': $options = $this->getServiceService()->getEntities(); break; default: $options = parent::getFormOption($field, $options); break; } return $options; } public function setFormData(string $field, array $requestDatas, array $formDatas): array { switch ($field) { case 'CPU': case 'RAM': $formDatas[$field] = $requestDatas[$field] ?? null; $formDatas["{$field}_cnt"] = $requestDatas["{$field}_cnt"] ?? null; break; case 'DISK': $formDatas[$field] = $requestDatas[$field] ?? null; $formDatas["{$field}_cnt"] = $requestDatas["{$field}_cnt"] ?? null; $formDatas["{$field}_extra"] = $requestDatas["{$field}_extra"] ?? null; break; default: $formDatas = parent::setFormData($field, $requestDatas, $formDatas); } return $formDatas; } //Action 기능 private function action_process(ServerEntity $entity, string $action): ServerEntity { //서비스정보수정(청구액수정) $entity = $this->getServiceService()->$action($entity); $entity = $this->getServerPartService()->$action($entity); return $entity; } //수정 public function modify(mixed $entity, array $formDatas): ServerEntity { //서버정보 수정 $entity = parent::modify($entity, $formDatas); //후처리작업 return $this->action_process($entity, __FUNCTION__ . 'Server'); } //삭제 public function delete(mixed $entity): ServerEntity { //선처리작업 $entity = $this->action_process($entity, __FUNCTION__ . 'Server'); return parent::delete($entity); } //List 검색용 //OrderBy 처리 public function setOrderBy(mixed $field = null, mixed $value = null): void { $this->getModel()->orderBy("code ASC,title ASC"); parent::setOrderBy($field, $value); } }