diff --git a/app/Config/Routes.php b/app/Config/Routes.php index c8b23a6..61625b7 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -51,6 +51,12 @@ $routes->POST('api/dictTests/save', 'API_DictTests::save'); $routes->get('api/dictTests/index', 'API_DictTests::index'); $routes->get('api/dictTests/detail/(:any)', 'API_DictTests::detail/$1'); +// API - DictTests +$routes->get('api/dictMappings/index', 'API_DictMappings::index'); +$routes->POST('api/dictMappings/saveSingle', 'API_DictMappings::saveSingle'); +$routes->POST('api/dictMappings/saveProfile', 'API_DictMappings::saveProfile'); +$routes->get('api/dictMappings/detail/(:any)', 'API_DictMappings::detail/$1'); + // admin $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('', 'AdminController::index'); @@ -58,6 +64,7 @@ $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('userroles/', 'AdminController::userroles_index'); $routes->get('users/', 'AdminController::users_index'); $routes->get('dictTests/', 'AdminController::dictTests_index'); + $routes->get('dictMappings/', 'AdminController::dictMappings_index'); }); // user diff --git a/app/Controllers/API_DictMappings.php b/app/Controllers/API_DictMappings.php new file mode 100644 index 0000000..57a874f --- /dev/null +++ b/app/Controllers/API_DictMappings.php @@ -0,0 +1,133 @@ +query($sql); + $results = $query->getResultArray(); + $data['dictMappings'] = $results; + + return $this->respond($data, 200); + } + + public function detail($mapid) { + $data = array(); + $db = \Config\Database::connect(); + $sql = "select * from cmod.dbo.CM_DICT_MAPPINGS where MAPID='$mapid'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(isset($results[0])) { + $data = $results[0]; + if($data['MAPTYPE']=='P') { + $sql = "select * from cmod.dbo.CM_DICT_MAPPING_PROFILES where MAPID='$mapid'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + $data['mliscodes'] = $results; + } + } + return $this->respond($data, 200); + } + + public function saveSingle() { + $update = $this->request->getPost('update'); + $liscode = $this->request->getPost('liscode'); + $hiscode = $this->request->getPost('hiscode'); + $descs = $this->request->getPost('descs'); + + // check if hiscode is exists + $db = \Config\Database::connect(); + $sql = "select 1 from cmod.dbo.CM_DICT_MAPPINGS where HISCODE='$hiscode' and MAPTYPE in ('S','P') and MAPID<>'$update'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(isset($results[0])) { + $response = [ + 'errors' => 'HISCODE already exists', + 'message' => 'HISCODE already exists' + ]; + return $this->fail($response , 409); + } + + + if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('S', '$hiscode', '$liscode', '$descs')"; } + else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE='$liscode', DESCS='$descs' where MAPID='$update'"; } + + if( $db->query($sql) ) { + return $this->respond(['message' => 'Save Success'],201); + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Invalid Inputs' + ]; + return $this->fail($response , 409); + } + } + + public function saveProfile() { + $db = \Config\Database::connect(); + $update = $this->request->getPost('update'); + $hiscode = $this->request->getPost('hiscode'); + $descs = $this->request->getPost('descs'); + $mliscode = []; + for ($i = 1; $i <= 22; $i++) { + $key = "mliscode{$i}"; + if (isset($_POST[$key])) { + $mliscode[$key] = $this->request->getPost($key); + } + } + + // check if hiscode is exists + $sql = "select 1 from cmod.dbo.CM_DICT_MAPPINGS where HISCODE='$hiscode' and MAPTYPE in ('P','S') and MAPID<>'$update'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(isset($results[0])) { + $response = [ + 'errors' => $db->errors(), + 'message' => 'HISCODE already exists' + ]; + return $this->fail($response , 409); + } + + // dict_mappings + if($update == '0') { $sql = "INSERT INTO cmod.dbo.CM_DICT_MAPPINGS (MAPTYPE, HISCODE, LISCODE, DESCS ) VALUES ('P', '$hiscode', null, '$descs')"; } + else { $sql = "UPDATE cmod.dbo.CM_DICT_MAPPINGS set HISCODE='$hiscode', LISCODE=null, DESCS='$descs' where MAPID='$update'"; } + if( !$db->query($sql) ) { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Invalid Inputs' + ]; + return $this->fail($response , 409); + } + // getting mapid after + if($update == 0) { $update =$db->insertID(); } + + // dict_mapping_profiles + $datasource = ''; + foreach($mliscode as $liscode) { $datasource .= "('$update','$liscode'),"; } + $datasource = rtrim($datasource,','); + $sql = "MERGE INTO cmod.dbo.CM_DICT_MAPPING_PROFILES AS t + USING ( VALUES + $datasource + ) AS s (MAPID, LISCODE) on s.MAPID=t.MAPID and s.LISCODE=t.LISCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (MAPID, LISCODE) + VALUES (s.MAPID, s.LISCODE) + WHEN NOT MATCHED BY SOURCE THEN + DELETE;"; + + if( $db->query($sql) ) { + return $this->respond(['message' => 'Save Success'],201); + } else { + $response = [ + 'errors' => $db->errors(), + 'message' => 'Invalid Inputs' + ]; + return $this->fail($response , 409); + } + } +} \ No newline at end of file diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index 4ab9d14..f3d052e 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -58,4 +58,8 @@ class AdminController extends BaseController { public function dictTests_index() { return view('admin/dictTests_index'); } + + public function dictMappings_index() { + return view('admin/dictMappings_index'); + } } diff --git a/app/Views/admin/dashboard.php b/app/Views/admin/dashboard.php index 705765e..311e394 100644 --- a/app/Views/admin/dashboard.php +++ b/app/Views/admin/dashboard.php @@ -1,4 +1,4 @@ -extend('layouts/main.php') ?> +extend('admin/layout/main.php') ?> section('content') ?> diff --git a/app/Views/admin/dictMappings_index.php b/app/Views/admin/dictMappings_index.php new file mode 100644 index 0000000..796afe6 --- /dev/null +++ b/app/Views/admin/dictMappings_index.php @@ -0,0 +1,247 @@ +extend('admin/layout/main.php') ?> + +section('content') ?> +
+
+
Dictionary Mapping Order
+ + +
+ + + + + + + + + + + + +
TypeHIS CodeLIS CodeDescriptionAction
+
+
+
+ + + + + + +endSection() ?> + +section('script') ?> + +endSection() ?> \ No newline at end of file diff --git a/app/Views/admin/dictTests_index.php b/app/Views/admin/dictTests_index.php index c084643..9ba8154 100644 --- a/app/Views/admin/dictTests_index.php +++ b/app/Views/admin/dictTests_index.php @@ -1,4 +1,4 @@ -extend('layouts/main.php') ?> +extend('admin/layout/main.php') ?> section('content') ?>
diff --git a/app/Views/layouts/form.php b/app/Views/admin/layout/form.php similarity index 100% rename from app/Views/layouts/form.php rename to app/Views/admin/layout/form.php diff --git a/app/Views/layouts/main.php b/app/Views/admin/layout/main.php similarity index 95% rename from app/Views/layouts/main.php rename to app/Views/admin/layout/main.php index e355512..95b4f31 100644 --- a/app/Views/layouts/main.php +++ b/app/Views/admin/layout/main.php @@ -14,11 +14,11 @@ - include('layouts/topbar'); ?> + include('admin/layout/topbar'); ?>
- include('layouts/sidebar'); ?> + include('admin/layout/sidebar'); ?>
diff --git a/app/Views/layouts/sidebar.php b/app/Views/admin/layout/sidebar.php similarity index 87% rename from app/Views/layouts/sidebar.php rename to app/Views/admin/layout/sidebar.php index 7f969c1..8e5d917 100644 --- a/app/Views/layouts/sidebar.php +++ b/app/Views/admin/layout/sidebar.php @@ -6,6 +6,7 @@ Dashboard Change Password
Administration
+ Dict. Mapping Order Dict. Test Users User Roles diff --git a/app/Views/layouts/topbar.php b/app/Views/admin/layout/topbar.php similarity index 100% rename from app/Views/layouts/topbar.php rename to app/Views/admin/layout/topbar.php diff --git a/app/Views/layouts/window.php b/app/Views/admin/layout/window.php similarity index 100% rename from app/Views/layouts/window.php rename to app/Views/admin/layout/window.php diff --git a/app/Views/admin/userroles_index.php b/app/Views/admin/userroles_index.php index 99d9352..e7c659c 100644 --- a/app/Views/admin/userroles_index.php +++ b/app/Views/admin/userroles_index.php @@ -1,4 +1,4 @@ -extend('layouts/main.php') ?> +extend('admin/layout/main.php') ?> section('content') ?>
diff --git a/app/Views/admin/users_index.php b/app/Views/admin/users_index.php index 0c699e9..484aeb6 100644 --- a/app/Views/admin/users_index.php +++ b/app/Views/admin/users_index.php @@ -1,4 +1,4 @@ -extend('layouts/main.php') ?> +extend('admin/layout/main.php') ?> section('content') ?>
diff --git a/app/Views/layouts/sidebar.html b/app/Views/layouts/sidebar.html deleted file mode 100644 index 01d0c70..0000000 --- a/app/Views/layouts/sidebar.html +++ /dev/null @@ -1,69 +0,0 @@ -
- -
\ No newline at end of file diff --git a/cmod.bak b/cmod.bak index f4eeea3..9d79653 100644 Binary files a/cmod.bak and b/cmod.bak differ