diff --git a/app/Cells/Customer/ServiceCell.php b/app/Cells/Customer/ServiceCell.php index 754db33..271ef60 100644 --- a/app/Cells/Customer/ServiceCell.php +++ b/app/Cells/Customer/ServiceCell.php @@ -29,15 +29,23 @@ class ServiceCell extends CustomerCell $this->getService()->setFormFilters(); $this->getService()->setFormRules(); $this->getService()->setFormOptions(); + //서비스별 미납 Count $unPaids = $this->getPaymentService()->getUnPaids('serviceinfo_uid', ['clientinfo_uid' => $params['clientinfo_uid']]); - $entities = $this->getService()->getEntities(['clientinfo_uid' => $params['clientinfo_uid']]); + //서비스별 서버리스트 + $entities = []; + $childServers = []; + foreach ($this->getService()->getEntities(['clientinfo_uid' => $params['clientinfo_uid']]) as $entity) { + $entities[] = $entity; + $childServers[$entity->getPK()] = $this->getService()->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]); + } $template = array_key_exists('template', $params) ? $params['template'] : __FUNCTION__; return view('cells/service/' . $template, [ 'serviceCellDatas' => [ 'control' => $this->getService()->getControlDatas(), 'service' => $this->getService(), - 'entities' => $entities, 'unPaids' => $unPaids, + 'entities' => $entities, + 'childServers' => $childServers, 'serverPartHelper' => new ServerPartHelper(), ] ]); diff --git a/app/Controllers/Admin/Customer/ServiceController.php b/app/Controllers/Admin/Customer/ServiceController.php index 756300d..797b16b 100644 --- a/app/Controllers/Admin/Customer/ServiceController.php +++ b/app/Controllers/Admin/Customer/ServiceController.php @@ -13,7 +13,6 @@ use Psr\Log\LoggerInterface; class ServiceController extends CustomerController { - private ?ServerService $_serverService = null; private ?PaymentService $_paymentService = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { @@ -31,20 +30,6 @@ class ServiceController extends CustomerController } return $this->_service; } - public function getServerService(): ServerService - { - if ($this->_serverService === null) { - $this->_serverService = new ServerService(); - } - return $this->_serverService; - } - public function getPaymentService(): PaymentService - { - if ($this->_paymentService === null) { - $this->_paymentService = new PaymentService(); - } - return $this->_paymentService; - } //Index,FieldForm관련 protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string { @@ -88,28 +73,16 @@ class ServiceController extends CustomerController $this->getService()->setFormDatas($formDatas); parent::create_form_process(); } - private function getChildServers(ServiceEntity $entity): array - { - $servers = []; - foreach ($this->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]) as $serverEntity) { - $servers[] = view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [ - 'serverinfo_uid' => $serverEntity->getPK(), - 'types' => SERVERPART['SERVICE_PARTTYPES'], - 'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(), - 'template' => 'partlist_service' - ]); - } - return $servers; - } //List 관련 protected function index_process(array $entities = []): array { //서비스별 미납 Count + $this->unPaids = $this->getService()->getPaymentService()->getUnPaids('serviceinfo_uid'); + //서비스별 서버리스트 $childServers = []; - $this->unPaids = $this->getPaymentService()->getUnPaids('serviceinfo_uid'); foreach ($this->getService()->getEntities() as $entity) { $entities[] = $entity; - $childServers[$entity->getPK()] = $this->getChildServers($entity); + $childServers[$entity->getPK()] = $this->getService()->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]); } $this->childServers = $childServers; return $entities; @@ -157,11 +130,9 @@ class ServiceController extends CustomerController if (!$entity instanceof ServiceEntity) { throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다."); } - $formDatas = $this->getService()->getFormDatas(); - $formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요 - $this->entity = $this->getService()->addServer($entity, $formDatas); + $this->entity = $this->getService()->addServer($entity, $this->getService()->getFormDatas()); $db->transCommit(); - return "대체서버추가가 완료되었습니다."; + return ""; } catch (\Exception $e) { $db->transRollback(); return $this->getResultFail($e->getMessage()); diff --git a/app/Controllers/Admin/SearchController.php b/app/Controllers/Admin/SearchController.php index c0f813e..7d9e43c 100644 --- a/app/Controllers/Admin/SearchController.php +++ b/app/Controllers/Admin/SearchController.php @@ -56,34 +56,12 @@ class SearchController extends AdminController } return $result; } - private function getChildServers(ServiceEntity $entity): array - { - $servers = []; - foreach ($this->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]) as $serverEntity) { - $servers[] = view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [ - 'serverinfo_uid' => $serverEntity->getPK(), - 'types' => SERVERPART['SERVICE_PARTTYPES'], - 'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(), - 'template' => 'partlist_service' - ]); - } - return $servers; - } protected function index_process(array $entities = []): array { $keyword = $this->request->getGet('keyword'); // 검색어 if (!$keyword) { throw new \Exception("[{$keyword}] 검색어가 지정되지 않았습니다. "); } - // ->select([ - // 's.serviceinfo_uid', - // 's.uid AS server_uid', - // 's.title AS server_title', - // 'c.uid AS client_uid', - // 'c.name AS client_name', - // 'sp.uid AS part_uid', - // 'sp.title AS part_title' - // ]) $db = \Config\Database::connect(); $builder = $db->table('serverinfo s') ->distinct() @@ -108,11 +86,11 @@ class SearchController extends AdminController foreach ($results as $result) { $uids[] = "'{$result['serviceinfo_uid']}'"; } - //서비스별 미납 Count + //서비스별 서버리스트 $childServers = []; foreach ($this->getService()->getEntities("uid IN (" . implode(",", $uids) . ")") as $entity) { $entities[] = $entity; - $childServers[$entity->getPK()] = $this->getChildServers($entity); + $childServers[$entity->getPK()] = $this->getService()->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]); } $this->childServers = $childServers; return $entities; diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php index a00136e..04244b2 100644 --- a/app/Services/Customer/ServiceService.php +++ b/app/Services/Customer/ServiceService.php @@ -221,15 +221,6 @@ class ServiceService extends CustomerService case 'serverinfo_uid': $options = $this->getServerService()->getEntities(); break; - case 'CPU': - case 'RAM': - case 'DISK': - case 'SOFTWARE': - case 'SWITCH': - case 'IP': - case 'CS': - $options = $this->getServerService()->getFormOption($field, $options); - break; default: $options = parent::getFormOption($field, $options); break; @@ -285,8 +276,11 @@ class ServiceService extends CustomerService //대체서버추가(가격변동은 없음) public function addServer(ServiceEntity $entity, array $formDatas): ServiceEntity { - //대체서버추가 및 결제처리는 하지않음 - return $this->getServerService()->setService('create', $entity, ['type' => SERVER['TYPES']['ALTERNATIVE']]); + if (!array_key_exists('serverinfo_uid', $formDatas)) { + throw new \Exception(__METHOD__ . "에서 오류발생:대체서버가 지정되지 않았습니다."); + } + $formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요 + return $this->getServerService()->setService('create', $entity, $formDatas); } //대체서버를 메인서버로 설정 public function changeServer(ServiceEntity $entity, array $formDatas): ServiceEntity diff --git a/app/Services/Equipment/ServerService.php b/app/Services/Equipment/ServerService.php index 6394ae4..a65ae88 100644 --- a/app/Services/Equipment/ServerService.php +++ b/app/Services/Equipment/ServerService.php @@ -154,7 +154,7 @@ class ServerService extends EquipmentService implements ServiceInterface switch ($action) { case 'create': if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) { - throw new \Exception(__METHOD__ . "에서 {$action}오류발생: 서버가 지정되지 않았습니다."); + throw new \Exception(__METHOD__ . "에서 {$action}오류발생: 서버가 지정되지 않았습니다.\n" . var_export($serviceFormDatas, true)); } $entity = $this->getEntity($serviceFormDatas['serverinfo_uid']); if (!$entity instanceof ServerEntity || $entity->getStatus() != STATUS['AVAILABLE']) { diff --git a/app/Views/admin/client/detail.php b/app/Views/admin/client/detail.php index 1ca404b..e56b9ad 100644 --- a/app/Views/admin/client/detail.php +++ b/app/Views/admin/client/detail.php @@ -1,6 +1,16 @@ extend(LAYOUTS[$viewDatas['layout']]['path']) ?> section('content') ?> + getHelper()->alert($error) ?>
include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?>
diff --git a/app/Views/admin/search/index.php b/app/Views/admin/search/index.php index b27dcf8..d2152e4 100644 --- a/app/Views/admin/search/index.php +++ b/app/Views/admin/search/index.php @@ -60,7 +60,16 @@ getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?> - getPK()]) ?> + + getPK()] as $serverEntity): ?> + $serverEntity->getPK(), + 'types' => SERVERPART['SERVICE_PARTTYPES'], + 'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(), + 'template' => 'partlist_service' + ]) ?> + + getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?> diff --git a/app/Views/admin/server/view.php b/app/Views/admin/server/view.php index eab00c9..2520dd2 100644 --- a/app/Views/admin/server/view.php +++ b/app/Views/admin/server/view.php @@ -29,4 +29,5 @@
include("templates/{$viewDatas['layout']}/form_content_bottom"); ?>
+include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_iframe')); ?> endSection() ?> \ No newline at end of file diff --git a/app/Views/admin/service/index.php b/app/Views/admin/service/index.php index 7d953a6..b6f901f 100644 --- a/app/Views/admin/service/index.php +++ b/app/Views/admin/service/index.php @@ -36,7 +36,7 @@ 번호 getHelper()->getListLabel('site', lang("{$viewDatas['class_path']}.label.site"), $viewDatas) ?> - /getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?> + / getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?> getHelper()->getListLabel('clientinfo_uid', lang("{$viewDatas['class_path']}.label.clientinfo_uid"), $viewDatas) ?> @@ -74,9 +74,17 @@ getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?> -
getHelper()->getFieldView('code', $entity->getCode(), $viewDatas) ?> - getPK()]) ?> + + getPK()] as $serverEntity): ?> + $serverEntity->getPK(), + 'types' => SERVERPART['SERVICE_PARTTYPES'], + 'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(), + 'template' => 'partlist_service' + ]) ?> + + getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?> diff --git a/app/Views/admin/service/view.php b/app/Views/admin/service/view.php index 1c05177..a20a420 100644 --- a/app/Views/admin/service/view.php +++ b/app/Views/admin/service/view.php @@ -37,4 +37,5 @@
include("templates/{$viewDatas['layout']}/form_content_bottom"); ?>
+include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_iframe')); ?> endSection() ?> \ No newline at end of file diff --git a/app/Views/cells/serverpart/partlist_server.php b/app/Views/cells/serverpart/partlist_server.php index 612ca66..992c892 100644 --- a/app/Views/cells/serverpart/partlist_server.php +++ b/app/Views/cells/serverpart/partlist_server.php @@ -12,8 +12,8 @@ $datas): ?> - -📋 + +📋 $datas): ?> - \ No newline at end of file + \ No newline at end of file diff --git a/app/Views/cells/serverpart/partlist_service.php b/app/Views/cells/serverpart/partlist_service.php index dd9d82d..34a2297 100644 --- a/app/Views/cells/serverpart/partlist_service.php +++ b/app/Views/cells/serverpart/partlist_service.php @@ -17,19 +17,18 @@ $serverPartCellDatas['serverEntity']->getOS() ] ?> $datas): ?> - - - getCode() ?> - getIP() ?> - getSwitch() ?> - getOS() ?> - +getCode(), + $serverPartCellDatas['serverEntity']->getIP(), + $serverPartCellDatas['serverEntity']->getSwitch(), + $serverPartCellDatas['serverEntity']->getOS() +] ?> $datas): ?> +
- - 📋 + 📋 getPK() ? "📌" : "getServiceInfoUID()}?serverinfo_uid={$serverPartCellDatas['serverEntity']->getPK()}\">✔️" ?> - + diff --git a/app/Views/cells/service/detail.php b/app/Views/cells/service/detail.php index ccec72f..260a6c7 100644 --- a/app/Views/cells/service/detail.php +++ b/app/Views/cells/service/detail.php @@ -1,26 +1,11 @@ - - getServerEntity() ?>
- +
- - - - - + + @@ -28,23 +13,11 @@
getHelper()->getFieldView('site', $entity->getSite(), $serviceCellDatas) ?>
getHelper()->getFieldView('location', $entity->getLocation(), $serviceCellDatas) ?>
+ - $serverEntity->getPK(), - 'types' => SERVERPART['ALL_PARTTYPES'], - 'template' => 'part_detail' - ]) ?> -
서비스정보서버정보 - getListButton('CPU', 'CPU', ['serverinfo_uid' => $serverEntity->getPK()]) ?> - / getListButton('RAM', 'RAM', ['serverinfo_uid' => $serverEntity->getPK()]) ?> - / getListButton('DISK', 'DISK', ['serverinfo_uid' => $serverEntity->getPK()]) ?> - getListButton('IP', '추가IP', ['serverinfo_uid' => $serverEntity->getPK()]) ?>getListButton('CS', 'CS', ['serverinfo_uid' => $serverEntity->getPK()]) ?>서비스 비고서버서비스 비고 결제처리
$serviceCellDatas['childServers'][$entity->getPK()]]) ?> -
getFieldView('SERVER', "", ['serverEntity' => $serverEntity]) ?>
-
[getTitle() ?>]
-
[getIP() ?>]
-
[getOS() ?>]
-
getPK()}?return_url=" . urlencode(current_url()), ['method' => "post"]) ?> -
-
-
"btn btn-outline btn-primary")); ?>
-
+ + "btn btn-outline btn-primary m-3")); ?>
diff --git a/app/Views/cells/service/server.php b/app/Views/cells/service/server.php new file mode 100644 index 0000000..d9c5b6a --- /dev/null +++ b/app/Views/cells/service/server.php @@ -0,0 +1,27 @@ + + + + + + + + + + + + $serverEntity->getPK(), + 'types' => SERVERPART['ALL_PARTTYPES'], + 'template' => 'part_detail' + ]) ?> + + +
getFieldView('SERVER', "", ['serverEntity' => $serverEntity]) ?> + getListButton('CPU', 'CPU', ['serverinfo_uid' => $serverEntity->getPK()]) ?> + / getListButton('RAM', 'RAM', ['serverinfo_uid' => $serverEntity->getPK()]) ?> + / getListButton('DISK', 'DISK', ['serverinfo_uid' => $serverEntity->getPK()]) ?> + getListButton('IP', '추가IP', ['serverinfo_uid' => $serverEntity->getPK()]) ?>getListButton('CS', 'CS', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
+
getTitle() ?>
+
getIP() ?>
+
getOS() ?>
+
\ No newline at end of file