diff --git a/app/Config/Constants.php b/app/Config/Constants.php index 0084a18..6f7764b 100644 --- a/app/Config/Constants.php +++ b/app/Config/Constants.php @@ -197,6 +197,8 @@ define('ICONS', [ 'UNLOCK' => '', 'BOX' => '', 'BOXS' => '', + 'ONETIME' => '', + 'SALE' => '', ]); //배너관련 define('TOP_BANNER', [ diff --git a/app/Controllers/Admin/Customer/ServiceController.php b/app/Controllers/Admin/Customer/ServiceController.php index 0e8b1f4..af41d95 100644 --- a/app/Controllers/Admin/Customer/ServiceController.php +++ b/app/Controllers/Admin/Customer/ServiceController.php @@ -4,8 +4,19 @@ namespace App\Controllers\Admin\Customer; use App\Helpers\Customer\ServiceHelper; use App\Services\Customer\ServiceService; + use App\Services\Customer\ServiceItemService; +use App\Services\Equipment\Part\CpuService; +use App\Services\Equipment\Part\DefenceService; +use App\Services\Equipment\Part\StorageService; +use App\Services\Equipment\Part\IpService; +use App\Services\Equipment\Part\LINEService; +use App\Services\Equipment\Part\RamService; +use App\Services\Equipment\Part\SoftwareService; +use App\Services\Equipment\ServerService; +use App\Services\Equipment\DomainService; + use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; @@ -13,6 +24,7 @@ use Psr\Log\LoggerInterface; class ServiceController extends CustomerController { + private $_equipmentService = []; private ?ServiceItemService $_serviceItemService = null; public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) { @@ -45,6 +57,70 @@ class ServiceController extends CustomerController } return $this->_serviceItemService; } + + final public function getEquipmentService(string $key): mixed + { + if (!array_key_exists($key, $this->_equipmentService)) { + switch ($key) { + case 'SERVER': + $this->_equipmentService[$key] = new ServerService(); + break; + case 'CPU': + $this->_equipmentService[$key] = new CpuService(); + break; + case 'RAM': + $this->_equipmentService[$key] = new RamService(); + break; + case 'STORAGE': + $this->_equipmentService[$key] = new StorageService(); + break; + case 'LINE': + $this->_equipmentService[$key] = new LineService(); + break; + case 'IP': + $this->_equipmentService[$key] = new IpService(); + break; + case 'DEFENCE': + $this->_equipmentService[$key] = new DefenceService(); + break; + case 'SOFTWARE': + $this->_equipmentService[$key] = new SoftwareService(); + break; + case 'DOMAIN': + $this->_equipmentService[$key] = new DomainService(); + break; + default: + throw new \Exception(__FUNCTION__ . "에서 사용하지않는 Service를 요청하였습니다.: {$key}"); + } + } + return $this->_equipmentService[$key]; + } + protected function getFormFieldOption(string $field, array $options): array + { + switch ($field) { + case 'SERVER': + case 'CPU': + case 'RAM': + case 'STORAGE': + case 'LINE': + case 'IP': + case 'DEFENCE': + case 'SOFTWARE': + case 'DOMAIN': + $temps = []; + // throw new \Exception(__FUNCTION__ . "에서 item_type이 지정되지 않았습니다.->{$item_type}"); + foreach ($this->getEquipmentService($field)->getEntities() as $entity) { + $temps[$entity->getPK()] = $entity->getTitle(); + } + $options[$field] = $temps; + // dd($options); + break; + default: + $options = parent::getFormFieldOption($field, $options); + break; + } + return $options; + } protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string { switch ($action) { @@ -65,7 +141,12 @@ class ServiceController extends CustomerController 'fields' => ['clientinfo_uid', 'location', 'switch', 'code', 'type', 'raid', 'billing_at', 'start_at', 'status'], ]; $this->init('index', $fields); + //추가 Field작업 처리 $this->item_types = lang($this->getServiceItemService()->getClassName() . '.' . strtoupper('ITEM_TYPE')); + foreach ($this->item_types as $field => $label) { + $this->field_options = $this->getFormFieldOption($field, $this->field_options); + } + // dd($this->field_options); $entities = []; foreach (parent::index_process() as $entity) { foreach ($this->item_types as $field => $label) { diff --git a/app/Controllers/Admin/Customer/ServiceItemController.php b/app/Controllers/Admin/Customer/ServiceItemController.php index 6acbc6b..6f8bb64 100644 --- a/app/Controllers/Admin/Customer/ServiceItemController.php +++ b/app/Controllers/Admin/Customer/ServiceItemController.php @@ -137,6 +137,25 @@ class ServiceItemController extends CustomerController return $result; } //Index,FieldForm관련 + protected function create_process(): mixed + { + // dd($this->formDatas); + if (!array_key_exists('item_type', $this->formDatas) || !$this->formDatas['item_type']) { + throw new \Exception(__METHOD__ . "에서 item_type이 지정되지 않았습니다."); + } + if (!array_key_exists('item_uid', $this->formDatas) || !$this->formDatas['item_uid']) { + throw new \Exception(__METHOD__ . "에서 item_uid가가 지정되지 않았습니다."); + } + $equipmentEntity = $this->getEquipmentService($this->formDatas['item_type'])->getEntity($this->formDatas['item_uid']); + if (!$equipmentEntity) { + throw new \Exception(__METHOD__ . "에서 equipmentEntity 정보가 확인되지 않습니다."); + } + //각 항목의 Price를 Item Price로 전달함 + $formDatas = $this->formDatas; + $formDatas['price'] = $equipmentEntity->getPrice(); + $this->formDatas = $formDatas; + return parent::create_process(); + } protected function index_process(): array { $fields = [ diff --git a/app/Controllers/Admin/Equipment/ServerController.php b/app/Controllers/Admin/Equipment/ServerController.php index 01280c4..c690c82 100644 --- a/app/Controllers/Admin/Equipment/ServerController.php +++ b/app/Controllers/Admin/Equipment/ServerController.php @@ -9,41 +9,40 @@ use Psr\Log\LoggerInterface; use App\Helpers\Equipment\ServerHelper; use App\Services\Equipment\ServerService; - class ServerController extends EquipmentController { - public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) - { - parent::initController($request, $response, $logger); - $this->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 initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) + { + parent::initController($request, $response, $logger); + $this->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(): ServerService + { + if (!$this->_service) { + $this->_service = new ServerService($this->request); } - public function getService(): ServerService - { - if (!$this->_service) { - $this->_service = new ServerService($this->request); - } - return $this->_service; - } - public function getHelper(): ServerHelper - { - if (!$this->_helper) { - $this->_helper = new ServerHelper($this->request); - } - return $this->_helper; + return $this->_service; + } + public function getHelper(): ServerHelper + { + if (!$this->_helper) { + $this->_helper = new ServerHelper($this->request); } + return $this->_helper; + } - //Index,FieldForm관련 - protected function index_process(): array - { - $fields = [ - 'fields' => ['model', 'price', 'status', 'created_at'], - ]; - $this->init('index', $fields); - // $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임 - return parent::index_process(); - } + //Index,FieldForm관련 + protected function index_process(): array + { + $fields = [ + 'fields' => ['model', 'price', 'status', 'created_at'], + ]; + $this->init('index', $fields); + // $this->modal_type = 'modal_fetch_v2'; //기본은 modal_iframe임 + return parent::index_process(); + } } diff --git a/app/Controllers/CommonController.php b/app/Controllers/CommonController.php index 8b962f1..4163311 100644 --- a/app/Controllers/CommonController.php +++ b/app/Controllers/CommonController.php @@ -182,7 +182,15 @@ abstract class CommonController extends BaseController //Index,FieldForm관련 // 생성 - protected function create_form_process(): void {} + protected function create_form_process(): void + { + foreach ($this->filter_fields as $field) { + $value = $this->request->getVar($field); + if ($value) { + $this->$field = $value; + } + } + } final public function create_form(): RedirectResponse|string { try { diff --git a/app/Database/dbms_init_all.sql b/app/Database/dbms_init_all.sql index fc4af38..4bc3ac4 100644 --- a/app/Database/dbms_init_all.sql +++ b/app/Database/dbms_init_all.sql @@ -329,7 +329,7 @@ CREATE TABLE `lineinfo` ( LOCK TABLES `lineinfo` WRITE; /*!40000 ALTER TABLE `lineinfo` DISABLE KEYS */; -INSERT INTO `lineinfo` VALUES (8,NULL,'default','Softbank회선','27.125.207.128/25',1000000,'default','2025-05-01',NULL,'2025-05-29 06:45:34'); +INSERT INTO `lineinfo` VALUES (8,NULL,'default','Softbank회선','27.125.207.128/25',1000000,'default','2025-05-01','2025-06-03 03:26:52','2025-05-29 06:45:34'); /*!40000 ALTER TABLE `lineinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -352,7 +352,7 @@ CREATE TABLE `logger` ( PRIMARY KEY (`uid`), KEY `FK_user_TO_logger` (`user_uid`), CONSTRAINT `FK_user_TO_logger` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='작업 기록 로그'; +) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci COMMENT='작업 기록 로그'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -361,7 +361,7 @@ CREATE TABLE `logger` ( LOCK TABLES `logger` WRITE; /*!40000 ALTER TABLE `logger` DISABLE KEYS */; -INSERT INTO `logger` VALUES (1,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:20:05[debug]: 입력내용\n12:20:05[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n12:20:05[debug]: [1/HP DL360 Gen 7 [HP DL360 Gen 7]] 입력 후 내용\n12:20:05[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 1,\n)\n12:20:05[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]생성되었습니다.:','default','2025-06-02 03:20:05'),(2,1,'Equipment\\Server','create','작업이 실패하였습니다.','12:21:29[debug]: 입력내용\n12:21:29[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2017-06-07',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '300000',\n 'status' => 'default',\n 'description' => '',\n)\n12:21:29[error]: \n------save_process 오류-----\nINSERT INTO `serverinfo` (`code`, `manufactur_at`, `model`, `price`, `status`) VALUES ('ZE2345', '2017-06-07', 'HP DL360 Gen 7', '300000', 'default')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Duplicate entry \\'HP DL360 Gen 7\\' for key \\'UQ_model\\'',\n)\n------------------------------\n\n12:21:29[debug]: \n------save_process 오류-----\nINSERT INTO `serverinfo` (`code`, `manufactur_at`, `model`, `price`, `status`) VALUES ('ZE2345', '2017-06-07', 'HP DL360 Gen 7', '300000', 'default')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Duplicate entry \\'HP DL360 Gen 7\\' for key \\'UQ_model\\'',\n)\n------------------------------\n','default','2025-06-02 03:21:29'),(3,1,'Equipment\\Server','delete','작업이 성공적으로 완료되었습니다.','12:22:37[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]삭제되였습니다.:','default','2025-06-02 03:22:37'),(4,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:27:07[debug]: 입력내용\n12:27:07[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 6',\n 'price' => '100000',\n 'status' => 'default',\n 'description' => '',\n)\n12:27:07[debug]: [3/HP DL360 Gen 6 [HP DL360 Gen 6]] 입력 후 내용\n12:27:07[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 6',\n 'price' => '100000',\n 'status' => 'default',\n 'uid' => 3,\n)\n12:27:07[info]: [HP DL360 Gen 6 [HP DL360 Gen 6]]생성되었습니다.:','default','2025-06-02 03:27:08'),(5,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:28:06[debug]: 입력내용\n12:28:06[debug]: array (\n 'code' => 'XE785',\n 'manufactur_at' => '2019-06-04',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '150000',\n 'status' => 'default',\n 'description' => '',\n)\n12:28:06[debug]: [4/HP DL360 Gen 7 [HP DL360 Gen 7]] 입력 후 내용\n12:28:06[debug]: array (\n 'code' => 'XE785',\n 'manufactur_at' => '2019-06-04',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '150000',\n 'status' => 'default',\n 'uid' => 4,\n)\n12:28:06[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]생성되었습니다.:','default','2025-06-02 03:28:06'),(6,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:28:35[debug]: 입력내용\n12:28:35[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2019-06-11',\n 'model' => 'HP DL360 Gen 8',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n12:28:35[debug]: [5/HP DL360 Gen 8 [HP DL360 Gen 8]] 입력 후 내용\n12:28:35[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2019-06-11',\n 'model' => 'HP DL360 Gen 8',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 5,\n)\n12:28:35[info]: [HP DL360 Gen 8 [HP DL360 Gen 8]]생성되었습니다.:','default','2025-06-02 03:28:35'),(7,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:29:22[debug]: 입력내용\n12:29:22[debug]: array (\n 'code' => 'I3A23',\n 'manufactur_at' => '2025-04-16',\n 'model' => '3,4,5세대 PC',\n 'price' => '50000',\n 'status' => 'default',\n 'description' => '',\n)\n12:29:22[debug]: [6/3,4,5세대 PC [3,4,5세대 PC]] 입력 후 내용\n12:29:22[debug]: array (\n 'code' => 'I3A23',\n 'manufactur_at' => '2025-04-16',\n 'model' => '3,4,5세대 PC',\n 'price' => '50000',\n 'status' => 'default',\n 'uid' => 6,\n)\n12:29:22[info]: [3,4,5세대 PC [3,4,5세대 PC]]생성되었습니다.:','default','2025-06-02 03:29:22'),(8,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:29:55[debug]: 입력내용\n12:29:55[debug]: array (\n 'code' => 'I7',\n 'manufactur_at' => '2025-02-04',\n 'model' => '6,7,8세대 PC',\n 'price' => '70000',\n 'status' => 'default',\n 'description' => '',\n)\n12:29:55[debug]: [7/6,7,8세대 PC [6,7,8세대 PC]] 입력 후 내용\n12:29:55[debug]: array (\n 'code' => 'I7',\n 'manufactur_at' => '2025-02-04',\n 'model' => '6,7,8세대 PC',\n 'price' => '70000',\n 'status' => 'default',\n 'uid' => 7,\n)\n12:29:55[info]: [6,7,8세대 PC [6,7,8세대 PC]]생성되었습니다.:','default','2025-06-02 03:29:55'),(9,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:30:31[debug]: 입력내용\n12:30:31[debug]: array (\n 'code' => 'Min234',\n 'manufactur_at' => '2025-04-16',\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'status' => 'default',\n 'description' => '',\n)\n12:30:31[debug]: [8/12,13,14세대 MiniPC [12,13,14세대 MiniPC]] 입력 후 내용\n12:30:31[debug]: array (\n 'code' => 'Min234',\n 'manufactur_at' => '2025-04-16',\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'status' => 'default',\n 'uid' => 8,\n)\n12:30:31[info]: [12,13,14세대 MiniPC [12,13,14세대 MiniPC]]생성되었습니다.:','default','2025-06-02 03:30:31'),(10,1,'Customer\\Service','create','작업이 실패하였습니다.','12:37:15[debug]: Customer\\Service 작업 데이터 검증 오류발생\nThe end_at field must contain a valid date.','default','2025-06-02 03:37:15'),(11,1,'Customer\\Service','create','작업이 성공적으로 완료되었습니다.','12:37:30[debug]: 입력내용\n12:37:30[debug]: array (\n 'clientinfo_uid' => '1',\n 'switch' => 'R35P10',\n 'location' => 'default',\n 'type' => 'default',\n 'raid' => 'RAID1',\n 'billing_at' => '2025-06-25',\n 'start_at' => '2025-06-02',\n 'end_at' => '2025-06-25',\n 'status' => 'default',\n)\n12:37:30[debug]: [1/R35P10] 입력 후 내용\n12:37:30[debug]: array (\n 'clientinfo_uid' => '1',\n 'switch' => 'R35P10',\n 'location' => 'default',\n 'type' => 'default',\n 'raid' => 'RAID1',\n 'billing_at' => '2025-06-25',\n 'start_at' => '2025-06-02',\n 'end_at' => '2025-06-25',\n 'status' => 'default',\n 'uid' => 1,\n)\n12:37:30[info]: [R35P10]생성되었습니다.:','default','2025-06-02 03:37:30'),(12,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','16:17:22[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe item_uid field is required.\nThe billing_cycle field is required.\nThe price field is required.\nThe amount field is required.\nThe start_at field is required.\nThe end_at field must contain a valid date.\nThe status field is required.','default','2025-06-02 07:17:22'),(13,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:19:58[debug]: 입력내용\n16:19:58[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => '8',\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'status' => 'default',\n)\n16:19:58[debug]: [1/LINE] 입력 후 내용\n16:19:58[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => '8',\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:19:58[info]: [LINE]생성되었습니다.:','default','2025-06-02 07:19:58'),(14,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:28:27[debug]: 입력내용\n16:28:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '12',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:28:27[debug]: [2/12] 입력 후 내용\n16:28:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '12',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:28:27[info]: [12]생성되었습니다.:','default','2025-06-02 07:28:27'),(15,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:28:57[debug]: 입력내용\n16:28:57[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '11',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:28:57[debug]: [3/11] 입력 후 내용\n16:28:57[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '11',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:28:57[info]: [11]생성되었습니다.:','default','2025-06-02 07:28:57'),(16,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:35:12[debug]: 입력내용\n16:35:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:35:12[debug]: [4/4 [150,000/100,000원]] 입력 후 내용\n16:35:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 4,\n)\n16:35:12[info]: [4 [150,000/100,000원]]생성되었습니다.:','default','2025-06-02 07:35:12'),(17,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:36:08[debug]: 입력내용\n16:36:08[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:36:08[debug]: [5/1 [50,000/40,000원]] 입력 후 내용\n16:36:08[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 5,\n)\n16:36:08[info]: [1 [50,000/40,000원]]생성되었습니다.:','default','2025-06-02 07:36:08'),(18,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:36:49[debug]: 입력내용\n16:36:49[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'status' => 'pause',\n)\n16:36:49[debug]: [6/1 [50,000/40,000원]] 입력 후 내용\n16:36:49[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'status' => 'pause',\n 'uid' => 6,\n)\n16:36:49[info]: [1 [50,000/40,000원]]생성되었습니다.:','default','2025-06-02 07:36:49'),(19,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','16:39:23[debug]: [6/1 [50,000/40,000원]] 변경 전 내용\n16:39:23[debug]: array (\n 'status' => 'reservation',\n)\n16:39:23[debug]: array (\n 'uid' => '6',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'end_at' => NULL,\n 'status' => 'pause',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:36:49.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n16:39:23[debug]: [6/1 [50,000/40,000원]] 변경 후 내용\n16:39:23[debug]: array (\n 'uid' => '6',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'end_at' => NULL,\n 'status' => 'reservation',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:39:23.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:36:49.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n16:39:23[info]: [1 [50,000/40,000원]]수정되였습니다.:','default','2025-06-02 07:39:23'),(20,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:42:56[debug]: 입력내용\n16:42:56[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:42:56[debug]: [7/2 [2,000/2,000원]] 입력 후 내용\n16:42:56[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 7,\n)\n16:42:56[info]: [2 [2,000/2,000원]]생성되었습니다.:','default','2025-06-02 07:42:56'),(21,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:43:27[debug]: 입력내용\n16:43:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:43:27[debug]: [8/2 [2,000/2,000원]] 입력 후 내용\n16:43:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 8,\n)\n16:43:27[info]: [2 [2,000/2,000원]]생성되었습니다.:','default','2025-06-02 07:43:27'),(22,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:53:26[debug]: 입력내용\n16:53:26[debug]: array (\n 'model' => 'ECC 2G',\n 'price' => '1000',\n 'status' => 'default',\n)\n16:53:26[debug]: [1/ECC 2G [1,000원]] 입력 후 내용\n16:53:26[debug]: array (\n 'model' => 'ECC 2G',\n 'price' => '1000',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:53:26[info]: [ECC 2G [1,000원]]생성되었습니다.:','default','2025-06-02 07:53:26'),(23,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:53:40[debug]: 입력내용\n16:53:40[debug]: array (\n 'model' => 'ECC 4G',\n 'price' => '2000',\n 'status' => 'default',\n)\n16:53:40[debug]: [2/ECC 4G [2,000원]] 입력 후 내용\n16:53:40[debug]: array (\n 'model' => 'ECC 4G',\n 'price' => '2000',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:53:40[info]: [ECC 4G [2,000원]]생성되었습니다.:','default','2025-06-02 07:53:40'),(24,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:04[debug]: 입력내용\n16:54:04[debug]: array (\n 'model' => 'ECC 8G',\n 'price' => '3000',\n 'status' => 'default',\n)\n16:54:04[debug]: [3/ECC 8G [3,000원]] 입력 후 내용\n16:54:04[debug]: array (\n 'model' => 'ECC 8G',\n 'price' => '3000',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:54:04[info]: [ECC 8G [3,000원]]생성되었습니다.:','default','2025-06-02 07:54:04'),(25,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:18[debug]: 입력내용\n16:54:18[debug]: array (\n 'model' => 'ECC 16G',\n 'price' => '4000',\n 'status' => 'default',\n)\n16:54:18[debug]: [4/ECC 16G [4,000원]] 입력 후 내용\n16:54:18[debug]: array (\n 'model' => 'ECC 16G',\n 'price' => '4000',\n 'status' => 'default',\n 'uid' => 4,\n)\n16:54:18[info]: [ECC 16G [4,000원]]생성되었습니다.:','default','2025-06-02 07:54:18'),(26,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:36[debug]: 입력내용\n16:54:36[debug]: array (\n 'model' => 'ECC 32G',\n 'price' => '5000',\n 'status' => 'default',\n)\n16:54:36[debug]: [5/ECC 32G [5,000원]] 입력 후 내용\n16:54:36[debug]: array (\n 'model' => 'ECC 32G',\n 'price' => '5000',\n 'status' => 'default',\n 'uid' => 5,\n)\n16:54:36[info]: [ECC 32G [5,000원]]생성되었습니다.:','default','2025-06-02 07:54:36'),(27,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:16[debug]: 입력내용\n16:55:16[debug]: array (\n 'model' => 'Samsung SSD 860 256G',\n 'price' => '100000',\n 'status' => 'default',\n)\n16:55:16[debug]: [1/Samsung SSD 860 256G [100,000원]] 입력 후 내용\n16:55:16[debug]: array (\n 'model' => 'Samsung SSD 860 256G',\n 'price' => '100000',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:55:16[info]: [Samsung SSD 860 256G [100,000원]]생성되었습니다.:','default','2025-06-02 07:55:16'),(28,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:38[debug]: 입력내용\n16:55:38[debug]: array (\n 'model' => 'Samsung SSD 870 EVO 500G',\n 'price' => '70000',\n 'status' => 'default',\n)\n16:55:38[debug]: [2/Samsung SSD 870 EVO 500G [70,000원]] 입력 후 내용\n16:55:38[debug]: array (\n 'model' => 'Samsung SSD 870 EVO 500G',\n 'price' => '70000',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:55:38[info]: [Samsung SSD 870 EVO 500G [70,000원]]생성되었습니다.:','default','2025-06-02 07:55:38'),(29,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:49[debug]: 입력내용\n16:55:49[debug]: array (\n 'model' => 'Samsung SSD 870 Pro 500G',\n 'price' => '80000',\n 'status' => 'default',\n)\n16:55:49[debug]: [3/Samsung SSD 870 Pro 500G [80,000원]] 입력 후 내용\n16:55:49[debug]: array (\n 'model' => 'Samsung SSD 870 Pro 500G',\n 'price' => '80000',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:55:49[info]: [Samsung SSD 870 Pro 500G [80,000원]]생성되었습니다.:','default','2025-06-02 07:55:49'),(30,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:11:10[debug]: 입력내용\n17:11:10[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '100000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:11:10[debug]: [9/STORAGE [100,000/50,000원]] 입력 후 내용\n17:11:10[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '100000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 9,\n)\n17:11:10[info]: [STORAGE [100,000/50,000원]]생성되었습니다.:','default','2025-06-02 08:11:10'),(31,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:11:50[debug]: 입력내용\n17:11:50[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '100000',\n 'amount' => '100000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n)\n17:11:50[debug]: [10/STORAGE [100,000/100,000원]] 입력 후 내용\n17:11:50[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '100000',\n 'amount' => '100000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n 'uid' => 10,\n)\n17:11:50[info]: [STORAGE [100,000/100,000원]]생성되었습니다.:','default','2025-06-02 08:11:50'),(32,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','17:12:33[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe billing_cycle field is required.','default','2025-06-02 08:12:33'),(33,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:12:55[debug]: 입력내용\n17:12:55[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:12:55[debug]: [11/SOFTWARE [10,000/10,000원]] 입력 후 내용\n17:12:55[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 11,\n)\n17:12:55[info]: [SOFTWARE [10,000/10,000원]]생성되었습니다.:','default','2025-06-02 08:12:55'),(34,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:13:40[debug]: 입력내용\n17:13:40[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:13:40[debug]: [12/SOFTWARE [10,000/10,000원]] 입력 후 내용\n17:13:40[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 12,\n)\n17:13:40[info]: [SOFTWARE [10,000/10,000원]]생성되었습니다.:','default','2025-06-02 08:13:40'),(35,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:14:12[debug]: 입력내용\n17:14:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '5',\n 'billing_cycle' => 'month',\n 'price' => '5000',\n 'amount' => '5000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n)\n17:14:12[debug]: [13/SOFTWARE [5,000/5,000원]] 입력 후 내용\n17:14:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '5',\n 'billing_cycle' => 'month',\n 'price' => '5000',\n 'amount' => '5000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n 'uid' => 13,\n)\n17:14:12[info]: [SOFTWARE [5,000/5,000원]]생성되었습니다.:','default','2025-06-02 08:14:12'),(36,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:14:43[debug]: 입력내용\n17:14:43[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'DEFENCE',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:14:43[debug]: [14/DEFENCE [50,000/50,000원]] 입력 후 내용\n17:14:43[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'DEFENCE',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 14,\n)\n17:14:43[info]: [DEFENCE [50,000/50,000원]]생성되었습니다.:','default','2025-06-02 08:14:43'),(37,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','17:15:22[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe item_uid field is required.','default','2025-06-02 08:15:22'),(38,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','17:33:41[debug]: [4/SERVER [150,000/100,000원]] 변경 전 내용\n17:33:41[debug]: array (\n 'item_uid' => '3',\n)\n17:33:41[debug]: array (\n 'uid' => '4',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:35:12.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n17:33:41[debug]: [4/SERVER [150,000/100,000원]] 변경 후 내용\n17:33:41[debug]: array (\n 'uid' => '4',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:33:41.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:35:12.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n17:33:41[info]: [SERVER [150,000/100,000원]]수정되였습니다.:','default','2025-06-02 08:33:41'),(39,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','17:36:15[debug]: 입력내용\n17:36:15[debug]: array (\n 'code' => 'JPN234',\n 'manufactur_at' => '2025-06-05',\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n17:36:15[debug]: [9/HP DL360 Gen 9 [200,000원]] 입력 후 내용\n17:36:15[debug]: array (\n 'code' => 'JPN234',\n 'manufactur_at' => '2025-06-05',\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 9,\n)\n17:36:15[info]: [HP DL360 Gen 9 [200,000원]]생성되었습니다.:','default','2025-06-02 08:36:15'); +INSERT INTO `logger` VALUES (1,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:20:05[debug]: 입력내용\n12:20:05[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n12:20:05[debug]: [1/HP DL360 Gen 7 [HP DL360 Gen 7]] 입력 후 내용\n12:20:05[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 1,\n)\n12:20:05[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]생성되었습니다.:','default','2025-06-02 03:20:05'),(2,1,'Equipment\\Server','create','작업이 실패하였습니다.','12:21:29[debug]: 입력내용\n12:21:29[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2017-06-07',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '300000',\n 'status' => 'default',\n 'description' => '',\n)\n12:21:29[error]: \n------save_process 오류-----\nINSERT INTO `serverinfo` (`code`, `manufactur_at`, `model`, `price`, `status`) VALUES ('ZE2345', '2017-06-07', 'HP DL360 Gen 7', '300000', 'default')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Duplicate entry \\'HP DL360 Gen 7\\' for key \\'UQ_model\\'',\n)\n------------------------------\n\n12:21:29[debug]: \n------save_process 오류-----\nINSERT INTO `serverinfo` (`code`, `manufactur_at`, `model`, `price`, `status`) VALUES ('ZE2345', '2017-06-07', 'HP DL360 Gen 7', '300000', 'default')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Duplicate entry \\'HP DL360 Gen 7\\' for key \\'UQ_model\\'',\n)\n------------------------------\n','default','2025-06-02 03:21:29'),(3,1,'Equipment\\Server','delete','작업이 성공적으로 완료되었습니다.','12:22:37[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]삭제되였습니다.:','default','2025-06-02 03:22:37'),(4,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:27:07[debug]: 입력내용\n12:27:07[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 6',\n 'price' => '100000',\n 'status' => 'default',\n 'description' => '',\n)\n12:27:07[debug]: [3/HP DL360 Gen 6 [HP DL360 Gen 6]] 입력 후 내용\n12:27:07[debug]: array (\n 'code' => 'X386',\n 'manufactur_at' => '2025-06-01',\n 'model' => 'HP DL360 Gen 6',\n 'price' => '100000',\n 'status' => 'default',\n 'uid' => 3,\n)\n12:27:07[info]: [HP DL360 Gen 6 [HP DL360 Gen 6]]생성되었습니다.:','default','2025-06-02 03:27:08'),(5,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:28:06[debug]: 입력내용\n12:28:06[debug]: array (\n 'code' => 'XE785',\n 'manufactur_at' => '2019-06-04',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '150000',\n 'status' => 'default',\n 'description' => '',\n)\n12:28:06[debug]: [4/HP DL360 Gen 7 [HP DL360 Gen 7]] 입력 후 내용\n12:28:06[debug]: array (\n 'code' => 'XE785',\n 'manufactur_at' => '2019-06-04',\n 'model' => 'HP DL360 Gen 7',\n 'price' => '150000',\n 'status' => 'default',\n 'uid' => 4,\n)\n12:28:06[info]: [HP DL360 Gen 7 [HP DL360 Gen 7]]생성되었습니다.:','default','2025-06-02 03:28:06'),(6,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:28:35[debug]: 입력내용\n12:28:35[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2019-06-11',\n 'model' => 'HP DL360 Gen 8',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n12:28:35[debug]: [5/HP DL360 Gen 8 [HP DL360 Gen 8]] 입력 후 내용\n12:28:35[debug]: array (\n 'code' => 'ZE2345',\n 'manufactur_at' => '2019-06-11',\n 'model' => 'HP DL360 Gen 8',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 5,\n)\n12:28:35[info]: [HP DL360 Gen 8 [HP DL360 Gen 8]]생성되었습니다.:','default','2025-06-02 03:28:35'),(7,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:29:22[debug]: 입력내용\n12:29:22[debug]: array (\n 'code' => 'I3A23',\n 'manufactur_at' => '2025-04-16',\n 'model' => '3,4,5세대 PC',\n 'price' => '50000',\n 'status' => 'default',\n 'description' => '',\n)\n12:29:22[debug]: [6/3,4,5세대 PC [3,4,5세대 PC]] 입력 후 내용\n12:29:22[debug]: array (\n 'code' => 'I3A23',\n 'manufactur_at' => '2025-04-16',\n 'model' => '3,4,5세대 PC',\n 'price' => '50000',\n 'status' => 'default',\n 'uid' => 6,\n)\n12:29:22[info]: [3,4,5세대 PC [3,4,5세대 PC]]생성되었습니다.:','default','2025-06-02 03:29:22'),(8,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:29:55[debug]: 입력내용\n12:29:55[debug]: array (\n 'code' => 'I7',\n 'manufactur_at' => '2025-02-04',\n 'model' => '6,7,8세대 PC',\n 'price' => '70000',\n 'status' => 'default',\n 'description' => '',\n)\n12:29:55[debug]: [7/6,7,8세대 PC [6,7,8세대 PC]] 입력 후 내용\n12:29:55[debug]: array (\n 'code' => 'I7',\n 'manufactur_at' => '2025-02-04',\n 'model' => '6,7,8세대 PC',\n 'price' => '70000',\n 'status' => 'default',\n 'uid' => 7,\n)\n12:29:55[info]: [6,7,8세대 PC [6,7,8세대 PC]]생성되었습니다.:','default','2025-06-02 03:29:55'),(9,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','12:30:31[debug]: 입력내용\n12:30:31[debug]: array (\n 'code' => 'Min234',\n 'manufactur_at' => '2025-04-16',\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'status' => 'default',\n 'description' => '',\n)\n12:30:31[debug]: [8/12,13,14세대 MiniPC [12,13,14세대 MiniPC]] 입력 후 내용\n12:30:31[debug]: array (\n 'code' => 'Min234',\n 'manufactur_at' => '2025-04-16',\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'status' => 'default',\n 'uid' => 8,\n)\n12:30:31[info]: [12,13,14세대 MiniPC [12,13,14세대 MiniPC]]생성되었습니다.:','default','2025-06-02 03:30:31'),(10,1,'Customer\\Service','create','작업이 실패하였습니다.','12:37:15[debug]: Customer\\Service 작업 데이터 검증 오류발생\nThe end_at field must contain a valid date.','default','2025-06-02 03:37:15'),(11,1,'Customer\\Service','create','작업이 성공적으로 완료되었습니다.','12:37:30[debug]: 입력내용\n12:37:30[debug]: array (\n 'clientinfo_uid' => '1',\n 'switch' => 'R35P10',\n 'location' => 'default',\n 'type' => 'default',\n 'raid' => 'RAID1',\n 'billing_at' => '2025-06-25',\n 'start_at' => '2025-06-02',\n 'end_at' => '2025-06-25',\n 'status' => 'default',\n)\n12:37:30[debug]: [1/R35P10] 입력 후 내용\n12:37:30[debug]: array (\n 'clientinfo_uid' => '1',\n 'switch' => 'R35P10',\n 'location' => 'default',\n 'type' => 'default',\n 'raid' => 'RAID1',\n 'billing_at' => '2025-06-25',\n 'start_at' => '2025-06-02',\n 'end_at' => '2025-06-25',\n 'status' => 'default',\n 'uid' => 1,\n)\n12:37:30[info]: [R35P10]생성되었습니다.:','default','2025-06-02 03:37:30'),(12,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','16:17:22[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe item_uid field is required.\nThe billing_cycle field is required.\nThe price field is required.\nThe amount field is required.\nThe start_at field is required.\nThe end_at field must contain a valid date.\nThe status field is required.','default','2025-06-02 07:17:22'),(13,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:19:58[debug]: 입력내용\n16:19:58[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => '8',\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'status' => 'default',\n)\n16:19:58[debug]: [1/LINE] 입력 후 내용\n16:19:58[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => '8',\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:19:58[info]: [LINE]생성되었습니다.:','default','2025-06-02 07:19:58'),(14,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:28:27[debug]: 입력내용\n16:28:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '12',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:28:27[debug]: [2/12] 입력 후 내용\n16:28:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '12',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:28:27[info]: [12]생성되었습니다.:','default','2025-06-02 07:28:27'),(15,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:28:57[debug]: 입력내용\n16:28:57[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '11',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:28:57[debug]: [3/11] 입력 후 내용\n16:28:57[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'IP',\n 'item_uid' => '11',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:28:57[info]: [11]생성되었습니다.:','default','2025-06-02 07:28:57'),(16,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:35:12[debug]: 입력내용\n16:35:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:35:12[debug]: [4/4 [150,000/100,000원]] 입력 후 내용\n16:35:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 4,\n)\n16:35:12[info]: [4 [150,000/100,000원]]생성되었습니다.:','default','2025-06-02 07:35:12'),(17,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:36:08[debug]: 입력내용\n16:36:08[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:36:08[debug]: [5/1 [50,000/40,000원]] 입력 후 내용\n16:36:08[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 5,\n)\n16:36:08[info]: [1 [50,000/40,000원]]생성되었습니다.:','default','2025-06-02 07:36:08'),(18,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:36:49[debug]: 입력내용\n16:36:49[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'status' => 'pause',\n)\n16:36:49[debug]: [6/1 [50,000/40,000원]] 입력 후 내용\n16:36:49[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'status' => 'pause',\n 'uid' => 6,\n)\n16:36:49[info]: [1 [50,000/40,000원]]생성되었습니다.:','default','2025-06-02 07:36:49'),(19,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','16:39:23[debug]: [6/1 [50,000/40,000원]] 변경 전 내용\n16:39:23[debug]: array (\n 'status' => 'reservation',\n)\n16:39:23[debug]: array (\n 'uid' => '6',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'end_at' => NULL,\n 'status' => 'pause',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:36:49.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n16:39:23[debug]: [6/1 [50,000/40,000원]] 변경 후 내용\n16:39:23[debug]: array (\n 'uid' => '6',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'CPU',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '40000',\n 'start_at' => '2025-06-20',\n 'end_at' => NULL,\n 'status' => 'reservation',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:39:23.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:36:49.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n16:39:23[info]: [1 [50,000/40,000원]]수정되였습니다.:','default','2025-06-02 07:39:23'),(20,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:42:56[debug]: 입력내용\n16:42:56[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:42:56[debug]: [7/2 [2,000/2,000원]] 입력 후 내용\n16:42:56[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 7,\n)\n16:42:56[info]: [2 [2,000/2,000원]]생성되었습니다.:','default','2025-06-02 07:42:56'),(21,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','16:43:27[debug]: 입력내용\n16:43:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n16:43:27[debug]: [8/2 [2,000/2,000원]] 입력 후 내용\n16:43:27[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'RAM',\n 'item_uid' => '2',\n 'billing_cycle' => 'onetime',\n 'price' => '2000',\n 'amount' => '2000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 8,\n)\n16:43:27[info]: [2 [2,000/2,000원]]생성되었습니다.:','default','2025-06-02 07:43:27'),(22,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:53:26[debug]: 입력내용\n16:53:26[debug]: array (\n 'model' => 'ECC 2G',\n 'price' => '1000',\n 'status' => 'default',\n)\n16:53:26[debug]: [1/ECC 2G [1,000원]] 입력 후 내용\n16:53:26[debug]: array (\n 'model' => 'ECC 2G',\n 'price' => '1000',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:53:26[info]: [ECC 2G [1,000원]]생성되었습니다.:','default','2025-06-02 07:53:26'),(23,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:53:40[debug]: 입력내용\n16:53:40[debug]: array (\n 'model' => 'ECC 4G',\n 'price' => '2000',\n 'status' => 'default',\n)\n16:53:40[debug]: [2/ECC 4G [2,000원]] 입력 후 내용\n16:53:40[debug]: array (\n 'model' => 'ECC 4G',\n 'price' => '2000',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:53:40[info]: [ECC 4G [2,000원]]생성되었습니다.:','default','2025-06-02 07:53:40'),(24,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:04[debug]: 입력내용\n16:54:04[debug]: array (\n 'model' => 'ECC 8G',\n 'price' => '3000',\n 'status' => 'default',\n)\n16:54:04[debug]: [3/ECC 8G [3,000원]] 입력 후 내용\n16:54:04[debug]: array (\n 'model' => 'ECC 8G',\n 'price' => '3000',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:54:04[info]: [ECC 8G [3,000원]]생성되었습니다.:','default','2025-06-02 07:54:04'),(25,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:18[debug]: 입력내용\n16:54:18[debug]: array (\n 'model' => 'ECC 16G',\n 'price' => '4000',\n 'status' => 'default',\n)\n16:54:18[debug]: [4/ECC 16G [4,000원]] 입력 후 내용\n16:54:18[debug]: array (\n 'model' => 'ECC 16G',\n 'price' => '4000',\n 'status' => 'default',\n 'uid' => 4,\n)\n16:54:18[info]: [ECC 16G [4,000원]]생성되었습니다.:','default','2025-06-02 07:54:18'),(26,1,'Equipment\\Part\\Ram','create','작업이 성공적으로 완료되었습니다.','16:54:36[debug]: 입력내용\n16:54:36[debug]: array (\n 'model' => 'ECC 32G',\n 'price' => '5000',\n 'status' => 'default',\n)\n16:54:36[debug]: [5/ECC 32G [5,000원]] 입력 후 내용\n16:54:36[debug]: array (\n 'model' => 'ECC 32G',\n 'price' => '5000',\n 'status' => 'default',\n 'uid' => 5,\n)\n16:54:36[info]: [ECC 32G [5,000원]]생성되었습니다.:','default','2025-06-02 07:54:36'),(27,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:16[debug]: 입력내용\n16:55:16[debug]: array (\n 'model' => 'Samsung SSD 860 256G',\n 'price' => '100000',\n 'status' => 'default',\n)\n16:55:16[debug]: [1/Samsung SSD 860 256G [100,000원]] 입력 후 내용\n16:55:16[debug]: array (\n 'model' => 'Samsung SSD 860 256G',\n 'price' => '100000',\n 'status' => 'default',\n 'uid' => 1,\n)\n16:55:16[info]: [Samsung SSD 860 256G [100,000원]]생성되었습니다.:','default','2025-06-02 07:55:16'),(28,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:38[debug]: 입력내용\n16:55:38[debug]: array (\n 'model' => 'Samsung SSD 870 EVO 500G',\n 'price' => '70000',\n 'status' => 'default',\n)\n16:55:38[debug]: [2/Samsung SSD 870 EVO 500G [70,000원]] 입력 후 내용\n16:55:38[debug]: array (\n 'model' => 'Samsung SSD 870 EVO 500G',\n 'price' => '70000',\n 'status' => 'default',\n 'uid' => 2,\n)\n16:55:38[info]: [Samsung SSD 870 EVO 500G [70,000원]]생성되었습니다.:','default','2025-06-02 07:55:38'),(29,1,'Equipment\\Part\\Storage','create','작업이 성공적으로 완료되었습니다.','16:55:49[debug]: 입력내용\n16:55:49[debug]: array (\n 'model' => 'Samsung SSD 870 Pro 500G',\n 'price' => '80000',\n 'status' => 'default',\n)\n16:55:49[debug]: [3/Samsung SSD 870 Pro 500G [80,000원]] 입력 후 내용\n16:55:49[debug]: array (\n 'model' => 'Samsung SSD 870 Pro 500G',\n 'price' => '80000',\n 'status' => 'default',\n 'uid' => 3,\n)\n16:55:49[info]: [Samsung SSD 870 Pro 500G [80,000원]]생성되었습니다.:','default','2025-06-02 07:55:49'),(30,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:11:10[debug]: 입력내용\n17:11:10[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '100000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:11:10[debug]: [9/STORAGE [100,000/50,000원]] 입력 후 내용\n17:11:10[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'month',\n 'price' => '100000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 9,\n)\n17:11:10[info]: [STORAGE [100,000/50,000원]]생성되었습니다.:','default','2025-06-02 08:11:10'),(31,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:11:50[debug]: 입력내용\n17:11:50[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '100000',\n 'amount' => '100000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n)\n17:11:50[debug]: [10/STORAGE [100,000/100,000원]] 입력 후 내용\n17:11:50[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'STORAGE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '100000',\n 'amount' => '100000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n 'uid' => 10,\n)\n17:11:50[info]: [STORAGE [100,000/100,000원]]생성되었습니다.:','default','2025-06-02 08:11:50'),(32,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','17:12:33[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe billing_cycle field is required.','default','2025-06-02 08:12:33'),(33,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:12:55[debug]: 입력내용\n17:12:55[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:12:55[debug]: [11/SOFTWARE [10,000/10,000원]] 입력 후 내용\n17:12:55[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '1',\n 'billing_cycle' => 'onetime',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 11,\n)\n17:12:55[info]: [SOFTWARE [10,000/10,000원]]생성되었습니다.:','default','2025-06-02 08:12:55'),(34,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:13:40[debug]: 입력내용\n17:13:40[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:13:40[debug]: [12/SOFTWARE [10,000/10,000원]] 입력 후 내용\n17:13:40[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '10000',\n 'amount' => '10000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 12,\n)\n17:13:40[info]: [SOFTWARE [10,000/10,000원]]생성되었습니다.:','default','2025-06-02 08:13:40'),(35,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:14:12[debug]: 입력내용\n17:14:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '5',\n 'billing_cycle' => 'month',\n 'price' => '5000',\n 'amount' => '5000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n)\n17:14:12[debug]: [13/SOFTWARE [5,000/5,000원]] 입력 후 내용\n17:14:12[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SOFTWARE',\n 'item_uid' => '5',\n 'billing_cycle' => 'month',\n 'price' => '5000',\n 'amount' => '5000',\n 'start_at' => '2025-06-25',\n 'status' => 'reservation',\n 'uid' => 13,\n)\n17:14:12[info]: [SOFTWARE [5,000/5,000원]]생성되었습니다.:','default','2025-06-02 08:14:12'),(36,1,'Customer\\ServiceItem','create','작업이 성공적으로 완료되었습니다.','17:14:43[debug]: 입력내용\n17:14:43[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'DEFENCE',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n)\n17:14:43[debug]: [14/DEFENCE [50,000/50,000원]] 입력 후 내용\n17:14:43[debug]: array (\n 'serviceinfo_uid' => '1',\n 'item_type' => 'DEFENCE',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '50000',\n 'amount' => '50000',\n 'start_at' => '2025-06-13',\n 'status' => 'default',\n 'uid' => 14,\n)\n17:14:43[info]: [DEFENCE [50,000/50,000원]]생성되었습니다.:','default','2025-06-02 08:14:43'),(37,1,'Customer\\ServiceItem','create','작업이 실패하였습니다.','17:15:22[debug]: Customer\\ServiceItem 작업 데이터 검증 오류발생\nThe item_uid field is required.','default','2025-06-02 08:15:22'),(38,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','17:33:41[debug]: [4/SERVER [150,000/100,000원]] 변경 전 내용\n17:33:41[debug]: array (\n 'item_uid' => '3',\n)\n17:33:41[debug]: array (\n 'uid' => '4',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '4',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:35:12.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n17:33:41[debug]: [4/SERVER [150,000/100,000원]] 변경 후 내용\n17:33:41[debug]: array (\n 'uid' => '4',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'SERVER',\n 'item_uid' => '3',\n 'billing_cycle' => 'month',\n 'price' => '150000',\n 'amount' => '100000',\n 'start_at' => '2025-06-13',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:33:41.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:35:12.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n17:33:41[info]: [SERVER [150,000/100,000원]]수정되였습니다.:','default','2025-06-02 08:33:41'),(39,1,'Equipment\\Server','create','작업이 성공적으로 완료되었습니다.','17:36:15[debug]: 입력내용\n17:36:15[debug]: array (\n 'code' => 'JPN234',\n 'manufactur_at' => '2025-06-05',\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'status' => 'default',\n 'description' => '',\n)\n17:36:15[debug]: [9/HP DL360 Gen 9 [200,000원]] 입력 후 내용\n17:36:15[debug]: array (\n 'code' => 'JPN234',\n 'manufactur_at' => '2025-06-05',\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'status' => 'default',\n 'uid' => 9,\n)\n17:36:15[info]: [HP DL360 Gen 9 [200,000원]]생성되었습니다.:','default','2025-06-02 08:36:15'),(40,1,'User','toggle','작업이 성공적으로 완료되었습니다.','12:26:18[debug]: [40/adfasdfas22222221234] 변경 전 내용\n12:26:18[debug]: array (\n 'status' => 'default',\n)\n12:26:18[debug]: array (\n 'uid' => '40',\n 'id' => 'choi.jh2342222224',\n 'passwd' => '$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y',\n 'name' => 'adfasdfas22222221234',\n 'email' => 'postfixadmin@idcjp.jp3234343',\n 'mobile' => '04344343271234',\n 'role' => 'manager,cloudflare',\n 'status' => 'pause',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-02 15:34:43.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:18[debug]: [40/adfasdfas22222221234] 변경 후 내용\n12:26:18[debug]: array (\n 'uid' => '40',\n 'id' => 'choi.jh2342222224',\n 'passwd' => '$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y',\n 'name' => 'adfasdfas22222221234',\n 'email' => 'postfixadmin@idcjp.jp3234343',\n 'mobile' => '04344343271234',\n 'role' => 'manager,cloudflare',\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:18.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-02 15:34:43.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:18[info]: [adfasdfas22222221234]수정되였습니다.:','default','2025-06-03 03:26:18'),(41,1,'User','toggle','작업이 성공적으로 완료되었습니다.','12:26:22[debug]: [40/adfasdfas22222221234] 변경 전 내용\n12:26:22[debug]: array (\n 'status' => 'pause',\n)\n12:26:22[debug]: array (\n 'uid' => '40',\n 'id' => 'choi.jh2342222224',\n 'passwd' => '$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y',\n 'name' => 'adfasdfas22222221234',\n 'email' => 'postfixadmin@idcjp.jp3234343',\n 'mobile' => '04344343271234',\n 'role' => 'manager,cloudflare',\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:18.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-02 15:34:43.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:22[debug]: [40/adfasdfas22222221234] 변경 후 내용\n12:26:22[debug]: array (\n 'uid' => '40',\n 'id' => 'choi.jh2342222224',\n 'passwd' => '$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y',\n 'name' => 'adfasdfas22222221234',\n 'email' => 'postfixadmin@idcjp.jp3234343',\n 'mobile' => '04344343271234',\n 'role' => 'manager,cloudflare',\n 'status' => 'pause',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:22.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-02 15:34:43.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:22[info]: [adfasdfas22222221234]수정되였습니다.:','default','2025-06-03 03:26:22'),(42,1,'Equipment\\Part\\Line','toggle','작업이 성공적으로 완료되었습니다.','12:26:48[debug]: [8/Softbank회선] 변경 전 내용\n12:26:48[debug]: array (\n 'status' => 'pause',\n)\n12:26:48[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'type' => 'default',\n 'title' => 'Softbank회선',\n 'bandwith' => '27.125.207.128/25',\n 'price' => '1000000',\n 'status' => 'default',\n 'start_at' => '2025-05-01',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:45:34.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:48[debug]: [8/Softbank회선] 변경 후 내용\n12:26:48[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'type' => 'default',\n 'title' => 'Softbank회선',\n 'bandwith' => '27.125.207.128/25',\n 'price' => '1000000',\n 'status' => 'pause',\n 'start_at' => '2025-05-01',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:48.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:45:34.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:48[info]: [Softbank회선]수정되였습니다.:','default','2025-06-03 03:26:48'),(43,1,'Equipment\\Part\\Line','toggle','작업이 성공적으로 완료되었습니다.','12:26:52[debug]: [8/Softbank회선] 변경 전 내용\n12:26:52[debug]: array (\n 'status' => 'default',\n)\n12:26:52[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'type' => 'default',\n 'title' => 'Softbank회선',\n 'bandwith' => '27.125.207.128/25',\n 'price' => '1000000',\n 'status' => 'pause',\n 'start_at' => '2025-05-01',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:48.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:45:34.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:52[debug]: [8/Softbank회선] 변경 후 내용\n12:26:52[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'type' => 'default',\n 'title' => 'Softbank회선',\n 'bandwith' => '27.125.207.128/25',\n 'price' => '1000000',\n 'status' => 'default',\n 'start_at' => '2025-05-01',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:26:52.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:45:34.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:26:52[info]: [Softbank회선]수정되였습니다.:','default','2025-06-03 03:26:52'),(44,1,'Equipment\\Server','toggle','작업이 성공적으로 완료되었습니다.','12:27:04[debug]: [9/HP DL360 Gen 9] 변경 전 내용\n12:27:04[debug]: array (\n 'status' => 'pause',\n)\n12:27:04[debug]: array (\n 'uid' => '9',\n 'clientinfo_uid' => NULL,\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'description' => NULL,\n 'status' => 'default',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:36:15.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:04[debug]: [9/HP DL360 Gen 9] 변경 후 내용\n12:27:04[debug]: array (\n 'uid' => '9',\n 'clientinfo_uid' => NULL,\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'description' => NULL,\n 'status' => 'pause',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:04.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:36:15.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:04[info]: [HP DL360 Gen 9]수정되였습니다.:','default','2025-06-03 03:27:04'),(45,1,'Equipment\\Server','toggle','작업이 성공적으로 완료되었습니다.','12:27:07[debug]: [9/HP DL360 Gen 9] 변경 전 내용\n12:27:07[debug]: array (\n 'status' => 'default',\n)\n12:27:07[debug]: array (\n 'uid' => '9',\n 'clientinfo_uid' => NULL,\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'description' => NULL,\n 'status' => 'pause',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:04.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:36:15.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:07[debug]: [9/HP DL360 Gen 9] 변경 후 내용\n12:27:07[debug]: array (\n 'uid' => '9',\n 'clientinfo_uid' => NULL,\n 'model' => 'HP DL360 Gen 9',\n 'price' => '200000',\n 'description' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:07.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 17:36:15.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:07[info]: [HP DL360 Gen 9]수정되였습니다.:','default','2025-06-03 03:27:07'),(46,1,'Equipment\\Server','toggle','작업이 성공적으로 완료되었습니다.','12:27:19[debug]: [8/12,13,14세대 MiniPC] 변경 전 내용\n12:27:19[debug]: array (\n 'status' => 'pause',\n)\n12:27:19[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'description' => NULL,\n 'status' => 'default',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 12:30:31.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:19[debug]: [8/12,13,14세대 MiniPC] 변경 후 내용\n12:27:19[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'description' => NULL,\n 'status' => 'pause',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:19.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 12:30:31.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:19[info]: [12,13,14세대 MiniPC]수정되였습니다.:','default','2025-06-03 03:27:19'),(47,1,'Equipment\\Server','toggle','작업이 성공적으로 완료되었습니다.','12:27:21[debug]: [8/12,13,14세대 MiniPC] 변경 전 내용\n12:27:21[debug]: array (\n 'status' => 'default',\n)\n12:27:21[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'description' => NULL,\n 'status' => 'pause',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:19.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 12:30:31.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:21[debug]: [8/12,13,14세대 MiniPC] 변경 후 내용\n12:27:21[debug]: array (\n 'uid' => '8',\n 'clientinfo_uid' => NULL,\n 'model' => '12,13,14세대 MiniPC',\n 'price' => '90000',\n 'description' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:21.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 12:30:31.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:21[info]: [12,13,14세대 MiniPC]수정되였습니다.:','default','2025-06-03 03:27:21'),(48,1,'Customer\\Point','toggle','작업이 실패하였습니다.','12:27:30[debug]: [2/5월포인트출금] 변경 전 내용\n12:27:30[debug]: array (\n 'status' => 'default',\n)\n12:27:30[debug]: array (\n 'uid' => '2',\n 'clientinfo_uid' => '3',\n 'title' => '5월포인트출금',\n 'amount' => '50000',\n 'status' => 'out',\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:10:55.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:30[debug]: [2/5월포인트출금] 변경 후 내용\n12:27:30[debug]: array (\n 'uid' => '2',\n 'clientinfo_uid' => '3',\n 'title' => '5월포인트출금',\n 'amount' => '50000',\n 'status' => 'default',\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:10:55.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:30.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:30[error]: \n------save_process 오류-----\nUPDATE `pointinfo` SET `status` = 'default', `updated_at` = '2025-06-03 12:27:30'\nWHERE `pointinfo`.`uid` IN ('2')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Unknown column \\'updated_at\\' in \\'field list\\'',\n)\n------------------------------\n\n12:27:30[debug]: \n------save_process 오류-----\nUPDATE `pointinfo` SET `status` = 'default', `updated_at` = '2025-06-03 12:27:30'\nWHERE `pointinfo`.`uid` IN ('2')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Unknown column \\'updated_at\\' in \\'field list\\'',\n)\n------------------------------\n','default','2025-06-03 03:27:30'),(49,1,'Customer\\Point','toggle','작업이 실패하였습니다.','12:27:33[debug]: [2/5월포인트출금] 변경 전 내용\n12:27:33[debug]: array (\n 'status' => 'default',\n)\n12:27:33[debug]: array (\n 'uid' => '2',\n 'clientinfo_uid' => '3',\n 'title' => '5월포인트출금',\n 'amount' => '50000',\n 'status' => 'out',\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:10:55.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:33[debug]: [2/5월포인트출금] 변경 후 내용\n12:27:33[debug]: array (\n 'uid' => '2',\n 'clientinfo_uid' => '3',\n 'title' => '5월포인트출금',\n 'amount' => '50000',\n 'status' => 'default',\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-05-29 15:10:55.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 12:27:33.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n12:27:33[error]: \n------save_process 오류-----\nUPDATE `pointinfo` SET `status` = 'default', `updated_at` = '2025-06-03 12:27:33'\nWHERE `pointinfo`.`uid` IN ('2')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Unknown column \\'updated_at\\' in \\'field list\\'',\n)\n------------------------------\n\n12:27:33[debug]: \n------save_process 오류-----\nUPDATE `pointinfo` SET `status` = 'default', `updated_at` = '2025-06-03 12:27:33'\nWHERE `pointinfo`.`uid` IN ('2')\narray (\n 'CodeIgniter\\\\Database\\\\MySQLi\\\\Connection' => 'Unknown column \\'updated_at\\' in \\'field list\\'',\n)\n------------------------------\n','default','2025-06-03 03:27:33'),(50,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','13:57:05[debug]: [1/LINE] 변경 전 내용\n13:57:05[debug]: array (\n 'billing_cycle' => 'onetime',\n)\n13:57:05[debug]: array (\n 'uid' => '1',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => 8,\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => NULL,\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:19:58.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n13:57:05[debug]: [1/LINE] 변경 후 내용\n13:57:05[debug]: array (\n 'uid' => '1',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => 8,\n 'billing_cycle' => 'onetime',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 13:57:05.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:19:58.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n13:57:05[info]: [LINE]수정되였습니다.:','default','2025-06-03 04:57:05'),(51,1,'Customer\\ServiceItem','toggle','작업이 성공적으로 완료되었습니다.','13:57:22[debug]: [1/LINE] 변경 전 내용\n13:57:22[debug]: array (\n 'billing_cycle' => 'month',\n)\n13:57:22[debug]: array (\n 'uid' => '1',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => 8,\n 'billing_cycle' => 'onetime',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 13:57:05.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:19:58.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n13:57:22[debug]: [1/LINE] 변경 후 내용\n13:57:22[debug]: array (\n 'uid' => '1',\n 'serviceinfo_uid' => '1',\n 'item_type' => 'LINE',\n 'item_uid' => 8,\n 'billing_cycle' => 'month',\n 'price' => '1000000',\n 'amount' => '500000',\n 'start_at' => '2025-06-11',\n 'end_at' => NULL,\n 'status' => 'default',\n 'updated_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-03 13:57:22.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'created_at' => \n \\CodeIgniter\\I18n\\Time::__set_state(array(\n 'timezone' => \n \\DateTimeZone::__set_state(array(\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n 'locale' => 'en',\n 'toStringFormat' => 'yyyy-MM-dd HH:mm:ss',\n 'date' => '2025-06-02 16:19:58.000000',\n 'timezone_type' => 3,\n 'timezone' => 'Asia/Seoul',\n )),\n)\n13:57:22[info]: [LINE]수정되였습니다.:','default','2025-06-03 04:57:22'); /*!40000 ALTER TABLE `logger` ENABLE KEYS */; UNLOCK TABLES; @@ -484,7 +484,7 @@ CREATE TABLE `serverinfo` ( LOCK TABLES `serverinfo` WRITE; /*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */; -INSERT INTO `serverinfo` VALUES (3,NULL,'HP DL360 Gen 6',100000,NULL,'default',NULL,'2025-06-02 03:27:07'),(4,NULL,'HP DL360 Gen 7',150000,NULL,'default',NULL,'2025-06-02 03:28:06'),(5,NULL,'HP DL360 Gen 8',200000,NULL,'default',NULL,'2025-06-02 03:28:35'),(6,NULL,'3,4,5세대 PC',50000,NULL,'default',NULL,'2025-06-02 03:29:22'),(7,NULL,'6,7,8세대 PC',70000,NULL,'default',NULL,'2025-06-02 03:29:55'),(8,NULL,'12,13,14세대 MiniPC',90000,NULL,'default',NULL,'2025-06-02 03:30:31'),(9,NULL,'HP DL360 Gen 9',200000,NULL,'default',NULL,'2025-06-02 08:36:15'); +INSERT INTO `serverinfo` VALUES (3,NULL,'HP DL360 Gen 6',100000,NULL,'default',NULL,'2025-06-02 03:27:07'),(4,NULL,'HP DL360 Gen 7',150000,NULL,'default',NULL,'2025-06-02 03:28:06'),(5,NULL,'HP DL360 Gen 8',200000,NULL,'default',NULL,'2025-06-02 03:28:35'),(6,NULL,'3,4,5세대 PC',50000,NULL,'default',NULL,'2025-06-02 03:29:22'),(7,NULL,'6,7,8세대 PC',70000,NULL,'default',NULL,'2025-06-02 03:29:55'),(8,NULL,'12,13,14세대 MiniPC',90000,NULL,'default','2025-06-03 03:27:21','2025-06-02 03:30:31'),(9,NULL,'HP DL360 Gen 9',200000,NULL,'default','2025-06-03 03:27:07','2025-06-02 08:36:15'); /*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -522,7 +522,7 @@ CREATE TABLE `serviceinfo` ( LOCK TABLES `serviceinfo` WRITE; /*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */; -INSERT INTO `serviceinfo` VALUES (1,1,'','R35P10','default','default','RAID1','2025-06-25','2025-06-02','2025-06-25','default',NULL,'2025-06-02 03:37:30'); +INSERT INTO `serviceinfo` VALUES (1,1,'R35P10','R35P10','default','default','RAID1','2025-06-25','2025-06-02','2025-06-25','default',NULL,'2025-06-02 03:37:30'); /*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -558,7 +558,7 @@ CREATE TABLE `serviceinfo_items` ( LOCK TABLES `serviceinfo_items` WRITE; /*!40000 ALTER TABLE `serviceinfo_items` DISABLE KEYS */; -INSERT INTO `serviceinfo_items` VALUES (1,1,'LINE',8,'month',1000000,500000,'2025-06-11',NULL,'default',NULL,'2025-06-02 07:19:58'),(2,1,'IP',12,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:28:27'),(3,1,'IP',11,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:28:57'),(4,1,'SERVER',3,'month',150000,100000,'2025-06-13',NULL,'default','2025-06-02 08:33:41','2025-06-02 07:35:12'),(5,1,'CPU',1,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:36:08'),(6,1,'CPU',1,'month',50000,40000,'2025-06-20',NULL,'reservation','2025-06-02 07:39:23','2025-06-02 07:36:49'),(7,1,'RAM',2,'onetime',2000,2000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:42:56'),(8,1,'RAM',2,'onetime',2000,2000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:43:27'),(9,1,'STORAGE',1,'month',100000,50000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:11:10'),(10,1,'STORAGE',1,'onetime',100000,100000,'2025-06-25',NULL,'reservation',NULL,'2025-06-02 08:11:50'),(11,1,'SOFTWARE',1,'onetime',10000,10000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:12:55'),(12,1,'SOFTWARE',4,'month',10000,10000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:13:40'),(13,1,'SOFTWARE',5,'month',5000,5000,'2025-06-25',NULL,'reservation',NULL,'2025-06-02 08:14:12'),(14,1,'DEFENCE',3,'month',50000,50000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:14:43'); +INSERT INTO `serviceinfo_items` VALUES (1,1,'LINE',8,'month',1000000,500000,'2025-06-11',NULL,'default','2025-06-03 04:57:22','2025-06-02 07:19:58'),(2,1,'IP',12,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:28:27'),(3,1,'IP',11,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:28:57'),(4,1,'SERVER',3,'month',150000,100000,'2025-06-13',NULL,'default','2025-06-02 08:33:41','2025-06-02 07:35:12'),(5,1,'CPU',1,'month',50000,40000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:36:08'),(6,1,'CPU',1,'month',50000,40000,'2025-06-20',NULL,'reservation','2025-06-02 07:39:23','2025-06-02 07:36:49'),(7,1,'RAM',2,'onetime',2000,2000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:42:56'),(8,1,'RAM',2,'onetime',2000,2000,'2025-06-13',NULL,'default',NULL,'2025-06-02 07:43:27'),(9,1,'STORAGE',1,'month',100000,50000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:11:10'),(10,1,'STORAGE',1,'onetime',100000,100000,'2025-06-25',NULL,'reservation',NULL,'2025-06-02 08:11:50'),(11,1,'SOFTWARE',1,'onetime',10000,10000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:12:55'),(12,1,'SOFTWARE',4,'month',10000,10000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:13:40'),(13,1,'SOFTWARE',5,'month',5000,5000,'2025-06-25',NULL,'reservation',NULL,'2025-06-02 08:14:12'),(14,1,'DEFENCE',3,'month',50000,50000,'2025-06-13',NULL,'default',NULL,'2025-06-02 08:14:43'); /*!40000 ALTER TABLE `serviceinfo_items` ENABLE KEYS */; UNLOCK TABLES; @@ -652,7 +652,7 @@ CREATE TABLE `user` ( LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; -INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$9kUte0xrvEkxtI9CzVaeKeCAxzOR4pKPpsCaQHR1YW7dXsCrTLWeC','최준흠','choi.jh@prime-idc.jp','','manager,cloudflare,firewall,director,master','default','2023-05-31 14:55:51','2023-03-23 06:50:04'),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-30 14:35:55','2023-03-24 02:20:48'),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:21:50','2023-03-24 02:21:50'),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,cloudflare,director','default','2023-03-24 02:23:18','2023-03-24 02:23:18'),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:23:52','2023-03-24 02:23:52'),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21'),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare','default','2023-07-21 06:48:39','2023-03-24 02:25:00'),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-22 23:59:07','2023-03-24 02:25:48'),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-02 02:07:19','2023-03-24 02:26:31'),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp',NULL,'manager,cloudflare,firewall','default','2023-10-16 23:08:51','2023-03-24 02:27:05'),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp',NULL,'manager,cloudflare','default','2024-06-12 00:21:07','2023-03-24 02:27:59'),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp',NULL,'manager,cloudflare','default','2023-05-31 14:22:43','2023-03-24 02:28:31'),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00'),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp',NULL,'manager,cloudflare','default','2024-03-12 02:14:09','2023-03-24 02:29:34'),(19,'park.hg','$2y$10$x7QQOkOEJHVKOnghbHBqYuI12Vsa9KLV8W4wgebCWy1pZiM93/W.e','박혁규','park.hg@prime-idc.jp',NULL,'manager','pause','2023-09-04 10:27:32','2023-09-04 09:48:02'),(21,'masakuni','$2y$10$di6Y7CqJGbbf72kDyCrOCOafJgk3vqJCYg6N3EtBUc3J6r24/7SFe','김창국','masakuni@prime-idc.jp',NULL,'cloudflare','pause','2023-12-18 08:56:29','2023-12-18 08:56:29'),(22,'bjh','$2y$10$LnEQ6kz4igRPZeDYwe7UluRiSaMVGN9Jj1fW3QqUUp6zPeLJW9goS','배장훈','bjh@prime-idc.jp',NULL,'cloudflare','pause','2024-06-06 23:51:19','2024-02-26 01:26:20'),(23,'cho.sh','$2y$10$jmmNrEsFmb2.Zj3OkBXDHuktrIj.NCP/tO2k9kquFBTBssa/lNG6y','조성호','cho.sh@prime-idc.jp','','manager','pause','2024-10-02 00:45:19','2024-10-02 00:32:30'),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare','default',NULL,'2024-10-29 06:30:19'),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp',NULL,'manager,cloudflare','default','2025-01-23 00:30:13','2025-01-23 00:29:46'),(38,'choi.jh234222222','$2y$10$zCgVXnCClLbftgeGxH0rk.v3o1zHkoO8Ywq2UDmGkdjIhK5mLJhvu','adfasdfas2222','postfixadmin@idcjp.jp2222222','043443432722222','cloudflare','pause',NULL,'2025-05-02 04:49:19'),(40,'choi.jh2342222224','$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y','adfasdfas22222221234','postfixadmin@idcjp.jp3234343','04344343271234','manager,cloudflare','pause',NULL,'2025-05-02 06:34:43'); +INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$9kUte0xrvEkxtI9CzVaeKeCAxzOR4pKPpsCaQHR1YW7dXsCrTLWeC','최준흠','choi.jh@prime-idc.jp','','manager,cloudflare,firewall,director,master','default','2023-05-31 14:55:51','2023-03-23 06:50:04'),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-30 14:35:55','2023-03-24 02:20:48'),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:21:50','2023-03-24 02:21:50'),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,cloudflare,director','default','2023-03-24 02:23:18','2023-03-24 02:23:18'),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:23:52','2023-03-24 02:23:52'),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21'),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare','default','2023-07-21 06:48:39','2023-03-24 02:25:00'),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-22 23:59:07','2023-03-24 02:25:48'),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-02 02:07:19','2023-03-24 02:26:31'),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp',NULL,'manager,cloudflare,firewall','default','2023-10-16 23:08:51','2023-03-24 02:27:05'),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp',NULL,'manager,cloudflare','default','2024-06-12 00:21:07','2023-03-24 02:27:59'),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp',NULL,'manager,cloudflare','default','2023-05-31 14:22:43','2023-03-24 02:28:31'),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00'),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp',NULL,'manager,cloudflare','default','2024-03-12 02:14:09','2023-03-24 02:29:34'),(19,'park.hg','$2y$10$x7QQOkOEJHVKOnghbHBqYuI12Vsa9KLV8W4wgebCWy1pZiM93/W.e','박혁규','park.hg@prime-idc.jp',NULL,'manager','pause','2023-09-04 10:27:32','2023-09-04 09:48:02'),(21,'masakuni','$2y$10$di6Y7CqJGbbf72kDyCrOCOafJgk3vqJCYg6N3EtBUc3J6r24/7SFe','김창국','masakuni@prime-idc.jp',NULL,'cloudflare','pause','2023-12-18 08:56:29','2023-12-18 08:56:29'),(22,'bjh','$2y$10$LnEQ6kz4igRPZeDYwe7UluRiSaMVGN9Jj1fW3QqUUp6zPeLJW9goS','배장훈','bjh@prime-idc.jp',NULL,'cloudflare','pause','2024-06-06 23:51:19','2024-02-26 01:26:20'),(23,'cho.sh','$2y$10$jmmNrEsFmb2.Zj3OkBXDHuktrIj.NCP/tO2k9kquFBTBssa/lNG6y','조성호','cho.sh@prime-idc.jp','','manager','pause','2024-10-02 00:45:19','2024-10-02 00:32:30'),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare','default',NULL,'2024-10-29 06:30:19'),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp',NULL,'manager,cloudflare','default','2025-01-23 00:30:13','2025-01-23 00:29:46'),(38,'choi.jh234222222','$2y$10$zCgVXnCClLbftgeGxH0rk.v3o1zHkoO8Ywq2UDmGkdjIhK5mLJhvu','adfasdfas2222','postfixadmin@idcjp.jp2222222','043443432722222','cloudflare','pause',NULL,'2025-05-02 04:49:19'),(40,'choi.jh2342222224','$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y','adfasdfas22222221234','postfixadmin@idcjp.jp3234343','04344343271234','manager,cloudflare','pause','2025-06-03 03:26:22','2025-05-02 06:34:43'); /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -665,4 +665,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-06-02 18:45:48 +-- Dump completed on 2025-06-03 14:32:34 diff --git a/app/Entities/Customer/ServiceItemEntity.php b/app/Entities/Customer/ServiceItemEntity.php index 0dff834..d0f97f0 100644 --- a/app/Entities/Customer/ServiceItemEntity.php +++ b/app/Entities/Customer/ServiceItemEntity.php @@ -9,8 +9,28 @@ class ServiceItemEntity extends CustomerEntity const PK = ServiceItemModel::PK; const TITLE = ServiceItemModel::TITLE; - public function getTitle(): string + public function getItemUid(): int { - return parent::getTitle() . " [" . number_format($this->attributes['price']) . '/' . number_format($this->attributes['amount']) . "원]"; + return intval($this->attributes['item_uid']); + } + public function getPrice(): int + { + return intval($this->attributes['price']); + } + public function getAmount(): int + { + return intval($this->attributes['amount']); + } + public function getView_Price(): string + { + return sprintf("원가:%s원 , 제공가:%s원", number_format($this->getPrice()), number_format($this->getAmount())); + } + public function getView_Sale(): string + { + return $this->getPrice() > $this->getAmount() ? "" : ICONS['SALE']; + } + public function getView_BillingCycle(): string + { + return $this->attributes['billing_cycle'] == "month" ? "" : ICONS['ONETIME'];; } } diff --git a/app/Entities/Equipment/EquipmentEntity.php b/app/Entities/Equipment/EquipmentEntity.php index a785d6d..10e4c61 100644 --- a/app/Entities/Equipment/EquipmentEntity.php +++ b/app/Entities/Equipment/EquipmentEntity.php @@ -10,8 +10,8 @@ abstract class EquipmentEntity extends CommonEntity { parent::__construct($data); } - public function getTitle(): string + final public function getPrice(): int { - return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]"; + return intval($this->attributes['price']); } } diff --git a/app/Helpers/CommonHelper.php b/app/Helpers/CommonHelper.php index 92b1fdb..437dd32 100644 --- a/app/Helpers/CommonHelper.php +++ b/app/Helpers/CommonHelper.php @@ -232,13 +232,11 @@ class CommonHelper } $form = implode(" ", $forms); } else { - $extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field'; - // $extra_class = isset($extras['class']) ? $extras['class'] : ""; $formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택']; foreach ($viewDatas['field_options'][$field] as $key => $label) { $formOptions[$key] = $label; } - $form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]); + $form = form_dropdown($field, $formOptions, $value, $extras); } break; case 'billing_at': @@ -259,15 +257,12 @@ class CommonHelper if (!is_array($viewDatas['field_options'][$field])) { throw new \Exception(__METHOD__ . "에서 {$field}의 field_options가 array형태가 아닙니다."); } - //value값이 없을경우 - $value = $value ?? $this->request->getVar($field); - $extra_class = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field'; - // $extra_class = isset($extras['class']) ? $extras['class'] : ""; + $extras['class'] = isset($extras['class']) ? $extras['class'] . ' select-field' : 'select-field'; $formOptions = ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택']; foreach ($viewDatas['field_options'][$field] as $key => $label) { $formOptions[$key] = $label; } - $form = form_dropdown($field, $formOptions, $value, ['class' => $extra_class, ...array_diff_key($extras, ['class' => ''])]); + $form = form_dropdown($field, $formOptions, $value, $extras); } else { $form = form_input($field, $value ?? "", ["autocomplete" => $field, ...$extras]); } @@ -280,9 +275,6 @@ class CommonHelper { $value = $viewDatas['entity']->$field ?? ""; switch ($field) { - case $this->getTitleField(): - $value = $this->getFieldForm($field, $viewDatas['entity']->$field, $viewDatas, $extras); - break; case 'role': $roles = []; foreach (explode(DEFAULTS["DELIMITER_ROLE"], $value) as $key) { @@ -314,6 +306,10 @@ class CommonHelper } break; } + if (is_array($value)) { + echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다"; + exit; + } return $value; } final public function getListRowColor(mixed $entity, string $field = 'status', string $value = DEFAULTS['STATUS']): string diff --git a/app/Helpers/Customer/ClientHelper.php b/app/Helpers/Customer/ClientHelper.php index 91a38cd..4c7ccc0 100644 --- a/app/Helpers/Customer/ClientHelper.php +++ b/app/Helpers/Customer/ClientHelper.php @@ -26,6 +26,10 @@ class ClientHelper extends CustomerHelper $value = parent::getFieldView($field, $viewDatas, $extras); break; } + if (is_array($value)) { + echo __METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다"; + exit; + } return $value; } // } diff --git a/app/Helpers/Customer/ServiceHelper.php b/app/Helpers/Customer/ServiceHelper.php index 61bf775..9657d70 100644 --- a/app/Helpers/Customer/ServiceHelper.php +++ b/app/Helpers/Customer/ServiceHelper.php @@ -26,6 +26,17 @@ class ServiceHelper extends CustomerHelper case "DEFENCE": case "DOMAIN": $label = form_label(lang("{$viewDatas['class_path']}.label.{$field}"), $field, $extras); + $extras = ["class" => "btn btn-light btn-circle", "target" => "_self", ...$extras]; + $label .= form_label( + ICONS['SETUP'], + $field, + [ + "data-src" => "/admin/customer/serviceitem?item_type={$field}&serviceinfo_uid={$viewDatas['entity']->getPK()}", + "data-bs-toggle" => "modal", + "data-bs-target" => "#index_action_form", + ...$extras + ] + ); break; default: $label = parent::getFieldLabel($field, $viewDatas, $extras); @@ -46,27 +57,21 @@ class ServiceHelper extends CustomerHelper case "SOFTWARE": case "DEFENCE": case "DOMAIN": - $temps = []; - foreach ($viewDatas['entity']->getItemEntities($field) as $partEntity) { - $temps[] = "
| = $label ?> | += $viewDatas['helper']->getFieldLabel($field, $viewDatas) ?> |
|---|---|