addClassName('Server'); } public function getFormFields(): array { return [ "serviceinfo_uid", "code", "type", "title", "price", "manufactur_at", "format_at", "status", "partinfo_uid", "ipinfo_uid", "csinfo_uid", ]; } public function getFilterFields(): array { return ['clientinfo_uid', 'serviceinfo_uid', 'type', 'status', 'partinfo_uid', 'ipinfo_uid', 'csinfo_uid']; } public function getBatchJobFields(): array { return ['clientinfo_uid', 'type', 'status']; } public function getIndexFields(): array { return ['clientinfo_uid', 'serviceinfo_uid', "type", 'title', 'price', 'total_price', 'manufactur_at', "format_at", 'status']; } final public function getPartService(): PartService { if (!$this->_partService) { $this->_partService = new PartService(); } return $this->_partService; } final public function getIPService(): IPService { if (!$this->_ipService) { $this->_ipService = new IPService(); } return $this->_ipService; } final public function getCSService(): CSService { if (!$this->_csService) { $this->_csService = new CSService(); } return $this->_csService; } //기본 기능부분 //FieldForm관련용 public function getFormFieldOption(string $field, array $options = []): array { switch ($field) { case 'partinfo_uid': $options = $this->getPartService()->getEntities(['status' => PartEntity::STATUS_AVAILABLE]); break; case 'ipinfo_uid': $options = $this->getIPService()->getEntities(['status' => IPEntity::STATUS_AVAILABLE]); break; case 'csinfo_uid': $options = $this->getCSService()->getEntities(['status' => CSEntity::STATUS_AVAILABLE]); break; default: $options = parent::getFormFieldOption($field, $options); break; } return $options; } //List 검색용 //OrderBy 처리 public function setOrderBy(mixed $field = null, mixed $value = null): void { $this->getModel()->orderBy("code ASC,title ASC"); parent::setOrderBy($field, $value); } }