dbms_init...1
This commit is contained in:
parent
fd208c6e0d
commit
3828dc90e3
@ -119,6 +119,19 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
|
||||
$routes->post('batchjob_delete', 'ServiceItemController::batchjob_delete');
|
||||
$routes->get('download/(:alpha)', 'ServiceItemController::download/$1');
|
||||
});
|
||||
$routes->group('servicehistory', ['namespace' => 'App\Controllers\Admin\Customer'], function ($routes) {
|
||||
$routes->get('/', 'ServiceHistoryController::index', []);
|
||||
$routes->get('create', 'ServiceHistoryController::create_form');
|
||||
$routes->post('create', 'ServiceHistoryController::create');
|
||||
$routes->get('modify/(:num)', 'ServiceHistoryController::modify_form/$1');
|
||||
$routes->post('modify/(:num)', 'ServiceHistoryController::modify/$1');
|
||||
$routes->get('view/(:num)', 'ServiceHistoryController::view/$1');
|
||||
$routes->get('delete/(:num)', 'ServiceHistoryController::delete/$1');
|
||||
$routes->get('toggle/(:num)/(:any)', 'ServiceHistoryController::toggle/$1/$2');
|
||||
$routes->post('batchjob', 'ServiceHistoryController::batchjob');
|
||||
$routes->post('batchjob_delete', 'ServiceHistoryController::batchjob_delete');
|
||||
$routes->get('download/(:alpha)', 'ServiceHistoryController::download/$1');
|
||||
});
|
||||
});
|
||||
$routes->group('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
||||
$routes->group('server', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
|
||||
|
||||
@ -8,10 +8,20 @@ use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
use App\Services\Customer\ClientService;
|
||||
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;
|
||||
|
||||
abstract class CustomerController extends AdminController
|
||||
{
|
||||
private ?ClientService $_clientService = null;
|
||||
private $_equipmentService = [];
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
@ -39,4 +49,42 @@ abstract class CustomerController extends AdminController
|
||||
return $options;
|
||||
}
|
||||
//Index,FieldForm관련
|
||||
//ServiceItemController,ServiceController에서 사용
|
||||
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];
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,20 +11,10 @@ use CodeIgniter\HTTP\RedirectResponse;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
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;
|
||||
|
||||
class ServiceController extends CustomerController
|
||||
{
|
||||
private ?ServiceItemService $_serviceItemService = null;
|
||||
private $_equipmentService = [];
|
||||
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
||||
{
|
||||
parent::initController($request, $response, $logger);
|
||||
@ -55,43 +45,6 @@ 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) {
|
||||
|
||||
79
app/Controllers/Admin/Customer/ServiceHistoryController.php
Normal file
79
app/Controllers/Admin/Customer/ServiceHistoryController.php
Normal file
@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers\Admin\Customer;
|
||||
|
||||
use CodeIgniter\HTTP\RedirectResponse;
|
||||
use CodeIgniter\HTTP\RequestInterface;
|
||||
use CodeIgniter\HTTP\ResponseInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
use App\Helpers\Customer\ServiceHistoryHelper;
|
||||
use App\Services\Customer\ServiceHistoryService;
|
||||
use App\Services\Customer\ServiceService;
|
||||
|
||||
class ServiceHistoryController extends CustomerController
|
||||
{
|
||||
private ?ServiceService $_serviceService = null;
|
||||
private $_equipmentService = [];
|
||||
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(): ServiceHistoryService
|
||||
{
|
||||
if (!$this->_service) {
|
||||
$this->_service = new ServiceHistoryService($this->request);
|
||||
}
|
||||
return $this->_service;
|
||||
}
|
||||
public function getHelper(): ServiceHistoryHelper
|
||||
{
|
||||
if (!$this->_helper) {
|
||||
$this->_helper = new ServiceHistoryHelper($this->request);
|
||||
}
|
||||
return $this->_helper;
|
||||
}
|
||||
public function getServiceService(): ServiceService
|
||||
{
|
||||
if (!$this->_serviceService) {
|
||||
$this->_serviceService = new ServiceService($this->request);
|
||||
}
|
||||
return $this->_serviceService;
|
||||
}
|
||||
|
||||
protected function getFormFieldOption(string $field, array $options = []): array
|
||||
{
|
||||
switch ($field) {
|
||||
case 'serviceinfo_uid':
|
||||
foreach ($this->getServiceService()->getEntities() as $entity) {
|
||||
$options[$entity->getPK()] = $entity->getTitle();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$options = parent::getFormFieldOption($field, $options);
|
||||
break;
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
|
||||
{
|
||||
switch ($this->getAction()) {
|
||||
case 'index':
|
||||
$this->control = $this->getControlDatas();
|
||||
$this->getHelper()->setViewDatas($this->getViewDatas());
|
||||
$result = view($this->view_path . 'popup' . DIRECTORY_SEPARATOR . $this->getAction(), ['viewDatas' => $this->getViewDatas()]);
|
||||
break;
|
||||
default:
|
||||
$result = parent::getResultSuccess($message);
|
||||
break;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
//Index,FieldForm관련
|
||||
}
|
||||
@ -93,7 +93,7 @@ class ServiceItemController extends CustomerController
|
||||
throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다.");
|
||||
}
|
||||
$equipmentEntity = $this->getEquipmentService($formDatas['item_type'])->create([
|
||||
'clientinfo_uid' => $serviceEntity->getClientInfoUID(),
|
||||
'clientinfo_uid' => $serviceEntity->getClientUID(),
|
||||
'domain' => $formDatas['item_uid']
|
||||
]);
|
||||
//도메인용 항목의 item_uid로 전달함
|
||||
|
||||
@ -411,6 +411,7 @@ abstract class CommonController extends BaseController
|
||||
$this->setFieldRule($field, $this->getFormFieldRule($this->getAction(), $field));
|
||||
//입력값정의
|
||||
$formDatas = [$field => $this->request->getVar($field)];
|
||||
// dd($formDatas);
|
||||
$this->entity = $this->toggle_process($entity, $formDatas);
|
||||
$this->getService()->getModel()->transCommit();
|
||||
return $this->getResultSuccess();
|
||||
@ -574,7 +575,7 @@ abstract class CommonController extends BaseController
|
||||
if ($value) {
|
||||
$this->$field = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->entity = $this->view_process($entity);
|
||||
$this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []];
|
||||
return $this->getResultSuccess();
|
||||
|
||||
@ -4,13 +4,13 @@
|
||||
"settings": {
|
||||
"width": 3000,
|
||||
"height": 3000,
|
||||
"scrollTop": -903.0309,
|
||||
"scrollLeft": -660.6028,
|
||||
"scrollTop": -1395.0309,
|
||||
"scrollLeft": -515.7816,
|
||||
"zoomLevel": 0.76,
|
||||
"show": 511,
|
||||
"database": 4,
|
||||
"databaseName": "",
|
||||
"canvasType": "ERD",
|
||||
"canvasType": "@dineug/erd-editor/builtin-schema-sql",
|
||||
"language": 1,
|
||||
"tableNameCase": 4,
|
||||
"columnNameCase": 2,
|
||||
@ -50,7 +50,8 @@
|
||||
"8GMPyGUFlx2Mw7BwzizfD",
|
||||
"B8haiEbPc1lRBWTv1g25G",
|
||||
"isiA_oaJNIm3F4nYJuLJ1",
|
||||
"0WXrjcyXXGeoAVM2VB8s2"
|
||||
"0WXrjcyXXGeoAVM2VB8s2",
|
||||
"eLGlqJ4z_woGP6CLZEuUr"
|
||||
],
|
||||
"relationshipIds": [
|
||||
"gAVYXWnBSnCw-0ieO4Mil",
|
||||
@ -65,7 +66,8 @@
|
||||
"anhMCXytE7rcE_drKBPWz",
|
||||
"Wma86GpS3BhikEaHSamgX",
|
||||
"I80TuGxKm3tXIO_EO2PSm",
|
||||
"o8yw46vm30cC7wl9cRMdo"
|
||||
"o8yw46vm30cC7wl9cRMdo",
|
||||
"ocWjncqwtYkP02mw4A0-8"
|
||||
],
|
||||
"indexIds": [],
|
||||
"memoIds": []
|
||||
@ -373,15 +375,15 @@
|
||||
"R-UjmO-S2UeQdddVNwH5M"
|
||||
],
|
||||
"ui": {
|
||||
"x": 157.5582,
|
||||
"y": 1812.2726,
|
||||
"x": 160.1898,
|
||||
"y": 2080.6937,
|
||||
"zIndex": 2,
|
||||
"widthName": 60,
|
||||
"widthComment": 60,
|
||||
"color": ""
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749008087739,
|
||||
"updateAt": 1749520757443,
|
||||
"createAt": 1745819764138
|
||||
}
|
||||
},
|
||||
@ -931,6 +933,42 @@
|
||||
"updateAt": 1749435563253,
|
||||
"createAt": 1748507247933
|
||||
}
|
||||
},
|
||||
"eLGlqJ4z_woGP6CLZEuUr": {
|
||||
"id": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "serviceinfo_history",
|
||||
"comment": "서비스정보_history",
|
||||
"columnIds": [
|
||||
"GSdcECWONRu3DzkVAl77W",
|
||||
"jyD_WqbebGSYxIa72ig3p",
|
||||
"LmgKX38-LCXZSgqcIgHJj",
|
||||
"4-Pao4CcHMrZtTY6e6qCK",
|
||||
"oCf04YALk6M6oHU8bZHOy",
|
||||
"DyDt_9ZdXzTgjVTIBUnYE",
|
||||
"48WpZBVteR66aLEAb_iOh"
|
||||
],
|
||||
"seqColumnIds": [
|
||||
"GSdcECWONRu3DzkVAl77W",
|
||||
"Bj32Fyri_pY_6cWVF3Qn0",
|
||||
"jyD_WqbebGSYxIa72ig3p",
|
||||
"LmgKX38-LCXZSgqcIgHJj",
|
||||
"4-Pao4CcHMrZtTY6e6qCK",
|
||||
"oCf04YALk6M6oHU8bZHOy",
|
||||
"DyDt_9ZdXzTgjVTIBUnYE",
|
||||
"48WpZBVteR66aLEAb_iOh"
|
||||
],
|
||||
"ui": {
|
||||
"x": 35.2385,
|
||||
"y": 1775.0406,
|
||||
"zIndex": 2505,
|
||||
"widthName": 99,
|
||||
"widthComment": 103,
|
||||
"color": ""
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520763447,
|
||||
"createAt": 1749520593335
|
||||
}
|
||||
}
|
||||
},
|
||||
"tableColumnEntities": {
|
||||
@ -6573,6 +6611,166 @@
|
||||
"updateAt": 1749517861624,
|
||||
"createAt": 1749517809732
|
||||
}
|
||||
},
|
||||
"GSdcECWONRu3DzkVAl77W": {
|
||||
"id": "GSdcECWONRu3DzkVAl77W",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "uid",
|
||||
"comment": "",
|
||||
"dataType": "INT",
|
||||
"default": "",
|
||||
"options": 11,
|
||||
"ui": {
|
||||
"keys": 1,
|
||||
"widthName": 60,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 60,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520665994,
|
||||
"createAt": 1749520659473
|
||||
}
|
||||
},
|
||||
"Bj32Fyri_pY_6cWVF3Qn0": {
|
||||
"id": "Bj32Fyri_pY_6cWVF3Qn0",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "serviceinfo_uid",
|
||||
"comment": "",
|
||||
"dataType": "INT",
|
||||
"default": "",
|
||||
"options": 8,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 80,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 60,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520659473,
|
||||
"createAt": 1749520659473
|
||||
}
|
||||
},
|
||||
"oCf04YALk6M6oHU8bZHOy": {
|
||||
"id": "oCf04YALk6M6oHU8bZHOy",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "status",
|
||||
"comment": "상태",
|
||||
"dataType": "VARCHAR(20)",
|
||||
"default": "'default'",
|
||||
"options": 8,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 60,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 75,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520659473,
|
||||
"createAt": 1749520659473
|
||||
}
|
||||
},
|
||||
"DyDt_9ZdXzTgjVTIBUnYE": {
|
||||
"id": "DyDt_9ZdXzTgjVTIBUnYE",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "updated_at",
|
||||
"comment": "",
|
||||
"dataType": "TIMESTAMP",
|
||||
"default": "",
|
||||
"options": 0,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 62,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 65,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520659473,
|
||||
"createAt": 1749520659473
|
||||
}
|
||||
},
|
||||
"48WpZBVteR66aLEAb_iOh": {
|
||||
"id": "48WpZBVteR66aLEAb_iOh",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "created_at",
|
||||
"comment": "",
|
||||
"dataType": "TIMESTAMP",
|
||||
"default": "CURRENT_TIMESTAMP",
|
||||
"options": 8,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 60,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 65,
|
||||
"widthDefault": 122
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520659473,
|
||||
"createAt": 1749520659473
|
||||
}
|
||||
},
|
||||
"LmgKX38-LCXZSgqcIgHJj": {
|
||||
"id": "LmgKX38-LCXZSgqcIgHJj",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "title",
|
||||
"comment": "",
|
||||
"dataType": "VARCHAR(255)",
|
||||
"default": "",
|
||||
"options": 8,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 60,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 81,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520700141,
|
||||
"createAt": 1749520682358
|
||||
}
|
||||
},
|
||||
"4-Pao4CcHMrZtTY6e6qCK": {
|
||||
"id": "4-Pao4CcHMrZtTY6e6qCK",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "description",
|
||||
"comment": "",
|
||||
"dataType": "TEXT",
|
||||
"default": "",
|
||||
"options": 0,
|
||||
"ui": {
|
||||
"keys": 0,
|
||||
"widthName": 61,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 60,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520710971,
|
||||
"createAt": 1749520710971
|
||||
}
|
||||
},
|
||||
"jyD_WqbebGSYxIa72ig3p": {
|
||||
"id": "jyD_WqbebGSYxIa72ig3p",
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"name": "serviceinfo_uid",
|
||||
"comment": "",
|
||||
"dataType": "INT",
|
||||
"default": "",
|
||||
"options": 8,
|
||||
"ui": {
|
||||
"keys": 2,
|
||||
"widthName": 80,
|
||||
"widthComment": 60,
|
||||
"widthDataType": 60,
|
||||
"widthDefault": 60
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520739979,
|
||||
"createAt": 1749520727362
|
||||
}
|
||||
}
|
||||
},
|
||||
"relationshipEntities": {
|
||||
@ -6707,8 +6905,8 @@
|
||||
"columnIds": [
|
||||
"f7_MGvRjkwL1xkCWrAgDR"
|
||||
],
|
||||
"x": 655.5581999999999,
|
||||
"y": 1912.2726,
|
||||
"x": 658.1898,
|
||||
"y": 2180.6937,
|
||||
"direction": 2
|
||||
},
|
||||
"meta": {
|
||||
@ -6867,7 +7065,7 @@
|
||||
"N_yJVoCN4oUEDhYqdzApb"
|
||||
],
|
||||
"x": 934.3741,
|
||||
"y": 1236.673,
|
||||
"y": 1132.673,
|
||||
"direction": 1
|
||||
},
|
||||
"end": {
|
||||
@ -6939,6 +7137,34 @@
|
||||
"updateAt": 1749517809733,
|
||||
"createAt": 1749517809733
|
||||
}
|
||||
},
|
||||
"ocWjncqwtYkP02mw4A0-8": {
|
||||
"id": "ocWjncqwtYkP02mw4A0-8",
|
||||
"identification": false,
|
||||
"relationshipType": 16,
|
||||
"startRelationshipType": 2,
|
||||
"start": {
|
||||
"tableId": "B8haiEbPc1lRBWTv1g25G",
|
||||
"columnIds": [
|
||||
"N_yJVoCN4oUEDhYqdzApb"
|
||||
],
|
||||
"x": 934.3741,
|
||||
"y": 1340.673,
|
||||
"direction": 1
|
||||
},
|
||||
"end": {
|
||||
"tableId": "eLGlqJ4z_woGP6CLZEuUr",
|
||||
"columnIds": [
|
||||
"jyD_WqbebGSYxIa72ig3p"
|
||||
],
|
||||
"x": 556.2385,
|
||||
"y": 1887.0406,
|
||||
"direction": 2
|
||||
},
|
||||
"meta": {
|
||||
"updateAt": 1749520727362,
|
||||
"createAt": 1749520727362
|
||||
}
|
||||
}
|
||||
},
|
||||
"indexEntities": {},
|
||||
|
||||
@ -11,7 +11,7 @@ abstract class CustomerEntity extends CommonEntity
|
||||
parent::__construct($data);
|
||||
}
|
||||
|
||||
final public function getClientInfoUID(): int
|
||||
final public function getClientUID(): int
|
||||
{
|
||||
return intval($this->attributes['clientinfo_uid']);
|
||||
}
|
||||
|
||||
@ -8,6 +8,10 @@ class ServiceEntity extends CustomerEntity
|
||||
{
|
||||
const PK = ServiceModel::PK;
|
||||
const TITLE = ServiceModel::TITLE;
|
||||
final public function getOwnertUID(): int
|
||||
{
|
||||
return intval($this->attributes['ownerinfo_uid']);
|
||||
}
|
||||
public function getItemEntities(string $type): array
|
||||
{
|
||||
return $this->attributes[$type] ?? [];
|
||||
|
||||
15
app/Entities/Customer/ServiceHistoryEntity.php
Normal file
15
app/Entities/Customer/ServiceHistoryEntity.php
Normal file
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entities\Customer;
|
||||
|
||||
use App\Models\Customer\ServiceHistoryModel;
|
||||
|
||||
class ServiceHistoryEntity extends CustomerEntity
|
||||
{
|
||||
const PK = ServiceHistoryModel::PK;
|
||||
const TITLE = ServiceHistoryModel::TITLE;
|
||||
public function getServiceUid(): int
|
||||
{
|
||||
return intval($this->attributes['serviceinfo_uid']);
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,10 @@ class ServiceItemEntity extends CustomerEntity
|
||||
{
|
||||
const PK = ServiceItemModel::PK;
|
||||
const TITLE = ServiceItemModel::TITLE;
|
||||
|
||||
public function getServiceUid(): int
|
||||
{
|
||||
return intval($this->attributes['serviceinfo_uid']);
|
||||
}
|
||||
public function getItemUid(): int
|
||||
{
|
||||
return intval($this->attributes['item_uid']);
|
||||
|
||||
@ -31,7 +31,7 @@ class ServiceHelper extends CustomerHelper
|
||||
ICONS['SETUP'],
|
||||
$field,
|
||||
[
|
||||
"data-src" => "/admin/customer/serviceitem?item_type={$field}&serviceinfo_uid={$viewDatas['entity']->getPK()}",
|
||||
"data-src" => "/admin/customer/serviceitem?serviceinfo_uid={$viewDatas['entity']->getPK()}&item_type={$field}",
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#index_action_form",
|
||||
...$extras
|
||||
@ -80,4 +80,27 @@ class ServiceHelper extends CustomerHelper
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
public function getListButton(string $action, array $viewDatas, array $extras = []): string
|
||||
{
|
||||
switch ($action) {
|
||||
case 'history':
|
||||
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras];
|
||||
$action = form_label(
|
||||
ICONS['PLAY'],
|
||||
$action,
|
||||
[
|
||||
"data-src" => "/admin/customer/servicehistory?serviceinfo_uid={$viewDatas['entity']->getPK()}",
|
||||
"data-bs-toggle" => "modal",
|
||||
"data-bs-target" => "#index_action_form",
|
||||
...$extras
|
||||
]
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$action = parent::getListButton($action, $viewDatas, $extras);
|
||||
break;
|
||||
}
|
||||
return $action;
|
||||
}
|
||||
}
|
||||
|
||||
16
app/Helpers/Customer/ServiceHistoryHelper.php
Normal file
16
app/Helpers/Customer/ServiceHistoryHelper.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace App\Helpers\Customer;
|
||||
|
||||
use App\Models\Customer\ServiceHistoryModel;
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
|
||||
class ServiceHistoryHelper extends CustomerHelper
|
||||
{
|
||||
protected ?IncomingRequest $request = null;
|
||||
public function __construct(?IncomingRequest $request = null)
|
||||
{
|
||||
parent::__construct($request);
|
||||
$this->setTitleField(field: ServiceHistoryModel::TITLE);
|
||||
}
|
||||
}
|
||||
20
app/Language/en/Customer/ServiceHistory.php
Normal file
20
app/Language/en/Customer/ServiceHistory.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
return [
|
||||
'title' => "서비스History정보",
|
||||
'label' => [
|
||||
'serviceinfo_uid' => "서비스명",
|
||||
'title' => "제목",
|
||||
'description' => "상세정보",
|
||||
'status' => "상태",
|
||||
'updated_at' => "수정일",
|
||||
'created_at' => "신청일",
|
||||
'deleted_at' => "삭제일",
|
||||
],
|
||||
'DEFAULTS' => [
|
||||
'status' => 'default'
|
||||
],
|
||||
"STATUS" => [
|
||||
'default' => "사용중",
|
||||
'delete' => "삭제",
|
||||
],
|
||||
];
|
||||
44
app/Models/Customer/ServiceHistoryModel.php
Normal file
44
app/Models/Customer/ServiceHistoryModel.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Customer;
|
||||
|
||||
use App\Entities\Customer\ServiceHistoryEntity;
|
||||
|
||||
class ServiceHistoryModel extends CustomerModel
|
||||
{
|
||||
const TABLE = "serviceinfo_history";
|
||||
const PK = "uid";
|
||||
const TITLE = "title";
|
||||
protected $table = self::TABLE;
|
||||
protected $primaryKey = self::PK;
|
||||
protected $returnType = ServiceHistoryEntity::class;
|
||||
protected $allowedFields = [
|
||||
"serviceinfo_uid",
|
||||
"title",
|
||||
"description",
|
||||
"status",
|
||||
"updated_at"
|
||||
];
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
public function getFormFieldRule(string $action, string $field): string
|
||||
{
|
||||
if (is_array($field)) {
|
||||
throw new \Exception(__FUNCTION__ . "=> field가 array 입니다.\n" . var_export($field, true));
|
||||
}
|
||||
switch ($field) {
|
||||
case "serviceinfo_uid":
|
||||
$rule = "required|numeric";
|
||||
break;
|
||||
case "title":
|
||||
$rule = "required|trim|string";
|
||||
break;
|
||||
default:
|
||||
$rule = parent::getFormFieldRule($action, $field);
|
||||
break;
|
||||
}
|
||||
return $rule;
|
||||
}
|
||||
}
|
||||
@ -14,6 +14,7 @@ class ServiceModel extends CustomerModel
|
||||
protected $returnType = ServiceEntity::class;
|
||||
protected $allowedFields = [
|
||||
"clientinfo_uid",
|
||||
"ownerinfo_uid",
|
||||
"title",
|
||||
"type",
|
||||
"location",
|
||||
@ -37,6 +38,7 @@ class ServiceModel extends CustomerModel
|
||||
}
|
||||
switch ($field) {
|
||||
case "clientinfo_uid":
|
||||
case "ownerinfo_uid":
|
||||
$rule = "required|numeric";
|
||||
break;
|
||||
case "title":
|
||||
|
||||
46
app/Services/Customer/ServiceHistoryService.php
Normal file
46
app/Services/Customer/ServiceHistoryService.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Customer;
|
||||
|
||||
use App\Entities\Customer\ServiceHistoryEntity;
|
||||
use App\Models\Customer\ServiceHistoryModel;
|
||||
use CodeIgniter\HTTP\IncomingRequest;
|
||||
|
||||
class ServiceHistoryService extends CustomerService
|
||||
{
|
||||
protected ?IncomingRequest $request = null;
|
||||
public function __construct(?IncomingRequest $request = null)
|
||||
{
|
||||
parent::__construct($request);
|
||||
$this->addClassName('ServiceHistory');
|
||||
}
|
||||
public function getModelClass(): ServiceHistoryModel
|
||||
{
|
||||
return new ServiceHistoryModel();
|
||||
}
|
||||
public function getEntityClass(): ServiceHistoryEntity
|
||||
{
|
||||
return new ServiceHistoryEntity();
|
||||
}
|
||||
public function getFormFields(): array
|
||||
{
|
||||
return [
|
||||
"serviceinfo_uid",
|
||||
"title",
|
||||
"description",
|
||||
"status",
|
||||
];
|
||||
}
|
||||
public function getFilterFields(): array
|
||||
{
|
||||
return ["serviceinfo_uid", 'status'];
|
||||
}
|
||||
public function getBatchJobFields(): array
|
||||
{
|
||||
return ['status'];
|
||||
}
|
||||
public function getIndexFields(): array
|
||||
{
|
||||
return ['serviceinfo_uid', 'title', 'status', 'created_at'];
|
||||
}
|
||||
}
|
||||
@ -27,7 +27,10 @@
|
||||
<?php foreach ($viewDatas['control']['index_fields'] as $field): ?>
|
||||
<td><?= $viewDatas['helper']->getFieldView($field, $viewDatas) ?></td>
|
||||
<?php endforeach ?>
|
||||
<td><?= $viewDatas['helper']->getListButton('delete', $viewDatas) ?></td>
|
||||
<td nowrap>
|
||||
<?= $viewDatas['helper']->getListButton('view', $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getListButton('delete', $viewDatas) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php $cnt++ ?>
|
||||
<?php endforeach ?>
|
||||
|
||||
@ -40,6 +40,7 @@
|
||||
<?php endforeach ?>
|
||||
<td nowrap>
|
||||
<?= $viewDatas['helper']->getListButton('view', $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getListButton('history', $viewDatas) ?>
|
||||
<?= $viewDatas['helper']->getListButton('delete', $viewDatas) ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user