From 464837036345ae5ce9591eb39b2647c2a2333d9a Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Sat, 7 Dec 2024 13:35:34 +0700 Subject: [PATCH] add dict chapters, fix dict test --- app/Config/Routes.php | 8 +- app/Controllers/API_DictChapters.php | 57 +++++++++++ app/Controllers/API_DictTests.php | 10 +- app/Controllers/AdminController.php | 4 + app/Views/admin/dictChapters_index.php | 131 +++++++++++++++++++++++++ app/Views/admin/layout/sidebar.php | 3 +- 6 files changed, 209 insertions(+), 4 deletions(-) create mode 100644 app/Controllers/API_DictChapters.php create mode 100644 app/Views/admin/dictChapters_index.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index a09e1ef..25eb0ea 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -51,12 +51,17 @@ $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 +// API - DictMappings $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'); +// API - DictChapters +$routes->get('api/dictChapters/index', 'API_DictChapters::index'); +$routes->POST('api/dictChapters/save', 'API_DictChapters::save'); +$routes->get('api/dictChapters/detail/(:any)', 'API_DictChapters::detail/$1'); + // admin $routes->group('admin', ['filter' => 'role:admin'], static function ($routes) { $routes->get('', 'AdminController::index'); @@ -64,6 +69,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('dictChapters/', 'AdminController::dictChapters_index'); $routes->get('dictMappings/', 'AdminController::dictMappings_index'); }); diff --git a/app/Controllers/API_DictChapters.php b/app/Controllers/API_DictChapters.php new file mode 100644 index 0000000..003a2ad --- /dev/null +++ b/app/Controllers/API_DictChapters.php @@ -0,0 +1,57 @@ +query($sql); + $results = $query->getResultArray(); + $data['dictChapters'] = $results; + + return $this->respond($data, 200); + } + + public function detail($chapcode) { + $data = array(); + $db = \Config\Database::connect(); + $sql = "select dc.CHAPCODE, dc.SHORTTEXT, cdc.TEXT1, cdc.TEXT2 from DICT_CHAPTERS dc + left join cmod.dbo.CM_DICT_CHAPTERS cdc on dc.CHAPCODE=cdc.CHAPCODE + where dc.CHAPCODE='$chapcode'"; + $query = $db->query($sql); + $results = $query->getResultArray(); + if(isset($results[0])) { $data = $results[0]; } + return $this->respond($data, 200); + } + + public function save() { + $chapcode = $this->request->getPost('chapcode'); + $text1 = $this->request->getPost('text1'); + $text2 = $this->request->getPost('text2'); + + $db = \Config\Database::connect(); + $sql = "MERGE INTO cmod.dbo.CM_DICT_CHAPTERS AS t + USING ( VALUES ('$chapcode', '$text1', '$text2') + ) AS s (CHAPCODE, TEXT1, TEXT2) on t.CHAPCODE=s.CHAPCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (CHAPCODE, TEXT1, TEXT2) + VALUES (s.CHAPCODE, s.TEXT1, s.TEXT2) + WHEN MATCHED THEN + UPDATE set TEXT1=s.TEXT1, TEXT2=s.TEXT2;"; + //echo "
$sql"; + 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/API_DictTests.php b/app/Controllers/API_DictTests.php index c75206e..10562f6 100644 --- a/app/Controllers/API_DictTests.php +++ b/app/Controllers/API_DictTests.php @@ -61,8 +61,14 @@ class API_DictTests extends ResourceController { $refftext = $this->request->getPost('refftext'); $db = \Config\Database::connect(); - $sql = "INSERT INTO cmod.dbo.CM_DICT_TESTS (TESTCODE, TEXT1, TEXT2, REFFTEXT, LOGDATE ) VALUES ('$testcode', '$text1', '$text2', '$refftext' GETDATE())"; - $sql = "UPDATE cmod.dbo.CM_DICT_TESTS set TEXT1='$text1', TEXT2='$text2', REFFTEXT='$refftext', LOGDATE=GETDATE() where TESTCODE='$testcode'"; + $sql = "MERGE INTO cmod.dbo.CM_DICT_TESTS AS t + USING ( VALUES ('$testcode', '$text1', '$text2', '$unit', '$refftext') + ) AS s (TESTCODE, TEXT1, TEXT2, UNIT, REFFTEXT) on t.TESTCODE=s.TESTCODE + WHEN NOT MATCHED BY TARGET THEN + INSERT (TESTCODE, TEXT1, TEXT2, UNIT, REFFTEXT, LOGDATE) + VALUES (s.TESTCODE, s.TEXT1, s.TEXT2, s.UNIT, s.REFFTEXT, GETDATE()) + WHEN MATCHED THEN + UPDATE set TEXT1=s.TEXT1, TEXT2=s.TEXT2, UNIT=s.UNIT, REFFTEXT=s.REFFTEXT;"; if( $db->query($sql) ) { return $this->respond(['message' => 'Save Success'],201); diff --git a/app/Controllers/AdminController.php b/app/Controllers/AdminController.php index be66727..3fcc93f 100644 --- a/app/Controllers/AdminController.php +++ b/app/Controllers/AdminController.php @@ -59,6 +59,10 @@ class AdminController extends BaseController { return view('admin/dictTests_index'); } + public function dictChapters_index() { + return view('admin/dictChapters_index'); + } + public function dictMappings_index() { $db = \Config\Database::connect(); $sql = "select TESTCODE from DICT_TESTS where ENDVALIDDATE is null"; diff --git a/app/Views/admin/dictChapters_index.php b/app/Views/admin/dictChapters_index.php new file mode 100644 index 0000000..02f152e --- /dev/null +++ b/app/Views/admin/dictChapters_index.php @@ -0,0 +1,131 @@ += $this->extend('admin/layout/main.php') ?> + += $this->section('content') ?> +
| Chapter code | +Shorttext | +Text | +Action | +
|---|