Initial commit: AGC Chatbot project

This commit is contained in:
ammarhamzi2019278344 2025-06-03 14:45:48 +08:00
commit 881dcc4986
34 changed files with 3606 additions and 0 deletions

65
.gitignore vendored Normal file
View File

@ -0,0 +1,65 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
# Virtual Environment
venv/
env/
ENV/
.venv
# Environment Variables (IMPORTANT - Contains API keys!)
.env
.env.*
# IDE
.vscode/
.idea/
*.sublime-*
# OS
.DS_Store
Thumbs.db
Desktop.ini
# Logs
*.log
logs/
# Database
*.db
*.sqlite*
# Streamlit
.streamlit/
# Temporary files
*.tmp
*.temp
temp/
tmp/
# Distribution
build/
dist/
*.egg-info/
# Testing
.pytest_cache/
.coverage
htmlcov/
# Documentation
docs/_build/
# Jupyter
.ipynb_checkpoints/
# Model files
*.pkl
*.pickle
# AGC Project Specific
# draft/ # Uncomment if you don't want to track draft folder

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,11 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION
WHERE LKK_INFOID IN (142,156,163,164,187)
-- Date: 2025-04-18 13:43
*/
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (294,'142','charge1','BA-45B-30-10/2018','SURESH',574,'574/KANUN KESEKSAAN','302',NULL,'<p>&ldquo;Bahawa kamu pada 25hb Mei 2018 jam lebih kurang 4.00 pagi bertempat di rumah No. B-21-2A, Blok B, Pangsapuri Sri Gotong, Batu Caves, Selangor dalam daerah Gombak dalam Negeri Selangor Darul Ehsan telah melakukan bunuh dengan menyebabkan kematian Kyar Aye (No.passport MD 227481). Oleh yang demikian, kamu telah melakukan suatu kesalahan yang boleh dihukum di bawah seksyen 302 kanun keseksaan&rdquo;</p>\n',NULL,'2022-11-04 10:05:08','alison.chan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (301,'156','charge1','BA-41H-120-10/2021','JOSEPH PRAKASH A/L SUGUMARAN ',574,'574/KANUN KESEKSAAN','427',NULL,'<p style=\"margin-left:48px; margin-right:29px; text-align:justify\"><em>Bahawa kamu pada 29/09/2021 jam lebih kurang 4 petang, di Luar perkarangan IPD Serdang, dalam daerah Petaling, di dalam Negeri Selangor Darul Ehsan, telah didapati melakukan khianat dengan memecahkan cermin kereta milik Mani Maran a/l Manickam kpt: 800425-08-5739 yang nilai kerugian dianggarkan RM1,000.00. Oleh yang demikian kamu telah melakukan satu kesalahan yang boleh dihukum dibawah seksyen 427 Kanun Keseksaan</em></p>\n',NULL,'2022-11-10 10:24:43','alison.chan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (340,'163','charge1','BA-42JSKS-5-10/2020','MOHD ZIQRUL FHAHMIE BIN DERAMAN',574,'574/KANUN KESEKSAAN','SEKSYEN 367(1) KANUN KESEKSAAN DAN SEKSYEN 354 KANUN KESEKSAAN',NULL,'<p><strong><u>PERTUDUHAN PERTAMA</u></strong></p>\n\n<p>&nbsp;</p>\n\n<p style=\"text-align:justify\">Bahawa kamu pada 15/02/2015 di antara jam lebih kurang 3.00 petang di sebuah rumah teres beralamat No. 11 Lot 1977, Jalan Tanjung, Kampung Sijangkang, Teluk Panglima Garang, dalam daerah Kuala Langat, dalam negeri Selangor, telah melakukan rogol ke atas mangsa nama : Nurfarahin binti Ahmad Mukromin kpt : 0301222-10-1334 (12 tahun 24 hari) yang mana ketika itu mangsa masih di bawah umur. Oleh yang demikian kamu telah melakukan kesalahan di bawah Seksyen 376(1) Kanun Keseksaan dan kamu bolehlah dihukum di bawah akta yang sama.</p>\n\n<p style=\"text-align:center\">&nbsp;</p>\n\n<p><strong><u>PERTUDUHAN KEDUA</u></strong></p>\n\n<p>&nbsp;</p>\n\n<p style=\"text-align:justify\">Bahawa kamu pada 13/02/2015 di antara jam lebih kurang 6.30 hingga jam lebih kurang 6.50 petang di sebuah rumah teres beralamat No. 11 Lot 1977, Jalan Tanjung, Kampung Sijangkang, Teluk Panglima Garang, dalam daerah Kuala Langat, dalam negeri Selangor, dengan curang telah melakukan satu kesalahan mencabul kehormatan seorang mangsa nama Nurfarahin binti Ahmad Mukromin kpt: 030122-10-1334 (12 tahun 22 hari) dengan cara kamu telah meramas dan menghisap kedua-dua belah buah dada mangsa yang mana perbuatan tersebut tanpa kerelaannya. Oleh yang demikian kamu telah melakukan kesalahan di bawah Seksyen 354 Kanun Keseksaan dan kamu bolehlah dihukum di bawah akta yang sama.</p>\n\n<p style=\"text-align:center\">&nbsp;</p>\n',NULL,'2022-11-14 17:51:24','aidatul',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (341,'164','charge1','BA-42H-18-04/2022','CHE ENGKU MUHAMMAD FARITH DANIEL BIN CHE ENGKU HANAFI',574,'574/KANUN KESEKSAAN','392/397',NULL,'<p><em>Bahawa kamu pada 16/4/2022 jam lebih kurang 6.00 pagi bertempat di 7-Eleven No.29, Jalan Bunga Kantan 1, Taman Bunga Kantan Kajang, Dalam Daerah Hulu Langat dalam Negeri Selangor Darul Ehsan telah didapati dengan niat melakukan rompkaan dengan bersenjatakan sebilah pisau terhadap penama Faridah binti Marzah, No.kp 830301146-82 dengan mengambil wang tunai RM20.00. Oleh yang demikian, kamu telah melakukan satu esalahan yang boleh dihukum di bawah seksyen 392 Kanun Keseksaan dan dibaca bersama seksyen 397 Kanun Keseksaan. </em></p>\n',NULL,'2022-11-16 12:29:17','alison.chan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (370,'187','charge1','BA-41H-22-04/2022','ZAINOL ABIDIN BIN MD ZAIN ',574,'574/KANUN KESEKSAAN','428',NULL,'<p style=\"margin-left:48px; text-align:justify\"><strong><u>Pertuduhan Pertama </u></strong></p>\n\n<p><em>&ldquo;Bahawa kamu pada 1/7/2020, jam lebih kurang 6.40 petang, di hadapan perkarangan rumah beralamat Lot 3469, Lorong Setia 12, Kg Setia, Kuang 48050 Rawang, Selangor di dalam Daerah Gombak dalam Negeri Selangor Darul Ehsan telah didapati dengan sengaja melakukan khianat dengan membunuh seekor kucing dengan cara menembaknya menggunakan senjata milik kamu iaitu 1 laras senjata api senapang patah jenis WINCHESTER MODEL 37-STEELBILT-12 GA, No. Senjata: 24765. Oleh itu, kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 428 Kanun Keseksaan. </em></p>\n',NULL,'2022-11-30 14:40:57','alison.chan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (371,'187','charge1','BA-41H-22-04/2022','ZAINOL ABIDIN BIN MD ZAIN ',206,'206/AKTA SENJATA 1960','39/43',NULL,'<p style=\"margin-left:48px; text-align:justify\"><strong><u>Pertuduhan Kedua</u></strong></p>\n\n<p style=\"margin-left:48px; text-align:justify\">&nbsp;</p>\n\n<p style=\"margin-left:48px; text-align:justify\"><em>&ldquo;Bahawa kamu 1/7/2020, jam lebih kurang 6.40 petang, di hadapan perkarangan rumah beralamat Lot 3469, Lorong Setia 12, Kg Setia, Kuang 48050 Rawang, Selangor di dalam Daerah Gombak dalam Negeri Selangor Darul Ehsan telah didapati melepaskan tembakan di tempat awam yang tidak dijadikan sebagai padang tembak tanpa sebarang sebab yang dibenarkan oleh undang-undang dengan menggunakan senjata milik kamu iaitu 1 laras senjata api senapang patah jenis WINCHESTER MODEL 37-STEELBILT-12 GA, No. Senjata: 24765. Oleh itu, kamu telah melakukan satu kesalahan di bawah seksyen 39 Akta Senjata 1960 (Akta 206) yang boleh dihukum di bawah seksyen 43 Akta yang sama&rdquo; </em></p>\n',NULL,'2022-11-30 14:41:28','alison.chan',NULL,NULL,NULL,NULL);

View File

@ -0,0 +1,19 @@
/*
-- Query: select * from ilims_usr.LT_LKK_PERSON_INVOLVE
WHERE LKK_INFOID IN (142,156,163,164,187)
-- Date: 2025-04-18 13:42
*/
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (214,'{\"peranan\": \"Hakim\", \"category\": \"corum\", \"namaPihak\": \"YA Dato\' Norsharidah bt Awang \"}',142,'2022-11-04 10:00:58','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (215,'{\"noKP\": \"tidak berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"40503\", \"category\": \"prosecutors\", \"daerahId\": \"43\", \"negeriId\": \"10\", \"daerahDesc\": \"SHAH ALAM\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"unit pendakwaan, pejabat penasihat undang-undang negeri Selangor, Bangunan SSAAS,\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"ALISON CHAN MAY KAM\", \"emailPerayuResponden\": \"alison.chan@agc.gov.my\", \"noPhonePerayuResponden\": \"016-3180951\"}',142,'2022-11-04 10:02:24','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (216,'{\"noKP\": \"tiada passport \", \"negaraO\": \"-1\", \"poskodO\": \"51200\", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"TETUAN SHEELAN ARJUNAN\", \"namaPeguamTpr\": \"Sheelan Arjunan\", \"officeAddressO\": \"D-2-23, 2ND FLOOR, BLOCK D, PUTRA MAJESTIK, JALAN KASIPILLAY, 51200 KUALA LUMPUR, \\r\\n \", \"officePhoneNoO\": \"03-40400508\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Suresh\", \"emailPerayuResponden\": \"tidak berkenaan\", \"noPhonePerayuResponden\": \"tidak berkenaan\"}',142,'2022-11-04 10:04:39','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (232,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' NORSHARIDAH BT AWANG\"}',156,'2022-11-10 10:21:26','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (233,'{\"noKP\": \"tidak berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"40503\", \"category\": \"appellant\", \"daerahId\": \"43\", \"negeriId\": \"10\", \"daerahDesc\": \"SHAH ALAM\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"ALISON CHAN MAY KAM\", \"officeAddressO\": \"UNIT PENDAKWAAN, PPUUN SELANGOR, TINGKAT 4, PODIUM UTARA, BANGUNAN SSAAS\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Perayu\", \"namaPerayuResponden\": \"PENDAKWA RAYA\", \"emailPerayuResponden\": \"alison.chan@agc.gov.my\", \"noPhonePerayuResponden\": \"0163180951\"}',156,'2022-11-10 10:22:43','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (234,'{\"noKP\": \"780718-10-5611\", \"negaraO\": \"-1\", \"poskodO\": \" 41200\", \"category\": \"respondent\", \"daerahId\": \"1001\", \"negeriId\": \"10\", \"daerahDesc\": \"Klang\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"TETUAN YAACOB MENTOL, ZAMANI & ASSOCIATES\", \"namaPeguamTpr\": \"MOHD ZAILANI BIN MELI\", \"officeAddressO\": \"NO.19-1, 1ST FLOOR, JALAN KASUARINA 2, BANDAR BOTANIC \", \"officePhoneNoO\": \"03-58887717\", \"PerayuRespondenId\": \"Responden\", \"namaPerayuResponden\": \"JOSEPH PRAKASH A/L SUGUMARAN \", \"emailPerayuResponden\": \"TIDAK BERKENAAN\", \"noPhonePerayuResponden\": \"TIDAK BERKENAAN\"}',156,'2022-11-10 10:24:10','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (251,'{\"peranan\": \"PESURUHJAYA KEHAKIMAN\", \"category\": \"corum\", \"namaPihak\": \"YANG ARIF PUAN JULIA BINTI IBRAHIM\"}',163,'2022-11-14 17:37:52','aidatul',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (252,'{\"noKP\": \"90210-03-5295\", \"negaraO\": \"MYS\", \"poskodO\": \"70000\", \"category\": \"appellant\", \"daerahId\": \"0505\", \"negeriId\": \"05\", \"daerahDesc\": \"SEREMBAN\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"NEGERI SEMBILAN\", \"guamanAgensi\": \"TETUAN HARESH MAHADEVAN & CO.\", \"namaPeguamTpr\": \"AIDATUL AZURA BINTI ZAINAL ABIDIN\", \"officeAddressO\": \"NO. 49, TINGKAT SATU, JALAN YAM TUAN\\r\\n70000 SEREMBAN\\r\\nNEGERI SEMBILAN\", \"officePhoneNoO\": \"06-7673003\", \"PerayuRespondenId\": \"Perayu\", \"namaPerayuResponden\": \"MOHD ZIQRUL FHAHMIE BIN DERAMAN \", \"emailPerayuResponden\": \"hm_ramco@yahoo.com\", \"noPhonePerayuResponden\": \"06-7673003\"}',163,'2022-11-14 17:42:01','aidatul',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (253,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' NORSHARIDAH BT AWANG\"}',164,'2022-11-16 12:26:29','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (254,'{\"noKP\": \"990824-10-6525\", \"negaraO\": \"-1\", \"poskodO\": \"TIDAK BERKENAAN\", \"category\": \"appellant\", \"daerahId\": \"-1\", \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"TIDAK BERKENAAN\", \"namaPeguamTpr\": \"TIADA PEGUAM. OKT MEWAKILI DIRI SENDIRI \", \"officeAddressO\": \"TIDAK BERKENAAN\", \"officePhoneNoO\": \"TIDAK BERKENAAN\", \"PerayuRespondenId\": \"Perayu\", \"namaPerayuResponden\": \"CHE ENGKU MUHAMMAD FARITH DANIEL BIN CHE ENGKU HANAFI \", \"emailPerayuResponden\": \"TIDAK BERKENAAN\", \"noPhonePerayuResponden\": \"TIDAK BERKENAAN\"}',164,'2022-11-16 12:27:10','alison.chan','2022-11-16 12:27:22','alison.chan');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (255,'{\"noKP\": \"tidak berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"40503\", \"category\": \"respondent\", \"daerahId\": \"43\", \"negeriId\": \"10\", \"daerahDesc\": \"SHAH ALAM\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"ALISON CHAN MAY KAM\", \"officeAddressO\": \"UNIT PENDAKWAAN, PEJABAT PENASIHAT UNDANG-UNDANG NEGERI SELANGOR, TINGKAT 4, PODIUM UTARA, BANGUNAN SULTAN SALAHUDDIN ABDUL AZIZ SHAH \", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Responden\", \"namaPerayuResponden\": \"PENDAKWA RAYA\", \"emailPerayuResponden\": \"alison.chan@agc.gov.my\", \"noPhonePerayuResponden\": \"0163180951\"}',164,'2022-11-16 12:28:37','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (322,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' NORSHARIDAH BT AWANG\"}',187,'2022-11-30 14:37:53','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (323,'{\"noKP\": \"tidak berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"40503\", \"category\": \"appellant\", \"daerahId\": \"43\", \"negeriId\": \"10\", \"daerahDesc\": \"SHAH ALAM\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"ALISON CHAN MAY KAM\", \"officeAddressO\": \"UNIT PENDAKWAAN, PEJABAT PENASIHAT UNDANG-UNDANG NEGERI SELANGOR, TINGKAT 4, PODIUM UTARA, BANGUNAN SSAAS\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Perayu\", \"namaPerayuResponden\": \"PENDAKWA RAYA\", \"emailPerayuResponden\": \"alison.chan@agc.gov.my\", \"noPhonePerayuResponden\": \"0163180951\"}',187,'2022-11-30 14:38:51','alison.chan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (324,'{\"noKP\": \"570802-01-7301\", \"negaraO\": \"-1\", \"poskodO\": \" 45300\", \"category\": \"respondent\", \"daerahId\": \"176\", \"negeriId\": \"10\", \"daerahDesc\": \"SUNGAI BESAR\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"TETUAN ZABIR IMRAN & PARTNERS \", \"namaPeguamTpr\": \"MOHD IMRAN BIN TAMRIN\", \"officeAddressO\": \"NO.1-24 & 25, TINGKAT 1, ARKED SUNGAI BESAR, JALAN MENTERI, 45300 SUNGAI BESAR, SELANGOR\\r\\n\", \"officePhoneNoO\": \"03-32242991\", \"PerayuRespondenId\": \"Responden\", \"namaPerayuResponden\": \"ZAINOL ABIDIN BIN MD ZAIN \", \"emailPerayuResponden\": \"TIDAK BERKENAAN\", \"noPhonePerayuResponden\": \"TIDAK BERKENAAN\"}',187,'2022-11-30 14:40:23','alison.chan',NULL,NULL);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,15 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION
WHERE LKK_INFOID IN (51,773,1122,1804,2225)
-- Date: 2025-04-18 13:37
*/
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (234,'51','charge1','BA-45C-4-09/2018 & BA-45C-5-09/2018','PENDAKWA RAYA LAWAN 1. JEVAN A/L S RAMAMURTHY (NO. K/P: 750726-14-6045) 2. SURENDRAN A/L SIVASAMY (NO. K/P: 820907-14-6221) 3. MOHAN A/L SELORAJOO (NO. K/P: 840924-05-5709) 4. PIRAKHAS A/L SUBRAMANIAM (NO. K/P: 831102-10-5443) 5. MUNIANDY A/L ACHAIYAH KANNIAH (NO. K/P: 571123-10-5443) 6. UTHAYA KUMAR A/L PONNUSAMY (NO. K/P: 920405-14-5921) 7. BARIQUE (NO. PASPORT: BB0375440) 8. POONGANESWARAN A/L KUNARAJU (NO. K/P: 830215-14-5315) 9. VIJAYA LETCHUMY A/P SANNASI (NO. K/P: 820326-04-5254)',365,'365/AKTA PENCULIKAN 1961','seksyen 3(1)',NULL,'<p><strong>PERTUDUHAN ASAL (DI BAWAH SEKSYEN 3(1) AKTA CULIK 1961):</strong></p>\n\n<p>&nbsp;</p>\n\n<p style=\"text-align:justify\">Bahawa kamu bersama-sama pada 12 Disember 2017, jam lebih kurang 9.10 malam, di Jalan 1B/8, Bandar Baru Sungai Buloh, dalam daerah Petaling, dalam negeri Selangor Darul Ehsan, dalam mencapai niat bersama kamu, telah melarikan secara salah seorang lelaki bernama PRATAP A/L PANNDIEN (No. K/P: 830819-14-6239) bagi maksud mendapatkan wang tebusan. Oleh yang demikian kamu telah melakukan kesalahan dan boleh dihukum di bawah seksyen 3(1) Akta Culik 1961 yang dibaca bersama dengan seksyen 34 Kanun Keseksaan.</p>\n\n<p>&nbsp;</p>\n',NULL,'2022-09-21 08:04:15','hokwongchin',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (235,'51','charge2','BA-45C-4-09/2018 & BA-45C-5-09/2018','PENDAKWA RAYA LAWAN 1. JEVAN A/L S RAMAMURTHY (NO. K/P: 750726-14-6045) 2. SURENDRAN A/L SIVASAMY (NO. K/P: 820907-14-6221) 3. MOHAN A/L SELORAJOO (NO. K/P: 840924-05-5709) 4. PIRAKHAS A/L SUBRAMANIAM (NO. K/P: 831102-10-5443) 5. MUNIANDY A/L ACHAIYAH KANNIAH (NO. K/P: 571123-10-5443) 6. UTHAYA KUMAR A/L PONNUSAMY (NO. K/P: 920405-14-5921) 7. BARIQUE (NO. PASPORT: BB0375440) 8. POONGANESWARAN A/L KUNARAJU (NO. K/P: 830215-14-5315) 9. VIJAYA LETCHUMY A/P SANNASI (NO. K/P: 820326-04-5254)',574,'574/KANUN KESEKSAAN','seksyen 365',NULL,'<p style=\"text-align:justify\"><strong><u>PERTUDUHAN PILIHAN </u></strong></p>\n\n<p style=\"text-align:justify\">Bahawa kamu bersama-sama dengan tertuduh yang lain pada 12 Disember 2017, jam lebih kurang 9.10 malam, di Jalan 1B/8, Bandar Baru Sungai Buloh, dalam daerah Petaling, dalam negeri Selangor Darul Ehsan, telah menculik dan melarikan secara salah seorang lelaki bernama PRATAP A/L PANNDIEN (No. K/P: 830819-14-6239) dengan niat hendak&nbsp; mengurungnya dengan sulit. Oleh yang demikian, kamu telah melakukan kesalahan yang boleh dihukum di bawah seksyen 365 Kanun Keseksaan dibaca dengan seksyen 34 Kanun Keseksaan.</p>\n','Pilihan','2022-09-21 08:05:57','hokwongchin',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (881,'773','charge1','BA-45C-4-09/2018 ','JEVAN A/L S RAMAMURTHY',365,'365/AKTA PENCULIKAN 1961','3',NULL,'<p style=\"text-align:justify\"><em>&ldquo;Bahawa kamu bersama-sama pada 12/12/2017 jam lebih kurang 9.10 malam, bertempat di Jalan 1B/8, Bandar Baru Sungai Buloh, di dalam daerah Petaling, di dalam Negeri Selangor, dengan niat bersama telah melarikan secara salah seorang lelaki berbama Pratap a/l Pandien [No KPT: 830819-14-6239] bagi maksud mendapatkan wang tebusan sebanyak RM300,000. Oleh yang demikian kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 3(1) Akta Penculikan 1961 dan dibaca bersama seksyen 34 Kanun Keseksaan.</em></p>\n',NULL,'2023-09-27 18:24:22','shahrul.ekhsan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (882,'773','charge1','BA-45C-5-09/2018','SURENDRAN A/L SIVASAMY',365,'365/AKTA PENCULIKAN 1961','3',NULL,'<p style=\"text-align:justify\"><em>&ldquo;Bahawa kamu bersama-sama pada 12/12/2017 jam lebih kurang 9.10 malam, bertempat di Jalan 1B/8, Bandar Baru Sungai Buloh, di dalam daerah Petaling, di dalam Negeri Selangor, dengan niat bersama telah melarikan secara salah seorang lelaki berbama Pratap a/l Pandien [No KPT: 830819-14-6239] bagi maksud mendapatkan wang tebusan sebanyak RM300,000. Oleh yang demikian kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 3(1) Akta Penculikan 1961 dan dibaca bersama seksyen 34 Kanun Keseksaan.</em></p>\n',NULL,'2023-09-27 18:25:03','shahrul.ekhsan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (883,'773','charge1','BA-45-19-06/2019','VIJAYA LETCHUMI A/P SANNASI',365,'365/AKTA PENCULIKAN 1961','5',NULL,'<p style=\"text-align:justify\"><em>&ldquo;Bahawa kamu bersama-sama pada 23/1/2018 jam lebih kurang 3.00 pagi, bertempat di No.22, Jalan PU &frac12;, Taman Puchong Utama, Puchong, di dalam daerah Petaling, di dalam Negeri Selangor, telah didapati menerima dan ada dalam milikan kamu wang tebusan sebanyak RM9,800 hasil jenayah culik bersabit Sg Buloh/12038/17. Oleh yang demikian kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 5(1) Akta Penculikan 1961.</em></p>\n',NULL,'2023-09-27 18:25:58','shahrul.ekhsan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (1184,'1122','charge1','WA-45C-1-06/2023','EDY KO\'IM BIN SAID & 10 LG ',365,'365/AKTA PENCULIKAN 1961','SEKSYEN 3 AKTA 365',NULL,'<p>&nbsp;</p>\n\n<p style=\"text-align:justify\"><strong><em><span style=\"color:black\">&quot;Bahawa kamu dengan secara niat bersama pada 28 September 2022 jam lebih kurang 10.40 malam, di Jalan Mayang dalam Daerah Dang Wangi, dalam Wilayah Persekutuan Kuala Lumpur, telah menahan Omar Z. M. Albelbaisy Raeda, No.Pasport: 4988330 dengan tidak berpatutan untuk mendapat ganjaran yang berupa rahsia maklumat membuat dan menyahaktif perisian komputer yang digunakan untuk menggodam telefon bimbit dan dengan ini kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 3 Akta Penculikan 1961 [Akta 365] dan dibaca bersama-sama seksyen 34 Kanun Keseksaan.&rdquo;</span></em></strong></p>\n\n<p>Hukuman:&nbsp;</p>\n\n<p><strong><em><span style=\"color:black\">&ldquo;Jika disabitkan kesalahan hendaklah dijatukan hukuman penjara tidak kurang dari tiga puluh tahun tetapi tidak melebihi empat puluh tahun dan dengan sebatan.&quot;</span></em></strong></p>\n',NULL,'2023-12-06 15:33:09','nur.aqilah','2023-12-06 15:40:01','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (1185,'1122','charge1','WA-45C-2-06/2023','PENDAKWA RAYA v MOHD ZAIDI BIN MOHD ZAIN & TENGKU HAZRUL ISMAIL BIN TENGKU HAMID',365,'365/AKTA PENCULIKAN 1961','SEKSYEN 3 ',NULL,'<p style=\"margin-left:33px; text-align:justify\"><strong>&ldquo;Bahawa kamu dengan secara niat bersama pada 28 September 2022 jam lebih kurang 10.40 malam, di Jalan Mayang dalam Daerah Dang Wangi, dalam Wilayah Persekutuan Kuala Lumpur, telah menahan Omar Z. M. Albelbaisy Raeda, No.Pasport: 4988330 dengan tidak berpatutan untuk mendapat ganjaran yang berupa rahsia maklumat membuat dan menyahaktif perisian komputer yang digunakan untuk menggodam telefon bimbit dan dengan ini kamu telah melakukan satu kesalahan yang boleh dihukum di bawah seksyen 3 Akta Penculikan 1961 [<em>Akta 365</em>] dan dibaca bersama-sama seksyen 34 Kanun Keseksaan.</strong></p>\n\n<p style=\"margin-left:33px; text-align:justify\">Hukuman:&nbsp;</p>\n\n<p style=\"margin-left:33px; text-align:justify\"><strong><em><span style=\"color:black\">&ldquo;Jika disabitkan kesalahan hendaklah dijatukan hukuman penjara tidak kurang dari tiga puluh tahun tetapi tidak melebihi empat puluh tahun dan dengan sebatan.&quot;</span></em></strong></p>\n',NULL,'2023-12-06 15:38:24','nur.aqilah','2023-12-06 17:06:28','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (4147,'1804','charge1','PB-45C-1-06/2022','SASIKUMAR A/L LINGAM',365,'365/AKTA PENCULIKAN 1961','SEKSYEN 3',NULL,'<p>BAHAWA KAMU BERSAMA-SAMA EMPAT ORANG YANG MASIH BEBAS PADA 22 APRIL 2016 JAM EBIH KURANG 10.00 MALAM DI ICON CITY JALAN PENGKALAN BUKIT TENGAH BERDEKATAN STARBUCKS, DI DALAM DAERAH SEBERANG PERAI TENGAH, DI DALAM NEGERI PULAU PINANG, DALAM MENCAPAI NIAT BERSAMA KAMU, TELAH DIDAPATI MENCULIK DENGAN NIAT UNTUK MENAHAN SAHIDUL HAQUE NO PASSPORT:AG5465688 WARGANEGARA BANGLADESH, BAGI MEDAPATKAN WANG TEBUSAN SEBANYAK RM30,000.00. OLEH YANG DEMIKIAN, KAMU TELAH BERSAMA-SAMA MELAKUKAN SUATY KESALAHAN YANG BOLEH DIHUKUM DI BAWAH SEKSYEN 3(1) AKTA CULIK 1961 DAN DIBACA BERSAMA SEKSYEN 34 KANUN KESEKSAAN.</p>\n',NULL,'2024-04-23 09:56:37','nurfazliyana',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (5610,'2225','charge2','KA-44-11-06/2024','MOHD SIKRI BIN DERIS',365,'365/AKTA PENCULIKAN 1961','seksyen 3 (1) Akta Penculikan 1961.',NULL,'<p>PERMOHONAN JAMINAN DIBAWAH SEKSYEN 388 KTJ. PEMOHON DITUDUH DENGAN KESALAHAN DIBAWAH AKTA PENCULIKAN 1961</p>\n\n<p>&nbsp;</p>\n\n<table border=\"1\" cellspacing=\"0\" class=\"Table\" style=\"border-collapse:collapse; border:solid black 1.0pt; margin-left:7px; width:641px\">\n <tbody>\n <tr>\n <td style=\"border-color:black; height:62.1pt; vertical-align:top; width:480.75pt\">\n <p style=\"margin-left:7px\"><strong>PERTUDUHAN <s>PINDAAN</s>/ALTERNATIF (JIKA ADA):</strong></p>\n\n <p style=\"margin-left:7px\">&nbsp;</p>\n\n <p style=\"text-align:justify\">Bahawa kamu pada 30 November 2020, jam antara 2.00 petang hingga 3.00 petang, di Kampung Lubok Gajah Mukim Gelong 06000 Jitra, dalam daerah Kubang Pasu, di dalam negeri Kedah, bersama-sama dengan Mohad Zaizie bin Che Sulaiman (No. KP: 850801-03-6259), Muhammad Afifi bin Ishak (No. KP: 960627-03-5871), Nasri bin Muhammad (No. KP: 620411-03-5433) serta Ahmad Nuruddin bin Hashim (No. KP: 950428-03-5933) yang telah meninggal dunia, telah bersubahat dengan mengarahkan Mohad Zaizie bin Che Sulaiman (No. KP: 850801-03-6259), Muhammad Afifi bin Ishak (No. KP: 960627-03-5871), Nasri bin Muhammad (No. KP: 620411-03-5433) serta Ahmad Nuruddin bin Hashim (No. KP: 950428-03-5933) yang telah meninggal dunia, melakukan culik ke atas Abdul Mudtalib bin Ismail (No. KP: 600703-02-5909) dan Wan Nadia Nabila binti Wan Ismail (No. KP: 910213-03-5956), di mana kesalahan tersebut telah dilakukan hasil daripada persubahatan kamu, dan dengan itu kamu telah melakukan suatu kesalahan yang boleh dihukum di bawah seksyen 109 Kanun Keseksaan dibaca bersama seksyen 3(1) Akta Culik 1961.</p>\n\n <p style=\"margin-left:7px; text-align:justify\">&nbsp;</p>\n </td>\n </tr>\n </tbody>\n</table>\n','Pindaan','2024-07-09 10:19:24','fatin.farahiyah','2024-07-09 10:21:56','fatin.farahiyah','<p>TIADA KAITAN</p>\n','PPN');
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (5611,'2225','charge1','KA-44-11-06/2024','MOHD SIKRI BIN DERIS',365,'365/AKTA PENCULIKAN 1961','seksyen 3 (1) Akta Penculikan 1961.',NULL,'<p>PERMOHONAN JAMINAN DIBAWAH SEKSYEN 388 KTJ. PEMOHON DITUDUH DENGAN KESALAHAN DIBAWAH AKTA PENCULIKAN 1961</p>\n\n<p>Bahawa kamu pada 30 November 2020, jam antara 2.00 petang hingga 3.00 petang, di Kampung Lubok Gajah Mukim Gelong 0600 Jitra, dalam daerah Kubang Pasu, di dalam negeri Kedah, bersama-sama dengan Mohd Zaizie bin Che Sulaiman (No. KP: 850801-03-6259), Muhammad Afifi bin Ishak (No. K/P: 960627-03-5871), Ahmad Nuruddin bin Hashim (No. K/P: 950428-03-5933) dan Nasri bin Muhammad (No. K/P: 620411-03-5433) telah bersubahat melakukan culik ke atas Abdul Mudtalib bin Ismail (No. KP: 600703-02-5909) dan Wan Nadia Nabila binti Wan Ismail (No. KP: 910213-03-5956), di mana kesalahan tersebut telah dilakukan hasil daripada persubahatan kamu, dan dengan itu kamu telah melakukan suatu kesalahan yang boleh dihukum di bawah seksyen 109 Kanun Keseksaan dibaca bersama seksyen 3 (1) Akta Culik 1961.</p>\n',NULL,'2024-07-09 10:20:58','fatin.farahiyah','2024-07-09 10:22:23','fatin.farahiyah',NULL,NULL);

View File

@ -0,0 +1,31 @@
/*
-- Query: select * from ilims_usr.LT_LKK_PERSON_INVOLVE
WHERE LKK_INFOID IN (51,773,1122,1804,2225)
-- Date: 2025-04-18 13:37
*/
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (73,'{\"peranan\": \"Hakim\", \"category\": \"corum\", \"namaPihak\": \"Y.A. PUAN NURULHUDA NURAINI BINTI MOHAMAD NOR\"}',51,'2022-09-21 08:00:12','hokwongchin',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (74,'{\"noKP\": \"Tidak berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"PEGUAMBELA OKT 3: TETUAN GEETHAN RAM (DATO GEETHAN RAM) Peguambela & Peguamcara Suite No. 5, L15-05, PJX Tower No. 16ª, persiran Barat 46050 Petaling Jaya, Selangor. PEGUAMBELA OKT 4 & OKT 8 : TETUAN V. SAMY & CO (ENCIK AYASAMY VELU) Peguambela & Peguamcara NO. 22, Jalan Bagor, Taman Petaling, 41200 Klang, Selangor PEGUAMBELA OKT 6: TETUAN WONG & KIU (ENCIK K. MURALI) Peguambela & Peguamcara NO. D-05-04, Pusat komersial Southgate No. 2, Jalan Dua, Off Jalan Chan Sow Lin, Kuala Lumpur PEGUAMBELA OKT 7: TETUAN STANLEY AUGUSTIN & CO. (ENCIK STANLEY AUGUSTIN) Peguambela & Peguamcara NO. 230, 1st Floor, Jalan Ipoh, Batu 2, 51200 Kuala Lumpur\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"Ho Kwong Chin\", \"emailPerayuResponden\": \"hokwongchin@agc.gov.my\", \"noPhonePerayuResponden\": \"0123831538\"}',51,'2022-09-21 08:01:31','hokwongchin',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (1506,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA PUAN NURULHUDA NURAINI BINTI MOHAMAD NOR\"}',773,'2023-09-27 18:19:49','shahrul.ekhsan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (1507,'{\"noKP\": \"750726-14-6045\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"EN MAHENDRAN NAIDU.R\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"JEVAN A/L S RAMAMURTHY\", \"emailPerayuResponden\": \"NA\", \"noPhonePerayuResponden\": \"NA\"}',773,'2023-09-27 18:20:53','shahrul.ekhsan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (1508,'{\"noKP\": \"820907-14-6221\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"EN GABRIEL SUSAYAN\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"SURENDRAN A/L SIVASAMY \", \"emailPerayuResponden\": \"NA\", \"noPhonePerayuResponden\": \"NA\"}',773,'2023-09-27 18:21:44','shahrul.ekhsan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (1509,'{\"noKP\": \" 820326-04-5254\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"EN MAHENDRAN NAIDU.R\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"VIJAYA LETCHUMI A/P SANNASI \", \"emailPerayuResponden\": \"NA\", \"noPhonePerayuResponden\": \"NA\"}',773,'2023-09-27 18:22:30','shahrul.ekhsan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2212,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA TUAN MUNIANDY A/L KANNYAPPAN \"}',1122,'2023-12-06 15:23:34','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2215,'{\"noKP\": \"820320-14-5369\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"EDY KO\' IM BIN SAID \", \"emailPerayuResponden\": \"sidhupartners@gmail.com\", \"noPhonePerayuResponden\": \"013-9610503\"}',1122,'2023-12-06 16:34:46','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2216,'{\"noKP\": \"810624-13-5101\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"MOHAMAD NORAKMAL BIN HASSAN \", \"emailPerayuResponden\": \"info@tinaong.law\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:37:49','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2217,'{\"noKP\": \"E 0344453\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"DODY JUNAIDI \", \"emailPerayuResponden\": \"info@tinaong.law\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:39:41','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2218,'{\"noKP\": \"830329-10-6015\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"TENGKU ARIF BONGSU BIN TENGKU HAMID \", \"emailPerayuResponden\": \"info@tinaong.law\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:41:43','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2219,'{\"noKP\": \"830724-14-5751\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Mohamad Naziree Bin Mustapha\", \"emailPerayuResponden\": \"kimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:44:21','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2220,'{\"noKP\": \"821125-04-5455\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Faizull Hardey Bin Mohd Isa\", \"emailPerayuResponden\": \"gkimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:46:53','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2221,'{\"noKP\": \"970510-10-5767\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA\", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Muhammad Iqmal Bin Abdul Rahis\", \"emailPerayuResponden\": \"gkimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:48:30','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2222,'{\"noKP\": \"991111-08-5829\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Mohamad Sufian Bin Saly\", \"emailPerayuResponden\": \"gkimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 16:50:29','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2223,'{\"noKP\": \"010530-14-141425\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Muhammad Al Hatim Bin Mohd Fauzi\", \"emailPerayuResponden\": \"amzaharilco@gmail.com\", \"noPhonePerayuResponden\": \"012-2342256\"}',1122,'2023-12-06 16:53:16','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2224,'{\"noKP\": \"880615-56-5672\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA\", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Nidarahayu Binti Zainal\", \"emailPerayuResponden\": \"airinfo.legal@gmail.com\", \"noPhonePerayuResponden\": \"03-67320640\"}',1122,'2023-12-06 16:56:28','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2225,'{\"noKP\": \"830624-14-5543\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Raibafie Bin Amdan\", \"emailPerayuResponden\": \"jagjitariff@gmail.com\", \"noPhonePerayuResponden\": \"03-64135823\"}',1122,'2023-12-06 16:59:10','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2226,'{\"noKP\": \"680928-08-5657\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA\", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Mohd Zaidi Bin Mohd Zain\", \"emailPerayuResponden\": \"gkimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 17:01:11','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2227,'{\"noKP\": \"730121-14-5025\", \"negaraO\": \"MYS\", \"poskodO\": \"59100 \", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA , CAWANGAN WP KUALA LUMPUR\", \"namaPeguamTpr\": \"NUR AQILAH BINTI ISHAK \", \"officeAddressO\": \"WISMA CHASE PERDANA \", \"officePhoneNoO\": \"+60123908542\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Tengku Hazarul Ismail Bin T Hamid\", \"emailPerayuResponden\": \"gkimlian@yahoo.com\", \"noPhonePerayuResponden\": \"03-64135850\"}',1122,'2023-12-06 17:03:06','nur.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (3636,'{\"peranan\": \"Pesuruhjaya Kehakiman\", \"category\": \"corum\", \"namaPihak\": \"YA PUAN FATHIYAH BINTI IDRIS\"}',1804,'2024-04-23 09:32:02','nurfazliyana',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (3637,'{\"noKP\": \"TIDAK BERKAITAN\", \"negaraO\": \"MYS\", \"poskodO\": \"12000\", \"category\": \"prosecutors\", \"daerahId\": \"0702\", \"negeriId\": \"07\", \"daerahDesc\": \"SEBERANG PERAI UTARA\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"PULAU PINANG\", \"guamanAgensi\": \"JABATAN PEGUAM NEGARA\", \"namaPeguamTpr\": \"NUR FAZLIYANA BINTI AHMAD\", \"officeAddressO\": \"LOT G-01 WISMA PANTAI, JALAN WISMA PANTAI, KAMPUNG GAJAH\", \"officePhoneNoO\": \"TIDAK BERKAITAN\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TIDAK BERKAITAN\", \"emailPerayuResponden\": \"TIDAK BERKAITAN\", \"noPhonePerayuResponden\": \"TIDAK BERKAITAN\"}',1804,'2024-04-23 09:34:50','nurfazliyana',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (3638,'{\"noKP\": \"931125-08-6457\", \"negaraO\": \"MYS\", \"poskodO\": \"10200\", \"category\": \"accused\", \"daerahId\": \"0704\", \"negeriId\": \"07\", \"daerahDesc\": \"TIMUR LAUT\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"PULAU PINANG\", \"guamanAgensi\": \"R DEV CHANDER & CO\", \"namaPeguamTpr\": \"MR R. DEV CHANDER\", \"officeAddressO\": \"SUITE 405, TINGKAT 4 (PENTHOUSE)\\r\\nBANGUNAN TABUNG HAJI\\r\\nNO 45, JALAN GREENHALL\", \"officePhoneNoO\": \"04-2625590\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"SASIKUMAR A/L LINGAM\", \"emailPerayuResponden\": \"TIDAK BERKAITAN\", \"noPhonePerayuResponden\": \"TIDAK BERKAITAN\"}',1804,'2024-04-23 09:37:54','nurfazliyana',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (4626,'{\"peranan\": \"Hakim Mahkamah Tinggi\", \"category\": \"corum\", \"namaPihak\": \"Yang Arif Datuk Mohamad Abazafree Mohd Abbas\"}',2225,'2024-07-09 10:05:53','fatin.farahiyah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (4627,'{\"noKP\": \"630206-03-5695\", \"negaraO\": \"MYS\", \"poskodO\": \"59100\", \"category\": \"applicant\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"Tetuan Kit & Associates\", \"namaPeguamTpr\": \"Tetuan Kit & Associates\", \"officeAddressO\": \"195-1, Sri Wangsaria, Jalan Ara, Bangsar Baru, 59100\\r\\nKuala Lumpur, Wilayah Persekutuan\\r\\n\", \"officePhoneNoO\": \"03-20930168\", \"PerayuRespondenId\": \"Pemohon\", \"namaPerayuResponden\": \"MOHD SIKRI BIN DERIS\", \"emailPerayuResponden\": \"TIADA KAITAN\", \"noPhonePerayuResponden\": \"TIADA KAITAN\"}',2225,'2024-07-09 10:10:32','fatin.farahiyah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (4628,'{\"noKP\": \"TIADA KAITAN\", \"negaraO\": \"MYS\", \"poskodO\": \"05503\", \"category\": \"prosecutors\", \"daerahId\": \"0201\", \"negeriId\": \"02\", \"daerahDesc\": \"KOTA SETAR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"KEDAH\", \"guamanAgensi\": \"PEJABAT PENASIHAT UNDANG-UNDANG NEGERI KEDAH\", \"namaPeguamTpr\": \"FATIN FARAHIYAH NADZRI\", \"officeAddressO\": \"Aras 4, Blok C, Wisma Darul Aman, Kedah, 05503 Alor Setar\", \"officePhoneNoO\": \"04-702 7424\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TIMBALAN PENDAKWA RAYA\", \"emailPerayuResponden\": \"fatin.farahiyah@agc.gov.my\", \"noPhonePerayuResponden\": \"0195502659\"}',2225,'2024-07-09 10:13:09','fatin.farahiyah',NULL,NULL);

View File

@ -0,0 +1,10 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION
WHERE LKK_INFOID IN (17,23,41,54,133)
-- Date: 2025-04-18 13:46
*/
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (74,'17','charge1','BA-45A-64-9/20','ANBARASAN A/L MURUGAYAH',234,'234/AKTA DADAH BERBAHAYA 1952','seksyen 39B',NULL,'<p style=\"text-align:justify\">Bahawa kamu pada 10/10/2019, jam lebih kurang 2:30 petang, bertempat di tempat kawasan premis Restoran Azhar Maju, Jalan Dagang SB, Taman Sungai Besi, Seri Kembangan, dalam Daerah Petaling, dalam Negeri Selangor Darul Ehsan, telah mengedar dadah berbahaya iaitu Methamphetamine seberat 756.7 gram, dan dengan itu kamu telah melakukan suatu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum di bawah seksyen 39B(2) Akta yang samaBahawa kamu pada 10/10/2019, jam lebih kurang 2:30 petang, bertempat di tempat kawasan premis Restoran Azhar Maju, Jalan Dagang SB, Taman Sungai Besi, Seri Kembangan, dalam Daerah Petaling, dalam Negeri Selangor Darul Ehsan, telah mengedar dadah berbahaya iaitu Methamphetamine seberat 756.7 gram, dan dengan itu kamu telah melakukan suatu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum di bawah seksyen 39B(2) Akta yang sama</p>\n',NULL,'2022-09-05 10:33:28','mary.pkm',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (128,'23','charge2','BA-45A-33-03/2022','MOHAMMED FADL ELMOLA GASMEELSEED DAN 3LAGI',234,'234/AKTA DADAH BERBAHAYA 1952','6/39A(2)',NULL,'<p>Bahawa kamu bersama-sama pada 31 Mac 2021, jam lebih kurang 12.20 tengah malam, di alamat C2-07-02, Apartment Cendekiawan UNITEN, 43009 Kajang, dalam Daerah Sepang, di dalam Negeri Selangor Darul Ehsan, telah ada dalam milikan kamu dadah berbahaya iaitu &nbsp;Cannabis seberat 214.3 gram dan dengan itu, kamu telah melakukan satu kesalahan di bawah Seksyen 6 Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah Seksyen 39A(2) Akta yang sama dan dibaca bersama-sama Seksyen 34 Kanun Keseksaan</p>\n','Pilihan','2022-09-08 14:55:14','tengku.intan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (129,'23','charge1','BA-45A-33-03/2021','MOHAMMED FADL ELMOLA GASMELSEED KHIRALLA DAN 3 LAGI',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p>Bahawa kamu bersama-sama pada 31 Mac 2021, jam lebih kurang 12.20 tengah malam, di alamat C2-07-02, Apartment Cendekiawan UNITEN, 43009 Kajang, dalam Daerah Sepang, di dalam Negeri Selangor Darul Ehsan, telah didapati memperedarkan dadah berbahaya iaitu &nbsp;Cannabis seberat 214.3 gram. Oleh yang demikian kamu telah melakukan suatu kesalahan di bawah Seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah Seksyen 39B(2) Akta yang sama dan dibaca bersama-sama Seksyen 34 Kanun Keseksaan.</p>\n',NULL,'2022-09-08 14:55:57','tengku.intan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (236,'54','charge1','BL-45A-6-03/2021',' 1. THENAGGARAO A/L THRAL RAO (NO KP: 941213-08-5955) 2. SIVANAATHIREN A/L RAJENDRAN (NO KP: 920216-10-5889) 3. GUNALAN A/L PARASURAMAN (NO KP: 941110-08-6197) 4. VASUDEVAN A/L SHANDRASEGARAN (NO.K.P.:881026-43-5305)',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p>Bahawa kamu bersama-sama pada&nbsp;pada 20 Julai 2020 jam lebih kurang 8 malam di hadapan rumah No 228, Jalan Sutera, Taman Maznah dalam daerah Klang dalam negeri Selangor&nbsp;telah mengedar dadah berbahaya jenis Heroin dan Monoacetylmorphines seberat 35.5 gram (9.3 gram Heroin dan 26.2 gram Monoacetylmorphines) dan dengan itu kamu telah melakukan suatu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum dibawah seksyen 39B(2) Akta yang sama dan dibaca bersama di bawah seksyen 34 Kanun Keseksaan.</p>\n',NULL,'2022-09-21 21:23:54','farah.aqilah',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (284,'133','charge1','BA-45A-23-04/2019','JOSHUA NADEN A/L SOOSAYNATHAN',234,'234/AKTA DADAH BERBAHAYA 1952','SEKSYEN 39B',NULL,'<p style=\"text-align:justify\"><em>&ldquo;Bahawa kamu pada 4 September 2018 jam lebih kurang 4.00 petang bertempat di bawah Blok A, USJ One Park Riverdale USJ 1, Subang Mewah, Subang Jaya, dalam daerah Petaling, di dalam negeri Selangor Darul Ehsan, telah mengedar dadah berbahaya iaitu Cannabis seberat 687.7 gram, dan dengan itu kamu telah melakukan suatu kesalahan di bawah Seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum di bawah Seksyen 39B(2) Akta yang sama.&rdquo;</em></p>\n',NULL,'2022-10-28 16:31:06','raimi.ramli',NULL,NULL,NULL,NULL);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,21 @@
/*
-- Query: select * from ilims_usr.LT_LKK_PERSON_INVOLVE
WHERE LKK_INFOID IN (17,23,41,54,133)
-- Date: 2025-04-18 13:46
*/
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (8,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA Dato Haji Mohd Yazid bin Haji Mustafa\"}',17,'2022-09-05 10:32:03','mary.pkm',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (9,'{\"noKP\": \"911023-08-6757\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": \"\", \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Kuan Ling & C C Goh\", \"namaPeguamTpr\": \"Tong Kuan Ling & Goh Chuan Chean \", \"officeAddressO\": \"No. 7-1 (1st Floor), Jalan Puteri ¼, \\r\\nBandar Puteri, \\r\\n47100 Puchong\\r\\nSelangor Darul Ehsan\", \"officePhoneNoO\": \"0380664280\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"ANBARASAN A/L MURUGAYAH\", \"emailPerayuResponden\": \"klccgoh@gmail.com\", \"noPhonePerayuResponden\": \"0124617922\"}',17,'2022-09-05 10:37:14','mary.pkm','2022-10-05 14:14:22','mary.pkm');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (10,'{\"noKP\": \"tiada\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"Mary Phoon Keat\", \"emailPerayuResponden\": \"mary.pkm@agc.gov.my\", \"noPhonePerayuResponden\": \"0129028512\"}',17,'2022-09-05 10:37:56','mary.pkm',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (16,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' INDERA HAJI AB KARIM BIN AB RAHMAN\"}',23,'2022-09-08 14:45:55','tengku.intan','2022-09-08 14:46:35','tengku.intan');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (17,'{\"noKP\": \"tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TENGKU INTAN SURAYA TENGKU ISMAIL\", \"emailPerayuResponden\": \"tengku.intan@agc.gov.my\", \"noPhonePerayuResponden\": \"0193019619\"}',23,'2022-09-08 14:46:26','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (18,'{\"noKP\": \"tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"70300\", \"category\": \"accused\", \"daerahId\": \"0505\", \"negeriId\": \"05\", \"daerahDesc\": \"SEREMBAN\", \"negaraDesc\": \"\", \"negeriDesc\": \"NEGERI SEMBILAN\", \"guamanAgensi\": \"TETUAN ZAFLEE % CO\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"121-1, Jalan S2 B20, Pusat Dagangan, Seremban 2\", \"officePhoneNoO\": \"066011760\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"ZAFLEE BIN PAKWANTEH\", \"emailPerayuResponden\": \"zafleepakwanteh@yahoo.com\", \"noPhonePerayuResponden\": \"066011760\"}',23,'2022-09-08 14:49:50','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (45,'{\"peranan\": \"Hakim\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' INDERA HJ AB KARIM BIN AB RAHMAN\"}',41,'2022-09-14 21:46:40','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (46,'{\"noKP\": \"Tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TENGKU INTAN SURAYA TENGKU ISMAIL\", \"emailPerayuResponden\": \"tengku.intan@agc.gov.my\", \"noPhonePerayuResponden\": \"0193019619\"}',41,'2022-09-14 21:47:55','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (47,'{\"noKP\": \"800509-05-5473\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Tetuan Law Practice of Rafique\", \"namaPeguamTpr\": \"Muhammad Rafique Bin Rashid Ali\", \"officeAddressO\": \"No. 25-3A, Jalan PJU 1/3b\\r\\nSunwaymas Commercial Centre\\r\\n47301 Petaling Jaya, Selangor\", \"officePhoneNoO\": \"03-78041216\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"YONG CHIN CAN\", \"emailPerayuResponden\": \"Tiada\", \"noPhonePerayuResponden\": \"Tiada\"}',41,'2022-09-14 21:50:59','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (75,'{\"peranan\": \"Hakim\", \"category\": \"corum\", \"namaPihak\": \"Puan Norliza binti Othman\"}',54,'2022-09-21 21:05:51','farah.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (76,'{\"noKP\": \"2.\\tSIVANAATHIREN A/L RAJENDRAN (NO KP: 920216-10-5889) 3.\\tGUNALAN A/L PARASURAMAN (NO KP: 941110-08-6197) 4.\\tVASUDEVAN A/L SHANDRASEGARAN (NO.K.P.:881026-43-5305)\", \"negaraO\": \"-1\", \"poskodO\": \"46050\", \"category\": \"accused\", \"daerahId\": \"-1\", \"negeriId\": \"10\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"Tetuan Sivananthan Advocates & Solicitors\", \"namaPeguamTpr\": \"Datuk Sivananthan & Nabila Habib\", \"officeAddressO\": \"Suite No. 1, L17-01, PJX Tower\\r\\nNo. 16A, Persiaran Barat\\r\\n46050 Petaling Jaya\\r\\nSelangor Darul Ehsan, Malaysia\", \"officePhoneNoO\": \"+60374918055\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"2.\\tSIVANAATHIREN A/L RAJENDRAN (NO KP: 920216-10-5889) 3.\\tGUNALAN A/L PARASURAMAN (NO KP: 941110-08-6197) 4.\\tVASUDEVAN A/L SHANDRASEGARAN (NO.K.P.:881026-43-5305)\", \"emailPerayuResponden\": \"info@malaysiancriminal.lawyer\", \"noPhonePerayuResponden\": \"+60374918055\"}',54,'2022-09-21 21:14:46','farah.aqilah','2022-09-21 21:22:44','farah.aqilah');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (77,'{\"noKP\": \"941213-08-5955\", \"negaraO\": \"MYS\", \"poskodO\": \"51200\", \"category\": \"accused\", \"daerahId\": \"189\", \"negeriId\": \"14\", \"daerahDesc\": \"BANDAR KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"Tetuan Selvam Shanmugam & Partners\", \"namaPeguamTpr\": \"Tuan S. Selvam\", \"officeAddressO\": \"No. 10-9, Office Suite, Mutiara Complex 3 1/2 Miles, Jalan Ipoh, 51200 Kuala Lumpur\", \"officePhoneNoO\": \"0198612251\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"1.\\tTHENAGGARAO A/L THRAL RAO \", \"emailPerayuResponden\": \"selvamshanmugam.office@gmail.com\", \"noPhonePerayuResponden\": \"0198612251\"}',54,'2022-09-21 21:22:22','farah.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (78,'{\"peranan\": \"Timbalan Pendakwa Raya\", \"category\": \"corum\", \"namaPihak\": \"Farah Aqilah Ahmad Fuad\"}',54,'2022-09-21 21:43:29','farah.aqilah',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (190,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"JULIA BINTI IBRAHIM\"}',133,'2022-10-28 16:25:06','raimi.ramli',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (191,'{\"noKP\": \"tiada berkenaan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"MOHD RAIMI BIN MOHD RAMLI\", \"emailPerayuResponden\": \"raimi.ramli@agc.gov.my\", \"noPhonePerayuResponden\": \"0126752990\"}',133,'2022-10-28 16:26:16','raimi.ramli',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (192,'{\"noKP\": \"TIADA BERKENAAN\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": \"-1\", \"negeriId\": \"14\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"TETUAN VIJAY & CO\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"UNIT3.02D (EAST WING) LEVEL 3,\\r\\nMENARA BRDB BANGSAR, 285, JALAN MAAROF,\\r\\nBUKIT BANDARAYA, \\r\\nKUALA LUMPUR\\r\\n\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"JOSHUA NADEN A/L SOOSAYNATHAN\", \"emailPerayuResponden\": \"TIADA BERKENAAN\", \"noPhonePerayuResponden\": \"TIADA BERKENAAN\"}',133,'2022-10-28 16:29:36','raimi.ramli',NULL,NULL);

View File

@ -0,0 +1,13 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION
WHERE LKK_INFOID IN (8,17,23,31,43)
-- Date: 2025-04-18 13:35
*/
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (69,'8','charge1','BA-45A-31-06/2020, BA-45-21-06/2020 & BA-45-29-09/2020','WAN MOHD HERDY BIN WAN HAMID',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p style=\"margin-left:54px; margin-right:5px; text-align:justify\">',NULL,'2022-09-01 16:13:21','siti.suriatey',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (70,'8','charge1','BA-45A-31-06/2020, BA-45-21-06/2020 & BA-45-29-09/2020','WAN MOHD HERDY BIN WAN HAMID',234,'234/AKTA DADAH BERBAHAYA 1952','12(2)',NULL,'<p style=\"margin-left:54px; margin-right:5px; text-align:justify\">',NULL,'2022-09-01 16:14:16','siti.suriatey',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (71,'8','charge1','BA-45A-31-06/2020, BA-45-21-06/2020 & BA-45-29-09/2020','WAN MOHD HERDY BIN WAN HAMID',366,'366/AKTA RACUN 1952','30(3)',NULL,'<p style=\"margin-left:54px; margin-right:5px; text-align:justify\">',NULL,'2022-09-01 16:15:04','siti.suriatey',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (74,'17','charge1','BA-45A-64-9/20','ANBARASAN A/L MURUGAYAH',234,'234/AKTA DADAH BERBAHAYA 1952','seksyen 39B',NULL,'<p style=\"text-align:justify\">Bahawa kamu pada 10/10/2019, jam lebih kurang 2:30 petang, bertempat di tempat kawasan premis Restoran Azhar Maju, Jalan Dagang SB, Taman Sungai Besi, Seri Kembangan, dalam Daerah Petaling, dalam Negeri Selangor Darul Ehsan, telah mengedar dadah berbahaya iaitu Methamphetamine seberat 756.7 gram, dan dengan itu kamu telah melakukan suatu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum di bawah seksyen 39B(2) Akta yang samaBahawa kamu pada 10/10/2019, jam lebih kurang 2:30 petang, bertempat di tempat kawasan premis Restoran Azhar Maju, Jalan Dagang SB, Taman Sungai Besi, Seri Kembangan, dalam Daerah Petaling, dalam Negeri Selangor Darul Ehsan, telah mengedar dadah berbahaya iaitu Methamphetamine seberat 756.7 gram, dan dengan itu kamu telah melakukan suatu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 yang boleh dihukum di bawah seksyen 39B(2) Akta yang sama</p>\n',NULL,'2022-09-05 10:33:28','mary.pkm',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (128,'23','charge2','BA-45A-33-03/2022','MOHAMMED FADL ELMOLA GASMEELSEED DAN 3LAGI',234,'234/AKTA DADAH BERBAHAYA 1952','6/39A(2)',NULL,'<p>Bahawa kamu bersama-sama pada 31 Mac 2021, jam lebih kurang 12.20 tengah malam, di alamat C2-07-02, Apartment Cendekiawan UNITEN, 43009 Kajang, dalam Daerah Sepang, di dalam Negeri Selangor Darul Ehsan, telah ada dalam milikan kamu dadah berbahaya iaitu &nbsp;Cannabis seberat 214.3 gram dan dengan itu, kamu telah melakukan satu kesalahan di bawah Seksyen 6 Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah Seksyen 39A(2) Akta yang sama dan dibaca bersama-sama Seksyen 34 Kanun Keseksaan</p>\n','Pilihan','2022-09-08 14:55:14','tengku.intan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (129,'23','charge1','BA-45A-33-03/2021','MOHAMMED FADL ELMOLA GASMELSEED KHIRALLA DAN 3 LAGI',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p>Bahawa kamu bersama-sama pada 31 Mac 2021, jam lebih kurang 12.20 tengah malam, di alamat C2-07-02, Apartment Cendekiawan UNITEN, 43009 Kajang, dalam Daerah Sepang, di dalam Negeri Selangor Darul Ehsan, telah didapati memperedarkan dadah berbahaya iaitu &nbsp;Cannabis seberat 214.3 gram. Oleh yang demikian kamu telah melakukan suatu kesalahan di bawah Seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah Seksyen 39B(2) Akta yang sama dan dibaca bersama-sama Seksyen 34 Kanun Keseksaan.</p>\n',NULL,'2022-09-08 14:55:57','tengku.intan',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (192,'31','charge1','BA-45A-32-03/2021','VIKNES WAREN A/L S.SELVAM RAJ ',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p>Tertuduh telah dituduh di dalam kes BA-45A-32-03/2021 dengan pertuduhan pindaan (&#39;eksibit P2&#39;) seperti berikut:-</p>\n\n<p>&quot; Bahawa kamu pada 4.5.2020 jam lebih kurang 5.45 petang bertempat di Tempat Letak Kereta, Jalan Mahkota Residence 2, Bandar Mahkota Cheras, di dalam Daerah Hulu Langat, di dalam Negeri Selangor Darul Ehsan telah mengedar dadah berbahaya jenis METHAPHETAMINE dengan berat bersih 767.2 gram. Oleh yang demikian kamu telah melakukan suatu kesalahan di bawah Seksyen 39B(1)(a) Akta Dadah berbahaya 1952 yang boleh dihukum di bawah Seksyen 39B(2) Akta yang sama.</p>\n\n<p>Hukuman:Gantung sampai mati&quot;</p>\n',NULL,'2022-09-11 20:56:53','siti.suriatey','2022-09-11 21:21:22','siti.suriatey',NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (224,'43','charge1','BA-45A-58-08/2020','PENDAKWA RAYA V YONG CHIN CAN & 3LG',234,'234/AKTA DADAH BERBAHAYA 1952','39B',NULL,'<p style=\"text-align:justify\">&ldquo;Bahawa kamu bersama-sama pada 12.10.2020, jam lebih kurang 8.45 malam, bertempat di tempat letak kereta berhadapan 1977 New Ipoh Chicken Rice, Jalan Gasing 10/1 Petaling Jaya, di dalam Daerah Petaling Jaya, di Negeri Selangor Darul Ehsan, telah didapati bersama-sama mengedar dadah berbahaya jenis Methamphetamine seberat 29997.9 gram. Oleh yang demikian kamu telah melakukan suatu kesalahan di bawah Seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah Seksyen 39B(2) Akta yang sama dan dibaca bersama-sama Seksyen 34 Kanun Keseksaan.&rdquo;</p>\n',NULL,'2022-09-14 22:34:44','tengku.intan',NULL,NULL,NULL,NULL);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,21 @@
/*
-- Query: select * from ilims_usr.LT_LKK_PERSON_INVOLVE
WHERE LKK_INFOID IN (8,17,23,31,43)
-- Date: 2025-04-18 13:34
*/
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (1,'{\"peranan\": \"HAKIM MAHKAMAH TINGGI\", \"category\": \"corum\", \"namaPihak\": \"YA TUAN HASBULLAH BIN ADAM \"}',8,'2022-09-01 15:18:14','','2022-09-01 15:19:17','');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (2,'{\"noKP\": \"tiada berkaitan \", \"negaraO\": \"MYS\", \"poskodO\": \"40000\", \"category\": \"prosecutors\", \"daerahId\": \"43\", \"negeriId\": \"10\", \"daerahDesc\": \"SHAH ALAM\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"SELANGOR\", \"guamanAgensi\": \"ALFRED EGIN & CO\", \"namaPeguamTpr\": \"ALFRED EGIN\", \"officeAddressO\": \" Pkns Bizpoint, No. 67B, Tingkat 2, \\r\\n Jalan Plumbum P7/P, Seksyen 7 \\r\\n 40000 Shah Alam, Selangor\\r\\n\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"NUR ZATIL HIDAYAH BINTI ALI\", \"emailPerayuResponden\": \"zatil.hidayah@agc.gov.my\", \"noPhonePerayuResponden\": \"0176294886\"}',8,'2022-09-01 15:23:06','',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (8,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA Dato Haji Mohd Yazid bin Haji Mustafa\"}',17,'2022-09-05 10:32:03','mary.pkm',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (9,'{\"noKP\": \"911023-08-6757\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": \"\", \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Kuan Ling & C C Goh\", \"namaPeguamTpr\": \"Tong Kuan Ling & Goh Chuan Chean \", \"officeAddressO\": \"No. 7-1 (1st Floor), Jalan Puteri ¼, \\r\\nBandar Puteri, \\r\\n47100 Puchong\\r\\nSelangor Darul Ehsan\", \"officePhoneNoO\": \"0380664280\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"ANBARASAN A/L MURUGAYAH\", \"emailPerayuResponden\": \"klccgoh@gmail.com\", \"noPhonePerayuResponden\": \"0124617922\"}',17,'2022-09-05 10:37:14','mary.pkm','2022-10-05 14:14:22','mary.pkm');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (10,'{\"noKP\": \"tiada\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"Mary Phoon Keat\", \"emailPerayuResponden\": \"mary.pkm@agc.gov.my\", \"noPhonePerayuResponden\": \"0129028512\"}',17,'2022-09-05 10:37:56','mary.pkm',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (16,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' INDERA HAJI AB KARIM BIN AB RAHMAN\"}',23,'2022-09-08 14:45:55','tengku.intan','2022-09-08 14:46:35','tengku.intan');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (17,'{\"noKP\": \"tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TENGKU INTAN SURAYA TENGKU ISMAIL\", \"emailPerayuResponden\": \"tengku.intan@agc.gov.my\", \"noPhonePerayuResponden\": \"0193019619\"}',23,'2022-09-08 14:46:26','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (18,'{\"noKP\": \"tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"70300\", \"category\": \"accused\", \"daerahId\": \"0505\", \"negeriId\": \"05\", \"daerahDesc\": \"SEREMBAN\", \"negaraDesc\": \"\", \"negeriDesc\": \"NEGERI SEMBILAN\", \"guamanAgensi\": \"TETUAN ZAFLEE % CO\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"121-1, Jalan S2 B20, Pusat Dagangan, Seremban 2\", \"officePhoneNoO\": \"066011760\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"ZAFLEE BIN PAKWANTEH\", \"emailPerayuResponden\": \"zafleepakwanteh@yahoo.com\", \"noPhonePerayuResponden\": \"066011760\"}',23,'2022-09-08 14:49:50','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (28,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"Y.A. TUAN HASBULLAH BIN ADAM\"}',31,'2022-09-11 20:55:52','siti.suriatey',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (29,'{\"noKP\": \"tiada berkaitan \", \"negaraO\": \"MYS\", \"poskodO\": \"50480\", \"category\": \"prosecutors\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"TETUAN SCEVETTI & ASSOCIATES\", \"namaPeguamTpr\": \"WAN AZWAN & EFA\", \"officeAddressO\": \"5M-2-20, Plaza Damas. 60, Jalan Sri Hartamas 1, Sri Hartamas, 50480, Kuala Lumpur.\", \"officePhoneNoO\": \"tiada maklumat \", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"NUR ZATIL HIDAYAH BINTI ALI\", \"emailPerayuResponden\": \"zatil.hidayah@agc.gov.my\", \"noPhonePerayuResponden\": \"0176294886\"}',31,'2022-09-11 21:32:10','siti.suriatey',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (48,'{\"peranan\": \"HAKIM\", \"category\": \"corum\", \"namaPihak\": \"YA DATO\' INDERA HAJI AB KARIM BIN AB RAHMAN\"}',43,'2022-09-14 22:26:31','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (49,'{\"noKP\": \"tidak berkaitan\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"prosecutors\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"\", \"namaPeguamTpr\": \"\", \"officeAddressO\": \"\", \"officePhoneNoO\": \"\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"TENGKU INTAN SURAYA TENGKU ISMAIL\", \"emailPerayuResponden\": \"tengku.intan@agc.gov.my\", \"noPhonePerayuResponden\": \"0193019619\"}',43,'2022-09-14 22:27:19','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (50,'{\"noKP\": \"800509-05-5473\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": \"-1\", \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Tetuan Law Practice of Rafique\", \"namaPeguamTpr\": \"Muhammad Rafique Bin Rashid Ali\", \"officeAddressO\": \"No. 25-3A, Jalan PJU 1/3b\\r\\nSunwaymas Commercial Centre\\r\\n47301 Petaling Jaya, Selangor\\r\\n\", \"officePhoneNoO\": \"03-78041216\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"YONG CHIN CAN\", \"emailPerayuResponden\": \"tiada\", \"noPhonePerayuResponden\": \"tiada\"}',43,'2022-09-14 22:29:13','tengku.intan','2022-09-14 22:29:36','tengku.intan');
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (51,'{\"noKP\": \"881006-03-5793\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Tetuan Wan Haron Sukri & Nordin\", \"namaPeguamTpr\": \"Dato Sukri bin Mohamed\", \"officeAddressO\": \"PT. 1180-1183, Jln Kebun Sultan\\r\\nBandar Kota Bharu\\r\\n15350 Kota Bharu\\r\\nKelantan\\r\\n\", \"officePhoneNoO\": \"09-7440011\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"MOHAMAD KHAIRUL HAFIZ BIN ADNAN\", \"emailPerayuResponden\": \"TIADA\", \"noPhonePerayuResponden\": \"TIADA\"}',43,'2022-09-14 22:31:32','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (52,'{\"noKP\": \"AB2216176\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Tetuan Wan Haron Sukri & Nordin\", \"namaPeguamTpr\": \"Dato Sukri bin Mohamed\", \"officeAddressO\": \"PT. 1180-1183, Jln Kebun Sultan\\r\\nBandar Kota Bharu\\r\\n15350 Kota Bharu\\r\\nKelantan\\r\\n\", \"officePhoneNoO\": \"09-7440011\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"MR HAKEEM SAMAE\", \"emailPerayuResponden\": \"TIADA\", \"noPhonePerayuResponden\": \"TIADA\"}',43,'2022-09-14 22:32:40','tengku.intan',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (53,'{\"noKP\": \"910531-11-5011\", \"negaraO\": \"-1\", \"poskodO\": \"\", \"category\": \"accused\", \"daerahId\": null, \"negeriId\": \"-1\", \"daerahDesc\": \"\", \"negaraDesc\": \"\", \"negeriDesc\": \"\", \"guamanAgensi\": \"Tetuan Zaleha Hayat & Co\", \"namaPeguamTpr\": \"Zaleha Sikkander Hayat\", \"officeAddressO\": \"No. F-07-03, Kompleks Permaisuri 6\\r\\nJalan Sri Permaisuri\\r\\n56000 Kuala Lumpur\\r\\n\", \"officePhoneNoO\": \"03-91746338\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"SYAMIL BIN TAUFIK @ ZAINAL ABIDIN\", \"emailPerayuResponden\": \"TIADA\", \"noPhonePerayuResponden\": \"TIADA\"}',43,'2022-09-14 22:33:50','tengku.intan',NULL,NULL);

View File

@ -0,0 +1,10 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION WHERE LKK_INFOID IN (3203,3658)
-- Date: 2025-04-18 13:18
*/
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (6982,'3203','charge1','JA-45A-7-03/2021','Abd Aziz Bin Yahya',234,'234/AKTA DADAH BERBAHAYA 1952','Seksyen 12(2)/(3) ADB 1952',NULL,'<p><em>&ldquo;Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati memiliki dadah berbahaya jenis Methamphetamine seberat bersih 4.10 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 12(2) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 12(3) Akta yang sama.&quot;</em></p>\n',NULL,'2024-12-13 14:52:18','chanlee.lee',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (6983,'3203','charge1','JA-45A-11-03/2021','Abd Aziz bin Yahya',234,'234/AKTA DADAH BERBAHAYA 1952','Seksyen 12(2)/(3) ADB 1952',NULL,'<p><em>&ldquo;Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati memiliki dadah berbahaya jenis Methamphetamine seberat bersih 2.58 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 12(2) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 12(3) Akta yang sama.&quot;</em></p>\n',NULL,'2024-12-13 14:53:18','chanlee.lee',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (6985,'3203','charge1','JA-45A-9-03/2021','Abd Aziz bin Yahya dan Ramizah binti Rahmat',234,'234/AKTA DADAH BERBAHAYA 1952','Seksyen 12(2)/39A(1) ADB 1952',NULL,'<p><em>Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati memiliki dadah berbahaya jenis Monoacetylmorphines seberat bersih 4.75 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 12(2) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 39A(1) Akta yang sama dan dibaca bersama seksyen 34 Kanun Keseksaan</em></p>\n',NULL,'2024-12-13 14:55:13','chanlee.lee','2024-12-13 14:59:51','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (6986,'3203','charge1','JA-45A-10-03/2021','Abd Aziz bin Yahya dan Ramizah binti Rahmat',234,'234/AKTA DADAH BERBAHAYA 1952','Seksyen 39B(1)(a) ADB 1952 dan Seksyen 12(2)/39A(1) ADB 1952',NULL,'<p>Pertuduhan Pertama</p>\n\n<p><em>&ldquo;Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati mengedar dadah berbahaya jenis Methamphetamine seberat bersih 415.06 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 39B(2) Akta yang sama dan dibaca bersama seksyen 34 Kanun Keseksaan</em></p>\n\n<p>&nbsp;</p>\n\n<p>Pertuduhan Kedua</p>\n\n<p><em>&ldquo;Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati mengedar dadah berbahaya jenis Methamphetamine seberat bersih 92.90 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 39B(1)(a) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 39B(2) Akta yang sama dan dibaca bersama seksyen 34 Kanun Keseksaan.</em></p>\n\n<p>&nbsp;</p>\n\n<p>Pertuduhan Ketiga</p>\n\n<p><em>&ldquo;Bahawa kamu pada 24/04/2020 jam lebih kurang 4.55 pagi di No. 363-B, Felda Bukit Aping Timur, 81900 Kota Tinggi di dalam daerah Kota Tinggi, dalam Negeri Johor Darul Takzim telah didapati memiliki dadah berbahaya jenis Heroin seberat bersih 3.23 gram. Oleh yang demikian, kamu telah melakukan satu kesalahan di bawah seksyen 12(2) Akta Dadah Berbahaya 1952 dan boleh dihukum di bawah seksyen 39A(1) Akta yang sama dan dibaca bersama seksyen 34 Kanun Keseksaan.</em></p>\n',NULL,'2024-12-13 14:58:09','chanlee.lee','2024-12-13 15:00:20','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (7535,'3658','charge1','JA-45B-10-11/2021','Chong Kim Pooi',574,'574/KANUN KESEKSAAN','302',NULL,'<p>Bahawa kamu di antara pada 27/9/2020 jam lebih kurang 11.30 malam sehingga 28/9/2020 jam lebih kurang 12.10 tengah malam bertempat di Alamat 14-19, Tower B Resident, Jalan Delima 3/1, Taman Daya, di dalam daerah Johor Bahru, di dalam Negeri Johor Darul Ta&rsquo;zim kamu telah membunuh seorang lelaki Muhammad Afiq bin Aziz (No. K/P: 920818-14-5831)&nbsp;dan dengan itu kamu telah melakukan suatu kesalahan yang boleh dihukum di bawah seksyen 302 Kanun Keseksaan</p>\n',NULL,'2025-03-12 22:45:11','chanlee.lee',NULL,NULL,NULL,NULL);
INSERT INTO `LT_LKK_ALLEGATION` (`LLA_ALLEGATION_ID`,`LKK_INFOID`,`LLA_TYPE`,`LLA_CASE_NO`,`LLA_OKT_NAME`,`LLA_ACT_ID`,`LLA_ACT_DESC`,`LLA_SECTION`,`LLA_DATE`,`LLA_CHARGE_NOTES`,`LKK_CHARGE_TYPE`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`,`LLA_CHARGE_REASON`,`LLA_CHARGE_BY`) VALUES (7536,'3658','charge2','JA-45B-10-11/2021','Chong Kim Pooi',574,'574/KANUN KESEKSAAN','304(a)',NULL,'<p>Bahawa kamu di antara pada 27/9/2020 jam lebih kurang 11.30 malam sehingga 28/9/2020 jam lebih kurang 12.10 tengah malam bertempat di Alamat 14-19, Tower B Resident, Jalan Delima 3/1, Taman Daya, di dalam daerah Johor Bahru, di dalam Negeri Johor Darul Ta&rsquo;zim kamu telah melakukan perbuatan yang menyebabkan kematian terhadap seorang lelaki bernama Muhammad Afiq bin Aziz (No. K/P: 920818-14-5831) dengan niat menyebabkan kecederaan tubuh badan yang mungkin menyebabkan kematiannya dan dengan itu kamu telah melakukan kesalahan mematikan orang dengan salah yang tidak terjumlah kepada kesalahan membunuh dan boleh dihukum di bawah seksyen 304(a) Kanun Keseksaan</p>\n','Pilihan','2025-03-12 22:46:24','chanlee.lee','2025-03-13 14:16:49','chanlee.lee','<p>Keterangan dan representasi OKT telah dikaji dan ditaklimatkan kepada YBrs. Puan KUJB, YBhg. Dato&#39; TKBP 1 dan YBhg. Dato&#39; PCN oleh Puan TPR Siti Hajar binti Mat Radzi. (Minit 28 bertarikh 19.2.2025 dirujuk)</p>\n\n<p>YBhg. Dato&#39; PCN bersetuju agar OKT ditawarkan pertuduhan pilihan di bawah seksyen 304(a) KK dengan syarat OKT mengaku salah terhadap pertuduhan pilihan yang ditawarkan.</p>\n','YBhg. Dato\' Peguam Cara Negara');

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,12 @@
/*
-- Query: select * from ilims_usr.LT_LKK_PERSON_INVOLVE
WHERE LKK_INFOID IN (3203,3658)
-- Date: 2025-04-18 13:15
*/
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (6790,'{\"peranan\": \"Pesuruhjaya Kehakiman\", \"category\": \"corum\", \"namaPihak\": \"Yang Arif Puan Suriyati Hasimah binti Mohd Hashim\"}',3203,'2024-12-13 14:39:16','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (6791,'{\"noKP\": \"Tidak Berkaitan\", \"negaraO\": \"MYS\", \"poskodO\": \"79100\", \"category\": \"prosecutors\", \"daerahId\": \"0124\", \"negeriId\": \"01\", \"daerahDesc\": \"NUSA JAYA\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"JOHOR\", \"guamanAgensi\": \"Pendakwa Raya\", \"namaPeguamTpr\": \"TPR Chan Lee Lee\", \"officeAddressO\": \"Aras 2, Bangunan Dato\' Jaafar Muhamamd\", \"officePhoneNoO\": \"013-3339158\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"Pendakwa Raya\", \"emailPerayuResponden\": \"Tidak Berkaitan\", \"noPhonePerayuResponden\": \"Tidak Berkaitan\"}',3203,'2024-12-13 14:41:09','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (6792,'{\"noKP\": \"720429-01-5113\", \"negaraO\": \"MYS\", \"poskodO\": \"81200\", \"category\": \"accused\", \"daerahId\": \"0102\", \"negeriId\": \"01\", \"daerahDesc\": \"JOHOR BAHRU\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"JOHOR\", \"guamanAgensi\": \"Tetuan Shaik Adam & Co\", \"namaPeguamTpr\": \"Encik Shaik Saleem\", \"officeAddressO\": \"No-20-01, Jalan Cenderasari 3, Taman Perbadanan Islam Larkin\", \"officePhoneNoO\": \"019-7707270\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Abd Aziz bin Yahya\", \"emailPerayuResponden\": \"Tiada\", \"noPhonePerayuResponden\": \"Tiada\"}',3203,'2024-12-13 14:44:50','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (6793,'{\"noKP\": \"910912-01-5014\", \"negaraO\": \"MYS\", \"poskodO\": \"81200\", \"category\": \"accused\", \"daerahId\": \"0102\", \"negeriId\": \"01\", \"daerahDesc\": \"JOHOR BAHRU\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"JOHOR\", \"guamanAgensi\": \"Tetuan Shaik Adam & Co\", \"namaPeguamTpr\": \"Encik Shaik Saleem\", \"officeAddressO\": \"No.20-01, Jalan Cenderasari 3, Taman Perbadanan Islam Larkin\", \"officePhoneNoO\": \"019-7707270\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Ramizah Binti Rahmat\", \"emailPerayuResponden\": \"Tiada\", \"noPhonePerayuResponden\": \"Tiada\"}',3203,'2024-12-13 14:47:16','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (7857,'{\"peranan\": \"Pesuruhjaya Kehakiman\", \"category\": \"corum\", \"namaPihak\": \"YA Puan Suriyati Hasimah Binti Mohd Hashim\"}',3658,'2025-03-12 22:37:18','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (7858,'{\"noKP\": \"Tidak Berkaitan\", \"negaraO\": \"MYS\", \"poskodO\": \"79100\", \"category\": \"prosecutors\", \"daerahId\": \"0102\", \"negeriId\": \"01\", \"daerahDesc\": \"JOHOR BAHRU\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"JOHOR\", \"guamanAgensi\": \"Pendakwa Raya\", \"namaPeguamTpr\": \"TPR Chan Lee Lee\", \"officeAddressO\": \"Aras 2, Bangungan Dato\' Jaafar Muhammad, 79100 Iskandar Puteri\", \"officePhoneNoO\": \"013-3339158\", \"PerayuRespondenId\": \"Pendakwa Raya\", \"namaPerayuResponden\": \"Pendakwa Raya\", \"emailPerayuResponden\": \"Tidak Berkaitan\", \"noPhonePerayuResponden\": \"Tidak Berkaitan\"}',3658,'2025-03-12 22:38:42','chanlee.lee',NULL,NULL);
INSERT INTO `LT_LKK_PERSON_INVOLVE` (`LTL_PERSON_ID`,`LTL_DATA`,`LKK_INFOID`,`CREATEDDATE`,`CREATEDBY`,`UPDATEDDATE`,`UPDATEDBY`) VALUES (7859,'{\"noKP\": \"841019-14-5178\", \"negaraO\": \"MYS\", \"poskodO\": \"50400\", \"category\": \"accused\", \"daerahId\": \"1401\", \"negeriId\": \"14\", \"daerahDesc\": \"KUALA LUMPUR\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"WILAYAH PERSEKUTUAN (KUALA LUMPUR)\", \"guamanAgensi\": \"Tetuan T.Y. Teh & Partners\", \"namaPeguamTpr\": \"Encik Lim Chee Chau \", \"officeAddressO\": \"Suite B-11-7, Megan Avenue 1, No. 189 Jalan Tun Razak, 50400 Kuala Lumpur\", \"officePhoneNoO\": \"03-21647002\", \"PerayuRespondenId\": \"Tertuduh\", \"namaPerayuResponden\": \"Chong Kim Pooi\", \"emailPerayuResponden\": \"Tiada\", \"noPhonePerayuResponden\": \"Tiada\"}',3658,'2025-03-12 22:41:49','chanlee.lee',NULL,NULL);

Binary file not shown.

Binary file not shown.

BIN
Laporan_Keputusan_Kes 1.pdf Normal file

Binary file not shown.

98
README.md Normal file
View File

@ -0,0 +1,98 @@
# AGC Document Chatbot
A Streamlit-based web application that provides intelligent search and chat capabilities for Attorney General's Chambers (AGC) documents. The system uses Retrieval-Augmented Generation (RAG) to enhance search accuracy and provide context-aware responses.
## Features
- **Document Browsing**: Browse through all available AGC documents with filtering by document type and title/content search
- **Enhanced RAG Search**: Search documents using AI-enhanced query understanding
- **Document Detail View**: View full document details with contextual information
- **Chat Interface**: Chat with AI about document content with context-awareness
## Architecture
The application consists of several key components:
- **Web Interface**: Built with Streamlit
- **Document Database**: MySQL database for storing document metadata and content
- **Embedding Services**: Vector embeddings for semantic search capabilities
- **RAG Enhancement**: Improved search using OpenAI's capabilities
## Project Structure
```
.
├── app.py # Main Streamlit application
├── config.py # Configuration settings
├── db/ # Database utilities
│ └── import_lkk_data.py # Script for importing LKK data
├── embedding/ # Embedding and RAG services
│ ├── embedding_service.py
│ ├── enhanced_rag_service.py
│ └── rag_service.py
├── utils/ # Utility functions
├── Data/ # Document data
└── requirements.txt # Python dependencies
```
## Installation
1. Clone the repository
2. Create a virtual environment:
```
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install dependencies:
```
pip install -r requirements.txt
```
4. Configure environment variables (create a `.env` file based on requirements)
## Database Setup
1. Install and run XAMPP:
- Download XAMPP from [https://www.apachefriends.org/](https://www.apachefriends.org/)
- Install and launch XAMPP Control Panel
- Start the Apache and MySQL services
- Access phpMyAdmin at [http://localhost/phpmyadmin](http://localhost/phpmyadmin)
- Create a new database named `agc`
2. Configure the database connection in your `.env` file:
```
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=
MYSQL_DATABASE=agc
```
## Data Import (Optional)
To import LKK (Laporan Keputusan Kes) data into the system:
```
python -m db.import_lkk_data
```
This script will:
- Set up required database tables
- Import available data from SQL or PDF files in the Data directory
- Generate document embeddings for search functionality
## Usage
Run the Streamlit application:
```
streamlit run app.py
```
The application will be available at http://localhost:8501 by default.
## Requirements
- Python 3.7+
- MySQL database (via XAMPP)
- OpenAI API key (for embedding and RAG features)

537
app.py Normal file
View File

@ -0,0 +1,537 @@
import streamlit as st
from db.db_utils import get_all_documents, get_document
from embedding.enhanced_rag_service import enhanced_rag_search
from db.db_utils import get_search_history
import re
import json
# Set page configuration
st.set_page_config(
page_title="AGC Document Search",
page_icon="📚",
layout="wide"
)
# Initialize session state for page navigation
if "page" not in st.session_state:
st.session_state.page = "browse"
if "selected_document_id" not in st.session_state:
st.session_state.selected_document_id = None
if "current_query" not in st.session_state:
st.session_state.current_query = ""
if "messages" not in st.session_state:
st.session_state.messages = []
if "previous_page" not in st.session_state:
st.session_state.previous_page = "browse"
# Function to change page
def navigate_to_page(page, document_id=None, query=None):
# Store the previous page before changing
if page != st.session_state.page and page != "document_detail":
st.session_state.previous_page = st.session_state.page
st.session_state.page = page
if document_id is not None:
st.session_state.selected_document_id = document_id
if query is not None:
st.session_state.current_query = query
# Force a rerun to update the UI immediately
st.rerun()
# Browse Documents Page
def browse_documents_page():
st.title("📚 AGC Document Browser")
# Add some CSS styling
st.markdown("""
<style>
.document-card {
background-color: #121212;
border-radius: 10px;
padding: 1rem;
margin-bottom: 1rem;
border-left: 4px solid #4CAF50;
}
.document-title {
font-size: 1.2rem;
margin-bottom: 0.5rem;
color: white;
font-weight: bold;
}
.document-info {
display: flex;
flex-wrap: wrap;
margin-bottom: 0.5rem;
color: #bbb;
font-size: 0.9rem;
}
.document-preview {
margin-top: 0.5rem;
padding: 0.5rem;
background-color: #1e1e1e;
border-radius: 5px;
color: #eee;
font-size: 0.9rem;
max-height: 150px;
overflow-y: auto;
}
.info-badge {
background-color: #333;
padding: 3px 8px;
border-radius: 10px;
margin-right: 10px;
white-space: nowrap;
}
</style>
""", unsafe_allow_html=True)
# Get all documents
documents = get_all_documents()
# Create filters
doc_types = list(set([doc.get('doc_type', 'Unknown') for doc in documents]))
doc_types.insert(0, "All Types")
col1, col2 = st.columns(2)
with col1:
selected_type = st.selectbox("Filter by document type:", doc_types)
with col2:
title_filter = st.text_input("Filter by title or case number:", placeholder="Enter keywords")
# Apply filters
filtered_docs = documents
if selected_type and selected_type != "All Types":
filtered_docs = [doc for doc in filtered_docs if doc.get('doc_type') == selected_type]
if title_filter:
filtered_docs = [
doc for doc in filtered_docs
if title_filter.lower() in doc.get('title', '').lower() or
title_filter.lower() in doc.get('content', '').lower()
]
# Show count of filtered documents
st.write(f"Showing {len(filtered_docs)} document(s)")
# Order documents by created_at date, newest first
filtered_docs = sorted(filtered_docs, key=lambda d: d.get('created_at', ''), reverse=True)
# Create a better layout for documents
for doc in filtered_docs:
# Create a card display for each document
st.markdown(f"""
<div class="document-card">
<div class="document-title">{doc.get('title', 'Untitled Document')}</div>
<div class="document-info">
<span class="info-badge">📄 {doc.get('doc_type', 'Unknown')}</span>
<span class="info-badge">📂 {doc.get('source', 'Unknown Source')}</span>
<span class="info-badge"> {doc.get('created_at', 'Unknown Date')}</span>
</div>
""", unsafe_allow_html=True)
# Preview of content
content = doc.get('content', '')
# Try to extract key information for the preview
file_match = re.search(r"File Number:\s*([^\n]+)", content)
status_match = re.search(r"Status:\s*([^\n]+)", content)
preview_parts = []
if file_match:
preview_parts.append(f"<b>File Number:</b> {file_match.group(1).strip()}")
if status_match:
preview_parts.append(f"<b>Status:</b> {status_match.group(1).strip()}")
# Add a snippet of the content
preview_content = content[:200].replace("\n", " ").strip() + "..." if len(content) > 200 else content
if not preview_parts:
preview_parts = [preview_content]
preview = "<br>".join(preview_parts)
st.markdown(f'<div class="document-preview">{preview}</div>', unsafe_allow_html=True)
# Button to view full document
col1, col2 = st.columns([4, 1])
with col2:
if st.button(f"View Details", key=f"doc_btn_{doc.get('id', 0)}"):
# Store current page for return navigation
st.session_state.previous_page = "browse"
navigate_to_page("document_detail", doc.get('id'))
st.markdown('</div>', unsafe_allow_html=True)
# Search Documents Page
def search_documents_page():
st.title("Search AGC Documents")
search_query = st.text_input("Search documents:", placeholder="Enter search terms")
if search_query:
# Display a spinner while searching
with st.spinner("Searching documents with OpenAI-enhanced query..."):
# Use enhanced RAG search
results = enhanced_rag_search(search_query, profile_search=False)
# Display the enhanced query that was used
if "enhanced_query" in results and results["enhanced_query"] != search_query:
st.info(f"Search query was enhanced to: '{results['enhanced_query']}'")
# Display results
st.subheader("Search Results")
if results["documents"]:
for doc in results["documents"]:
st.markdown(f"**{doc.get('title', 'Untitled')}** (Relevance: {doc['similarity']:.2f})")
st.markdown(f"**Type:** {doc.get('doc_type', 'Unknown')}")
st.markdown(f"{doc.get('content_preview', '')}")
# Button to view full document
if st.button(f"View Details", key=f"result_btn_{doc.get('id', 0)}"):
# Store current page for return navigation
st.session_state.previous_page = "search"
navigate_to_page("document_detail", doc.get('id'))
st.markdown("---")
else:
st.info("No matching documents found.")
# Chat Interface Page
def chat_interface_page():
st.title("Chat with AGC Documents")
st.write("Ask questions about AGC documents in the database! OpenAI will enhance your query and provide better answers.")
# Display chat history
for msg_idx, message in enumerate(st.session_state.messages):
with st.chat_message(message["role"]):
st.markdown(message["content"])
# Show query enhancement if available
if message["role"] == "assistant" and "enhanced_query" in message:
with st.expander("See how your query was enhanced"):
st.markdown(f"**Original query:** {message['original_query']}")
st.markdown(f"**Enhanced query:** {message['enhanced_query']}")
# Display document buttons if available
if message["role"] == "assistant" and "document_results" in message:
st.markdown("**Relevant Documents:**")
for doc_idx, doc in enumerate(message["document_results"]):
st.markdown(f"- **{doc.get('title', 'Untitled')}** (Relevance: {doc['similarity']:.2f})")
st.markdown(f" {doc.get('content_preview', '')}")
# Button to navigate to document detail page - add message index to ensure unique keys
if st.button(f"View Full Document", key=f"history_doc_btn_{msg_idx}_{doc_idx}_{doc.get('id', 0)}"):
# Store current page for return navigation
st.session_state.previous_page = "chat"
navigate_to_page("document_detail", doc.get('id'))
# Chat input
query = st.chat_input("What would you like to know about AGC documents?")
if query:
# Add user message to chat history
st.session_state.messages.append({"role": "user", "content": query})
# Display user message
with st.chat_message("user"):
st.markdown(query)
# Get response using enhanced RAG search
with st.chat_message("assistant"):
with st.spinner("Searching documents with OpenAI-enhanced query..."):
results = enhanced_rag_search(query, profile_search=False)
# Display assistant response
st.markdown(results["answer"])
# Store relevant documents for displaying in chat history
relevant_docs = []
if results["documents"]:
# Filter for high relevance documents
relevant_docs = [
doc for doc in results["documents"]
if doc['similarity'] > 0.7
]
if relevant_docs:
st.markdown(f"**Relevant Documents:**")
for doc_idx, doc in enumerate(relevant_docs):
st.markdown(f"- **{doc.get('title', 'Untitled')}** (Relevance: {doc['similarity']:.2f})")
st.markdown(f" {doc.get('content_preview', '')}")
# Add button to view full document details - use current_chat suffix for unique keys
if st.button(f"View Full Document", key=f"current_chat_doc_btn_{doc_idx}_{doc.get('id', 0)}"):
# Store current page for return navigation
st.session_state.previous_page = "chat"
navigate_to_page("document_detail", doc.get('id'))
else:
st.info("No highly relevant documents found.")
# Show enhancement information
with st.expander("See how your query was enhanced"):
st.markdown(f"**Original query:** {query}")
st.markdown(f"**Enhanced query:** {results.get('enhanced_query', query)}")
# Add assistant response to chat history with enhancement info and document results
st.session_state.messages.append({
"role": "assistant",
"content": results["answer"],
"original_query": query,
"enhanced_query": results.get("enhanced_query", query),
"document_results": relevant_docs if relevant_docs else []
})
# Document detail page
def document_detail_page():
# Back button at the top
if st.button("← Back to Previous Page"):
# Return to the page that linked to this document
if st.session_state.get("previous_page"):
navigate_to_page(st.session_state.get("previous_page"))
else:
navigate_to_page("browse")
# Get the selected document
doc = get_document(st.session_state.selected_document_id)
if not doc:
st.error(f"Document not found with ID: {st.session_state.selected_document_id}")
return
# Create a card-like container for document
doc_container = st.container()
with doc_container:
# Add styling with CSS
st.markdown("""
<style>
.doc-header {
padding: 1rem;
background-color: #1e1e1e;
color: white;
border-radius: 10px 10px 0 0;
margin-bottom: 0;
}
.doc-content {
padding: 1.5rem;
background-color: #121212;
color: white;
border: 1px solid #333;
border-radius: 0 0 10px 10px;
margin-top: 0;
}
.section-header {
background-color: #333;
padding: 0.5rem;
border-radius: 5px;
margin-top: 1rem;
margin-bottom: 0.5rem;
}
.data-row {
display: flex;
margin-bottom: 0.5rem;
}
.data-label {
font-weight: bold;
min-width: 150px;
}
.allegation {
background-color: #1e1e1e;
border-left: 4px solid #4CAF50;
padding: 1rem;
margin-bottom: 1rem;
border-radius: 0 5px 5px 0;
}
.person {
background-color: #1e1e1e;
border-left: 4px solid #2196F3;
padding: 0.7rem;
margin-bottom: 0.5rem;
border-radius: 0 5px 5px 0;
}
</style>
""", unsafe_allow_html=True)
# Document Content
content = doc.get('content', '')
doc_type = doc.get('doc_type', 'Unknown')
# Document header with title
st.markdown(f'<div class="doc-header"><h1>{doc.get("title", "Untitled Document")}</h1></div>',
unsafe_allow_html=True)
# Document content
st.markdown('<div class="doc-content">', unsafe_allow_html=True)
# Create two columns for document information
col1, col2 = st.columns(2)
with col1:
# Display document info with icons
st.markdown('<h2>Document Information</h2>', unsafe_allow_html=True)
st.markdown(f'<div class="data-row"><span class="data-label">📄 Type:</span> {doc_type}</div>', unsafe_allow_html=True)
st.markdown(f'<div class="data-row"><span class="data-label">📁 Source:</span> {doc.get("source", "Unknown")}</div>', unsafe_allow_html=True)
st.markdown(f'<div class="data-row"><span class="data-label">⏰ Added:</span> {doc.get("created_at", "Unknown")}</div>', unsafe_allow_html=True)
with col2:
# Display additional info
st.markdown('<h2>Additional Information</h2>', unsafe_allow_html=True)
# Parse key information from content
file_match = re.search(r"File Number:\s*([^\n]+)", content)
status_match = re.search(r"Status:\s*([^\n]+)", content)
dpp_match = re.search(r"DPP Suggestion:\s*([^\n]+)", content)
hod_match = re.search(r"HOD Decision:\s*([^\n]+)", content)
if file_match:
st.markdown(f'<div class="data-row"><span class="data-label">📃 File Number:</span> {file_match.group(1).strip()}</div>', unsafe_allow_html=True)
if status_match:
st.markdown(f'<div class="data-row"><span class="data-label">🔄 Status:</span> {status_match.group(1).strip()}</div>', unsafe_allow_html=True)
if dpp_match:
st.markdown(f'<div class="data-row"><span class="data-label">📝 DPP Suggestion:</span> {dpp_match.group(1).strip()}</div>', unsafe_allow_html=True)
if hod_match:
st.markdown(f'<div class="data-row"><span class="data-label">⚖️ HOD Decision:</span> {hod_match.group(1).strip()}</div>', unsafe_allow_html=True)
# Display the formatted content
st.markdown('<h2 class="section-header">Case Details</h2>', unsafe_allow_html=True)
# Extract and format allegations
allegations_sections = re.split(r"ALLEGATION #\d+:", content)
if len(allegations_sections) > 1:
st.markdown('<h3>Allegations</h3>', unsafe_allow_html=True)
# First section contains the header info, skip it
header_info = allegations_sections[0]
# Show basic case information
basic_info_parts = header_info.split("--- ALLEGATIONS ---")[0].strip().split("\n")
for info in basic_info_parts:
if info and ":" in info:
label, value = info.split(":", 1)
st.markdown(f'<div class="data-row"><span class="data-label">{label}:</span> {value.strip()}</div>',
unsafe_allow_html=True)
# Process each allegation
for i, allegation in enumerate(allegations_sections[1:], 1):
st.markdown(f'<div class="allegation">', unsafe_allow_html=True)
st.markdown(f'<h4>Allegation #{i}</h4>', unsafe_allow_html=True)
# Clean up HTML tags
allegation = re.sub(r'<[^>]+>', '', allegation)
# Format the allegation details
details = allegation.strip().split("\n")
for detail in details:
if detail.strip() and ":" in detail:
try:
label, value = detail.split(":", 1)
st.markdown(f'<div class="data-row"><span class="data-label">{label}:</span> {value.strip()}</div>',
unsafe_allow_html=True)
except:
# If splitting fails, just display the line
st.markdown(f'{detail.strip()}', unsafe_allow_html=True)
st.markdown('</div>', unsafe_allow_html=True)
# Extract and format involved persons
persons_section = re.search(r"--- INVOLVED PERSONS ---\s*([\s\S]*?)(?:$|---)", content)
if persons_section:
st.markdown('<h3>Involved Persons</h3>', unsafe_allow_html=True)
persons_text = persons_section.group(1).strip()
person_entries = persons_text.split("\nPerson ID:")
for i, person_entry in enumerate(person_entries):
if i == 0 and not person_entry.startswith("Person ID:"):
# Skip if it's not a proper person entry
continue
if i == 0:
# First entry already has "Person ID:" prefix
person_entry = person_entry.strip()
else:
# Add back the prefix for other entries
person_entry = f"Person ID:{person_entry.strip()}"
# Process individual person entry
if person_entry.strip():
st.markdown(f'<div class="person">', unsafe_allow_html=True)
# Extract Person ID
id_match = re.search(r"Person ID:\s*(\d+)", person_entry)
if id_match:
person_id = id_match.group(1)
st.markdown(f'<div class="data-row"><span class="data-label">Person ID:</span> {person_id}</div>', unsafe_allow_html=True)
# Extract and format Person Data
data_match = re.search(r"Person Data:\s*({.*})", person_entry, re.DOTALL)
if data_match:
try:
# Try to parse and pretty format the JSON
json_str = data_match.group(1)
person_data = json.loads(json_str)
# Display formatted person data
if isinstance(person_data, dict):
for key, value in person_data.items():
if value: # Only show non-empty values
# Format the key with proper capitalization and spaces
formatted_key = key.replace("_", " ").title()
st.markdown(f'<div class="data-row"><span class="data-label">{formatted_key}:</span> {value}</div>', unsafe_allow_html=True)
else:
st.text(json_str)
except json.JSONDecodeError:
# If JSON parsing fails, show the raw text
st.text(data_match.group(1))
else:
# Display the raw person entry if no JSON data found
st.markdown(person_entry, unsafe_allow_html=True)
st.markdown('</div>', unsafe_allow_html=True)
st.markdown('</div>', unsafe_allow_html=True)
# Back button at the bottom
if st.button("← Back to Previous Page", key="back_bottom"):
if st.session_state.get("previous_page"):
navigate_to_page(st.session_state.get("previous_page"))
else:
navigate_to_page("browse")
# Main page with navigation
def main_page():
# Check if we're on the document detail page
if st.session_state.page == "document_detail":
# Display the document detail page as a full page without sidebar
document_detail_page()
else:
# Create a sidebar for navigation
st.sidebar.title("Navigation")
page = st.sidebar.radio(
"Select a page:",
["Browse Documents", "Search Documents", "Chat Interface"],
format_func=lambda x: x,
index=0 if st.session_state.page == "browse" else
1 if st.session_state.page == "search" else
2 if st.session_state.page == "chat" else 0
)
# Navigate to the selected page
if page == "Browse Documents":
st.session_state.page = "browse"
elif page == "Search Documents":
st.session_state.page = "search"
elif page == "Chat Interface":
st.session_state.page = "chat"
# Render the appropriate page based on session state
if st.session_state.page == "browse":
browse_documents_page()
elif st.session_state.page == "search":
search_documents_page()
elif st.session_state.page == "chat":
chat_interface_page()
# Run the app
if __name__ == "__main__":
main_page()

23
config.py Normal file
View File

@ -0,0 +1,23 @@
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Database configuration
DB_CONFIG = {
'host': os.getenv('MYSQL_HOST', '47.130.80.140'),
'user': os.getenv('MYSQL_USER', 'root'),
'password': os.getenv('MYSQL_PASSWORD', '1ibL5A5cGevvM7Ax0ZDqyKXQTHMlEW5D5hwG6OcR7KPF77kMkEfxFEbLDtwzr6Ci'),
'database': os.getenv('MYSQL_DATABASE', 'agc'),
'port': int(os.getenv('MYSQL_PORT', '3333'))
}
# OpenAI configuration
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY')
OPENAI_EMBEDDING_MODEL = os.getenv('OPENAI_EMBEDDING_MODEL', 'text-embedding-ada-002')
OPENAI_CHAT_MODEL = os.getenv('OPENAI_CHAT_MODEL', 'gpt-3.5-turbo')
# Application settings
MAX_SEARCH_RESULTS = int(os.getenv('MAX_SEARCH_RESULTS', 10))
SIMILARITY_THRESHOLD = float(os.getenv('SIMILARITY_THRESHOLD', 0.7))

263
db/db_utils.py Normal file
View File

@ -0,0 +1,263 @@
import json
import mysql.connector
import numpy as np
from config import DB_CONFIG
import os
from dotenv import load_dotenv
from typing import List, Dict, Any, Optional
# Load environment variables
load_dotenv()
def get_db_connection():
"""Create a connection to the MySQL database"""
return mysql.connector.connect(**DB_CONFIG)
def add_document(title, content, source=None, doc_type=None):
"""Add a document to the database and return its ID"""
conn = get_db_connection()
cursor = conn.cursor()
query = """
INSERT INTO documents (title, content, source, doc_type)
VALUES (%s, %s, %s, %s)
"""
cursor.execute(query, (title, content, source, doc_type))
document_id = cursor.lastrowid
conn.commit()
cursor.close()
conn.close()
return document_id
def store_embedding(document_id, embedding):
"""Store an embedding for a document"""
conn = get_db_connection()
cursor = conn.cursor()
# Convert numpy array to list and store as JSON
embedding_json = json.dumps(embedding.tolist() if isinstance(embedding, np.ndarray) else embedding)
query = """
INSERT INTO embeddings (document_id, embedding)
VALUES (%s, %s)
"""
cursor.execute(query, (document_id, embedding_json))
conn.commit()
cursor.close()
conn.close()
def get_all_documents(include_embeddings: bool = False) -> List[Dict[str, Any]]:
"""Get all documents from the database"""
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
try:
if include_embeddings:
# Get documents with their embeddings
cursor.execute("""
SELECT d.*, e.embedding
FROM documents d
LEFT JOIN embeddings e ON d.id = e.document_id
ORDER BY d.created_at DESC
""")
else:
# Get documents without embeddings
cursor.execute("""
SELECT * FROM documents
ORDER BY created_at DESC
""")
documents = cursor.fetchall()
return documents
except mysql.connector.Error as err:
print(f"Error fetching documents: {err}")
return []
finally:
cursor.close()
conn.close()
def get_document(doc_id: int) -> Optional[Dict[str, Any]]:
"""Get a specific document by ID"""
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
try:
# Get document with its embedding
cursor.execute("""
SELECT d.*, e.embedding
FROM documents d
LEFT JOIN embeddings e ON d.id = e.document_id
WHERE d.id = %s
""", (doc_id,))
document = cursor.fetchone()
return document
except mysql.connector.Error as err:
print(f"Error fetching document {doc_id}: {err}")
return None
finally:
cursor.close()
conn.close()
def get_all_embeddings():
"""Get all embeddings with their associated documents"""
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
query = """
SELECT e.id, e.document_id, e.embedding, d.title, d.content, d.source, d.doc_type
FROM embeddings e
JOIN documents d ON e.document_id = d.id
"""
cursor.execute(query)
results = cursor.fetchall()
# Convert JSON strings to Python lists
for result in results:
result['embedding'] = json.loads(result['embedding'])
cursor.close()
conn.close()
return results
def log_search(query, results):
"""Log a search query and its results"""
conn = get_db_connection()
cursor = conn.cursor()
query_sql = """
INSERT INTO search_logs (query, results)
VALUES (%s, %s)
"""
results_json = json.dumps(results)
cursor.execute(query_sql, (query, results_json))
conn.commit()
cursor.close()
conn.close()
def search_documents_by_keyword(keyword, limit=10):
"""Basic keyword search in documents"""
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
query = """
SELECT * FROM documents
WHERE MATCH(title, content) AGAINST(%s IN NATURAL LANGUAGE MODE)
LIMIT %s
"""
cursor.execute(query, (keyword, limit))
results = cursor.fetchall()
cursor.close()
conn.close()
return results
def get_search_history() -> List[Dict[str, Any]]:
"""Get search history"""
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
try:
cursor.execute("""
SELECT * FROM search_logs
ORDER BY created_at DESC
LIMIT 100
""")
history = cursor.fetchall()
return history
except mysql.connector.Error as err:
print(f"Error fetching search history: {err}")
return []
finally:
cursor.close()
conn.close()
def add_document(title: str, content: str, source: str = None, doc_type: str = None) -> Optional[int]:
"""Add a new document to the database"""
conn = get_db_connection()
cursor = conn.cursor()
try:
cursor.execute("""
INSERT INTO documents (title, content, source, doc_type)
VALUES (%s, %s, %s, %s)
""", (title, content, source, doc_type))
doc_id = cursor.lastrowid
conn.commit()
return doc_id
except mysql.connector.Error as err:
print(f"Error adding document: {err}")
conn.rollback()
return None
finally:
cursor.close()
conn.close()
def store_embedding(doc_id: int, embedding: List[float]) -> bool:
"""Store embedding for a document"""
conn = get_db_connection()
cursor = conn.cursor()
try:
cursor.execute("""
INSERT INTO embeddings (document_id, embedding)
VALUES (%s, %s)
""", (doc_id, embedding))
conn.commit()
return True
except mysql.connector.Error as err:
print(f"Error storing embedding for document {doc_id}: {err}")
conn.rollback()
return False
finally:
cursor.close()
conn.close()
def log_search(query: str, results: Dict[str, Any]) -> bool:
"""Log a search query and its results"""
conn = get_db_connection()
cursor = conn.cursor()
try:
cursor.execute("""
INSERT INTO search_logs (query, results)
VALUES (%s, %s)
""", (query, results))
conn.commit()
return True
except mysql.connector.Error as err:
print(f"Error logging search: {err}")
conn.rollback()
return False
finally:
cursor.close()
conn.close()

746
db/import_lkk_data.py Normal file
View File

@ -0,0 +1,746 @@
import os
import json
import mysql.connector
import numpy as np
import re
import sys
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Print environment variables for debugging
print(f"MySQL Host: {os.getenv('MYSQL_HOST')}")
print(f"MySQL User: {os.getenv('MYSQL_USER')}")
print(f"MySQL Database: {os.getenv('MYSQL_DATABASE')}")
print(f"MySQL Password: {'[SET]' if os.getenv('MYSQL_PASSWORD') else '[NOT SET]'}")
# Database configuration
DB_CONFIG = {
'host': os.getenv('MYSQL_HOST', 'localhost'),
'user': os.getenv('MYSQL_USER', 'root'),
'password': os.getenv('MYSQL_PASSWORD', ''),
'database': os.getenv('MYSQL_DATABASE', 'agc')
}
def get_db_connection():
"""Create a connection to the MySQL database"""
return mysql.connector.connect(**DB_CONFIG)
def truncate_all_tables():
"""Truncate all tables to remove existing data before importing new data"""
conn = get_db_connection()
cursor = conn.cursor()
print("Truncating all tables to ensure a clean import...")
# Disable foreign key checks temporarily to allow truncating tables with foreign keys
cursor.execute("SET FOREIGN_KEY_CHECKS = 0;")
try:
# Get all tables in the database
cursor.execute("SHOW TABLES;")
tables = cursor.fetchall()
for table in tables:
table_name = table[0]
print(f"Truncating table: {table_name}")
cursor.execute(f"TRUNCATE TABLE {table_name};")
print(f"Successfully truncated {len(tables)} tables")
except mysql.connector.Error as err:
print(f"Error truncating tables: {err}")
finally:
# Re-enable foreign key checks
cursor.execute("SET FOREIGN_KEY_CHECKS = 1;")
conn.commit()
cursor.close()
conn.close()
def setup_tables():
"""Create the tables for document search if they don't exist"""
conn = get_db_connection()
cursor = conn.cursor()
# Create document_search tables
schema_sql = """
-- Documents table
CREATE TABLE IF NOT EXISTS documents (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
source VARCHAR(255),
doc_type VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Embeddings table - store as JSON since MySQL doesn't have a vector type
CREATE TABLE IF NOT EXISTS embeddings (
id INT AUTO_INCREMENT PRIMARY KEY,
document_id INT NOT NULL,
embedding JSON NOT NULL,
FOREIGN KEY (document_id) REFERENCES documents(id) ON DELETE CASCADE
);
-- Search history
CREATE TABLE IF NOT EXISTS search_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
query TEXT NOT NULL,
results JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
"""
# Execute schema SQL statements
for statement in schema_sql.split(';'):
if statement.strip():
try:
cursor.execute(statement + ';')
print(f"Executed: {statement[:50]}...")
except mysql.connector.Error as err:
print(f"Error executing statement: {err}")
print(f"Statement: {statement}")
conn.commit()
cursor.close()
conn.close()
print("Document search tables created successfully")
def extract_sql_inserts(file_path, table_name):
"""Extract SQL INSERT statements from file and return as a list of SQL statements"""
try:
with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
content = file.read()
# Extract all INSERT statements for the specified table
pattern = rf"INSERT INTO {table_name}[^;]*;"
inserts = re.findall(pattern, content, re.DOTALL)
# Clean up the inserts to make them more compatible
cleaned_inserts = []
for insert in inserts:
# Replace TEXT fields that might have problematic characters
# This is a simplistic approach - for a production system, you'd need more robust parsing
if 'TEXT' in insert or 'text' in insert or 'Text' in insert:
# Try to handle the quotes better
insert = re.sub(r"'([^']*?)<([^>]*?)>'", r"'\\1<\\2>'", insert)
cleaned_inserts.append(insert)
return cleaned_inserts
except Exception as e:
print(f"Error reading SQL file {file_path}: {e}")
return []
def execute_sql_statements(statements):
"""Execute a list of SQL statements"""
if not statements:
return
conn = get_db_connection()
cursor = conn.cursor()
successful = 0
failed = 0
for statement in statements:
try:
cursor.execute(statement)
successful += 1
except mysql.connector.Error as err:
# Skip duplicate key errors
if err.errno == 1062: # Duplicate entry error
print(f"Skipping duplicate entry: {err}")
else:
print(f"Error executing SQL: {err}")
print(f"Statement: {statement[:100]}...") # Print first 100 chars of the statement
failed += 1
conn.commit()
cursor.close()
conn.close()
print(f"Executed {successful} statements successfully, {failed} statements failed")
def scan_directory_for_sql_files(directory):
"""Scan a directory and its subdirectories for SQL files"""
sql_files = {
'info': [],
'allegation': [],
'person': []
}
# Walk through the directory
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.sql'):
full_path = os.path.join(root, file)
# Categorize files
if 'LT_LKK_INFO' in file:
sql_files['info'].append(full_path)
elif 'LT_LKK_ALLEGATION' in file:
sql_files['allegation'].append(full_path)
elif 'LT_LKK_PERSON' in file or 'PERSON_RESPONSIBLE' in file:
sql_files['person'].append(full_path)
return sql_files
def extract_case_data_from_directory(directory_path):
"""Extract legal case data directly from a directory"""
# Get the directory name (category)
category = os.path.basename(directory_path)
# Dictionary to store case data
cases = []
# Look for PDF files first
pdf_files = []
for file in os.listdir(directory_path):
if file.lower().endswith('.pdf'):
pdf_files.append(os.path.join(directory_path, file))
# Look for SQL files to extract data
info_files = []
allegation_files = []
person_files = []
for file in os.listdir(directory_path):
if file.endswith('.sql'):
full_path = os.path.join(directory_path, file)
if 'LT_LKK_INFO' in file:
info_files.append(full_path)
elif 'LT_LKK_ALLEGATION' in file:
allegation_files.append(full_path)
elif 'LT_LKK_PERSON' in file or 'PERSON_RESPONSIBLE' in file:
person_files.append(full_path)
# Create a basic case from the directory
case = {
'title': f"Legal Case - {category}",
'content': f"Legal category: {category}\n",
'source': directory_path,
'doc_type': "Legal Case Category",
'pdf_files': pdf_files
}
cases.append(case)
return cases
def import_pdf_files(directory):
"""Import PDF files as documents"""
# Import required modules
sys.path.append('.') # Add current directory to path
from db.db_utils import add_document, store_embedding
try:
from embedding.embedding_service import generate_embedding
except Exception as e:
print(f"Error importing regular embedding service: {e}")
print("Falling back to HTTP-based embedding service...")
from embedding.embedding_service_http import generate_embedding
imported_count = 0
# Walk through the directory
for root, dirs, files in os.walk(directory):
for file in files:
if file.lower().endswith('.pdf'):
try:
full_path = os.path.join(root, file)
# Get the category from directory name
category = os.path.basename(root)
# Try to extract text from PDF (would need a PDF library)
# For now, we'll just use the filename as content
print(f"Found PDF: {full_path}")
# For a real implementation, you would use PyPDF2 or a similar library
# This is a placeholder for actual PDF text extraction
title = file.replace('.pdf', '')
content = f"PDF Document: {file} from category {category}\n\nSource: {full_path}"
# Add document to the database
doc_id = add_document(
title=title,
content=content,
source=full_path,
doc_type="Legal PDF Document"
)
# Generate and store embedding
embedding = generate_embedding(f"{title} {content}")
store_embedding(doc_id, embedding)
print(f"Added PDF document: {title}")
imported_count += 1
except Exception as e:
print(f"Error processing PDF {file}: {e}")
return imported_count
def import_data_from_directory(directory):
"""Import data directly from each category directory"""
# Import required modules
sys.path.append('.') # Add current directory to path
from db.db_utils import add_document, store_embedding
try:
from embedding.embedding_service import generate_embedding
except Exception as e:
print(f"Error importing regular embedding service: {e}")
print("Falling back to HTTP-based embedding service...")
from embedding.embedding_service_http import generate_embedding
# Count for imported documents
imported_count = 0
# Get all subdirectories
try:
subdirs = [os.path.join(directory, d) for d in os.listdir(directory)
if os.path.isdir(os.path.join(directory, d))]
print(f"Found {len(subdirs)} category directories")
# Process each directory
for subdir in subdirs:
category = os.path.basename(subdir)
print(f"Processing directory: {category}")
# Extract cases from the directory
cases = extract_case_data_from_directory(subdir)
# Add each case as a document
for case in cases:
doc_id = add_document(
title=case['title'],
content=case['content'],
source=case['source'],
doc_type=case['doc_type']
)
# Generate and store embedding
embedding = generate_embedding(f"{case['title']} {case['content']}")
store_embedding(doc_id, embedding)
print(f"Added document: {case['title']}")
imported_count += 1
except Exception as e:
print(f"Error scanning directories: {e}")
return imported_count
def import_sql_data_to_db():
"""Import SQL files from Data directory into the database"""
data_dir = os.path.join(os.getcwd(), 'Data')
print(f"Scanning directory: {data_dir}")
sql_files = scan_directory_for_sql_files(data_dir)
print(f"Found {len(sql_files['info'])} info files, {len(sql_files['allegation'])} allegation files, {len(sql_files['person'])} person files")
# Import info files
for file_path in sql_files['info']:
print(f"Importing info from {file_path}")
statements = extract_sql_inserts(file_path, 'LT_LKK_INFO')
execute_sql_statements(statements)
# Import allegation files
for file_path in sql_files['allegation']:
print(f"Importing allegations from {file_path}")
statements = extract_sql_inserts(file_path, 'LT_LKK_ALLEGATION')
execute_sql_statements(statements)
# Import person files
for file_path in sql_files['person']:
print(f"Importing persons from {file_path}")
statements = extract_sql_inserts(file_path, 'LT_LKK_PERSON_INVOLVE')
execute_sql_statements(statements)
print("SQL data import complete!")
# Import directly from directories
print("Importing data directly from directories...")
dir_docs = import_data_from_directory(data_dir)
print(f"Imported {dir_docs} documents from directories")
# Also import PDF files
print("Looking for PDF files...")
pdf_docs = import_pdf_files(data_dir)
print(f"Imported {pdf_docs} PDF documents")
def check_tables(db_config, label):
"""Check tables in the specified database"""
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor()
# Get all tables
cursor.execute("SHOW TABLES;")
tables = cursor.fetchall()
print(f"\n{label} tables in database {db_config['database']}:")
for table in tables:
table_name = table[0]
# Count records
cursor.execute(f"SELECT COUNT(*) FROM {table_name};")
count = cursor.fetchone()[0]
print(f" {table_name}: {count} records")
cursor.close()
conn.close()
def convert_user_data_to_documents():
"""Convert user data to documents in our application"""
# Import required modules
sys.path.append('.') # Add current directory to path
try:
from db.db_utils import add_document, store_embedding
from embedding.embedding_service_http import generate_embedding
except Exception as e:
print(f"Error importing required modules: {e}")
return
# Connect to the source database
source_conn = get_db_connection()
source_cursor = source_conn.cursor(dictionary=True)
# Get all users with their details and preferences - adjusted for actual schema
try:
query = """
SELECT
u.user_id, u.username, u.email, u.created_at,
ud.first_name, ud.last_name, ud.date_of_birth, ud.phone_number,
up.language, up.theme, up.notifications_enabled
FROM users u
LEFT JOIN user_details ud ON u.user_id = ud.user_id
LEFT JOIN user_preferences up ON u.user_id = up.user_id
"""
source_cursor.execute(query)
user_records = source_cursor.fetchall()
if not user_records:
print("No user records found in source database.")
return
print(f"Found {len(user_records)} user records to convert")
# Process each user as a document
user_count = 0
for user in user_records:
user_id = user.get('user_id')
# Create title with user information
username = user.get('username', f"User {user_id}")
title = f"User Profile: {username}"
# Compile content from specific fields based on the schema
content_parts = [
f"Username: {user.get('username', 'N/A')}",
f"Email: {user.get('email', 'N/A')}",
f"Created At: {user.get('created_at', 'N/A')}"
]
# Add user details if available
if user.get('first_name') or user.get('last_name'):
name = f"{user.get('first_name', '')} {user.get('last_name', '')}".strip()
content_parts.append(f"Name: {name}")
if user.get('date_of_birth'):
content_parts.append(f"Date of Birth: {user.get('date_of_birth')}")
if user.get('phone_number'):
content_parts.append(f"Phone Number: {user.get('phone_number')}")
# Add user preferences if available
if user.get('language'):
content_parts.append(f"Language: {user.get('language')}")
if user.get('theme'):
content_parts.append(f"Theme: {user.get('theme')}")
if user.get('notifications_enabled') is not None:
notifications = "Enabled" if user.get('notifications_enabled') else "Disabled"
content_parts.append(f"Notifications: {notifications}")
# Combine all content
content = "\n".join(content_parts)
# Add document to the database
print(f"Adding document for user {username}")
doc_id = add_document(
title=title,
content=content,
source=f"User ID: {user_id} from docdoc database",
doc_type="User Profile"
)
# Generate and store embedding
print(f"Generating embedding for document: {doc_id}")
embedding = generate_embedding(f"{title} {content}")
store_embedding(doc_id, embedding)
user_count += 1
print(f"Conversion complete! Created {user_count} user profile documents.")
except mysql.connector.Error as err:
print(f"Error accessing user data: {err}")
finally:
source_cursor.close()
source_conn.close()
def setup_document_tables():
"""Create the document-related tables if they don't exist"""
conn = get_db_connection()
cursor = conn.cursor()
# Create document search tables
schema_sql = """
-- Documents table for storing processed LKK data
CREATE TABLE IF NOT EXISTS documents (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
source VARCHAR(255),
doc_type VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
LKK_INFOID INT,
FOREIGN KEY (LKK_INFOID) REFERENCES lt_lkk_info(LKK_INFOID)
);
-- Embeddings table for semantic search
CREATE TABLE IF NOT EXISTS embeddings (
id INT AUTO_INCREMENT PRIMARY KEY,
document_id INT NOT NULL,
embedding JSON NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (document_id) REFERENCES documents(id) ON DELETE CASCADE
);
-- Search history
CREATE TABLE IF NOT EXISTS search_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
query TEXT NOT NULL,
results JSON,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
"""
# Drop existing tables if they exist
cursor.execute("DROP TABLE IF EXISTS embeddings;")
cursor.execute("DROP TABLE IF EXISTS documents;")
cursor.execute("DROP TABLE IF EXISTS search_logs;")
# Execute schema SQL statements
for statement in schema_sql.split(';'):
if statement.strip():
try:
cursor.execute(statement + ';')
print(f"Executed: {statement[:50]}...")
except mysql.connector.Error as err:
print(f"Error executing statement: {err}")
conn.commit()
cursor.close()
conn.close()
def convert_lkk_to_documents():
"""Convert LKK data into searchable documents based on LLA_CASE_NO"""
# Import required modules for embeddings
sys.path.append('.')
try:
from embedding.embedding_service import generate_embedding
except Exception as e:
print(f"Error importing embedding service: {e}")
print("Falling back to HTTP-based embedding service...")
from embedding.embedding_service_http import generate_embedding
conn = get_db_connection()
cursor = conn.cursor(dictionary=True)
try:
# Step 1: Get all unique case numbers from allegations
cursor.execute("""
SELECT DISTINCT LLA_CASE_NO
FROM lt_lkk_allegation
WHERE LLA_CASE_NO IS NOT NULL AND LLA_CASE_NO != ''
""")
case_numbers = cursor.fetchall()
print(f"Found {len(case_numbers)} unique case numbers to process")
for case_number_row in case_numbers:
case_number = case_number_row['LLA_CASE_NO']
try:
# Step 2: For each case number, get all relevant data from allegations and info tables
cursor.execute("""
SELECT
i.*,
a.*
FROM lt_lkk_allegation a
JOIN lt_lkk_info i ON a.LKK_INFOID = i.LKK_INFOID
WHERE a.LLA_CASE_NO = %s
GROUP BY a.LLA_ALLEGATION_ID
""", (case_number,))
allegation_records = cursor.fetchall()
if not allegation_records:
print(f"No records found for case number {case_number}")
continue
# Get the first record to extract basic info
first_record = allegation_records[0]
lkk_infoid = first_record['LKK_INFOID']
# Step 3: Get person data separately
cursor.execute("""
SELECT LTL_PERSON_ID, LTL_DATA
FROM lt_lkk_person_involve
WHERE LKK_INFOID = %s
""", (lkk_infoid,))
person_records = cursor.fetchall()
involved_persons = []
for person in person_records:
person_id = person['LTL_PERSON_ID']
try:
# Parse person data from JSON
person_data = {}
if person['LTL_DATA']:
try:
person_data = json.loads(person['LTL_DATA'])
except:
print(f"Error parsing LTL_DATA JSON for person ID {person_id}")
# Instead of just showing the ID, include the full LTL_DATA content
person_info = f"Person ID: {person_id}"
# Add the full JSON data
if person['LTL_DATA']:
person_info = f"Person ID: {person_id}\nPerson Data: {person['LTL_DATA']}"
involved_persons.append(person_info)
except Exception as e:
print(f"Error processing person data for ID {person_id}: {e}")
# Start with basic case info
base_info = {
'case_number': case_number,
'file_number': first_record['LKK_FILE_NO'],
'status': first_record['LKK_STATUS'],
'dpp_suggestion': first_record['LKK_DPP_ANT_SUGGESTION'],
'hod_decision': first_record['LKK_HOD_DECISION'],
'lkk_infoid': lkk_infoid,
'created_date': first_record['LKK_CREATEDDATE']
}
# Title using case number
title = f"Case Number: {case_number}"
# Compile content
content_parts = [
f"File Number: {base_info['file_number']}",
f"Status: {base_info['status']}",
f"Case Number: {case_number}",
f"DPP Suggestion: {base_info['dpp_suggestion'] or 'None'}",
f"HOD Decision: {base_info['hod_decision'] or 'None'}",
"\n--- ALLEGATIONS ---"
]
# Add all allegations
for idx, record in enumerate(allegation_records, 1):
allegation_parts = [
f"\nALLEGATION #{idx}:",
f"Allegation ID: {record['LLA_ALLEGATION_ID']}",
f"Case Number: {record['LLA_CASE_NO']}",
f"Accused Name: {record['LLA_OKT_NAME'] or 'N/A'}",
f"Type: {record['LLA_TYPE'] or 'N/A'}",
f"Act ID: {record['LLA_ACT_ID'] or 'N/A'}",
f"Act Description: {record['LLA_ACT_DESC'] or 'N/A'}",
f"Section: {record['LLA_SECTION'] or 'N/A'}",
f"Date: {record['LLA_DATE']}",
f"Charge Notes: {record['LLA_CHARGE_NOTES'] or 'N/A'}",
f"Charge Type: {record['LKK_CHARGE_TYPE'] or 'N/A'}",
f"Charge Reason: {record['LLA_CHARGE_REASON'] or 'N/A'}",
f"Charged By: {record['LLA_CHARGE_BY'] or 'N/A'}"
]
content_parts.extend(allegation_parts)
# Add involved persons section
if involved_persons:
content_parts.append("\n--- INVOLVED PERSONS ---")
for person in involved_persons:
content_parts.append(person)
# Join all content
content = "\n".join(filter(None, content_parts))
# Insert into documents table
cursor.execute("""
INSERT INTO documents (title, content, source, doc_type, LKK_INFOID, created_at)
VALUES (%s, %s, %s, %s, %s, %s)
""", (
title,
content,
f"Case Number: {case_number}",
"Legal Case",
base_info['lkk_infoid'],
base_info['created_date']
))
doc_id = cursor.lastrowid
# Generate and store embedding
embedding = generate_embedding(f"{title} {content}")
# Convert numpy array to list if necessary
if isinstance(embedding, np.ndarray):
embedding = embedding.tolist()
cursor.execute("""
INSERT INTO embeddings (document_id, embedding)
VALUES (%s, %s)
""", (doc_id, json.dumps(embedding)))
conn.commit()
print(f"Processed case number {case_number} into document {doc_id}")
except Exception as e:
print(f"Error processing case number {case_number}: {e}")
conn.rollback()
except mysql.connector.Error as err:
print(f"Database error: {err}")
finally:
cursor.close()
conn.close()
if __name__ == "__main__":
# Ask for confirmation before proceeding
print("This script will convert LKK data into searchable documents.")
confirm = input("Do you want to proceed? (y/n): ")
if confirm.lower() != 'y':
print("Import cancelled.")
sys.exit(0)
# Set up document tables
setup_document_tables()
# Convert LKK data to documents
convert_lkk_to_documents()
print("\nData conversion completed successfully!")

29
db/schema.sql Normal file
View File

@ -0,0 +1,29 @@
CREATE DATABASE IF NOT EXISTS DOCUMENT_SEARCH;
USE DOCUMENT_SEARCH;
-- Documents table
CREATE TABLE IF NOT EXISTS DOCUMENTS (
ID INT AUTO_INCREMENT PRIMARY KEY,
TITLE VARCHAR(255) NOT NULL,
CONTENT TEXT NOT NULL,
SOURCE VARCHAR(255),
DOC_TYPE VARCHAR(50),
CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Embeddings table - store as JSON since MySQL doesn't have a vector type
CREATE TABLE IF NOT EXISTS EMBEDDINGS (
ID INT AUTO_INCREMENT PRIMARY KEY,
DOCUMENT_ID INT NOT NULL,
EMBEDDING JSON NOT NULL,
FOREIGN KEY (DOCUMENT_ID) REFERENCES DOCUMENTS(ID) ON DELETE CASCADE
);
-- Search history
CREATE TABLE IF NOT EXISTS SEARCH_LOGS (
ID INT AUTO_INCREMENT PRIMARY KEY,
QUERY TEXT NOT NULL,
RESULTS JSON,
CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

View File

@ -0,0 +1,41 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_ALLEGATION WHERE LKK_INFOID = '2463'
-- Date: 2025-03-11 17:18
*/
INSERT INTO LT_LKK_ALLEGATION (
`LLA_ALLEGATION_ID`,
`LKK_INFOID`,
`LLA_TYPE`,
`LLA_CASE_NO`,
`LLA_OKT_NAME`,
`LLA_ACT_ID`,
`LLA_ACT_DESC`,
`LLA_SECTION`,
`LLA_DATE`,
`LLA_CHARGE_NOTES`,
`LKK_CHARGE_TYPE`,
`CREATEDDATE`,
`CREATEDBY`,
`UPDATEDDATE`,
`UPDATEDBY`,
`LLA_CHARGE_REASON`,
`LLA_CHARGE_BY`
) VALUES (
6154,
'2463',
'charge1',
'JA-41LB-10-11/2023',
'SOORIYA MOOTHY A/L RAMIAH',
297,
'297/AKTA PENCEGAHAN JENAYAH 1959',
'Seksyen 15(2)(C) Akta Pencegahan Jenayah 1959 ',
NULL,
'<p style=\"margin-left:38px; text-align:justify\">&nbsp;</p>\n\n<p style=\"margin-left:38px; text-align:justify\"><em>&lsquo;Bahawa kamu pada 31 Disember 2020 jam lebih kurang 2.45 petang dapati telah meninggalkan kawasan Mukim Bandar Padang Endau, Daerah Mersing dengan berada di hadapan Sekolah Kebangsaan Tanjung Gemok, dalam Daerah Rompin iaitu diluar kawasan Mukim Bandar Padang Endau sebagai seorang yang ditempatkan dibawah pengawasan polis Seksyen 15 APJ 1959 [03:26] KDN ULPJK as 7004/4/1824 dikehendaki tinggal dalam kawasan Mukim Bandar Padang Endau Daerah Mersing selama 4 tahun mulai 5 September 2019 sehingga 4 September 2023 tidak boleh meninggalkan Mukim Bandar Padang Endau tanpa kebenaran bertulis daripada Ketua Polis Johor. Hendaklah sentiasa memberitahu dimana &ndash; mana rumah atau tempat di mana kamu tinggal kepada Ketua Polis Daerah Mersing. Kamu hendaklah berada di dalam rumah atau tempat di mana kamu tinggal di antara jam 8 malam dan 6 pagi melainkan mendapat kebenaran khas daripada Ketua Polis Daerah Mersing dan hendaklah melaporkan diri kepada Balai Polis Endau pada setiap Isnin, Rabu dan Jumaat pada tahun pertama. Isnin dan Khamis pada tahun kedua, ketiga dan keempat mengikut Perintah Pengawasan Polis yang dilanjutkan oleh Menteri Dalam Negeri Malaysia. Kamu telah didapati melanggar syarat tersebut kerana berada di luar kawasan Mukim Bandar Padang Endau Daerah Mersing Negeri Johor tanpa kebenaran secara bertulis daripada Ketua Polis Johor. Oleh yang demikian, kamu telah melakukan kesalahan di bawah Seksyen 15 (2) (c) Akta Pencegahan Jenayah 1959 dan boleh dihukum dibawah Seksyen 15 (4) Akta Pencegahan Jenayah 1959. </em></p>\n\n<p style=\"margin-left:38px; text-align:justify\">&nbsp;</p>\n',
NULL,
'2024-08-13 11:16:31',
'ahmad.khairuddin',
NULL,
NULL,
NULL,
NULL
);

113
draft/LT_LKK_INFO 1.sql Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,57 @@
/*
-- Query: SELECT * FROM ilims_usr.LT_LKK_PERSON_INVOLVE WHERE LKK_INFOID = '2463'
-- Date: 2025-03-11 17:19
*/
INSERT INTO LT_LKK_PERSON_INVOLVE (
`LTL_PERSON_ID`,
`LTL_DATA`,
`LKK_INFOID`,
`CREATEDDATE`,
`CREATEDBY`,
`UPDATEDDATE`,
`UPDATEDBY`
) VALUES (
5250,
'{\"peranan\": \"Pesuruhjaya Kehakiman\", \"category\": \"corum\", \"namaPihak\": \"Y.A. Puan Suriyati Hasimah binti Mohd Hashim\"}',
2463,
'2024-08-13 11:08:00',
'ahmad.khairuddin',
NULL,
NULL
);
INSERT INTO LT_LKK_PERSON_INVOLVE (
`LTL_PERSON_ID`,
`LTL_DATA`,
`LKK_INFOID`,
`CREATEDDATE`,
`CREATEDBY`,
`UPDATEDDATE`,
`UPDATEDBY`
) VALUES (
5251,
'{\"noKP\": \"-\", \"negaraO\": \"MYS\", \"poskodO\": \"81100\", \"category\": \"appellant\", \"daerahId\": \"0102\", \"negeriId\": \"01\", \"daerahDesc\": \"JOHOR BAHRU\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"JOHOR\", \"guamanAgensi\": \"PEJABAT PENASIHAT UNDANG-UNDANG NEGERI JOHOR\", \"namaPeguamTpr\": \"-\", \"officeAddressO\": \"Aras 2, Bangunan Dato Jaafar Muhammad,\\r\\nKota Iskandar\\r\\n79100 Iskandar Puteri\\r\\nJohor Darul Takzim\", \"officePhoneNoO\": \"07-266 1104\", \"PerayuRespondenId\": \"Perayu\", \"namaPerayuResponden\": \"AHMAD KHAIRUDDIN BIN KHALID\", \"emailPerayuResponden\": \"ahmad.khairuddin@agc.gov.my\", \"noPhonePerayuResponden\": \"014-3110401\"}',
2463,
'2024-08-13 11:10:43',
'ahmad.khairuddin',
NULL,
NULL
);
INSERT INTO LT_LKK_PERSON_INVOLVE (
`LTL_PERSON_ID`,
`LTL_DATA`,
`LKK_INFOID`,
`CREATEDDATE`,
`CREATEDBY`,
`UPDATEDDATE`,
`UPDATEDBY`
) VALUES (
5253,
'{\"noKP\": \"801019-04-5285\", \"negaraO\": \"MYS\", \"poskodO\": \"7300\", \"category\": \"respondent\", \"daerahId\": \"0401\", \"negeriId\": \"04\", \"daerahDesc\": \"MELAKA TENGAH\", \"negaraDesc\": \"MALAYSIA\", \"negeriDesc\": \"MELAKA\", \"guamanAgensi\": \"Tetuan Suresh Balakrishnan & Co. \", \"namaPeguamTpr\": \"Suresh\", \"officeAddressO\": \"204, Rumah Awam, \\r\\nPulau Sebang 3, \\r\\n73000 Tampin, Melaka \", \"officePhoneNoO\": \"-\", \"PerayuRespondenId\": \"Responden\", \"namaPerayuResponden\": \"SOORIYA MOOTHY A/L RAMIAH\", \"emailPerayuResponden\": \"-\", \"noPhonePerayuResponden\": \"-\"}',
2463,
'2024-08-13 11:12:57',
'ahmad.khairuddin',
NULL,
NULL
);

View File

@ -0,0 +1,49 @@
import numpy as np
from openai import OpenAI
import httpx
from config import OPENAI_API_KEY, OPENAI_EMBEDDING_MODEL
import os
# Print API key for debugging (only first few characters)
api_key = OPENAI_API_KEY
if api_key:
masked_key = api_key[:8] + "..." + api_key[-4:]
print(f"OpenAI API Key: {masked_key}")
else:
print("OpenAI API Key not found!")
# Initialize OpenAI client with explicitly configured httpx client to avoid proxy issues
http_client = httpx.Client()
client = OpenAI(api_key=OPENAI_API_KEY, http_client=http_client)
def generate_embedding(text):
"""Generate an embedding vector for text using OpenAI"""
response = client.embeddings.create(
input=text,
model=OPENAI_EMBEDDING_MODEL
)
# Return embedding as numpy array
return np.array(response.data[0].embedding)
def cosine_similarity(vec_a, vec_b):
"""Calculate cosine similarity between two vectors"""
return np.dot(vec_a, vec_b) / (np.linalg.norm(vec_a) * np.linalg.norm(vec_b))
def search_similar_documents(query_embedding, document_embeddings, top_k=5, threshold=0.7):
"""Find documents most similar to query based on embedding similarity"""
similarities = []
for doc in document_embeddings:
doc_embedding = np.array(doc['embedding'])
similarity = cosine_similarity(query_embedding, doc_embedding)
# Only include documents above similarity threshold
if similarity >= threshold:
similarities.append((doc, similarity))
# Sort by similarity (highest first)
similarities.sort(key=lambda x: x[1], reverse=True)
# Return top_k results
return similarities[:top_k]

View File

@ -0,0 +1,56 @@
import numpy as np
import requests
import json
import os
from config import OPENAI_API_KEY, OPENAI_EMBEDDING_MODEL
def generate_embedding(text):
"""Generate an embedding vector for text using OpenAI API via direct HTTP request"""
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {OPENAI_API_KEY}"
}
payload = {
"input": text,
"model": OPENAI_EMBEDDING_MODEL
}
print(f"Requesting embedding using model: {OPENAI_EMBEDDING_MODEL}")
response = requests.post(
"https://api.openai.com/v1/embeddings",
headers=headers,
json=payload
)
if response.status_code != 200:
raise Exception(f"Error from OpenAI API: {response.text}")
result = response.json()
print(f"Successfully generated embedding of dimension: {len(result['data'][0]['embedding'])}")
# Return the embedding as a numpy array
return np.array(result["data"][0]["embedding"])
def cosine_similarity(vec_a, vec_b):
"""Calculate cosine similarity between two vectors"""
return np.dot(vec_a, vec_b) / (np.linalg.norm(vec_a) * np.linalg.norm(vec_b))
def search_similar_documents(query_embedding, document_embeddings, top_k=5, threshold=0.7):
"""Find documents most similar to query based on embedding similarity"""
similarities = []
for doc in document_embeddings:
doc_embedding = np.array(doc['embedding'])
similarity = cosine_similarity(query_embedding, doc_embedding)
# Only include documents above similarity threshold
if similarity >= threshold:
similarities.append((doc, similarity))
# Sort by similarity (highest first)
similarities.sort(key=lambda x: x[1], reverse=True)
# Return top_k results
return similarities[:top_k]

View File

@ -0,0 +1,149 @@
import os
import json
import numpy as np
from typing import List, Dict, Any
from db.db_utils import get_all_documents, get_document
import openai
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Configure OpenAI
openai.api_key = os.getenv('OPENAI_API_KEY')
EMBEDDING_MODEL = "text-embedding-ada-002"
CHAT_MODEL = "gpt-3.5-turbo"
def generate_embedding(text: str) -> List[float]:
"""Generate embedding for the given text using OpenAI's API"""
response = openai.Embedding.create(
model=EMBEDDING_MODEL,
input=text
)
return response['data'][0]['embedding']
def cosine_similarity(a: List[float], b: List[float]) -> float:
"""Calculate cosine similarity between two vectors"""
a = np.array(a)
b = np.array(b)
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
def enhance_search_query(query: str) -> str:
"""Enhance the search query using OpenAI's chat model"""
try:
messages = [
{"role": "system", "content": "You are a legal search expert. Your task is to enhance the given search query to improve search results in a legal document database. Keep the enhanced query concise and focused on the key legal concepts and facts."},
{"role": "user", "content": f"Please enhance this search query for searching in legal documents: {query}"}
]
response = openai.ChatCompletion.create(
model=CHAT_MODEL,
messages=messages,
temperature=0.3,
max_tokens=100
)
enhanced_query = response['choices'][0]['message']['content'].strip()
return enhanced_query
except Exception as e:
print(f"Error enhancing query: {e}")
return query
def get_relevant_documents(query: str, documents: List[Dict[str, Any]], top_k: int = 5) -> List[Dict[str, Any]]:
"""Get the most relevant documents for the query"""
# Generate embedding for the query
query_embedding = generate_embedding(query)
# Calculate similarities with all documents
results = []
for doc in documents:
try:
doc_embedding = json.loads(doc['embedding'])
similarity = cosine_similarity(query_embedding, doc_embedding)
# Create a preview of the content
content = doc['content']
content_preview = content[:300] + "..." if len(content) > 300 else content
results.append({
'id': doc['id'],
'title': doc['title'],
'content': doc['content'],
'content_preview': content_preview,
'doc_type': doc['doc_type'],
'similarity': similarity
})
except Exception as e:
print(f"Error processing document {doc.get('id')}: {e}")
continue
# Sort by similarity and return top_k results
results.sort(key=lambda x: x['similarity'], reverse=True)
return results[:top_k]
def generate_answer(query: str, relevant_docs: List[Dict[str, Any]]) -> str:
"""Generate an answer based on the query and relevant documents"""
# Prepare context from relevant documents
context = "\n\n".join([
f"Document {i+1}:\nTitle: {doc['title']}\nContent: {doc['content']}"
for i, doc in enumerate(relevant_docs)
])
try:
messages = [
{"role": "system", "content": """You are a legal assistant helping to answer questions about legal cases.
Use the provided document context to answer questions accurately and professionally.
If the information is not available in the context, say so clearly."""},
{"role": "user", "content": f"Context:\n{context}\n\nQuestion: {query}\n\nPlease provide a clear and accurate answer based on the above context:"}
]
response = openai.ChatCompletion.create(
model=CHAT_MODEL,
messages=messages,
temperature=0.5,
max_tokens=500
)
return response['choices'][0]['message']['content'].strip()
except Exception as e:
print(f"Error generating answer: {e}")
return "I apologize, but I encountered an error while generating the answer. Please try rephrasing your question."
def enhanced_rag_search(query: str, profile_search: bool = False) -> Dict[str, Any]:
"""
Perform enhanced RAG search on the documents
Args:
query: The search query
profile_search: Whether to search in user profiles (not used currently)
Returns:
Dict containing search results and generated answer
"""
try:
# Enhance the query
enhanced_query = enhance_search_query(query)
# Get all documents with their embeddings
documents = get_all_documents(include_embeddings=True)
# Get relevant documents
relevant_docs = get_relevant_documents(enhanced_query, documents)
# Generate answer
answer = generate_answer(query, relevant_docs)
return {
"query": query,
"enhanced_query": enhanced_query,
"documents": relevant_docs,
"answer": answer
}
except Exception as e:
print(f"Error in enhanced RAG search: {e}")
return {
"query": query,
"enhanced_query": query,
"documents": [],
"answer": "I apologize, but I encountered an error while processing your query. Please try again."
}

100
embedding/rag_service.py Normal file
View File

@ -0,0 +1,100 @@
import json
import requests
from embedding.embedding_service_http import generate_embedding, search_similar_documents
from db.db_utils import get_all_embeddings, log_search
from config import OPENAI_API_KEY, OPENAI_CHAT_MODEL, MAX_SEARCH_RESULTS, SIMILARITY_THRESHOLD
def rag_search(query):
"""
Perform RAG (Retrieval Augmented Generation) search:
1. Generate embedding for the query
2. Find similar documents
3. Generate an answer based on retrieved documents
"""
# Generate embedding for the query
query_embedding = generate_embedding(query)
# Get all document embeddings from the database
document_embeddings = get_all_embeddings()
# Find similar documents
similar_docs = search_similar_documents(
query_embedding,
document_embeddings,
top_k=MAX_SEARCH_RESULTS,
threshold=SIMILARITY_THRESHOLD
)
# Extract document contents for context
contexts = []
result_docs = []
print("Debug - Similar docs:", [(doc['document_id'], doc['title']) for doc, _ in similar_docs])
for doc, similarity in similar_docs:
# Add document to contexts for the LLM
contexts.append(f"Document Title: {doc['title']}\nContent: {doc['content']}\nSource: {doc['source'] or 'Unknown'}\nRelevance: {similarity:.4f}")
# Add document to results for display - ensure we use the right ID
result_docs.append({
"id": doc['document_id'], # This should be the ID from documents table
"title": doc['title'],
"content_preview": doc['content'][:200] + "..." if len(doc['content']) > 200 else doc['content'],
"source": doc['source'],
"similarity": float(similarity)
})
# Generate answer using LLM with retrieved contexts
if contexts:
context_text = "\n\n---\n\n".join(contexts)
# Prepare the system message
system_message = """
You are a helpful assistant that answers questions based on the provided document contexts.
If the context doesn't contain relevant information, say so clearly.
If the information is incomplete, explain what's missing.
Always cite your sources when providing information.
Format your answers to be clear and concise.
Always answer in formal Bahasa Malaysia.
"""
# Use direct HTTP request to OpenAI API instead of client library
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {OPENAI_API_KEY}"
}
payload = {
"model": OPENAI_CHAT_MODEL,
"messages": [
{"role": "system", "content": system_message},
{"role": "user", "content": f"Context documents:\n\n{context_text}\n\nBased on these documents, please answer the following query: {query}"}
],
"temperature": 0.5
}
print(f"Requesting chat completion using model: {OPENAI_CHAT_MODEL}")
response = requests.post(
"https://api.openai.com/v1/chat/completions",
headers=headers,
json=payload
)
if response.status_code != 200:
raise Exception(f"Error from OpenAI API: {response.text}")
result = response.json()
answer = result["choices"][0]["message"]["content"]
else:
answer = "I couldn't find any relevant documents to answer your question."
# Log the search
search_results = {
"query": query,
"documents": result_docs,
"answer": answer
}
log_search(query, search_results)
return search_results

11
requirements.txt Normal file
View File

@ -0,0 +1,11 @@
mysql-connector-python==8.1.0
openai==1.10.0
numpy==1.24.3
python-dotenv==1.0.0
langchain==0.0.335
streamlit==1.27.2
tiktoken==0.5.1
fastapi==0.104.1
uvicorn==0.24.0
pydantic==2.4.2
python-multipart==0.0.6

87
utils/text_processing.py Normal file
View File

@ -0,0 +1,87 @@
import re
def preprocess_text(text):
"""Clean and preprocess text for embedding"""
# Convert to lowercase
text = text.lower()
# Remove extra whitespace
text = re.sub(r'\s+', ' ', text).strip()
# Remove special characters (keep alphanumeric, spaces, and basic punctuation)
text = re.sub(r'[^\w\s.,?!-]', '', text)
return text
def chunk_text(text, max_chunk_size=1000, overlap=100):
"""Split text into chunks with overlap for processing long documents"""
# Split text into sentences
sentences = re.split(r'(?<=[.!?])\s+', text)
chunks = []
current_chunk = []
current_size = 0
for sentence in sentences:
sentence_size = len(sentence)
if current_size + sentence_size <= max_chunk_size:
current_chunk.append(sentence)
current_size += sentence_size
else:
# Add the current chunk to the list of chunks
if current_chunk:
chunks.append(' '.join(current_chunk))
# Create a new chunk, potentially with overlap
if overlap > 0 and current_chunk:
# Calculate how many sentences to keep for overlap
overlap_size = 0
overlap_sentences = []
for s in reversed(current_chunk):
if overlap_size + len(s) <= overlap:
overlap_sentences.insert(0, s)
overlap_size += len(s)
else:
break
current_chunk = overlap_sentences + [sentence]
current_size = overlap_size + sentence_size
else:
current_chunk = [sentence]
current_size = sentence_size
# Add the last chunk if it exists
if current_chunk:
chunks.append(' '.join(current_chunk))
return chunks
def extract_keywords(text, max_keywords=5):
"""Extract key terms from text using basic frequency analysis"""
# Remove stopwords and extract important terms
stopwords = {'a', 'an', 'the', 'and', 'or', 'but', 'if', 'because', 'as', 'what',
'when', 'where', 'how', 'who', 'which', 'this', 'that', 'to', 'in',
'on', 'for', 'with', 'by', 'about', 'is', 'are', 'was', 'were', 'be',
'been', 'being', 'have', 'has', 'had', 'do', 'does', 'did', 'of'}
# Normalize and tokenize
words = re.findall(r'\b[a-z]{3,}\b', text.lower())
# Remove stopwords
words = [word for word in words if word not in stopwords]
# Count word frequencies
word_counts = {}
for word in words:
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
# Sort by frequency
sorted_words = sorted(word_counts.items(), key=lambda x: x[1], reverse=True)
# Return top keywords
return [word for word, count in sorted_words[:max_keywords]]