dbmsv3 init...1

This commit is contained in:
choi.jh 2025-10-17 11:36:43 +09:00
parent e067709b14
commit 744de2f644
14 changed files with 101 additions and 122 deletions

View File

@ -29,15 +29,23 @@ class ServiceCell extends CustomerCell
$this->getService()->setFormFilters(); $this->getService()->setFormFilters();
$this->getService()->setFormRules(); $this->getService()->setFormRules();
$this->getService()->setFormOptions(); $this->getService()->setFormOptions();
//서비스별 미납 Count
$unPaids = $this->getPaymentService()->getUnPaids('serviceinfo_uid', ['clientinfo_uid' => $params['clientinfo_uid']]); $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__; $template = array_key_exists('template', $params) ? $params['template'] : __FUNCTION__;
return view('cells/service/' . $template, [ return view('cells/service/' . $template, [
'serviceCellDatas' => [ 'serviceCellDatas' => [
'control' => $this->getService()->getControlDatas(), 'control' => $this->getService()->getControlDatas(),
'service' => $this->getService(), 'service' => $this->getService(),
'entities' => $entities,
'unPaids' => $unPaids, 'unPaids' => $unPaids,
'entities' => $entities,
'childServers' => $childServers,
'serverPartHelper' => new ServerPartHelper(), 'serverPartHelper' => new ServerPartHelper(),
] ]
]); ]);

View File

@ -13,7 +13,6 @@ use Psr\Log\LoggerInterface;
class ServiceController extends CustomerController class ServiceController extends CustomerController
{ {
private ?ServerService $_serverService = null;
private ?PaymentService $_paymentService = null; private ?PaymentService $_paymentService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {
@ -31,20 +30,6 @@ class ServiceController extends CustomerController
} }
return $this->_service; 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관련 //Index,FieldForm관련
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
{ {
@ -88,28 +73,16 @@ class ServiceController extends CustomerController
$this->getService()->setFormDatas($formDatas); $this->getService()->setFormDatas($formDatas);
parent::create_form_process(); 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 관련 //List 관련
protected function index_process(array $entities = []): array protected function index_process(array $entities = []): array
{ {
//서비스별 미납 Count //서비스별 미납 Count
$this->unPaids = $this->getService()->getPaymentService()->getUnPaids('serviceinfo_uid');
//서비스별 서버리스트
$childServers = []; $childServers = [];
$this->unPaids = $this->getPaymentService()->getUnPaids('serviceinfo_uid');
foreach ($this->getService()->getEntities() as $entity) { foreach ($this->getService()->getEntities() as $entity) {
$entities[] = $entity; $entities[] = $entity;
$childServers[$entity->getPK()] = $this->getChildServers($entity); $childServers[$entity->getPK()] = $this->getService()->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]);
} }
$this->childServers = $childServers; $this->childServers = $childServers;
return $entities; return $entities;
@ -157,11 +130,9 @@ class ServiceController extends CustomerController
if (!$entity instanceof ServiceEntity) { if (!$entity instanceof ServiceEntity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다."); throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
} }
$formDatas = $this->getService()->getFormDatas(); $this->entity = $this->getService()->addServer($entity, $this->getService()->getFormDatas());
$formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요
$this->entity = $this->getService()->addServer($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return "대체서버추가가 완료되었습니다."; return "<script>alert('대체서버추가가 완료되었습니다.'); history.back();</script>";
} catch (\Exception $e) { } catch (\Exception $e) {
$db->transRollback(); $db->transRollback();
return $this->getResultFail($e->getMessage()); return $this->getResultFail($e->getMessage());

View File

@ -56,34 +56,12 @@ class SearchController extends AdminController
} }
return $result; 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 protected function index_process(array $entities = []): array
{ {
$keyword = $this->request->getGet('keyword'); // 검색어 $keyword = $this->request->getGet('keyword'); // 검색어
if (!$keyword) { if (!$keyword) {
throw new \Exception("[{$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(); $db = \Config\Database::connect();
$builder = $db->table('serverinfo s') $builder = $db->table('serverinfo s')
->distinct() ->distinct()
@ -108,11 +86,11 @@ class SearchController extends AdminController
foreach ($results as $result) { foreach ($results as $result) {
$uids[] = "'{$result['serviceinfo_uid']}'"; $uids[] = "'{$result['serviceinfo_uid']}'";
} }
//서비스별 미납 Count //서비스별 서버리스트
$childServers = []; $childServers = [];
foreach ($this->getService()->getEntities("uid IN (" . implode(",", $uids) . ")") as $entity) { foreach ($this->getService()->getEntities("uid IN (" . implode(",", $uids) . ")") as $entity) {
$entities[] = $entity; $entities[] = $entity;
$childServers[$entity->getPK()] = $this->getChildServers($entity); $childServers[$entity->getPK()] = $this->getService()->getServerService()->getEntities(['serviceinfo_uid' => $entity->getPK()]);
} }
$this->childServers = $childServers; $this->childServers = $childServers;
return $entities; return $entities;

View File

@ -221,15 +221,6 @@ class ServiceService extends CustomerService
case 'serverinfo_uid': case 'serverinfo_uid':
$options = $this->getServerService()->getEntities(); $options = $this->getServerService()->getEntities();
break; break;
case 'CPU':
case 'RAM':
case 'DISK':
case 'SOFTWARE':
case 'SWITCH':
case 'IP':
case 'CS':
$options = $this->getServerService()->getFormOption($field, $options);
break;
default: default:
$options = parent::getFormOption($field, $options); $options = parent::getFormOption($field, $options);
break; break;
@ -285,8 +276,11 @@ class ServiceService extends CustomerService
//대체서버추가(가격변동은 없음) //대체서버추가(가격변동은 없음)
public function addServer(ServiceEntity $entity, array $formDatas): ServiceEntity public function addServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{ {
//대체서버추가 및 결제처리는 하지않음 if (!array_key_exists('serverinfo_uid', $formDatas)) {
return $this->getServerService()->setService('create', $entity, ['type' => SERVER['TYPES']['ALTERNATIVE']]); throw new \Exception(__METHOD__ . "에서 오류발생:대체서버가 지정되지 않았습니다.");
}
$formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요
return $this->getServerService()->setService('create', $entity, $formDatas);
} }
//대체서버를 메인서버로 설정 //대체서버를 메인서버로 설정
public function changeServer(ServiceEntity $entity, array $formDatas): ServiceEntity public function changeServer(ServiceEntity $entity, array $formDatas): ServiceEntity

View File

@ -154,7 +154,7 @@ class ServerService extends EquipmentService implements ServiceInterface
switch ($action) { switch ($action) {
case 'create': case 'create':
if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) { 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']); $entity = $this->getEntity($serviceFormDatas['serverinfo_uid']);
if (!$entity instanceof ServerEntity || $entity->getStatus() != STATUS['AVAILABLE']) { if (!$entity instanceof ServerEntity || $entity->getStatus() != STATUS['AVAILABLE']) {

View File

@ -1,6 +1,16 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?> <?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?> <?= $this->section('content') ?>
<link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" /> <link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" />
<style>
textarea.note-box {
width: 100%;
min-height: 150px;
height: 100%;
/* 부모의 높이를 꽉 채움 */
resize: none;
box-sizing: border-box;
}
</style>
<?php if ($error = session('error')): echo $viewDatas['service']->getHelper()->alert($error) ?><?php endif ?> <?php if ($error = session('error')): echo $viewDatas['service']->getHelper()->alert($error) ?><?php endif ?>
<div class="layout_top"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?></div> <div class="layout_top"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?></div>
<!-- Layout Middle Start --> <!-- Layout Middle Start -->

View File

@ -60,7 +60,16 @@
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?>
</td> </td>
<td nowrap><?= implode("", $viewDatas['childServers'][$entity->getPK()]) ?></td> <td nowrap>
<?php foreach ($viewDatas['childServers'][$entity->getPK()] as $serverEntity): ?>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $serverEntity->getPK(),
'types' => SERVERPART['SERVICE_PARTTYPES'],
'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(),
'template' => 'partlist_service'
]) ?>
<?php endforeach ?>
</td>
<td nowrap class=" text-end"> <td nowrap class=" text-end">
<?= $viewDatas['service']->getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?>
</td> </td>

View File

@ -29,4 +29,5 @@
</table> </table>
</div> </div>
<div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div> <div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div>
<?= $this->include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_iframe')); ?>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -36,7 +36,7 @@
<th class="index_head_short_column" style="width:40px;">번호</th> <th class="index_head_short_column" style="width:40px;">번호</th>
<th class="index_head_short_column"> <th class="index_head_short_column">
<?= $viewDatas['service']->getHelper()->getListLabel('site', lang("{$viewDatas['class_path']}.label.site"), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListLabel('site', lang("{$viewDatas['class_path']}.label.site"), $viewDatas) ?>
/<?= $viewDatas['service']->getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?> / <?= $viewDatas['service']->getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?>
</th> </th>
<th class="index_head_short_column"> <th class="index_head_short_column">
<?= $viewDatas['service']->getHelper()->getListLabel('clientinfo_uid', lang("{$viewDatas['class_path']}.label.clientinfo_uid"), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListLabel('clientinfo_uid', lang("{$viewDatas['class_path']}.label.clientinfo_uid"), $viewDatas) ?>
@ -74,9 +74,17 @@
</td> </td>
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?>
<BR><?= $viewDatas['service']->getHelper()->getFieldView('code', $entity->getCode(), $viewDatas) ?>
</td> </td>
<td><?= implode("", $viewDatas['childServers'][$entity->getPK()]) ?></td> <td>
<?php foreach ($viewDatas['childServers'][$entity->getPK()] as $serverEntity): ?>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $serverEntity->getPK(),
'types' => SERVERPART['SERVICE_PARTTYPES'],
'serviceinfo_serverinfo_uid' => $entity->getServerEntity()->getPK(),
'template' => 'partlist_service'
]) ?>
<?php endforeach ?>
</td>
<td nowrap class="text-end"> <td nowrap class="text-end">
<?= $viewDatas['service']->getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('sale', $entity->getSale(), $viewDatas) ?>
</td> </td>

View File

@ -37,4 +37,5 @@
</table> </table>
<div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div> <div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div>
</div> </div>
<?= $this->include("templates/common/" . (isset($viewDatas['modal_type']) ? $viewDatas['modal_type'] : 'modal_iframe')); ?>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -12,8 +12,8 @@
<?php endforeach ?> <?php endforeach ?>
<?php $view_texts = [] ?> <?php $view_texts = [] ?>
<?php foreach ($htmls as $type => $datas): ?><?php $view_texts[] = implode(',', $texts[$type]) ?><?php endforeach ?> <?php foreach ($htmls as $type => $datas): ?><?php $view_texts[] = implode(',', $texts[$type]) ?><?php endforeach ?>
<?php $text = implode(" / ", $view_texts) ?> <?php $text = implode("/", $view_texts) ?>
<span class="serverparts rounded border border-primary" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span> <span class="serverparts" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span>
<?php $view_htmls = [] ?> <?php $view_htmls = [] ?>
<?php foreach ($htmls as $type => $datas): ?><?php $view_htmls[] = implode(",", $datas) ?><?php endforeach ?> <?php foreach ($htmls as $type => $datas): ?><?php $view_htmls[] = implode(",", $datas) ?><?php endforeach ?>
<?= implode(" / ", $view_htmls) ?> <?= implode("/", $view_htmls) ?>

View File

@ -17,19 +17,18 @@
$serverPartCellDatas['serverEntity']->getOS() $serverPartCellDatas['serverEntity']->getOS()
] ?> ] ?>
<?php foreach ($htmls as $type => $datas): ?><?php $view_htmls[] = implode(",", $datas) ?><?php endforeach ?> <?php foreach ($htmls as $type => $datas): ?><?php $view_htmls[] = implode(",", $datas) ?><?php endforeach ?>
<?php $view_texts = [] ?> <?php $view_texts = [
<?php if (array_key_exists('serverEntity', $serverPartCellDatas) && $serverPartCellDatas['serverEntity']): ?> $serverPartCellDatas['serverEntity']->getCode(),
<?php $view_texts[] = $serverPartCellDatas['serverEntity']->getCode() ?> $serverPartCellDatas['serverEntity']->getIP(),
<?php $view_texts[] = $serverPartCellDatas['serverEntity']->getIP() ?> $serverPartCellDatas['serverEntity']->getSwitch(),
<?php $view_texts[] = $serverPartCellDatas['serverEntity']->getSwitch() ?> $serverPartCellDatas['serverEntity']->getOS()
<?php $view_texts[] = $serverPartCellDatas['serverEntity']->getOS() ?> ] ?>
<?php endif ?>
<?php foreach ($texts as $type => $datas): ?><?php $view_texts[] = implode(',', $datas) ?><?php endforeach ?> <?php foreach ($texts as $type => $datas): ?><?php $view_texts[] = implode(',', $datas) ?><?php endforeach ?>
<?php $text = implode("/", $view_texts) ?>
<div class="text-nowrap" style="font-size: 0.9em;"> <div class="text-nowrap" style="font-size: 0.9em;">
<?php $text = implode(" / ", $view_texts) ?> <span class="serverparts" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span>
<span class="serverparts rounded border border-primary" style="cursor:pointer;" onClick="copyServerPartToClipboard('<?= $text ?>')" text-data="<?= $text ?>">📋</span>
<?= $serverPartCellDatas['serviceinfo_serverinfo_uid'] == $serverPartCellDatas['serverEntity']->getPK() ? "📌" : "<a href=\"/admin/customer/service/changeServer/{$serverPartCellDatas['serverEntity']->getServiceInfoUID()}?serverinfo_uid={$serverPartCellDatas['serverEntity']->getPK()}\">✔️</a>" ?> <?= $serverPartCellDatas['serviceinfo_serverinfo_uid'] == $serverPartCellDatas['serverEntity']->getPK() ? "📌" : "<a href=\"/admin/customer/service/changeServer/{$serverPartCellDatas['serverEntity']->getServiceInfoUID()}?serverinfo_uid={$serverPartCellDatas['serverEntity']->getPK()}\">✔️</a>" ?>
<?= implode(" / ", $view_htmls) ?> <?= implode("/", $view_htmls) ?>
<?php if ($serverPartCellDatas['serverEntity']): ?> <?php if ($serverPartCellDatas['serverEntity']): ?>
<a href="/admin/customer/service/terminateServer/<?= $serverPartCellDatas['serverEntity']->getServiceInfoUID() ?>?serverinfo_uid=<?= $serverPartCellDatas['serverEntity']->getPK() ?>"></a> <a href="/admin/customer/service/terminateServer/<?= $serverPartCellDatas['serverEntity']->getServiceInfoUID() ?>?serverinfo_uid=<?= $serverPartCellDatas['serverEntity']->getPK() ?>"></a>
<?php endif ?> <?php endif ?>

View File

@ -1,26 +1,11 @@
<style>
.note-box {
width: 100%;
height: 140px;
resize: none;
}
</style>
<?php foreach ($serviceCellDatas['entities'] as $entity): ?> <?php foreach ($serviceCellDatas['entities'] as $entity): ?>
<?php $serviceCellDatas['entity'] = $entity ?> <?php $serviceCellDatas['entity'] = $entity ?>
<?php $serverEntity = $entity->getServerEntity() ?>
<div class="rounded border border-gray p-2 mt-3"> <div class="rounded border border-gray p-2 mt-3">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-striped">
<tr class="text-center"> <tr class="text-center">
<th style="width: 120px">서비스정보</th> <th style="width: 120px">서비스정보</th>
<th style="width: 120px">서버정보</th> <th>서버</th>
<th style="width: 250px"> <th style="width: 600px">서비스 비고</th>
<?= $serviceCellDatas['serverPartHelper']->getListButton('CPU', 'CPU', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
/ <?= $serviceCellDatas['serverPartHelper']->getListButton('RAM', 'RAM', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
/ <?= $serviceCellDatas['serverPartHelper']->getListButton('DISK', 'DISK', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
</th>
<th style="width: 200px"><?= $serviceCellDatas['serverPartHelper']->getListButton('IP', '추가IP', ['serverinfo_uid' => $serverEntity->getPK()]) ?></th>
<th style="width: 200px"><?= $serviceCellDatas['serverPartHelper']->getListButton('CS', 'CS', ['serverinfo_uid' => $serverEntity->getPK()]) ?></th>
<th>서비스 비고</th>
<th style="width: 200px">결제처리</th> <th style="width: 200px">결제처리</th>
</tr> </tr>
<tr class="text-left"> <tr class="text-left">
@ -28,23 +13,11 @@
<div><?= $serviceCellDatas['service']->getHelper()->getFieldView('site', $entity->getSite(), $serviceCellDatas) ?></div> <div><?= $serviceCellDatas['service']->getHelper()->getFieldView('site', $entity->getSite(), $serviceCellDatas) ?></div>
<div><?= $serviceCellDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $serviceCellDatas) ?></div> <div><?= $serviceCellDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $serviceCellDatas) ?></div>
</td> </td>
<td class="text-center" nowrap><?= view('cells/service/server', ['serverEntities' => $serviceCellDatas['childServers'][$entity->getPK()]]) ?></td>
<td class="text-center" nowrap> <td class="text-center" nowrap>
<div> <?= $serviceCellDatas['serverPartHelper']->getFieldView('SERVER', "", ['serverEntity' => $serverEntity]) ?></div>
<div>[<?= $serverEntity->getTitle() ?>]</div>
<div>[<?= $serverEntity->getIP() ?>]</div>
<div>[<?= $serverEntity->getOS() ?>]</div>
</td>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $serverEntity->getPK(),
'types' => SERVERPART['ALL_PARTTYPES'],
'template' => 'part_detail'
]) ?>
<td>
<?= form_open("/admin/customer/service/history/{$entity->getPK()}?return_url=" . urlencode(current_url()), ['method' => "post"]) ?> <?= form_open("/admin/customer/service/history/{$entity->getPK()}?return_url=" . urlencode(current_url()), ['method' => "post"]) ?>
<div class="row align-items-center"> <textarea name="history" class="form-control note-box"><?= $entity->getHistory() ?></textarea>
<div class="col-9"><textarea name="history" class="form-control note-box"><?= $entity->getHistory() ?></textarea></div> <?= form_submit('', '저장', array("class" => "btn btn-outline btn-primary m-3")); ?>
<div class="col-3"><?= form_submit('', '저장', array("class" => "btn btn-outline btn-primary")); ?></div>
</div>
<?= form_close() ?> <?= form_close() ?>
</td> </td>
<td> <td>

View File

@ -0,0 +1,27 @@
<table class="table table-bordered table-striped">
<?php foreach ($serverEntities as $serverEntity): ?>
<tr class="text-center">
<th style="width: 250px"><?= $serviceCellDatas['serverPartHelper']->getFieldView('SERVER', "", ['serverEntity' => $serverEntity]) ?></th>
<th style="width: 250px">
<?= $serviceCellDatas['serverPartHelper']->getListButton('CPU', 'CPU', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
/ <?= $serviceCellDatas['serverPartHelper']->getListButton('RAM', 'RAM', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
/ <?= $serviceCellDatas['serverPartHelper']->getListButton('DISK', 'DISK', ['serverinfo_uid' => $serverEntity->getPK()]) ?>
</th>
<th style="width: 200px"><?= $serviceCellDatas['serverPartHelper']->getListButton('IP', '추가IP', ['serverinfo_uid' => $serverEntity->getPK()]) ?></th>
<th style="width: 200px"><?= $serviceCellDatas['serverPartHelper']->getListButton('CS', 'CS', ['serverinfo_uid' => $serverEntity->getPK()]) ?></th>
</tr>
<tr class="text-center">
<td nowrap>
<div><?= $serverEntity->getTitle() ?></div>
<div><?= $serverEntity->getIP() ?></div>
<div><?= $serverEntity->getOS() ?></div>
</td>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $serverEntity->getPK(),
'types' => SERVERPART['ALL_PARTTYPES'],
'template' => 'part_detail'
]) ?>
</tr>
<?php endforeach; ?>
</table>