dbmsv2 init...1
This commit is contained in:
parent
8541947caf
commit
49a050ca68
@ -121,6 +121,7 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->post('batchjob', 'ServiceController::batchjob');
|
||||
$routes->post('batchjob_delete', 'ServiceController::batchjob_delete');
|
||||
$routes->get('download/(:alpha)', 'ServiceController::download/$1');
|
||||
$routes->get('detail', 'ServiceController::detail');
|
||||
});
|
||||
$routes->group('serviceitem', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
|
||||
$routes->get('/', 'ServiceItemController::index');
|
||||
|
||||
@ -51,6 +51,7 @@ class ServiceController extends CustomerController
|
||||
switch ($this->getAction()) {
|
||||
// case 'create_form':
|
||||
// case 'modify_form':
|
||||
case 'detail':
|
||||
case 'view':
|
||||
case 'index':
|
||||
$this->control = $this->getControlDatas();
|
||||
@ -91,4 +92,45 @@ class ServiceController extends CustomerController
|
||||
//부모함수처리
|
||||
return parent::index_process($entities);
|
||||
}
|
||||
|
||||
public function detail(): RedirectResponse|string
|
||||
{
|
||||
try {
|
||||
$this->setAction(__FUNCTION__);
|
||||
$this->setFormFields();
|
||||
$this->setFormFilters();
|
||||
$this->setFormRules();
|
||||
//기본값정의
|
||||
$this->setFormDatas($this->request->getGet());
|
||||
$this->setFormOptions();
|
||||
//일괄작업용 Fields정의
|
||||
$this->setControlDatas('batchjob_fields', $this->getService()->getBatchjobFields());
|
||||
//일괄작업용 버튼정의
|
||||
$this->setControlDatas('batchjob_buttions', $this->getService()->getBatchjobButtons());
|
||||
helper(['form']);
|
||||
//Return Url정의
|
||||
$this->getMyAuth()->pushCurrentUrl($this->request->getUri()->getPath() . ($this->request->getUri()->getQuery() ? "?" . $this->request->getUri()->getQuery() : ""));
|
||||
//조건절 처리
|
||||
$this->index_condition_process();
|
||||
//TotalCount (SoftDelete적용이 되려면 countAllResults를 사용해야함)
|
||||
$this->total_count = $this->getService()->getTotalCount();
|
||||
//Pagination 처리
|
||||
$this->pagination = $this->index_pagenation_process();
|
||||
//줄수 처리용
|
||||
$this->page_options = $this->index_pageOptions_process();
|
||||
//조건절 처리
|
||||
//OrcerBy , Limit 처리
|
||||
$this->order_field = $this->request->getVar('order_field');
|
||||
$this->order_value = $this->request->getVar('order_value');
|
||||
$this->getService()->setOrderBy($this->order_field, $this->order_value);
|
||||
$this->getService()->setLimit($this->per_page);
|
||||
$this->getService()->setOffset(($this->page - 1) * $this->per_page);
|
||||
$this->index_condition_process();
|
||||
$this->entities = $this->index_process();
|
||||
return $this->getResultSuccess();
|
||||
} catch (\Exception $e) {
|
||||
return $e->getMessage();
|
||||
// return $this->getResultFail($e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ abstract class CommonController extends BaseController
|
||||
}
|
||||
return array_key_exists($key, $this->_control) ? $this->_control[$key] : null;
|
||||
}
|
||||
private function setControlDatas(string $key, mixed $values): void
|
||||
final protected function setControlDatas(string $key, mixed $values): void
|
||||
{
|
||||
if (!array_key_exists($key, $this->_control)) {
|
||||
$this->_control[$key] = [];
|
||||
|
||||
@ -391,7 +391,7 @@ CREATE TABLE `serverinfo` (
|
||||
|
||||
LOCK TABLES `serverinfo` WRITE;
|
||||
/*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */;
|
||||
INSERT INTO `serverinfo` VALUES (3,585,5,'250904-M1','hp','HP DL360 Gen6',300000,'2025-08-31 15:00:00','2025-09-29 15:00:00','occupied','2025-09-05 08:50:32','2025-09-04 08:09:50',NULL),(4,223,8,'250905-M4','hp','Hitach HA3000',200000,'2025-09-02 15:00:00','2025-09-28 15:00:00','occupied','2025-09-08 07:28:50','2025-09-05 00:04:09',NULL),(5,NULL,NULL,'250905-M5','del','HP DL360 Gen9',100000,'2025-09-03 15:00:00','2025-09-26 15:00:00','available',NULL,'2025-09-05 00:05:26',NULL),(6,NULL,NULL,'250905-M6','etc','HP DL360 Gen10',300000,'2025-09-03 15:00:00','2025-09-27 15:00:00','available',NULL,'2025-09-05 07:36:21',NULL),(10,NULL,NULL,'250908-M7','hp','HP DL360 Gen9',500000,'2025-09-02 15:00:00','2025-09-27 15:00:00','available',NULL,'2025-09-08 07:14:10',NULL),(11,69,9,'250908-M11','etc','HP DL360 Gen10',500000,'2025-09-04 15:00:00','2025-09-26 15:00:00','occupied','2025-09-09 03:40:56','2025-09-08 07:25:24',NULL);
|
||||
INSERT INTO `serverinfo` VALUES (3,585,5,'250904-M1','hp','HP DL360 Gen6',300000,'2025-08-31 15:00:00','2025-09-29 15:00:00','occupied','2025-09-05 08:50:32','2025-09-04 08:09:50',NULL),(4,223,8,'250905-M4','hp','Hitach HA3000',200000,'2025-09-02 15:00:00','2025-09-28 15:00:00','occupied','2025-09-08 07:28:50','2025-09-05 00:04:09',NULL),(5,260,10,'250905-M5','del','HP DL360 Gen7',100000,'2025-09-03 15:00:00','2025-09-26 15:00:00','occupied','2025-09-09 06:22:00','2025-09-05 00:05:26',NULL),(6,NULL,NULL,'250905-M6','etc','HP DL360 Gen8',300000,'2025-09-03 15:00:00','2025-09-27 15:00:00','available','2025-09-09 06:09:35','2025-09-05 07:36:21',NULL),(10,NULL,NULL,'250908-M7','hp','HP DL360 Gen9',500000,'2025-09-02 15:00:00','2025-09-27 15:00:00','available',NULL,'2025-09-08 07:14:10',NULL),(11,69,9,'250908-M11','etc','HP DL360 Gen10',500000,'2025-09-04 15:00:00','2025-09-26 15:00:00','occupied','2025-09-09 03:40:56','2025-09-08 07:25:24',NULL);
|
||||
/*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
@ -463,7 +463,7 @@ CREATE TABLE `serviceinfo` (
|
||||
KEY `FK_clientinfo_TO_serviceinfo` (`clientinfo_uid`),
|
||||
CONSTRAINT `FK_clientinfo_TO_serviceinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`),
|
||||
CONSTRAINT `FK_user_TO_serviceinfo` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='서비스정보';
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='서비스정보';
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
@ -472,7 +472,7 @@ CREATE TABLE `serviceinfo` (
|
||||
|
||||
LOCK TABLES `serviceinfo` WRITE;
|
||||
/*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */;
|
||||
INSERT INTO `serviceinfo` VALUES (5,1,585,'s1757062232','prime','normal','chiba','2025-09-05',400000,'2025-09-05',NULL,NULL,'available','2025-09-05 09:12:29','2025-09-05 08:50:32',NULL),(8,1,223,'s1757316530','itsolution','VPN','tokyo','2025-09-23',500000,'2025-09-08',NULL,NULL,'available','2025-09-09 04:19:07','2025-09-08 07:28:50',NULL),(9,1,69,'s1757389256','gdidc','dedicated','3center','2025-09-27',500000,'2025-09-10',NULL,NULL,'available',NULL,'2025-09-09 03:40:56',NULL);
|
||||
INSERT INTO `serviceinfo` VALUES (5,1,585,'s1757062232','prime','normal','chiba','2025-09-05',400000,'2025-09-05',NULL,NULL,'available','2025-09-05 09:12:29','2025-09-05 08:50:32',NULL),(8,1,223,'s1757316530','itsolution','VPN','tokyo','2025-09-23',500000,'2025-09-08',NULL,NULL,'available','2025-09-09 04:19:07','2025-09-08 07:28:50',NULL),(9,1,69,'s1757389256','gdidc','dedicated','3center','2025-09-27',500000,'2025-09-10',NULL,NULL,'available',NULL,'2025-09-09 03:40:56',NULL),(10,1,260,'s1757398920','prime','alternative','3center','2025-09-25',500000,'2025-09-03',NULL,NULL,'available',NULL,'2025-09-09 06:22:00',NULL);
|
||||
/*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
@ -590,4 +590,4 @@ UNLOCK TABLES;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2025-09-09 14:27:17
|
||||
-- Dump completed on 2025-09-09 15:38:53
|
||||
|
||||
@ -36,8 +36,11 @@ class ServiceHelper extends CustomerHelper
|
||||
public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null
|
||||
{
|
||||
switch ($field) {
|
||||
case 'clientinfo_uid':
|
||||
$value = "<a href=\"/admin/customer/service/detail?clientinfo_uid={$value}\">" . $viewDatas['control']['field_optons'][$field][$value]->getTitle() . "</a>";
|
||||
break;
|
||||
case 'serverinfo_uid':
|
||||
$value = $viewDatas['entity']->getServerEntity()->getCustomTitle();
|
||||
$value = array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getServerEntity()->getCustomTitle() : "지정된서버없음";
|
||||
break;
|
||||
case 'billing_at':
|
||||
if (array_key_exists('unPaids', $viewDatas)) {
|
||||
|
||||
180
app/Views/admin/service/detail.php
Normal file
180
app/Views/admin/service/detail.php
Normal file
@ -0,0 +1,180 @@
|
||||
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
|
||||
<?= $this->section('content') ?>
|
||||
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
|
||||
<div class="layout_top"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?></div>
|
||||
<!-- Layout Middle Start -->
|
||||
<table class="layout_middle">
|
||||
<tr>
|
||||
<td class="layout_left">
|
||||
<!-- Layout Left Start -->
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu'); ?>
|
||||
<!-- Layout Left End -->
|
||||
</td>
|
||||
<td class="layout_right">
|
||||
<!-- Layout Right Start -->
|
||||
<div class="layout_header"><?= $this->include("templates/{$viewDatas['layout']}/index_header"); ?></div>
|
||||
<div id="container" class="layout_content">
|
||||
<link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<link href="/css/admin/service/detail.css" media="screen" rel="stylesheet" type="text/css" />
|
||||
<div class="index_body p-5">
|
||||
<!-- index_body -->
|
||||
<div class="row align-items-start rounded border border-gray pt-2 pe-2 pb-0">
|
||||
<div class="col-1 text-center p-3">
|
||||
<div>gobetsoft</div>
|
||||
<div><a href="#">[청구서발행]</a></div>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
<!-- Dashboard -->
|
||||
<div class="row">
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">도코</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">서버</div>
|
||||
<div class="fw-bold">1</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">VPN</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">일반</div>
|
||||
<div class="fw-bold">1</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">방어</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">전용</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">이벤트</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">테스트</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">대체</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">장기할인</div>
|
||||
<div class="fw-bold">30%</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">쿠폰</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="row text-center">
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label amount-highlight">예치금</div>
|
||||
<div class="amount-highlight">30,000</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label amount-positive">전체요금</div>
|
||||
<div class="amount-positive">567,000</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label amount-negative">전체미납금</div>
|
||||
<div class="amount-negative">567,000</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-center rounded border border-gray p-2 mt-3">
|
||||
<div class="col-1">
|
||||
<div class="text-center fw-bold">비고</div>
|
||||
</div>
|
||||
<div class="col-10">
|
||||
<textarea class="form-control note-box">
|
||||
24년 11월 7일 도메인 비용 안내 금지 X / 비용 변동 있을 경우 안내
|
||||
23년 6월 14일 전서버 해지하였으나, 23년 11/20일 재입고
|
||||
기존 업체명 : KY->gobetsoft 변경
|
||||
평구소프트 소개
|
||||
25/08/16 도메인 1개 구매 4만원 결제처리 / 현 예치금 3만원 -신민수-
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="col-1">
|
||||
<button class="btn btn-primary">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-end rounded border border-gray p-2 mt-3">
|
||||
<div class="col-1 text-center">
|
||||
<div><a href="#">[상세정보]</a></div>
|
||||
<div>1836B-M404</div>
|
||||
<div>S10243329344</div>
|
||||
</div>
|
||||
<div class="col-11">
|
||||
<div class="row">
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">사이트</div>
|
||||
<div class="fw-bold">Prime</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">위치</div>
|
||||
<div class="fw-bold">도쿄</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">형식</div>
|
||||
<div class="fw-bold">대체</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">CPU/메모리/저장장치</div>
|
||||
<div class="fw-bold">XEON*2/2G*2/SSD 128G*2</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">SOFTWARE</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">OS</div>
|
||||
<div class="fw-bold">Windows</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">IP주소</div>
|
||||
<div class="fw-bold">10.20.20.20</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">CS</div>
|
||||
<div class="fw-bold">20.1.2.3</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">메모</div>
|
||||
<div class="fw-bold">asdfsdfsdfsdf</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">부가서비스</div>
|
||||
<div class="fw-bold">부가</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">결제처리</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
<div class="col summary-box">
|
||||
<div class="bg-label">결제처리</div>
|
||||
<div class="fw-bold">0</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- index_body -->
|
||||
</div>
|
||||
<div class="layout_footer"><?= $this->include("templates/{$viewDatas['layout']}/index_footer"); ?></div>
|
||||
<!-- Layout Right End -->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!-- Layout Middle End -->
|
||||
<div class="layout_bottom"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/bottom'); ?></div>
|
||||
<?= $this->endSection() ?>
|
||||
33
public/css/admin/service/detail.css
Normal file
33
public/css/admin/service/detail.css
Normal file
@ -0,0 +1,33 @@
|
||||
table.layout_middle td.layout_right div#container * {
|
||||
font-size:12px;
|
||||
}
|
||||
.summary-box {
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
}
|
||||
.summary-box div{
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
border: 1px solid rgb(204, 203, 203);
|
||||
}
|
||||
|
||||
.summary-box div.bg-label {
|
||||
background-color:rgb(224, 223, 223)
|
||||
}
|
||||
|
||||
.note-box {
|
||||
height: 150px;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.amount-positive {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.amount-negative {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.amount-highlight {
|
||||
color: blue;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user