content_title = lang("{$this->getService()->getClassName()}.title"); $this->class_path .= $this->getService()->getClassName(); $this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/'; // $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR; } public function getService(): ServiceService { if (!$this->_service) { $this->_service = new ServiceService(); } return $this->_service; } public function getPaymentService(): PaymentService { if (!$this->_paymentService) { $this->_paymentService = new PaymentService(); } return $this->_paymentService; } //Index,FieldForm관련 protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string { switch ($this->getService()->getAction()) { case 'view': case 'index': $this->service = $this->getService(); $this->control = $this->getService()->getControlDatas(); $this->getService()->getHelper()->setViewDatas($this->getViewDatas()); $actionTemplate = $this->request->getVar('ActionTemplate') ?? $actionTemplate ?? 'service'; if ($actionTemplate) { $view_file = $this->view_path . $actionTemplate . DIRECTORY_SEPARATOR . $this->getService()->getAction(); } else { $view_file = $this->view_path . $this->getService()->getAction(); } $result = view($view_file, ['viewDatas' => $this->getViewDatas()]); break; case 'history': $result = redirect()->to($this->request->getGET('return_url'))->with('error', $message); break; default: $result = parent::getResultSuccess($message, $actionTemplate); break; } return $result; } //생성관련 protected function create_form_process(): void { $formDatas = $this->getService()->getFormDatas(); $formDatas['location'] = 'chiba'; $formDatas['type'] = 'normal'; $formDatas['billing_at'] = date("Y-m-d"); $formDatas['start_at'] = date("Y-m-d"); $formDatas['status'] = ServiceEntity::DEFAULT_STATUS; $this->getService()->setFormDatas($formDatas); parent::create_form_process(); } protected function create_process(array $formDatas): ServiceEntity { // 관리자 UID는 현재 인증된 사용자로 설정 $formDatas['user_uid'] = $this->getService()->getMyAuth()->getUIDByAuthInfo(); return parent::create_process($formDatas); } //수정관련 protected function modify_process(mixed $entity, array $formDatas): ServiceEntity { // 관리자 UID는 현재 인증된 사용자로 설정 $formDatas['user_uid'] = $this->getService()->getMyAuth()->getUIDByAuthInfo(); return parent::modify_process($entity, $formDatas); } //List 관련 protected function index_process(array $entities = []): array { //서비스별 미납 Count $unpaids = ['count' => 0, 'amount' => 0]; foreach ($this->getPaymentService()->getUnPaids('serviceinfo_uid') as $row) { $unpaids[$row->serviceinfo_uid]['count'] = $row->cnt; $unpaids[$row->serviceinfo_uid]['amount'] = $row->amount; }; $this->unpaids = $unpaids; //부모함수처리 return parent::index_process($entities); } public function history(int $uid): RedirectResponse|string { //Transaction Start $db = \Config\Database::connect(); $db->transStart(); try { $this->getService()->setAction(__FUNCTION__); $this->getService()->setFormFields(['history']); $this->getService()->setFormFilters(); $this->getService()->setFormRules(); //전달값정의 $this->getService()->setFormDatas($this->request->getPost()); $this->doValidations(); //기존 Entity 가져오기 $entity = $this->getService()->getEntity($uid); if (!$entity) { throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다."); } $this->entity = $this->getService()->history($entity, $this->getService()->getFormDatas()); $db->transCommit(); return $this->getResultSuccess('서비스객 비고가 수정되었습니다.'); } catch (\Exception $e) { $db->transRollback(); return $this->getResultFail($e->getMessage()); } } }