dbmsv3 init...1
This commit is contained in:
parent
1ddf06ff3e
commit
ecc0c572fc
@ -70,7 +70,7 @@ class ServerCell extends EquipmentCell
|
||||
'partCellDatas' => [
|
||||
'control' => $this->getService()->getControlDatas(),
|
||||
'service' => $this->getService(),
|
||||
'entities' => $this->getService()->getEntities(),
|
||||
'rows' => $this->getService()->getStockCount(),
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
@ -420,25 +420,34 @@ define("SERVERPART", [
|
||||
"SERVICE_PARTTYPES" => ['SOFTWARE', 'CS', 'IP'],
|
||||
"ALL_PARTTYPES" => ['CPU', 'RAM', 'DISK', 'SOFTWARE', 'IP', 'CS'],
|
||||
"CPU" => [
|
||||
"ATYPE" => [["UID" => 1, "CNT" => 1, "EXTRA" => ""]],
|
||||
"BTYPE" => [["UID" => 2, "CNT" => 1, "EXTRA" => ""]],
|
||||
"CTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"DTYPE" => [["UID" => 4, "CNT" => 2, "EXTRA" => ""]],
|
||||
"ETYPE" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen6B" => [["UID" => 1, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen7C" => [["UID" => 2, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen7D" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen8D" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen8E" => [["UID" => 4, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen9E" => [["UID" => 4, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen10" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
|
||||
"Hitach HA3000" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
|
||||
],
|
||||
"RAM" => [
|
||||
"ATYPE" => [["UID" => 3, "CNT" => 1, "EXTRA" => ""]],
|
||||
"BTYPE" => [["UID" => 3, "CNT" => 1, "EXTRA" => ""]],
|
||||
"CTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"DTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"ETYPE" => [["UID" => 3, "CNT" => 4, "EXTRA" => ""]],
|
||||
"HP DL360 Gen6B" => [["UID" => 2, "CNT" => 1, "EXTRA" => ""]],
|
||||
"HP DL360 Gen7C" => [["UID" => 2, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen7D" => [["UID" => 2, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen8D" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
|
||||
"HP DL360 Gen8E" => [["UID" => 3, "CNT" => 4, "EXTRA" => ""]],
|
||||
"HP DL360 Gen9E" => [["UID" => 4, "CNT" => 4, "EXTRA" => ""]],
|
||||
"HP DL360 Gen10" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
|
||||
"Hitach HA3000" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
|
||||
],
|
||||
"DISK" => [
|
||||
"ATYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"BTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"CTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"DTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"ETYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen6B" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen7C" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen7D" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen8C" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen8D" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen9E" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"HP DL360 Gen10" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
"Hitach HA3000" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
|
||||
]
|
||||
]);
|
||||
//결제 관련
|
||||
@ -461,4 +470,5 @@ define("BOARD", [
|
||||
'WORKING' => 'working',
|
||||
'REQUESTTASK' => 'requesttask'
|
||||
],
|
||||
'LATEST_LIMIT' => 3,
|
||||
]);
|
||||
|
||||
@ -31,9 +31,9 @@ class BoardController extends AdminController
|
||||
//전달값정의
|
||||
$this->getService()->setFormDatas($this->request->getGet());
|
||||
$formDatas = $this->getSErvice()->getFormDatas();
|
||||
return $this->response->setJSON($this->getService()->latest(
|
||||
['category' => array_key_exists('category', $formDatas) && $formDatas['category'] ? $formDatas['category'] : 'notice'],
|
||||
array_key_exists('limit', $formDatas) ? $formDatas['limit'] : 3
|
||||
return $this->response->setJSON($this->getService()->getLatest(
|
||||
array_key_exists('category', $formDatas) && $formDatas['category'] ? $formDatas['category'] : BOARD['CATEGORY']['NOTICE'],
|
||||
array_key_exists('limit', $formDatas) ? $formDatas['limit'] : BOARD['LATEST_LIMIT']
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Controllers\Admin;
|
||||
|
||||
use App\Services\BoardService;
|
||||
use App\Services\Customer\ServiceService;
|
||||
use CodeIgniter\HTTP\RedirectResponse;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
@ -11,6 +12,7 @@ use Psr\Log\LoggerInterface;
|
||||
class Home extends AdminController
|
||||
{
|
||||
private $_service = null;
|
||||
private ?BoardService $_boardService = null;
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
@ -27,7 +29,13 @@ class Home extends AdminController
|
||||
}
|
||||
return $this->_service;
|
||||
}
|
||||
|
||||
final public function getBoardService(): BoardService
|
||||
{
|
||||
if (!$this->_boardService) {
|
||||
$this->_boardService = new BoardService();
|
||||
}
|
||||
return $this->_boardService;
|
||||
}
|
||||
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
|
||||
{
|
||||
switch ($this->getService()->getAction()) {
|
||||
@ -61,20 +69,20 @@ class Home extends AdminController
|
||||
$this->getService()->setFormRules();
|
||||
$this->getService()->setFormOptions();
|
||||
//요청업무
|
||||
|
||||
$this->boardRequestTaskCount = $this->getBoardService()->getRequestTaskCount($this->getMyAuth()->getUIDByAuthInfo());
|
||||
//Total 서버 현황
|
||||
//interval을 기준으로 최근 신규 서비스정보 가져오기
|
||||
$this->interval = intval($this->request->getVar('interval') ?? SERVICE['NEW_INTERVAL']);
|
||||
$this->newServiceEntities = $this->getService()->getNewServiceEntities($this->interval);
|
||||
$this->newServiceCount = count($this->newServiceEntities);
|
||||
//서비스별 미납 Count
|
||||
$totalUnPaidCount = $totalUnPaidAmount = 0;
|
||||
$unPaidTotalCount = $unPaidTotalAmount = 0;
|
||||
foreach (array_values($this->getService()->getPaymentService()->getUnPaids('serviceinfo_uid')) as $unPaid) {
|
||||
$totalUnPaidCount += $unPaid['cnt'];
|
||||
$totalUnPaidAmount += $unPaid['amount'];
|
||||
$unPaidTotalCount += $unPaid['cnt'];
|
||||
$unPaidTotalAmount += $unPaid['amount'];
|
||||
}
|
||||
$this->totalUnPaidCount = $totalUnPaidCount;
|
||||
$this->totalUnPaidAmount = $totalUnPaidAmount;
|
||||
$this->unPaidTotalCount = $unPaidTotalCount;
|
||||
$this->unPaidTotalAmount = $unPaidTotalAmount;
|
||||
helper(['form']);
|
||||
return $this->getResultSuccess();
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ class DISKController extends PartController
|
||||
$formDatas['stock'] = $entity->getStock() + $entity->getFormat();
|
||||
$this->entity = $this->getService()->modify($entity, $formDatas);
|
||||
$db->transCommit();
|
||||
return $this->getResultSuccess("포맷완료 처리가되었습니다.");
|
||||
return "<script>alert('포맷처리가 완료되었습니다.'); history.back();</script>";
|
||||
} catch (\Exception $e) {
|
||||
$db->transRollback();
|
||||
return $this->getResultFail($e->getMessage());
|
||||
|
||||
@ -64,6 +64,7 @@ DROP TABLE IF EXISTS `boardinfo`;
|
||||
CREATE TABLE `boardinfo` (
|
||||
`uid` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_uid` int(11) NOT NULL,
|
||||
`worker_uid` int(11) DEFAULT NULL,
|
||||
`category` varchar(20) NOT NULL DEFAULT 'notice',
|
||||
`title` varchar(255) NOT NULL,
|
||||
`content` text DEFAULT NULL,
|
||||
@ -72,7 +73,7 @@ CREATE TABLE `boardinfo` (
|
||||
`created_at` datetime DEFAULT current_timestamp(),
|
||||
`deleted_at` datetime DEFAULT NULL,
|
||||
PRIMARY KEY (`uid`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
||||
--
|
||||
@ -81,7 +82,7 @@ CREATE TABLE `boardinfo` (
|
||||
|
||||
LOCK TABLES `boardinfo` WRITE;
|
||||
/*!40000 ALTER TABLE `boardinfo` DISABLE KEYS */;
|
||||
INSERT INTO `boardinfo` VALUES (1,1,'notice','테스트공지2222','<p>테스트공지2222<br>테스트공지2222<br>테스트공지2222</p>','available',NULL,'2025-10-20 14:55:36',NULL),(2,1,'notice','테스트공지333','<p>테스트공지333<br><span style="color: #e03e2d;">테스트공지333</span><br>테스트공지333</p>','available',NULL,'2025-10-20 14:56:20',NULL);
|
||||
INSERT INTO `boardinfo` VALUES (1,1,NULL,'notice','테스트공지2222','<p>테스트공지2222<br>테스트공지2222<br>테스트공지2222</p>','available',NULL,'2025-10-20 14:55:36',NULL),(2,1,NULL,'notice','테스트공지333','<p>테스트공지333<br><span style="color: #e03e2d;">테스트공지333</span><br>테스트공지333</p>','available',NULL,'2025-10-20 14:56:20',NULL),(3,1,43,'requesttask','test요청1111','<p>test요청1111<br>test요청1111<br>test요청1111</p>','available',NULL,'2025-10-21 10:04:42',NULL);
|
||||
/*!40000 ALTER TABLE `boardinfo` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
@ -495,7 +496,7 @@ CREATE TABLE `serverinfo` (
|
||||
|
||||
LOCK TABLES `serverinfo` WRITE;
|
||||
/*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */;
|
||||
INSERT INTO `serverinfo` VALUES (17,1186,61,'2526A-M1','normal','C03PA19','13.220.20.5','UBUNTU24.04','HP DL360 Gen6',1000000,'2025-08-31 15:00:00','2025-10-02 15:00:00','occupied','2025-10-16 01:54:10','2025-09-22 02:19:25',NULL),(18,1161,53,'2537B-M18','normal','C03PA08','13.220.20.28','UBUNTU24.04','HP DL360 Gen7',400000,'2025-09-01 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 00:58:10','2025-09-22 02:21:51',NULL),(19,1087,54,'2528C-M19','normal','C03PA06','13.220.20.10','WINDOWS2008R2','HP DL360 Gen8',800000,'2025-09-02 15:00:00','2025-10-12 15:00:00','occupied','2025-10-16 00:58:28','2025-09-22 02:22:14',NULL),(20,820,52,'2529D-M20','normal','C03PA07','13.220.20.27','CENTOS9','HP DL360 Gen9',600000,'2025-09-03 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 00:57:48','2025-09-22 02:22:39',NULL),(21,1186,60,'2520Z-M21','vpn','C03PA17','13.220.20.30','WINDOWS2016R2','HP DL360 Gen10',700000,'2025-09-04 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 01:53:52','2025-09-22 02:23:08',NULL),(22,820,56,'2530Z-M22','dedicated','C03PA16','23.125.207.27','WINDOWS2019R2','Hitach HA3000',800000,'2025-09-05 15:00:00','2025-09-29 15:00:00','occupied','2025-10-16 06:45:46','2025-09-22 02:23:36',NULL),(23,819,57,'JPN-S23','event','C03PA01','13.220.20.1','CENTOS9','INTEL I5',200000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-16 01:04:24','2025-10-01 08:16:56',NULL),(24,1087,54,'JPN-S24','alternative','C03PA14','13.220.20.122','WINDOWS2008R2','INTEL I7',200000,'2025-10-01 15:00:00','2025-10-12 15:00:00','occupied','2025-10-16 00:58:44','2025-10-01 08:52:19',NULL),(25,NULL,NULL,'2548E-M25','alternative',NULL,'13.220.20.94',NULL,'HP DL360 Gen8',700000,'2025-09-30 15:00:00','2025-10-15 15:00:00','available','2025-10-15 23:21:11','2025-10-02 03:55:46',NULL),(26,NULL,NULL,'2547C-M26','alternative',NULL,NULL,NULL,'HP DL360 Gen7',500000,'2025-09-30 15:00:00','2025-10-02 15:00:00','available','2025-10-03 01:00:57','2025-10-02 03:58:53',NULL),(27,711,58,'2548D-M27','normal','C03PA15','13.220.20.63','WINDOWS11','HP DL360 Gen8',900000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-16 01:48:27','2025-10-02 04:02:16',NULL),(31,1185,59,'2412E-M29','normal','C03PA21','13.220.20.34','DEBIAN10','HP DL360 Gen9',500000,'2025-10-03 15:00:00',NULL,'occupied','2025-10-16 01:53:30','2025-10-03 01:08:32',NULL),(32,1155,64,'2543E-M32','normal','C01PA45','13.220.20.25','UBUNTU22.04','HP DL360 Gen6',500000,'2025-10-03 15:00:00',NULL,'occupied','2025-10-17 06:22:15','2025-10-03 01:10:09',NULL),(55,NULL,NULL,'KCS-M33','alternative',NULL,'28.23.54.22',NULL,'KCS',150000,'2025-10-01 15:00:00','2025-10-16 15:00:00','available','2025-10-17 02:33:55','2025-10-03 05:32:51',NULL),(63,842,62,'254D9-M56','defence','C02PA09','13.220.20.9','CENTOS9','HP DL360 Gen9',400000,'2025-10-08 15:00:00',NULL,'occupied','2025-10-16 01:54:24','2025-10-15 07:06:56',NULL),(64,842,63,'2549D-M64','normal','C03PA02','13.220.20.7','UBUNTU24.04','HP DL360 Gen9',400000,'2025-10-08 15:00:00',NULL,'occupied','2025-10-16 01:54:36','2025-10-15 07:23:19',NULL);
|
||||
INSERT INTO `serverinfo` VALUES (17,1186,61,'2526A-M1','normal','C03PA19','13.220.20.5','UBUNTU24.04','HP DL360 Gen6B',1000000,'2025-08-31 15:00:00','2025-10-02 15:00:00','occupied','2025-10-16 01:54:10','2025-09-22 02:19:25',NULL),(18,1161,53,'2537B-M18','normal','C03PA08','13.220.20.28','UBUNTU24.04','HP DL360 Gen7C',400000,'2025-09-01 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 00:58:10','2025-09-22 02:21:51',NULL),(19,1087,54,'2528C-M19','normal','C03PA06','13.220.20.10','WINDOWS2008R2','HP DL360 Gen8D',800000,'2025-09-02 15:00:00','2025-10-12 15:00:00','occupied','2025-10-16 00:58:28','2025-09-22 02:22:14',NULL),(20,820,52,'2529D-M20','normal','C03PA07','13.220.20.27','CENTOS9','HP DL360 Gen9E',600000,'2025-09-03 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 00:57:48','2025-09-22 02:22:39',NULL),(21,1186,60,'2520Z-M21','vpn','C03PA17','13.220.20.30','WINDOWS2016R2','HP DL360 Gen10',700000,'2025-09-04 15:00:00','2025-10-01 15:00:00','occupied','2025-10-16 01:53:52','2025-09-22 02:23:08',NULL),(22,820,56,'2530Z-M22','dedicated','C03PA16','23.125.207.27','WINDOWS2019R2','Hitach HA3000',800000,'2025-09-05 15:00:00','2025-09-29 15:00:00','occupied','2025-10-16 06:45:46','2025-09-22 02:23:36',NULL),(23,819,57,'JPN-S23','event','C03PA01','13.220.20.1','CENTOS9','DESKTOP I5',200000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-16 01:04:24','2025-10-01 08:16:56',NULL),(24,1087,54,'JPN-S24','alternative','C03PA14','13.220.20.122','WINDOWS2008R2','DESKTOP I7',200000,'2025-10-01 15:00:00','2025-10-12 15:00:00','occupied','2025-10-16 00:58:44','2025-10-01 08:52:19',NULL),(25,NULL,NULL,'2548E-M25','alternative',NULL,'13.220.20.94',NULL,'HP DL360 Gen8D',700000,'2025-09-30 15:00:00','2025-10-15 15:00:00','available','2025-10-15 23:21:11','2025-10-02 03:55:46',NULL),(26,NULL,NULL,'2547C-M26','alternative',NULL,NULL,NULL,'HP DL360 Gen7C',500000,'2025-09-30 15:00:00','2025-10-02 15:00:00','available','2025-10-03 01:00:57','2025-10-02 03:58:53',NULL),(27,711,58,'2548D-M27','normal','C03PA15','13.220.20.63','WINDOWS11','HP DL360 Gen8D',900000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-16 01:48:27','2025-10-02 04:02:16',NULL),(31,1185,59,'2412E-M29','normal','C03PA21','13.220.20.34','DEBIAN10','HP DL360 Gen9E',500000,'2025-10-03 15:00:00',NULL,'occupied','2025-10-16 01:53:30','2025-10-03 01:08:32',NULL),(32,1155,64,'2543E-M32','normal','C01PA45','13.220.20.25','UBUNTU22.04','HP DL360 Gen6B',500000,'2025-10-03 15:00:00',NULL,'occupied','2025-10-17 06:22:15','2025-10-03 01:10:09',NULL),(55,NULL,NULL,'KCS-M33','alternative',NULL,'28.23.54.22',NULL,'KCS',150000,'2025-10-01 15:00:00','2025-10-16 15:00:00','available','2025-10-17 02:33:55','2025-10-03 05:32:51',NULL),(63,842,62,'254D9-M56','defence','C02PA09','13.220.20.9','CENTOS9','HP DL360 Gen9E',400000,'2025-10-08 15:00:00',NULL,'occupied','2025-10-16 01:54:24','2025-10-15 07:06:56',NULL),(64,842,63,'2549D-M64','normal','C03PA02','13.220.20.7','UBUNTU24.04','HP DL360 Gen9E',400000,'2025-10-08 15:00:00',NULL,'occupied','2025-10-16 01:54:36','2025-10-15 07:23:19',NULL);
|
||||
/*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
@ -692,7 +693,7 @@ CREATE TABLE `user` (
|
||||
|
||||
LOCK TABLES `user` WRITE;
|
||||
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
|
||||
INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$.vl2FtwJsjMNFCJJm3ISDu7m3vBB85mZ5fRQxcfI0uK/2D1e8Xora','최준흠','choi.jh@prime-idc.jp','0434434327','manager,cloudflare,security,director,master','available','2025-10-02 08:12:39','2023-03-23 06:50:04',NULL),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:12:46','2023-03-24 02:20:48',NULL),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:12:51','2023-03-24 02:21:50',NULL),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,security,director','available','2025-06-24 01:11:41','2023-03-24 02:23:18',NULL),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:09:38','2023-03-24 02:23:52',NULL),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:13:18','2023-03-24 02:24:21',NULL),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:09:47','2023-03-24 02:25:00',NULL),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:26','2023-03-24 02:25:48',NULL),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:33','2023-03-24 02:26:31',NULL),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:39','2023-03-24 02:27:05',NULL),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:50','2023-03-24 02:27:59',NULL),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:56','2023-03-24 02:28:31',NULL),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp','','manager,cloudflare','terminated','2025-10-02 08:11:11','2023-03-24 02:29:00',NULL),(15,'park.sm','$2y$10$RgDY4f9kuryRNDJVJU5pn.JV.38ZWA9UTgmONBlP74WwIqamMbnY2','박선미','park.sm@idcjp.jp','','manager,cloudflare,security','available','2025-10-13 05:24:59','2023-03-24 02:29:34',NULL),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:10:02','2024-10-29 06:30:19',NULL),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:14:21','2025-01-23 00:29:46',NULL),(43,'test1234','$2y$10$21wlqjmdfDlIr0vAjDzs6ubIchc1DwOG61GGkZUwY7gb9GMTxA96K','test1234','test@gmail.com','0434434327','manager,cloudflare','terminated','2025-09-09 05:23:09','2025-07-01 06:05:11',NULL),(44,'test233332','$2y$10$9FqxChYQ3qlbGL0dFvHsQuEl3ELiH3R5kDytQqmFa2b2i9RYpjeQy','123423422','test2333@co.kr22','2343422','manager','terminated','2025-10-02 08:14:44','2025-07-11 07:23:13',NULL),(45,'kim.jh','$2y$10$voCle9yFWWhGhQ0JrH46puLYySJYq6O41/BSrKxx0MHWyO8KDf97u','김준한','kim.jh@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:14:32','2025-08-08 02:27:49',NULL);
|
||||
INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$.vl2FtwJsjMNFCJJm3ISDu7m3vBB85mZ5fRQxcfI0uK/2D1e8Xora','최준흠','choi.jh@prime-idc.jp','0434434327','manager,cloudflare,security,director,master','available','2025-10-02 08:12:39','2023-03-23 06:50:04',NULL),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:12:46','2023-03-24 02:20:48',NULL),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:12:51','2023-03-24 02:21:50',NULL),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,security,director','available','2025-06-24 01:11:41','2023-03-24 02:23:18',NULL),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:09:38','2023-03-24 02:23:52',NULL),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:13:18','2023-03-24 02:24:21',NULL),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:09:47','2023-03-24 02:25:00',NULL),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:26','2023-03-24 02:25:48',NULL),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:33','2023-03-24 02:26:31',NULL),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:39','2023-03-24 02:27:05',NULL),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:50','2023-03-24 02:27:59',NULL),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp','','manager,cloudflare,security','available','2025-10-02 08:13:56','2023-03-24 02:28:31',NULL),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp','','manager,cloudflare','terminated','2025-10-02 08:11:11','2023-03-24 02:29:00',NULL),(15,'park.sm','$2y$10$RgDY4f9kuryRNDJVJU5pn.JV.38ZWA9UTgmONBlP74WwIqamMbnY2','박선미','park.sm@idcjp.jp','','manager,cloudflare,security','available','2025-10-13 05:24:59','2023-03-24 02:29:34',NULL),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare,security','available','2025-06-24 01:10:02','2024-10-29 06:30:19',NULL),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:14:21','2025-01-23 00:29:46',NULL),(43,'test1234','$2y$10$y47tGsZ7YTta16nD.wPtkuS./9EjeNQYAjVhsZR448.sL..dHFBsK','test1234','test@gmail.com','0434434327','manager,cloudflare','available','2025-10-21 01:00:16','2025-07-01 06:05:11',NULL),(44,'test333','$2y$10$h7dD8XYN9osH2pzxP7lqdeOrQJQ12d.WK6Yp1WUx7139VUx8IQrba','test333','test2333@co.kr22','2343422','manager','available','2025-10-21 01:00:51','2025-07-11 07:23:13',NULL),(45,'kim.jh','$2y$10$voCle9yFWWhGhQ0JrH46puLYySJYq6O41/BSrKxx0MHWyO8KDf97u','김준한','kim.jh@prime-idc.jp','','manager,cloudflare,security','available','2025-10-02 08:14:32','2025-08-08 02:27:49',NULL);
|
||||
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
|
||||
UNLOCK TABLES;
|
||||
|
||||
@ -736,4 +737,4 @@ UNLOCK TABLES;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2025-10-21 9:15:22
|
||||
-- Dump completed on 2025-10-21 13:06:30
|
||||
|
||||
@ -21,6 +21,6 @@ return [
|
||||
"STATUS" => [
|
||||
STATUS['AVAILABLE'] => "사용중",
|
||||
STATUS['PAUSE'] => "일시정지",
|
||||
STATUS['TERMINATED'] => "삭제",
|
||||
STATUS['TERMINATED'] => "완료",
|
||||
],
|
||||
];
|
||||
|
||||
@ -31,16 +31,21 @@ return [
|
||||
SERVER['TYPES']["COLOCATION"] => "코로케이션",
|
||||
],
|
||||
"TITLE" => [
|
||||
"HP DL360 Gen6" => "HP DL360 Gen6",
|
||||
"HP DL360 Gen7" => "HP DL360 Gen7",
|
||||
"HP DL360 Gen8" => "HP DL360 Gen8",
|
||||
"HP DL360 Gen9" => "HP DL360 Gen9",
|
||||
"HP DL360 Gen6B" => "HP DL360 Gen6 B",
|
||||
"HP DL360 Gen7C" => "HP DL360 Gen7 C",
|
||||
"HP DL360 Gen7D" => "HP DL360 Gen7 D",
|
||||
"HP DL360 Gen8D" => "HP DL360 Gen8 D",
|
||||
"HP DL360 Gen8E" => "HP DL360 Gen8 E",
|
||||
"HP DL360 Gen9E" => "HP DL360 Gen9 E",
|
||||
"HP DL360 Gen10" => "HP DL360 Gen10",
|
||||
"Hitach HA3000" => "Hitach HA3000",
|
||||
"INTEL I3" => "INTEL I3",
|
||||
"INTEL I5" => "INTEL I5",
|
||||
"INTEL I7" => "INTEL I7",
|
||||
"INTEL I9" => "INTEL I9",
|
||||
"DESKTOP I5" => "데탑 I5",
|
||||
"DESKTOP I5-9" => "데탑 I5 9세대",
|
||||
"DESKTOP I5-10" => "데탑 I5 10세대",
|
||||
"DESKTOP I5-12" => "데탑 I5 12세대",
|
||||
"DESKTOP I7" => "데탑 I7",
|
||||
"DESKTOP I7-10" => "데탑 I7 10세대",
|
||||
"MINI I5-12" => "Mini I5 12세대",
|
||||
"VPC" => "아마존-VPN",
|
||||
"KCS" => "KT-VPN",
|
||||
],
|
||||
|
||||
@ -62,13 +62,14 @@ class BoardService extends CommonService
|
||||
return $options;
|
||||
}
|
||||
//기본 기능부분
|
||||
public function latest(array $where, int $limit = 3): array
|
||||
//Category별 최근 $limit갯수만큼 게시물
|
||||
public function getLatest(string $category, int $limit): array
|
||||
{
|
||||
//관리자정보
|
||||
$userEntities = $this->getUserService()->getEntities();
|
||||
$this->getModel()->limit($limit);
|
||||
$datas = [];
|
||||
foreach ($this->getEntities($where) as $entity) {
|
||||
foreach ($this->getEntities(['category' => $category, 'status' => STATUS['AVAILABLE']]) as $entity) {
|
||||
$datas[] = [
|
||||
'title' => "<label for=\"view\" data-src=\"/admin/board/view/{$entity->getPK()}\" data-bs-toggle=\"modal\" data-bs-target=\" #modal_action_form\" class=\"text-primary form-label-sm\">{$entity->getTitle()}</label>",
|
||||
'created_at' => date('Y-m-d H:m', strtotime($entity->getCreatedAT())),
|
||||
@ -77,4 +78,14 @@ class BoardService extends CommonService
|
||||
}
|
||||
return $datas;
|
||||
}
|
||||
//요청업무 게시물
|
||||
public function getRequestTaskCount(int $worker_uid): int
|
||||
{
|
||||
$where = [
|
||||
'category' => BOARD['CATEGORY']['REQUESTTASK'],
|
||||
'worker_uid' => $worker_uid,
|
||||
'status' => STATUS['AVAILABLE'],
|
||||
];
|
||||
return count($this->getEntities($where));
|
||||
}
|
||||
}
|
||||
|
||||
@ -208,12 +208,7 @@ class ServerPartService extends EquipmentService implements ServerInterface
|
||||
{
|
||||
switch ($action) {
|
||||
case 'create':
|
||||
//서버의 Type별 서버파트정보등록(서버파트연결 자동등록용)
|
||||
$codes = str_split($serverEntity->getCode());
|
||||
// $server_ year = $codes[0].$codes[1]; // 1,2번째(ex: 21-> 21년)
|
||||
// $server_quarter = $codes[2]; // 3번째(ex: 1-> 1분기)
|
||||
// $server_brand = $codes[3]; // 4번째(ex: 6-> HP DL360 Gen6)
|
||||
$server_type = strtoupper($codes[4]) . "TYPE"; // 5번째(ex: A-> ATYPE Server)
|
||||
$server_type = strtoupper($serverEntity->getTitle()); //서버의 Title로 구분해서 기본부품 추가
|
||||
foreach (SERVERPART['SERVER_PARTTYPES'] as $parttype) {
|
||||
//해당 server_type의 정의된 상수값이 있으면
|
||||
if (array_key_exists($server_type, SERVERPART[$parttype])) {
|
||||
|
||||
@ -169,6 +169,16 @@ class ServerService extends EquipmentService implements ServiceInterface
|
||||
}
|
||||
return $rows;
|
||||
}
|
||||
final public function getStockCount(): array
|
||||
{
|
||||
$builder = $this->getModel()->select('title,COUNT(*) AS cnt')->groupBy('title')->builder();
|
||||
// echo $builder->getCompiledSelect(false); //초기화 없이 SQL만 보고 싶을 때: getCompiledSelect(false) ← 꼭 false!
|
||||
$rows = $builder->get()->getResult();
|
||||
if (!count($rows)) {
|
||||
return [];
|
||||
}
|
||||
return $rows;
|
||||
}
|
||||
//서비스정보 설정
|
||||
public function setService(string $action, ServiceEntity $serviceEntity, array $serviceFormDatas): ServiceEntity
|
||||
{
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<table class="table table-bordered">
|
||||
<?php foreach ($viewDatas['control']['actionFields'] as $field): ?>
|
||||
<tr>
|
||||
<th nowrap class="text-end"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
|
||||
<th nowrap class="text-end" width="20%"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
|
||||
<td nowrap class="text-start"><?= $viewDatas['service']->getHelper()->getFieldView($field, $viewDatas['entity']->$field, $viewDatas) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<table class="table table-bordered">
|
||||
<?php foreach ($viewDatas['control']['actionFields'] as $field): ?>
|
||||
<tr>
|
||||
<th nowrap class="text-end"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
|
||||
<th nowrap class="text-end" width="20%"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
|
||||
<td nowrap class="text-start"><?= $viewDatas['service']->getHelper()->getFieldView($field, $viewDatas['entity']->$field, $viewDatas) ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@ -65,12 +65,12 @@
|
||||
</head>
|
||||
<div class="row">
|
||||
<div class="col-lg">
|
||||
<div class="card dashboard-card bg-blue card-clickable" onclick="document.location.href='/admin/board?category=requesttask';">
|
||||
<div class="card dashboard-card bg-blue card-clickable" onclick="document.location.href='/admin/board?category=<?= BOARD['CATEGORY']['REQUESTTASK'] ?>&worker_uid=<?= $viewDatas['myAuthUID'] ?>';">
|
||||
<div class=" card-body">
|
||||
<div class="row">
|
||||
<div class="col-4"><i class="fa fa-comments fa-5x"></i></div>
|
||||
<div class="col-8 text-end">
|
||||
<div class="huge">0</div>
|
||||
<div class="huge"><?= $viewDatas['boardRequestTaskCount'] ?></div>
|
||||
<div class="bg-blue">요청업무 알림</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -102,7 +102,7 @@
|
||||
<div class="row">
|
||||
<div class="col-4"><i class="fa fa-support fa-5x"></i></div>
|
||||
<div class="col-8 text-end">
|
||||
<div class="huge"><?= number_format($viewDatas['totalUnPaidCount']) ?>건/<?= number_format($viewDatas['totalUnPaidAmount']) ?>원</div>
|
||||
<div class="huge"><?= number_format($viewDatas['unPaidTotalCount']) ?>건/<?= number_format($viewDatas['unPaidTotalAmount']) ?>원</div>
|
||||
<div><?= date("Y-m-d") ?> 금일 기준 미납 서비스</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -17,15 +17,9 @@
|
||||
<div class="col-8">
|
||||
<?= $this->include("{$viewDatas['layout']}/welcome/total_service"); ?>
|
||||
<?= $this->include("{$viewDatas['layout']}/welcome/new_service"); ?>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<?= $this->include("{$viewDatas['layout']}/welcome/user_history"); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row align-items-start mt-3">
|
||||
<div class="col">
|
||||
<?= $this->include("{$viewDatas['layout']}/welcome/stock"); ?>
|
||||
</div>
|
||||
<div class="col-4"><?= $this->include("{$viewDatas['layout']}/welcome/user_history"); ?></div>
|
||||
</div>
|
||||
<!-- Layout Right End -->
|
||||
</td>
|
||||
|
||||
@ -10,16 +10,14 @@
|
||||
<div style="border-left: 1px solid black; border-right: 1px solid black; padding:20px;">
|
||||
<table class="table table-bordered table-striped">
|
||||
<tr>
|
||||
<th width="20%">메모리</th>
|
||||
<th width="20%">저장장치</th>
|
||||
<th width="30%">서버</th>
|
||||
<th width="30%">데스크탑</th>
|
||||
<th class="text-center" width="30%">서버</th>
|
||||
<th class="text-center" width="30%">메모리</th>
|
||||
<th class="text-center" width="40%">저장장치</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?= view_cell("\App\Cells\Equipment\ServerCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\RAMCell::stock") ?></td>
|
||||
<td><?= view_cell("\App\Cells\Part\DISKCell::stock") ?></td>
|
||||
<td>준비중...</td>
|
||||
<td>준비중...</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@ -1,15 +1,28 @@
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<tr>
|
||||
<th>항목</th>
|
||||
<th>갯수</th>
|
||||
<th>포맷</th>
|
||||
<th class="text-center">항목</th>
|
||||
<th class="text-center">갯수</th>
|
||||
<th class="text-center">포맷대기</th>
|
||||
</tr>
|
||||
<?php foreach ($partCellDatas['entities'] as $entity): ?>
|
||||
<?php $partCellDatas['entity'] = $entity; ?>
|
||||
<tr>
|
||||
<?php foreach (['title', 'stock', 'format'] as $field): ?>
|
||||
<td nowrap><?= $partCellDatas['service']->getHelper()->getFieldView($field, $entity->$field, $partCellDatas) ?></td>
|
||||
<?php endforeach ?>
|
||||
<td class="text-end" nowrap>
|
||||
<?=
|
||||
form_label(
|
||||
$entity->getTitle(),
|
||||
'disk_modify',
|
||||
[
|
||||
"data-src" => "admin/part/disk/modify/" . $entity->getPK(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form",
|
||||
"class" => "text-primary form-label-sm",
|
||||
]
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
<td class="text-center" nowrap width="20%"><?= $entity->getStock() ?></td>
|
||||
<td nowrap width="20%"><?= $partCellDatas['service']->getHelper()->getFieldView('format', $entity->format, $partCellDatas) ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
@ -1,14 +1,26 @@
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<tr>
|
||||
<th>항목</th>
|
||||
<th>갯수</th>
|
||||
<th class="text-center">항목</th>
|
||||
<th class="text-center">갯수</th>
|
||||
</tr>
|
||||
<?php foreach ($partCellDatas['entities'] as $entity): ?>
|
||||
<?php $partCellDatas['entity'] = $entity; ?>
|
||||
<tr>
|
||||
<?php foreach (['title', 'stock'] as $field): ?>
|
||||
<td nowrap><?= $partCellDatas['service']->getHelper()->getFieldView($field, $entity->$field, $partCellDatas) ?></td>
|
||||
<?php endforeach ?>
|
||||
<td class="text-end" nowrap>
|
||||
<?=
|
||||
form_label(
|
||||
$entity->getTitle(),
|
||||
'disk_modify',
|
||||
[
|
||||
"data-src" => "admin/part/ram/modify/" . $entity->getPK(),
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#modal_action_form",
|
||||
"class" => "text-primary form-label-sm",
|
||||
]
|
||||
);
|
||||
?>
|
||||
</td>
|
||||
<td class="text-center" nowrap width="30%"><?= $entity->getStock() ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
@ -1,14 +1,12 @@
|
||||
<table class="table table-bordered table-hover table-striped">
|
||||
<tr>
|
||||
<th>항목</th>
|
||||
<th>갯수</th>
|
||||
<th class="text-center">항목</th>
|
||||
<th class="text-center">갯수</th>
|
||||
</tr>
|
||||
<?php foreach ($partCellDatas['entities'] as $entity): ?>
|
||||
<?php $partCellDatas['entity'] = $entity; ?>
|
||||
<?php foreach ($partCellDatas['rows'] as $row): ?>
|
||||
<tr>
|
||||
<?php foreach (['title', 'stock'] as $field): ?>
|
||||
<td nowrap><?= $partCellDatas['service']->getHelper()->getFieldView($field, $entity->$field, $partCellDatas) ?></td>
|
||||
<?php endforeach ?>
|
||||
<td class="text-end" nowrap><?= $row->title ?></td>
|
||||
<td class="text-center" nowrap width="30%"><?= $row->cnt ?></td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
@ -7,6 +7,7 @@
|
||||
<a href="/admin"><?= ICONS["HOME"] ?> Main</a>
|
||||
</div>
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu/base'); ?>
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu/board'); ?>
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu/customer'); ?>
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu/equipment'); ?>
|
||||
<?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/left_menu/part'); ?>
|
||||
|
||||
@ -1,9 +1,3 @@
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/user"><?= ICONS['MEMBER'] ?> 계정 관리</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board"><?= ICONS['CLOUD'] ?> 게시판 관리</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/mylog"><?= ICONS['HISTORY'] ?> Log 관리</a>
|
||||
</div>
|
||||
17
app/Views/layouts/admin/left_menu/board.php
Normal file
17
app/Views/layouts/admin/left_menu/board.php
Normal file
@ -0,0 +1,17 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#flush-board" aria-expanded="true"
|
||||
aria-controls="flush-board"><b><?= ICONS['DEVICE'] ?>게시판관리 </b>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="flush-board" class="accordion-collapse collapse" aria-labelledby="flush-board">
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['NOTICE'] ?>"><?= ICONS['SERVICE_ITEM_LINE'] ?>공지사항</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['WORKING'] ?>"><?= ICONS['SERVICE_ITEM_SERVER'] ?>작업일지</a>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<a href="/admin/board?category=<?= BOARD['CATEGORY']['REQUESTTASK'] ?>"><?= ICONS['SERVICE_ITEM_SERVER'] ?>요청업무</a>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
Reference in New Issue
Block a user