diff --git a/.idea/sonarlint/issuestore/0/1/019dba2e3e3ca39be57cdeda0181255f2a108089 b/.idea/sonarlint/issuestore/0/1/019dba2e3e3ca39be57cdeda0181255f2a108089
new file mode 100644
index 0000000..a8478c3
--- /dev/null
+++ b/.idea/sonarlint/issuestore/0/1/019dba2e3e3ca39be57cdeda0181255f2a108089
@@ -0,0 +1,19 @@
+
+o	Web:S6853/"/A form label must be associated with a control.(“Ì�ÂþÿÿÿÿJ$917c4899-09a2-46ce-bbe4-a231f08d85ee
+Yphp:S113"'Add a new line at the end of this file.J$6c731b40-9164-48a2-8980-e25ad4c17c6c
+Ž	php:S1192 "SDefine a constant instead of duplicating this literal "/img/popupIcon.php" 3 times.(Å¯àžJ$19e1ff6f-1eaa-4c97-854b-faf239ad0738
+a	php:S2003 "&Replace "include" with "include_once".(Å¯àžJ$bc59bebc-78a6-4fd3-b186-d6f7fc0a2919
+a	php:S2003,"&Replace "include" with "include_once".(Å¯àžJ$24679663-4f41-412b-b5c4-d1bd3e7b29b5
+a	php:S20031"&Replace "include" with "include_once".(Å¯àžJ$b27bf36e-67fd-436f-a314-752f7f27c345
+a	php:S2003]"&Replace "include" with "include_once".(Ó‘©ØJ$1948a547-230f-42bc-a2b9-41e9d510800f
+a	php:S2003a"&Replace "include" with "include_once".(ô‚�ÞJ$d5b67814-ffa6-4ad4-bd54-e0b9a0ace0e3
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$7c71c611-3764-4269-9fb2-90f1ffec7f25
+‘	php:S4833	"QReplace "include_once" with namespace import mechanism through the "use" keyword.(‰«ÀŸÿÿÿÿÿJ$a2effcfe-17ed-410a-aa87-fa895050e134
+‘	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(îœ‘›üÿÿÿÿJ$32920d2b-d0df-4709-b3ab-3a1e04f1463e
+‡	php:S4833 "LReplace "include" with namespace import mechanism through the "use" keyword.(Å¯àžJ$8d520cb9-d0c4-4881-afe4-dd508555a9aa
+‡	php:S4833,"LReplace "include" with namespace import mechanism through the "use" keyword.(Å¯àžJ$fbbcc677-d25a-45ae-8305-68be271fe6d0
+‡	php:S48331"LReplace "include" with namespace import mechanism through the "use" keyword.(Å¯àžJ$afd16ed7-8706-4c6b-8a3d-cfe39df32f97
+‡	php:S4833]"LReplace "include" with namespace import mechanism through the "use" keyword.(Ó‘©ØJ$399f6e86-f05c-46be-8cac-5a6dba078a34
+‡	php:S4833a"LReplace "include" with namespace import mechanism through the "use" keyword.(ô‚�ÞJ$2a03a0af-82ff-47f0-8d3d-0d5836d62a09
+‘	php:S4833}"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ÉÙ€îøÿÿÿÿJ$438f1167-e6ab-4626-8474-4f3dee939bcb
+�	php:S4833€"QReplace "include_once" with namespace import mechanism through the "use" keyword.(òÀæÆJ$964e44ec-7254-4341-be92-0e29af7df544
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/4/045883b4f5ac6b17d1a3ec1336a89225264923fc b/.idea/sonarlint/issuestore/0/4/045883b4f5ac6b17d1a3ec1336a89225264923fc
index d47b9af..5591d16 100644
--- a/.idea/sonarlint/issuestore/0/4/045883b4f5ac6b17d1a3ec1336a89225264923fc
+++ b/.idea/sonarlint/issuestore/0/4/045883b4f5ac6b17d1a3ec1336a89225264923fc
@@ -1,89 +1,89 @@
 
-ephp:S103˜"KSplit this 121 characters long line (which is greater than 120 authorized).(¾�¬Äÿÿÿÿÿ
-`php:S103™"KSplit this 132 characters long line (which is greater than 120 authorized).(¥Æ‹£
-ephp:S103¤"KSplit this 127 characters long line (which is greater than 120 authorized).(ÊìÀ®øÿÿÿÿ
-`php:S103¥"KSplit this 131 characters long line (which is greater than 120 authorized).(ŸŸÆº
-_php:S103Þ"KSplit this 145 characters long line (which is greater than 120 authorized).(Ñ°£
-`php:S103î"KSplit this 146 characters long line (which is greater than 120 authorized).(Öï�û
-ephp:S103«"KSplit this 121 characters long line (which is greater than 120 authorized).(ÒˆøÖüÿÿÿÿ
-`php:S103¬"KSplit this 124 characters long line (which is greater than 120 authorized).(°â¶‹
-ephp:S103­"KSplit this 124 characters long line (which is greater than 120 authorized).(é’É«ùÿÿÿÿ
-ephp:S103¸"KSplit this 127 characters long line (which is greater than 120 authorized).(ÊìÀ®øÿÿÿÿ
-`php:S103¹"KSplit this 131 characters long line (which is greater than 120 authorized).(ŸŸÆº
-ephp:S103µ"KSplit this 157 characters long line (which is greater than 120 authorized).(‹²¶�ùÿÿÿÿ
-`php:S103×"KSplit this 165 characters long line (which is greater than 120 authorized).(�ËŽ²
-`php:S103‰"KSplit this 127 characters long line (which is greater than 120 authorized).(ƒõ¼´
-`php:S103š"KSplit this 127 characters long line (which is greater than 120 authorized).(ƒõ¼´
->php:S108ó")Either remove or fill this block of code.(å¥ž‡
-C	php:S1781")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-C	php:S17811")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-C	php:S1781I")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-C	php:S1781\")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781®")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781·")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿ
-D	php:S1781½")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿ
-D	php:S1781Â")Write this "Array" keyword in lower case.(¡›Þçøÿÿÿÿ
-D	php:S1781‚")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781Â")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781Í")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿ
-D	php:S1781Ð")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿ
-D	php:S1781Ó")Write this "Array" keyword in lower case.(¡›Þçøÿÿÿÿ
-D	php:S1781ö")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781ž")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781º")Write this "Array" keyword in lower case.(£³Ûëúÿÿÿÿ
-D	php:S1781ß")Write this "Array" keyword in lower case.(£³Ûëúÿÿÿÿ
-D	php:S1781ç")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-D	php:S1781¥")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ
-3php:S113"'Add a new line at the end of this file.
-_	php:S1871’"IThis case's code block is the same as the block for the case on line 514.(Œ¢øð
-s	php:S1192""_Define a constant instead of duplicating this literal "ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤." 4 times.(ä‘™"
-6	php:S1116 "Remove this empty statement.(ôŸŽìúÿÿÿÿ
-6	php:S1116N"Remove this empty statement.(ôŸŽìúÿÿÿÿ
-6	php:S1116e"Remove this empty statement.(ôŸŽìúÿÿÿÿ
-7	php:S1116Ž"Remove this empty statement.(ôŸŽìúÿÿÿÿ
-7	php:S1116ÿ"Remove this empty statement.(ôŸŽìúÿÿÿÿ
-B	php:S1862o"(This case duplicates the one on line 90.(‘ÐÙ¥øÿÿÿÿ
-W	php:S1793˜"<Replace this "else if" keyword sequence by "elseif" keyword.(¾�¬Äÿÿÿÿÿ
-R	php:S1793¬"<Replace this "else if" keyword sequence by "elseif" keyword.(°â¶‹
-W	php:S1793­"<Replace this "else if" keyword sequence by "elseif" keyword.(é’É«ùÿÿÿÿ
-3php:S125i"Remove this commented out code.(Ø“§�
-8php:S125p"Remove this commented out code.(ã�­Ñýÿÿÿÿ
-9php:S125Š"Remove this commented out code.(òôóÃûÿÿÿÿ
-9php:S125œ"Remove this commented out code.(³Ÿé¼ùÿÿÿÿ
-9php:S125¤"Remove this commented out code.(ÊìÀ®øÿÿÿÿ
-9php:S125Ù"Remove this commented out code.(Û°“—ýÿÿÿÿ
-3php:S125Þ"Remove this commented out code.(Ñ°£
-4php:S125ñ"Remove this commented out code.(ÊÖ¥¬
-9php:S125ö"Remove this commented out code.(‹úë‰øÿÿÿÿ
-9php:S125ž"Remove this commented out code.(òôóÃûÿÿÿÿ
-9php:S125°"Remove this commented out code.(³Ÿé¼ùÿÿÿÿ
-9php:S125¸"Remove this commented out code.(ÊìÀ®øÿÿÿÿ
-9php:S125ã"Remove this commented out code.(¶ð‡þûÿÿÿÿ
-9php:S125å"Remove this commented out code.(£×±Æúÿÿÿÿ
-9php:S125é"Remove this commented out code.(‹úë‰øÿÿÿÿ
-9php:S125±"Remove this commented out code.(Éîç°ýÿÿÿÿ
-4php:S125Æ"Remove this commented out code.(ÊÖ¥¬
-9php:S125É"Remove this commented out code.(ùäã“þÿÿÿÿ
-4php:S125Ð"Remove this commented out code.(Ô³‹�
-4php:S125“"Remove this commented out code.(Àâü¶
-9php:S125ª"Remove this commented out code.(¶ð‡þûÿÿÿÿ
-9php:S125±"Remove this commented out code.(‹®€Åûÿÿÿÿ
-4php:S125º"Remove this commented out code.(«�òÊ
-Dphp:S121)"0Add curly braces around the nested statement(s).(¦×é°
-Ephp:S121„"0Add curly braces around the nested statement(s).(ŸØ€¸
-Jphp:S121”"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿ
-Jphp:S121•"0Add curly braces around the nested statement(s).(²®Íïþÿÿÿÿ
-Jphp:S121 "0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿ
-Jphp:S121¡"0Add curly braces around the nested statement(s).(²®Íïþÿÿÿÿ
-Ephp:S121˜"0Add curly braces around the nested statement(s).(ŸØ€¸
-Jphp:S121¨"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿ
-Jphp:S121©"0Add curly braces around the nested statement(s).(²®Íïþÿÿÿÿ
-Jphp:S121´"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿ
-Jphp:S121µ"0Add curly braces around the nested statement(s).(²®Íïþÿÿÿÿ
-e	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�
-k	php:S4833	"QReplace "include_once" with namespace import mechanism through the "use" keyword.(¬Üš‰üÿÿÿÿ
-f	php:S4833
-"QReplace "include_once" with namespace import mechanism through the "use" keyword.(´çû¤
-Pphp:S131"7Add a "case default" clause to this "switch" statement.(úÓÝõþÿÿÿÿ
-Kphp:S131@"7Add a "case default" clause to this "switch" statement.(ÓœØŸ
-Lphp:S131«"7Add a "case default" clause to this "switch" statement.(ÓœØŸ
\ No newline at end of file
+‹php:S103˜"KSplit this 121 characters long line (which is greater than 120 authorized).(¾�¬ÄÿÿÿÿÿJ$715d6b76-037c-4438-8486-a633ab165e4f
+†php:S103™"KSplit this 132 characters long line (which is greater than 120 authorized).(¥Æ‹£J$9f9f889b-db6e-4018-9ed5-74ee7beac354
+‹php:S103¤"KSplit this 127 characters long line (which is greater than 120 authorized).(ÊìÀ®øÿÿÿÿJ$d1a77627-6cd5-447a-bb0b-6e148e72beb0
+†php:S103¥"KSplit this 131 characters long line (which is greater than 120 authorized).(ŸŸÆºJ$3535383d-109d-4f70-918e-76ef9e326afe
+…php:S103Þ"KSplit this 145 characters long line (which is greater than 120 authorized).(Ñ°£J$9fa00157-b876-4aa5-9b32-a6bac0ebeec6
+†php:S103î"KSplit this 146 characters long line (which is greater than 120 authorized).(Öï�ûJ$dc6b7bf8-d470-4e86-b28f-7f52ff543933
+‹php:S103«"KSplit this 121 characters long line (which is greater than 120 authorized).(ÒˆøÖüÿÿÿÿJ$bec0d48a-7e30-4fb9-a9c1-a05de5e78123
+†php:S103¬"KSplit this 124 characters long line (which is greater than 120 authorized).(°â¶‹J$83ded7dc-7fde-4eb5-8d14-4a722c0f9a79
+‹php:S103­"KSplit this 124 characters long line (which is greater than 120 authorized).(é’É«ùÿÿÿÿJ$c3c2800e-f825-4116-b664-7281174ecf3c
+‹php:S103¸"KSplit this 127 characters long line (which is greater than 120 authorized).(ÊìÀ®øÿÿÿÿJ$9223fd6a-95b3-4497-9660-c999d8807334
+†php:S103¹"KSplit this 131 characters long line (which is greater than 120 authorized).(ŸŸÆºJ$01f76ef3-9305-4df3-a4c5-848b5e6f15a9
+‹php:S103µ"KSplit this 157 characters long line (which is greater than 120 authorized).(‹²¶�ùÿÿÿÿJ$968fd3cc-b21b-4f28-ae4b-a74ed60f46c3
+†php:S103×"KSplit this 165 characters long line (which is greater than 120 authorized).(�ËŽ²J$85795513-322b-4001-bad4-b8918026a9d2
+†php:S103‰"KSplit this 127 characters long line (which is greater than 120 authorized).(ƒõ¼´J$9e26a335-78ad-4c54-a206-08412f6dca79
+†php:S103š"KSplit this 127 characters long line (which is greater than 120 authorized).(ƒõ¼´J$78b207ca-a697-48ff-8674-c21f264936aa
+dphp:S108ó")Either remove or fill this block of code.(å¥ž‡J$912e3e2c-2efe-4cd8-b411-3da42a4ec44c
+i	php:S1781")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$bd5ad3ea-15ec-4f8f-8de0-06a644aef0bb
+i	php:S17811")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$c17b2681-18b7-411f-8c86-f34bc4358df5
+i	php:S1781I")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$56c41216-1a85-4908-9066-6d702626ecc0
+i	php:S1781\")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$287015db-daf8-4b29-9ab7-057d2f8a36f4
+j	php:S1781®")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$9b4e9021-6d3e-431e-91c2-c4055649b617
+j	php:S1781·")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$c2eae629-0c65-4197-8eee-75aa513a7ce5
+j	php:S1781½")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$0503f7b1-4aac-4bd7-b71c-ac1e2aafb447
+j	php:S1781Â")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$1c2d0bea-9fe0-474d-bde8-9b57cc8a2586
+j	php:S1781‚")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$ebcdfb8c-b16a-4cbb-a950-2ed011f6fefd
+j	php:S1781Â")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$fcc9d8f3-746d-49d7-ae09-07c6f3d1366a
+j	php:S1781Í")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$e21bacf3-92cd-487d-a039-7e15e06a13c9
+j	php:S1781Ð")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$0b30cfd5-1e96-42b5-8f8a-2f123c7e94e1
+j	php:S1781Ó")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$b323b544-134d-483b-963d-bd01e12d20d5
+j	php:S1781ö")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$5918c21e-0298-4645-b601-9b0dbb0e60e0
+j	php:S1781ž")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$55b395a7-a1fc-49ad-ae2e-46740fcdacb6
+j	php:S1781º")Write this "Array" keyword in lower case.(£³ÛëúÿÿÿÿJ$fae2a6d2-271e-4cf9-97ee-518655065320
+j	php:S1781ß")Write this "Array" keyword in lower case.(£³ÛëúÿÿÿÿJ$fd711536-4e6d-42ad-9a36-449db947f5d0
+j	php:S1781ç")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$4e282eb3-e6a6-4798-afae-e6068877c616
+j	php:S1781¥")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$b342d643-ccd9-4f98-8677-537610b2711b
+Yphp:S113"'Add a new line at the end of this file.J$bdc7cb8f-83e4-473b-ab13-0b7da2de7636
+…	php:S1871’"IThis case's code block is the same as the block for the case on line 514.(Œ¢øðJ$98f204ee-2fe6-408e-b394-bd143f05487c
+™	php:S1192""_Define a constant instead of duplicating this literal "ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤." 4 times.(ä‘™"J$736d3695-2c6f-42ce-ba6d-f82b181ef084
+\	php:S1116 "Remove this empty statement.(ôŸŽìúÿÿÿÿJ$3beac12d-6c0c-406d-9f93-42da2d0f885b
+\	php:S1116N"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$ab86227d-cca7-43ad-8854-863323d6134a
+\	php:S1116e"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$eb4b780e-1770-400c-9f59-20ac000afaf9
+]	php:S1116Ž"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$f6e7ada9-875a-4a3b-af8f-55a3b96faaaf
+]	php:S1116ÿ"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$5a385df6-3157-4e71-a24c-1ab71fad15d2
+h	php:S1862o"(This case duplicates the one on line 90.(‘ÐÙ¥øÿÿÿÿJ$cc0aa28a-28b3-4188-a586-74c9a20d57a7
+}	php:S1793˜"<Replace this "else if" keyword sequence by "elseif" keyword.(¾�¬ÄÿÿÿÿÿJ$7adcadcd-cbce-4511-817c-a9a05bd60356
+x	php:S1793¬"<Replace this "else if" keyword sequence by "elseif" keyword.(°â¶‹J$49263693-9a93-4c1a-bba6-d1b49c870bc2
+}	php:S1793­"<Replace this "else if" keyword sequence by "elseif" keyword.(é’É«ùÿÿÿÿJ$b850482f-48c2-4d99-8b7b-253ddac24fc7
+Yphp:S125i"Remove this commented out code.(Ø“§�J$92a2fdfc-f11f-4bf1-813c-06ab9424dbbf
+^php:S125p"Remove this commented out code.(ã�­ÑýÿÿÿÿJ$5efedc6c-1ae9-4d45-bb33-379e543c5237
+_php:S125Š"Remove this commented out code.(òôóÃûÿÿÿÿJ$75bf5cf0-c03e-42ad-a47d-1342c4b1b71b
+_php:S125œ"Remove this commented out code.(³Ÿé¼ùÿÿÿÿJ$8c2ff9a1-7467-4174-bfb7-6c253e1d52b8
+_php:S125¤"Remove this commented out code.(ÊìÀ®øÿÿÿÿJ$af7025f3-d72e-48f5-b18c-8dd893acd2df
+_php:S125Ù"Remove this commented out code.(Û°“—ýÿÿÿÿJ$cd24282a-a005-4adb-8805-1af99a13b719
+Yphp:S125Þ"Remove this commented out code.(Ñ°£J$8d7188d5-0c30-401f-a6f3-f407d48157fb
+Zphp:S125ñ"Remove this commented out code.(ÊÖ¥¬J$6b7c1858-68a4-4b17-8296-325c768ca56e
+_php:S125ö"Remove this commented out code.(‹úë‰øÿÿÿÿJ$6b107f1b-d08b-4c09-99e4-a95ab09f0a5f
+_php:S125ž"Remove this commented out code.(òôóÃûÿÿÿÿJ$c634d1cc-bd4b-496d-a86a-59172d5ca951
+_php:S125°"Remove this commented out code.(³Ÿé¼ùÿÿÿÿJ$531348c1-5639-475b-b1ab-909330a766d1
+_php:S125¸"Remove this commented out code.(ÊìÀ®øÿÿÿÿJ$3d494349-40c7-44cf-a4ae-7db51c571742
+_php:S125ã"Remove this commented out code.(¶ð‡þûÿÿÿÿJ$fca6c4ed-2bc4-45c5-92b0-fb38a3cf0831
+_php:S125å"Remove this commented out code.(£×±ÆúÿÿÿÿJ$67cf0c48-66a4-4e71-9708-af4db81096ca
+_php:S125é"Remove this commented out code.(‹úë‰øÿÿÿÿJ$6546aec4-4b8b-4cae-bdfc-5391389e06f9
+_php:S125±"Remove this commented out code.(Éîç°ýÿÿÿÿJ$49a9f17d-9541-4506-bc0d-d0fbb214f268
+Zphp:S125Æ"Remove this commented out code.(ÊÖ¥¬J$919e03e1-f2c9-440f-96a8-003895a02900
+_php:S125É"Remove this commented out code.(ùäã“þÿÿÿÿJ$80b932e1-d812-4212-9f28-f87506704ada
+Zphp:S125Ð"Remove this commented out code.(Ô³‹�J$d9aba878-dbae-444c-93d6-13b1a50b3d8f
+Zphp:S125“"Remove this commented out code.(Àâü¶J$f960d4df-2c32-489a-950d-4b888ff1cfca
+_php:S125ª"Remove this commented out code.(¶ð‡þûÿÿÿÿJ$778b2419-02db-445b-9c58-7d0c0c0cebe3
+_php:S125±"Remove this commented out code.(‹®€ÅûÿÿÿÿJ$52410c62-7e46-40aa-a999-d84365dc3870
+Zphp:S125º"Remove this commented out code.(«�òÊJ$ca057a52-87cf-4ea7-b657-860b9b57e4be
+jphp:S121)"0Add curly braces around the nested statement(s).(¦×é°J$6cb5c512-345b-4467-900d-2ed7fbfe5adb
+kphp:S121„"0Add curly braces around the nested statement(s).(ŸØ€¸J$15d46c71-aefe-4048-837c-63c8e4f58b26
+pphp:S121”"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿJ$a614dee4-6d4c-45f2-b1a8-931ef1b69b6e
+pphp:S121•"0Add curly braces around the nested statement(s).(²®ÍïþÿÿÿÿJ$b60f0124-305a-4265-a5ea-3f4974bb1f10
+pphp:S121 "0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿJ$834a5d3c-c4d4-467e-9fe7-c1c2f6fbadaa
+pphp:S121¡"0Add curly braces around the nested statement(s).(²®ÍïþÿÿÿÿJ$a6665229-bc4c-48f2-aed3-e839ad0c7f22
+kphp:S121˜"0Add curly braces around the nested statement(s).(ŸØ€¸J$4bd4aea5-b01e-49b7-8ef6-fdc45b8e0002
+pphp:S121¨"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿJ$d486356f-41ba-4349-8b3d-c068609f0ade
+pphp:S121©"0Add curly braces around the nested statement(s).(²®ÍïþÿÿÿÿJ$3cb09b41-dc91-40cb-9fa1-9cb27a0458ee
+pphp:S121´"0Add curly braces around the nested statement(s).(ƒ¥ùúÿÿÿÿÿJ$49dc7ba4-d269-416f-895c-ab11c34f5a85
+pphp:S121µ"0Add curly braces around the nested statement(s).(²®ÍïþÿÿÿÿJ$1334b78e-0a65-40b2-8f4f-cc475b346f9c
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$45c41ab9-9779-47e7-9bc0-e17915793c4f
+‘	php:S4833	"QReplace "include_once" with namespace import mechanism through the "use" keyword.(¬Üš‰üÿÿÿÿJ$1f446b94-abf2-43ee-8684-81ecd2231cad
+Œ	php:S4833
+"QReplace "include_once" with namespace import mechanism through the "use" keyword.(´çû¤J$b87d215d-511f-46db-b9df-9170b569d6c9
+vphp:S131"7Add a "case default" clause to this "switch" statement.(úÓÝõþÿÿÿÿJ$3efe4eba-0b44-420e-8b0f-4349890f1060
+qphp:S131@"7Add a "case default" clause to this "switch" statement.(ÓœØŸJ$1b4e6534-7b38-4c16-97c8-253bf4fdee30
+rphp:S131«"7Add a "case default" clause to this "switch" statement.(ÓœØŸJ$5a2a9a76-1c8c-4a0c-813d-f314912c9455
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/f/1f436c64b19d14fe15dc7140f781c3c7a96ffd6c b/.idea/sonarlint/issuestore/1/f/1f436c64b19d14fe15dc7140f781c3c7a96ffd6c
index 761dcc8..428bbdb 100644
--- a/.idea/sonarlint/issuestore/1/f/1f436c64b19d14fe15dc7140f781c3c7a96ffd6c
+++ b/.idea/sonarlint/issuestore/1/f/1f436c64b19d14fe15dc7140f781c3c7a96ffd6c
@@ -1,34 +1,34 @@
 
-oWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(¹ÁëéJ$cb4cb198-9855-47a7-bb02-0beef0a2dccc
-tWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(Ñ¶åŸüÿÿÿÿJ$def47b90-f664-4e05-93b3-4d073fc51dca
-…php:S103"KSplit this 169 characters long line (which is greater than 120 authorized).(�›”ÜJ$1f54cf8d-cd2e-4f73-9f35-f56be5ab76f0
-„php:S103"KSplit this 154 characters long line (which is greater than 120 authorized).(ªâØHJ$51ee99a5-df02-46e8-8fa9-07195acdc2dd
-„php:S103"KSplit this 240 characters long line (which is greater than 120 authorized).(�ñ½J$329db27f-bba3-47c0-9241-60f5d08a76bf
-…php:S103("KSplit this 134 characters long line (which is greater than 120 authorized).(äï¶…J$3f5b7f59-1070-44fa-8ed7-1ccf9884e3ac
-Šphp:S1033"KSplit this 134 characters long line (which is greater than 120 authorized).(ŠÝ­‘úÿÿÿÿJ$e5cc0ce6-0676-4e89-b9ad-89168c5f2687
-Šphp:S1037"KSplit this 126 characters long line (which is greater than 120 authorized).(õñÇÈûÿÿÿÿJ$1db344cb-cd79-44f0-b8ae-8bcecbf2ed37
-Šphp:S103>"KSplit this 140 characters long line (which is greater than 120 authorized).(œþ»ØùÿÿÿÿJ$ad87f745-a356-41c3-85eb-c096181659ed
-Šphp:S103I"KSplit this 128 characters long line (which is greater than 120 authorized).(žñƒØúÿÿÿÿJ$b71c902a-04b3-4b09-8d0b-f73bf1ba771b
-Šphp:S103W"KSplit this 167 characters long line (which is greater than 120 authorized).(°üÿ­þÿÿÿÿJ$65f37e88-8a3f-49f8-acf6-ebd34413b5a8
-…php:S103~"KSplit this 131 characters long line (which is greater than 120 authorized).(® ßÔJ$42e06be6-3adb-4e35-b92c-a1e9e16f9f3a
-†php:S103„"KSplit this 156 characters long line (which is greater than 120 authorized).(�éàØJ$77ad8ec9-6234-406a-b81a-10047b23e1dc
-Yphp:S113"'Add a new line at the end of this file.J$49aea6fe-e25e-47eb-b281-5f5e7b56b22b
-b	php:S2003¢"&Replace "include" with "include_once".(ÉÇ…üJ$90b1b89a-634b-4527-b679-5755c627a940
-b	php:S2003¦"&Replace "include" with "include_once".(úØÃµJ$1b4e9f0e-1d18-46c0-9ade-7a049ba0dcb1
-a	php:S2003ª"&Replace "include" with "include_once".(’à¿GJ$6d890a80-b4f5-487a-8493-adf55d8cb38c
-g	php:S2003®"&Replace "include" with "include_once".(§ÞÔþùÿÿÿÿJ$a3bc186a-f606-4720-98cb-3838896f1d46
-b	php:S2003²"&Replace "include" with "include_once".(ÖÄØ¶J$6ee9adb4-807d-4e04-9321-7ec3a62ffc6c
-b	php:S2003¶"&Replace "include" with "include_once".(â«�ªJ$9a0a18e7-9c22-43f2-a40b-73f4b8871f3b
-g	php:S2003º"&Replace "include" with "include_once".(Ð€Ï�ÿÿÿÿÿJ$c3efc439-9d2a-47c8-8e5e-546a9db8adc2
-b	php:S2003¾"&Replace "include" with "include_once".(¶úÐƒJ$f330d1f1-0b7b-4e8e-92e9-535af75ada20
-g	php:S2003Â"&Replace "include" with "include_once".(¼‹»™üÿÿÿÿJ$bca1b210-6de2-482f-9a38-afb5267b06fb
-‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$b3706e44-ddbd-462b-9fe1-3548fa9ae5f1
-ˆ	php:S4833¢"LReplace "include" with namespace import mechanism through the "use" keyword.(ÉÇ…üJ$71224505-da40-4ac0-8b5e-150a455d8d08
-ˆ	php:S4833¦"LReplace "include" with namespace import mechanism through the "use" keyword.(úØÃµJ$426f1f6f-acc9-4489-8e41-88a92074b4f1
-‡	php:S4833ª"LReplace "include" with namespace import mechanism through the "use" keyword.(’à¿GJ$19a30e24-c8f5-4f42-9eda-71c97af6a3e0
-�	php:S4833®"LReplace "include" with namespace import mechanism through the "use" keyword.(§ÞÔþùÿÿÿÿJ$69befc42-eb80-4ba3-810c-82fcabd7a3a2
-ˆ	php:S4833²"LReplace "include" with namespace import mechanism through the "use" keyword.(ÖÄØ¶J$16b7610e-c2a7-4565-ab5f-95c6a88b8fe7
-ˆ	php:S4833¶"LReplace "include" with namespace import mechanism through the "use" keyword.(â«�ªJ$446bf086-75bf-463d-b435-c6bac55c5c22
-�	php:S4833º"LReplace "include" with namespace import mechanism through the "use" keyword.(Ð€Ï�ÿÿÿÿÿJ$5c43f841-76a6-476d-9de7-87b80c702ff0
-ˆ	php:S4833¾"LReplace "include" with namespace import mechanism through the "use" keyword.(¶úÐƒJ$7d5c8f5f-20ec-4634-ac27-9ea14c3cb77f
-�	php:S4833Â"LReplace "include" with namespace import mechanism through the "use" keyword.(¼‹»™üÿÿÿÿJ$e5bfd5d7-9d8b-46f3-a167-10c3a391afe0
\ No newline at end of file
+oWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(¹ÁëéJ$4afa719d-b9df-4e83-a8de-a1966742d4e9
+tWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(Ñ¶åŸüÿÿÿÿJ$6528103a-915e-4ee6-bb1a-387f1dfadcbc
+…php:S103"KSplit this 169 characters long line (which is greater than 120 authorized).(�›”ÜJ$b4f29df6-8e48-4fd7-b432-d6b76b91b0ee
+ephp:S103"KSplit this 157 characters long line (which is greater than 120 authorized).(ƒ¶ïx8�â¡öò1
+Œphp:S103"KSplit this 207 characters long line (which is greater than 120 authorized).(�‰«‡8³�çõò1J$e1410482-60c1-4b98-8168-3543b51f0927
+…php:S103("KSplit this 134 characters long line (which is greater than 120 authorized).(äï¶…J$21ed8ee6-9f9c-4830-af5d-290a46862fa9
+Šphp:S1033"KSplit this 134 characters long line (which is greater than 120 authorized).(ŠÝ­‘úÿÿÿÿJ$02ee601a-233a-4825-978f-9381e0334a10
+Šphp:S1037"KSplit this 126 characters long line (which is greater than 120 authorized).(õñÇÈûÿÿÿÿJ$5dbfd758-49d1-464e-a27e-830845cab4e9
+Šphp:S103>"KSplit this 140 characters long line (which is greater than 120 authorized).(œþ»ØùÿÿÿÿJ$24ea3440-ebdd-4274-ab53-2f3db8900876
+Šphp:S103I"KSplit this 128 characters long line (which is greater than 120 authorized).(žñƒØúÿÿÿÿJ$3008f1d7-ac16-48ee-b20a-da789c867dac
+Šphp:S103W"KSplit this 167 characters long line (which is greater than 120 authorized).(°üÿ­þÿÿÿÿJ$a540a730-51c1-4d20-a663-b5d61b116cc0
+…php:S103~"KSplit this 131 characters long line (which is greater than 120 authorized).(® ßÔJ$0d6465db-8629-498a-ad02-ae05d12f91c9
+†php:S103„"KSplit this 156 characters long line (which is greater than 120 authorized).(�éàØJ$3aa113c4-a458-4933-8014-5a05c5e12723
+Yphp:S113"'Add a new line at the end of this file.J$d70fdd27-f5f8-419f-9d9c-4a460eee605d
+b	php:S2003¢"&Replace "include" with "include_once".(ÉÇ…üJ$0af02aa0-07c8-4330-b89c-d8c31d95c3da
+b	php:S2003¦"&Replace "include" with "include_once".(úØÃµJ$5b0b1250-0514-45a4-9c55-de3685beea37
+a	php:S2003ª"&Replace "include" with "include_once".(’à¿GJ$8ed7220d-4549-432c-9402-7d4b8692a744
+g	php:S2003®"&Replace "include" with "include_once".(§ÞÔþùÿÿÿÿJ$078309f2-3c88-4910-898d-934d4f80b6e6
+b	php:S2003²"&Replace "include" with "include_once".(ÖÄØ¶J$c7d8e7d9-85f7-4417-8c40-9b2781b79691
+b	php:S2003¶"&Replace "include" with "include_once".(â«�ªJ$7c0b73ae-4d57-4da8-92b8-f66e762a58b3
+g	php:S2003º"&Replace "include" with "include_once".(Ð€Ï�ÿÿÿÿÿJ$92f4c23d-f20b-4e58-9a64-0f9df48fafe5
+b	php:S2003¾"&Replace "include" with "include_once".(¶úÐƒJ$bc721e41-eec0-422b-a4b5-ca5fd005e0ef
+g	php:S2003Â"&Replace "include" with "include_once".(¼‹»™üÿÿÿÿJ$523c14b8-045e-4967-a10c-44e2f82bc012
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$c18b8b39-e4fe-4877-b1df-e0a777839045
+ˆ	php:S4833¢"LReplace "include" with namespace import mechanism through the "use" keyword.(ÉÇ…üJ$6533008c-ab29-4ab6-9b23-1cb33ec5b065
+ˆ	php:S4833¦"LReplace "include" with namespace import mechanism through the "use" keyword.(úØÃµJ$46fe0e8d-eaa4-407b-a655-1c694fc1473b
+‡	php:S4833ª"LReplace "include" with namespace import mechanism through the "use" keyword.(’à¿GJ$4166ef38-2e2a-432f-9e0b-97b04331e29d
+�	php:S4833®"LReplace "include" with namespace import mechanism through the "use" keyword.(§ÞÔþùÿÿÿÿJ$ccad0d6c-8aea-4bcd-b675-390896b4fd6d
+ˆ	php:S4833²"LReplace "include" with namespace import mechanism through the "use" keyword.(ÖÄØ¶J$bb2f9045-9815-4169-8764-e1e155cb65de
+ˆ	php:S4833¶"LReplace "include" with namespace import mechanism through the "use" keyword.(â«�ªJ$7b48a7eb-cc7d-4b70-b105-c3b1ea812434
+�	php:S4833º"LReplace "include" with namespace import mechanism through the "use" keyword.(Ð€Ï�ÿÿÿÿÿJ$a0c5556c-ece2-4f83-979c-f5fa3f7f2929
+ˆ	php:S4833¾"LReplace "include" with namespace import mechanism through the "use" keyword.(¶úÐƒJ$1f3438a6-5a30-446c-a74a-5c7509fdfd35
+�	php:S4833Â"LReplace "include" with namespace import mechanism through the "use" keyword.(¼‹»™üÿÿÿÿJ$186ffba0-dace-4d54-938f-4b71b7f3d9ca
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/7/37af8ab61b5521209dfb77046413f87c5e4895ed b/.idea/sonarlint/issuestore/3/7/37af8ab61b5521209dfb77046413f87c5e4895ed
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/4/7/4714a4eb41b010ff16a0b0d6e1239c2bfe52a965 b/.idea/sonarlint/issuestore/4/7/4714a4eb41b010ff16a0b0d6e1239c2bfe52a965
new file mode 100644
index 0000000..121e542
--- /dev/null
+++ b/.idea/sonarlint/issuestore/4/7/4714a4eb41b010ff16a0b0d6e1239c2bfe52a965
@@ -0,0 +1,4 @@
+
+NWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(«Öó“üÿÿÿÿ
+IWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÓßÞÃ
+3php:S113"'Add a new line at the end of this file.
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/0/506ce27b4205c168de6546ae8ee0d23065d27196 b/.idea/sonarlint/issuestore/5/0/506ce27b4205c168de6546ae8ee0d23065d27196
new file mode 100644
index 0000000..4d32d83
--- /dev/null
+++ b/.idea/sonarlint/issuestore/5/0/506ce27b4205c168de6546ae8ee0d23065d27196
@@ -0,0 +1,14 @@
+
+p	php:S1781z")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ8áÎ©úò1J$5ce0a749-bfc1-455e-9128-51805ac0d78b
+q	php:S1781�")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ8áÎ©úò1J$06c64a41-5493-4d74-9e3d-6845c72d4289
+q	php:S1781£")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿ8áÎ©úò1J$efa40e93-a595-4f3f-af89-c9a2ec9373fa
+`php:S113"'Add a new line at the end of this file.8áÎ©úò1J$0f7616d7-dc6d-4215-a481-f49f6adf5440
+¡	php:S1192ˆ"_Define a constant instead of duplicating this literal "ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤." 3 times.(ä‘™"8áÎ©úò1J$b2a95e50-21d5-4c28-b0c4-d10996e5f74e
+d	php:S1116ƒ"Remove this empty statement.(ôŸŽìúÿÿÿÿ8áÎ©úò1J$68dba490-dfb7-4aab-9496-fdcf4fd3d883
+d	php:S1116˜"Remove this empty statement.(ôŸŽìúÿÿÿÿ8áÎ©úò1J$1140b8ec-3c03-48fd-8abd-1048484d5ec0
+d	php:S1116­"Remove this empty statement.(ôŸŽìúÿÿÿÿ8áÎ©úò1J$8f319eed-afb6-47cc-ad20-67c53f0156d7
+aphp:S125‡"Remove this commented out code.(Ø“§�8âÎ©úò1J$4500d6c5-eeaf-4a44-85b6-f0ef4d19c3b0
+’	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�8âÎ©úò1J$b4054b7f-a93b-403d-aff8-93e48a87a663
+˜	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(¬Üš‰üÿÿÿÿ8âÎ©úò1J$67159570-9703-4efb-be23-b4e0a58413d4
+“	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(´çû¤8âÎ©úò1J$2c57a6a7-4963-469d-99ef-c5ea406a096c
+}php:S131	"7Add a "case default" clause to this "switch" statement.(úÓÝõþÿÿÿÿ8âÎ©úò1J$bd74262c-4422-4498-88fb-b4fd3b0eab32
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/5/1/511551275fbc396506b504a6206e578e548b5625 b/.idea/sonarlint/issuestore/5/1/511551275fbc396506b504a6206e578e548b5625
index 5845322..70c816a 100644
--- a/.idea/sonarlint/issuestore/5/1/511551275fbc396506b504a6206e578e548b5625
+++ b/.idea/sonarlint/issuestore/5/1/511551275fbc396506b504a6206e578e548b5625
@@ -1,44 +1,44 @@
 
-Šphp:S103Q"KSplit this 130 characters long line (which is greater than 120 authorized).(˜‹ÇÅýÿÿÿÿJ$f6e9cef6-f004-4324-a375-b8c792ae6c72
-…php:S103j"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$7db7ba14-00b9-47b4-8efc-225ad9c3fb9f
-Šphp:S103k"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$fb33ea83-cffa-4797-acdf-965054becd42
-…php:S103l"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$b786abed-1e92-405c-98d7-bb08ce324931
-‹php:S103Ó"KSplit this 130 characters long line (which is greater than 120 authorized).(˜‹ÇÅýÿÿÿÿJ$1cde93b9-e6b8-46d5-a86b-ad1224c58f56
-†php:S103í"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$50403eaf-e7d7-499a-895f-09a7caa5e87e
-‹php:S103î"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$8c14af45-3608-439a-90fb-bde0c0088701
-†php:S103ï"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$f17decc3-10b4-4c99-b6aa-db03f0bc506a
-†php:S103×"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$af4e1d37-e485-43a8-8d88-0a85befcd0cf
-‹php:S103Ø"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$d1a6ca6e-8309-4c36-ae67-3babe479bb0d
-†php:S103Ù"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$264a143b-d920-4bbd-bb7c-2218b5e71b78
-i	php:S1781Z")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$6e510c72-9203-4d94-80a0-fef5e34f8c4d
-i	php:S1781r")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$f6c69b25-e815-460f-86e0-d384f385ca2c
-i	php:S1781u")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$54d4cf6f-b204-4be3-84dc-da9b8bae5f94
-i	php:S1781x")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$d7848c2c-da52-4703-9927-2efeb8f33807
-j	php:S1781Ü")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$9a73b988-60d1-42d8-aba1-b34d0bf68823
-j	php:S1781õ")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$94decdad-cb5b-4867-aaa6-667696a56a43
-j	php:S1781ø")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$874c8ed9-d3a0-446a-bf31-184f8bdc9e3f
-j	php:S1781û")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$9924f47b-34f8-4b99-b436-34393f2499a4
-j	php:S1781Ç")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$b3d3b113-d9a0-4f0a-afc7-e6832de180c2
-j	php:S1781ß")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$565e0d1e-f73b-4a78-a075-6c02c67f72b2
-j	php:S1781â")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$5db9cfe1-cd07-4c02-ab30-8779625b6e8f
-j	php:S1781å")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$a52c0a75-fef5-48bc-b264-21c408224cd6
-Yphp:S113"'Add a new line at the end of this file.J$6d0d065f-652c-4b73-ae13-2f422ba92765
-™	php:S1192)"_Define a constant instead of duplicating this literal "ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤." 3 times.(¦£ŸJ$93b223fc-0854-4e65-9bcd-41e18ce9169b
-\	php:S1116&"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$3f335094-ab86-4b91-a0af-7257f70d018b
-]	php:S1116©"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$9511a4c1-a2cf-4c71-8a5b-4090b2143836
-]	php:S1116¬"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$d9332a56-94c0-435e-b960-fe33e3bd29f2
-Yphp:S125'"Remove this commented out code.(�…Ð�J$75c501c5-5f6a-4d29-859e-ceb0c4c7b418
-_php:S125Ž"Remove this commented out code.(£×±ÆúÿÿÿÿJ$c9da32c5-590b-4a0c-a20f-2dbdcb386b33
-Zphp:S125ª"Remove this commented out code.(�…Ð�J$d2167d4d-4848-42bc-832c-f7ef4edab658
-_php:S125Ò"Remove this commented out code.(ÈÃØéûÿÿÿÿJ$afa523f8-94ab-48e7-81bb-0714c7e7ebb2
-_php:S125’"Remove this commented out code.(£×±ÆúÿÿÿÿJ$fee53cab-dcc0-48fe-9f1b-04920d8bf36c
-Zphp:S125­"Remove this commented out code.(�…Ð�J$a432ff13-2ce7-4089-b697-8042c5fa06c9
-_php:S125û"Remove this commented out code.(£×±ÆúÿÿÿÿJ$b37d5a69-96c4-4363-b98f-d399e11920fc
-jphp:S1211"0Add curly braces around the nested statement(s).(ŸØ€¸J$1498f985-80c1-457b-b142-663202a889f1
-kphp:S121³"0Add curly braces around the nested statement(s).(ŸØ€¸J$f4c0ace8-b10a-4b49-a2ca-e9f8f0273aa0
-kphp:S121¶"0Add curly braces around the nested statement(s).(ŸØ€¸J$3a52a8ac-55f7-4c27-b11f-a59d5c4fe9b4
-‹	php:S4833	"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$e0960b3c-4a42-477d-a70b-1ac10ec13ac9
+Šphp:S103Q"KSplit this 130 characters long line (which is greater than 120 authorized).(˜‹ÇÅýÿÿÿÿJ$f252f16c-9fcd-4f72-93f2-037405a131dd
+…php:S103j"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$a5b7e1a9-c31a-4b68-a904-38d0bbe2b026
+Šphp:S103k"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$5cb42ef0-3dad-461a-a80e-57e84a76ecf6
+…php:S103l"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$62604736-81b4-4017-b99c-ec200f0cc29e
+‹php:S103Ó"KSplit this 130 characters long line (which is greater than 120 authorized).(˜‹ÇÅýÿÿÿÿJ$3baaa07c-091e-4eb0-bb1d-8141313d9d94
+†php:S103í"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$74d784d4-62d5-40ea-85ff-fca1987d6082
+‹php:S103î"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$0fae4bf0-8622-4fa7-bad5-2e2fe1090ac9
+†php:S103ï"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$cbeb5209-8e09-4bd9-9d79-3e9d68e0793d
+†php:S103Ø"KSplit this 132 characters long line (which is greater than 120 authorized).(î™•šJ$b3e1df83-4461-48a1-a00f-d88cce814263
+‹php:S103Ù"KSplit this 131 characters long line (which is greater than 120 authorized).(‹ìç¸üÿÿÿÿJ$f4804bc4-9285-41d1-a3dc-4d9760b73cd4
+†php:S103Ú"KSplit this 126 characters long line (which is greater than 120 authorized).(¯äÈ³J$3d566386-f94a-4619-b635-de5fa0eb0162
+i	php:S1781Z")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$0c6a677d-24cb-46ee-a5a6-80fcbfef90ad
+i	php:S1781r")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$ebaf4da1-98e9-4d45-9b1c-9b16effacd42
+i	php:S1781u")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$7c7f98e9-54cd-4192-b885-75ae792c81da
+i	php:S1781x")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$8447b405-1384-42ac-a9a4-bee71acf4062
+j	php:S1781Ü")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$98064520-5519-4fb1-acec-611d0c446127
+j	php:S1781õ")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$20cf8388-8f5e-4e1d-a51a-148b8cc4faf5
+j	php:S1781ø")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$d2cd206b-8518-4682-a324-2b6dc0e5cecc
+j	php:S1781û")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$1a03b9cb-d09a-48b7-a53b-a2c5f16cddef
+j	php:S1781È")Write this "Array" keyword in lower case.(�â‘úúÿÿÿÿJ$5fc7685a-4a0a-4002-a93d-ae2b57d1c576
+j	php:S1781à")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$8722b770-791f-4a3a-9b13-4dd06417c851
+j	php:S1781ã")Write this "Array" keyword in lower case.(‘©ò•ûÿÿÿÿJ$f49e7730-4bf9-4801-bd80-d17e4c948c7f
+j	php:S1781æ")Write this "Array" keyword in lower case.(¡›ÞçøÿÿÿÿJ$c22c7b1b-6f92-425c-b19c-25eb8f4586a6
+Yphp:S113"'Add a new line at the end of this file.J$60728e23-1a3f-45c7-9591-6823c9cdbbf5
+™	php:S1192)"_Define a constant instead of duplicating this literal "ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤." 3 times.(¦£ŸJ$900475a5-cc75-418a-9415-6a9400cdb370
+\	php:S1116&"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$f6633d39-dbfd-4467-9889-c68ffe2f7ea3
+]	php:S1116©"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$ba02121a-3e6b-42ed-a80e-e77799728624
+]	php:S1116­"Remove this empty statement.(ôŸŽìúÿÿÿÿJ$04c4e3ed-bdeb-4aba-9328-f2a0e9d8910d
+Yphp:S125'"Remove this commented out code.(�…Ð�J$4bb6f2a1-67e9-4a93-bf2e-acf63f078583
+_php:S125Ž"Remove this commented out code.(£×±ÆúÿÿÿÿJ$5fd528a6-6cfb-43cd-a057-97413c4be4fb
+Zphp:S125ª"Remove this commented out code.(�…Ð�J$bb1890af-358a-4f64-b19b-5e2217e1093a
+_php:S125Ò"Remove this commented out code.(ÈÃØéûÿÿÿÿJ$66f0178a-6faf-4de4-9f91-88ad54ab42ac
+_php:S125“"Remove this commented out code.(£×±ÆúÿÿÿÿJ$713f1fdc-18e3-4a41-8f6e-b1f70c8fb745
+Zphp:S125®"Remove this commented out code.(�…Ð�J$5dc55447-a387-477b-b0f1-067621f3c46c
+_php:S125ü"Remove this commented out code.(£×±ÆúÿÿÿÿJ$4400a72f-4147-495f-a840-fccdad6985cd
+jphp:S1211"0Add curly braces around the nested statement(s).(ŸØ€¸J$c1932acc-2409-4fdf-a83a-b2699d4678b4
+kphp:S121³"0Add curly braces around the nested statement(s).(ŸØ€¸J$1f9d4efc-cfcc-4dd3-8150-0898acac2da5
+kphp:S121·"0Add curly braces around the nested statement(s).(ŸØ€¸J$7c051e23-7044-42ce-b3eb-2629068dd4fe
+‹	php:S4833	"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$d6d0cb7a-06d9-4338-a13e-a6929f2e14e1
 ‘	php:S4833
-"QReplace "include_once" with namespace import mechanism through the "use" keyword.(¬Üš‰üÿÿÿÿJ$eebf9d03-11cf-4b21-a81d-fbd575e22183
-Œ	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(´çû¤J$7ae45e3a-8a23-443d-84af-45b71d55b622
-vphp:S131"7Add a "case default" clause to this "switch" statement.(úÓÝõþÿÿÿÿJ$cf522f47-5c94-4094-a24a-152dc6f29b87
\ No newline at end of file
+"QReplace "include_once" with namespace import mechanism through the "use" keyword.(¬Üš‰üÿÿÿÿJ$d069791f-91a4-494c-9c27-f72ce95bec71
+Œ	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(´çû¤J$ea9f2424-48c0-4748-89b6-72a147c111df
+vphp:S131"7Add a "case default" clause to this "switch" statement.(úÓÝõþÿÿÿÿJ$6c742bc9-a370-4f5f-bfca-9e1f7712d681
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/7/b/7b4c396d650b291c80d654c1ef7134d97c208db6 b/.idea/sonarlint/issuestore/7/b/7b4c396d650b291c80d654c1ef7134d97c208db6
new file mode 100644
index 0000000..469be76
--- /dev/null
+++ b/.idea/sonarlint/issuestore/7/b/7b4c396d650b291c80d654c1ef7134d97c208db6
@@ -0,0 +1,3 @@
+
+3php:S113"'Add a new line at the end of this file.
+f	php:S4833"QReplace "require_once" with namespace import mechanism through the "use" keyword.(®‰€Í
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/7/f/7f5a5c9663643d4c11bf16ae3de896ce271e9509 b/.idea/sonarlint/issuestore/7/f/7f5a5c9663643d4c11bf16ae3de896ce271e9509
new file mode 100644
index 0000000..5dbc4a6
--- /dev/null
+++ b/.idea/sonarlint/issuestore/7/f/7f5a5c9663643d4c11bf16ae3de896ce271e9509
@@ -0,0 +1,2 @@
+
+Yphp:S113"'Add a new line at the end of this file.J$6eaee28e-c136-43b3-9973-f7b42bdefd0d
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/0/806b045f1c9e62be2771054b6ad277951dff458f b/.idea/sonarlint/issuestore/8/0/806b045f1c9e62be2771054b6ad277951dff458f
new file mode 100644
index 0000000..525347f
--- /dev/null
+++ b/.idea/sonarlint/issuestore/8/0/806b045f1c9e62be2771054b6ad277951dff458f
@@ -0,0 +1,37 @@
+
+yphp:S115"`Rename this constant "_APP_NAME_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(È·¢˜ûÿÿÿÿ
+uphp:S115"aRename this constant "_ROOT_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(£ ¬Ö
+zphp:S115"aRename this constant "_CONF_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.( ¨Ñòùÿÿÿÿ
+yphp:S115"`Rename this constant "_LIB_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(°ã”¸ùÿÿÿÿ
+xphp:S115"_Rename this constant "_UP_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Åç‡Ùþÿÿÿÿ
+rphp:S115"^Rename this constant "_DOMAIN_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(³¢Øß
+uphp:S115"aRename this constant "_SITE_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(�ö›Î
+tphp:S115"`Rename this constant "_SITE_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(«°¤®
+xphp:S115"eRename this constant "_SITE_INC_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ŠŠ•Z
+}php:S115"dRename this constant "_SITE_INC_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(íŸÖýúÿÿÿÿ
+zphp:S115"aRename this constant "_HOME_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(­­þßüÿÿÿÿ
+yphp:S115"`Rename this constant "_HOME_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ÂªÂ–üÿÿÿÿ
+~php:S115"eRename this constant "_HOME_INC_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ÑÛÈ±þÿÿÿÿ
+xphp:S115"dRename this constant "_HOME_INC_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Œ­¾„
+yphp:S115"`Rename this constant "_ADM_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Üƒí§þÿÿÿÿ
+xphp:S115"_Rename this constant "_ADM_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(îŠ––øÿÿÿÿ
+}php:S115"dRename this constant "_ADM_INC_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(þœéÕÿÿÿÿÿ
+wphp:S115"cRename this constant "_ADM_INC_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(²•à…
+yphp:S115 "`Rename this constant "_SVC_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Øœ«Èúÿÿÿÿ
+sphp:S115!"_Rename this constant "_SVC_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Ýí…¹
+wphp:S115""dRename this constant "_SVC_INC_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ø¥±o
+|php:S115#"cRename this constant "_SVC_INC_URL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(¦ààÄøÿÿÿÿ
+xphp:S115&"dRename this constant "_SINGLE_LOGIN_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Ô…Å°
+zphp:S115D"aRename this constant "_SESS_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Ïƒ�Ðúÿÿÿÿ
+tphp:S115N"`Rename this constant "_USE_MODE_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Ê§ðÑ
+~php:S115W"eRename this constant "_COOKIE_DOMAIN_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ô¦’þúÿÿÿÿ
+~php:S115Y"eRename this constant "_COOKIE_EXPIRE_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(Û–âŸüÿÿÿÿ
+|php:S115["cRename this constant "_COOKIE_PATH_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ÒŒ¡Âùÿÿÿÿ
+tphp:S115^"`Rename this constant "_AUTH_KEY_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(ßªÀ¯
+uphp:S115a"aRename this constant "_SDATENULL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(‚•ýÝ
+zphp:S115b"aRename this constant "_FDATENULL_" to match the regular expression ^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$.(¸©¼Æüÿÿÿÿ
+8php:S125/"Remove this commented out code.(Ý•Ž‡þÿÿÿÿ
+Iphp:S121E"0Add curly braces around the nested statement(s).(µ½¶øþÿÿÿÿ
+f	php:S4833e"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ªôðà
+f	php:S4833h"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ç¶â½
+k	php:S4833k"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ø‡óŠúÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/1/9187a16dfed596874548fa079f89d5e9b5286fcf b/.idea/sonarlint/issuestore/9/1/9187a16dfed596874548fa079f89d5e9b5286fcf
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/e/9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581 b/.idea/sonarlint/issuestore/9/e/9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581
new file mode 100644
index 0000000..7514caf
--- /dev/null
+++ b/.idea/sonarlint/issuestore/9/e/9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581
@@ -0,0 +1,19 @@
+
+Ý	Web:S6848"ÂAvoid non-native interactive elements. If using native HTML is not possible, add an appropriate role and support for tabbing, mouse, keyboard, and touch inputs to an interactive content element.(Óà¥ûýÿÿÿÿ
+IWeb:AvoidCommentedOutCodeChecky"Remove this commented out code.(­”¢œ
+NWeb:AvoidCommentedOutCodeCheck|"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ
+JWeb:AvoidCommentedOutCodeCheck‡"Remove this commented out code.(¥Š¿²
+3php:S113"'Add a new line at the end of this file.
+@	php:S2003"&Replace "include" with "include_once".(Óà¥ûýÿÿÿÿ
+;	php:S2003]"&Replace "include" with "include_once".(Ó‘©Ø
+;	php:S2003a"&Replace "include" with "include_once".(ô‚�Þ
+;	php:S2003~"&Replace "include" with "include_once".(ô‚�Þ
+e	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�
+k	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(‰«ÀŸÿÿÿÿÿ
+k	php:S4833
"QReplace "include_once" with namespace import mechanism through the "use" keyword.(îœ‘›üÿÿÿÿ
+f	php:S4833"LReplace "include" with namespace import mechanism through the "use" keyword.(Óà¥ûýÿÿÿÿ
+a	php:S4833]"LReplace "include" with namespace import mechanism through the "use" keyword.(Ó‘©Ø
+a	php:S4833a"LReplace "include" with namespace import mechanism through the "use" keyword.(ô‚�Þ
+a	php:S4833~"LReplace "include" with namespace import mechanism through the "use" keyword.(ô‚�Þ
+l	php:S4833™"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ÉÙ€îøÿÿÿÿ
+g	php:S4833œ"QReplace "include_once" with namespace import mechanism through the "use" keyword.(òÀæÆ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/d/cdaa167bac242b837f9c999bede6e14a85a86af6 b/.idea/sonarlint/issuestore/c/d/cdaa167bac242b837f9c999bede6e14a85a86af6
index 19d1c38..32369a5 100644
--- a/.idea/sonarlint/issuestore/c/d/cdaa167bac242b837f9c999bede6e14a85a86af6
+++ b/.idea/sonarlint/issuestore/c/d/cdaa167bac242b837f9c999bede6e14a85a86af6
@@ -1,22 +1,22 @@
 
-sWeb:TableWithoutCaptionCheckz" Add a description to this table.(Åî»�úÿÿÿÿJ$c219430d-e14b-45c3-af80-bdded08a9984
-d	Web:S1827|")Remove this deprecated "width" attribute.(ÃñðøJ$f4d23cc4-5d40-4e25-9b1f-d7dbc0b90838
-i	Web:S1827}")Remove this deprecated "width" attribute.(ÂŒÓ¡øÿÿÿÿJ$7dba607a-6ad5-4253-9985-f80ea2233d11
-i	Web:S1827~")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$ed509ede-8271-4585-8beb-a9b9dd550e72
-i	Web:S1827")Remove this deprecated "width" attribute.(ÂŒÓ¡øÿÿÿÿJ$191d440f-9815-4e65-bad5-f0db4234a234
-j	Web:S1827€")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$7cd68d01-d839-4668-bc33-2fa8607ea9b7
-j	Web:S1827�")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$06f2970f-e477-464e-8318-66561cb166e1
-j	Web:S1827‚")Remove this deprecated "width" attribute.(ö¼��ýÿÿÿÿJ$06fa90ec-89b3-4cc5-9748-1d8d8e19758a
-�php:S103˜"KSplit this 387 characters long line (which is greater than 120 authorized).(—Çú÷8Ä˜¡Íò1J$c2ea6b4f-3120-479f-ba9b-0409fb42ce2e
-†php:S103�"KSplit this 269 characters long line (which is greater than 120 authorized).(×´†ºJ$54123c61-2bcc-427a-a101-d7db775987f6
-†php:S103¢"KSplit this 269 characters long line (which is greater than 120 authorized).(Ö¥ãíJ$496f0d35-994e-47c9-80a7-c9bcddd957a3
-�php:S103§"KSplit this 268 characters long line (which is greater than 120 authorized).(ø¨ÝÜ8ÓŽ½Íò1J$fa84e1ca-be63-4b26-a5a5-8c8153064626
-‹php:S103«"KSplit this 269 characters long line (which is greater than 120 authorized).(‡—â˜ùÿÿÿÿJ$afafacba-4c60-4984-ac80-6dc2a06a57b7
-Yphp:S113"'Add a new line at the end of this file.J$c71bcc4f-3e72-46a1-bf89-76156a8d529e
-a	php:S20034"&Replace "include" with "include_once".(Å¯àžJ$2fc1edd7-7e01-43d2-8dd9-bfe27da8f1ee
-‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$ee62dfab-13af-432d-a616-124477e6b631
-‘	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(‰«ÀŸÿÿÿÿÿJ$c0c75997-f486-48e2-9bc2-4794dd782208
-‘	php:S4833
"QReplace "include_once" with namespace import mechanism through the "use" keyword.(îœ‘›üÿÿÿÿJ$5c71d098-a9de-4e68-b1b8-cf8ac885362a
-‡	php:S48334"LReplace "include" with namespace import mechanism through the "use" keyword.(Å¯àžJ$7517ecbc-8846-4071-8cff-700971b9976f
-’	php:S4833Ô"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ÉÙ€îøÿÿÿÿJ$440c1153-eda6-4c38-be1b-d7fd57e544ac
-�	php:S4833Ù"QReplace "include_once" with namespace import mechanism through the "use" keyword.(òÀæÆJ$a08f4984-8007-4564-9a2f-07fcf5bec23b
\ No newline at end of file
+sWeb:TableWithoutCaptionCheckz" Add a description to this table.(Åî»�úÿÿÿÿJ$8ac670ff-840d-4f5b-8d1d-d2816ee8a292
+d	Web:S1827|")Remove this deprecated "width" attribute.(ÃñðøJ$df1269b0-aab1-4b7f-bfb4-da9d891e3021
+i	Web:S1827}")Remove this deprecated "width" attribute.(ÂŒÓ¡øÿÿÿÿJ$71b4f185-3826-49d8-aeef-3a9877e47574
+i	Web:S1827~")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$1fd5398c-f2f4-473b-81d1-092296b7581a
+i	Web:S1827")Remove this deprecated "width" attribute.(ÂŒÓ¡øÿÿÿÿJ$f41633b9-36a2-43c8-87fa-69a9c1fe5eac
+j	Web:S1827€")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$077897f8-9d8b-4cc4-8846-ba05609b5829
+j	Web:S1827�")Remove this deprecated "width" attribute.(“èÈ�úÿÿÿÿJ$e6446ea1-894a-489b-8af2-0ac415a25aae
+j	Web:S1827‚")Remove this deprecated "width" attribute.(ö¼��ýÿÿÿÿJ$9a9e6562-ee28-4d55-9d70-e88b022e92bb
+lphp:S103˜"KSplit this 246 characters long line (which is greater than 120 authorized).(Ÿ¸Âÿûÿÿÿÿ8òÒß÷ò1
+gphp:S103�"KSplit this 269 characters long line (which is greater than 120 authorized).(×´†º8òÒß÷ò1
+gphp:S103¢"KSplit this 269 characters long line (which is greater than 120 authorized).(Ö¥ãí8òÒß÷ò1
+gphp:S103§"KSplit this 239 characters long line (which is greater than 120 authorized).( ¾�Ð8òÒß÷ò1
+‹php:S103¬"KSplit this 269 characters long line (which is greater than 120 authorized).(‡—â˜ùÿÿÿÿJ$7ea27bba-2ffc-439a-a39b-b61c8cdad11c
+Yphp:S113"'Add a new line at the end of this file.J$e188c86c-50cc-49b1-ac04-357f4849a72f
+a	php:S20034"&Replace "include" with "include_once".(Å¯àžJ$f1d67bae-5bd5-498e-89d0-d637e8adf3aa
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$6dc2312e-1efb-483f-a102-0a1e61c1ff82
+‘	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(‰«ÀŸÿÿÿÿÿJ$511fe7f3-8e96-4197-bd5f-8bd1ad06e0d3
+‘	php:S4833
"QReplace "include_once" with namespace import mechanism through the "use" keyword.(îœ‘›üÿÿÿÿJ$f9bcecde-e1c8-4867-be9b-4ea141e78dc0
+‡	php:S48334"LReplace "include" with namespace import mechanism through the "use" keyword.(Å¯àžJ$06ab7c2d-f0d6-419d-b460-059bc849dd90
+’	php:S4833Õ"QReplace "include_once" with namespace import mechanism through the "use" keyword.(ÉÙ€îøÿÿÿÿJ$791044b0-d9ad-490b-8e7c-7d54ba6355d7
+�	php:S4833Ú"QReplace "include_once" with namespace import mechanism through the "use" keyword.(òÀæÆJ$4c076494-2818-4046-90e7-55f12e381289
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/9/f909f1873ad9b00d3aadf1e34a760d41d322c9fa b/.idea/sonarlint/issuestore/f/9/f909f1873ad9b00d3aadf1e34a760d41d322c9fa
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/f/a/fa48dc62db7f51377363d747a87d1ef772ce2b85 b/.idea/sonarlint/issuestore/f/a/fa48dc62db7f51377363d747a87d1ef772ce2b85
index 6b39d0a..d3858b0 100644
--- a/.idea/sonarlint/issuestore/f/a/fa48dc62db7f51377363d747a87d1ef772ce2b85
+++ b/.idea/sonarlint/issuestore/f/a/fa48dc62db7f51377363d747a87d1ef772ce2b85
@@ -1,16 +1,16 @@
 
-{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ô‚â™ûÿÿÿÿ8µæíãò1J$42326380-3804-402f-924d-d86c773d1676
-tWeb:AvoidCommentedOutCodeCheck
"Remove this commented out code.(ñ†íôüÿÿÿÿJ$f87bf530-62d4-4919-952a-9a66adc244fa
-vWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶€Å‹8¿íîãò1J$ed9075c5-3e58-463b-94d2-f2416229e8ee
-{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶�×ˆýÿÿÿÿ8Æœïãò1J$36eafce0-08c7-4b75-a927-a3e8bade9dc3
-{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÍÇÙ†ûÿÿÿÿ8Æœïãò1J$7dbc0816-197f-41e7-8a4e-33014d6a7442
-{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÓÈÞ©ÿÿÿÿÿ8Æœïãò1J$8b077ed8-6451-4b77-9474-3d08cae66b79
-oWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÇÀ£½J$2924e92a-a697-47ae-90f4-f8e643331af1
-vWeb:AvoidCommentedOutCodeCheck#"Remove this commented out code.(ž˜“›8Èôïãò1J$1e9e116c-525c-4500-a9ad-299cfada43b4
-vWeb:AvoidCommentedOutCodeCheck$"Remove this commented out code.(­”¢œ8Èôïãò1J$7a276764-ac43-4e65-9df1-b17f20d99de5
-{Web:AvoidCommentedOutCodeCheck'"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$7cb56c3e-ac0c-4d73-ba9b-061acc55ddbd
-vWeb:AvoidCommentedOutCodeCheck("Remove this commented out code.(À…½º8Èôïãò1J$74b97970-c819-4d88-80b9-6eb99eacfe29
-{Web:AvoidCommentedOutCodeCheck+"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$698ffcc2-a72c-4892-93dc-c100368da15c
-vWeb:AvoidCommentedOutCodeCheck,"Remove this commented out code.(‹ü­½8Èôïãò1J$a03623e7-4974-4290-aaa1-27e71592bd84
-Yphp:S113"'Add a new line at the end of this file.J$497e37e2-3d58-4d09-a589-cdf6418e245c
-‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$156bab27-a20f-4679-a8f5-fe914d0aba4f
\ No newline at end of file
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ô‚â™ûÿÿÿÿ8µæíãò1J$0c0699e9-5983-4e13-b7e6-867af794e68b
+tWeb:AvoidCommentedOutCodeCheck
"Remove this commented out code.(ñ†íôüÿÿÿÿJ$4c2b7fc7-fb3e-45c8-873f-2d67673f2f4b
+vWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶€Å‹8¿íîãò1J$fea09189-a92e-4be6-98f8-5634daa62e84
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶�×ˆýÿÿÿÿ8Æœïãò1J$20167be6-a8b7-4d56-a02d-3042aaf38744
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÍÇÙ†ûÿÿÿÿ8Æœïãò1J$07c50b21-e148-457f-8611-c78192042263
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÓÈÞ©ÿÿÿÿÿ8Æœïãò1J$944db44c-63ab-4144-86cf-acaaa4c4a968
+oWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÇÀ£½J$59bbeaae-b4ed-435c-89a6-613a96a20016
+vWeb:AvoidCommentedOutCodeCheck#"Remove this commented out code.(ž˜“›8Èôïãò1J$88f460b3-6ff2-441b-a904-74914fe1d8c0
+vWeb:AvoidCommentedOutCodeCheck$"Remove this commented out code.(­”¢œ8Èôïãò1J$cf94c6f9-22fb-4a5c-a375-bc4620205746
+{Web:AvoidCommentedOutCodeCheck'"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$4f5d0771-8b6c-49e9-aded-8ab82e6bd64b
+vWeb:AvoidCommentedOutCodeCheck("Remove this commented out code.(À…½º8Èôïãò1J$14e4964d-dfa4-4dd8-9bec-4339c87a02a5
+{Web:AvoidCommentedOutCodeCheck+"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$d28a2a5d-d6f5-4c5b-bb50-54a60a40bedf
+vWeb:AvoidCommentedOutCodeCheck,"Remove this commented out code.(‹ü­½8Èôïãò1J$594fc262-7f6d-4a8b-9f67-13a1b11e7276
+Yphp:S113"'Add a new line at the end of this file.J$4978bf45-1dca-4b8f-9694-398187b87a98
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$8ddd9cb0-f376-43cd-a050-66278c403e8e
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/d/fde79b6f9096fc58551697e656ab8dfbbf18f854 b/.idea/sonarlint/issuestore/f/d/fde79b6f9096fc58551697e656ab8dfbbf18f854
new file mode 100644
index 0000000..ae9b4a8
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/d/fde79b6f9096fc58551697e656ab8dfbbf18f854
@@ -0,0 +1,16 @@
+
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ô‚â™ûÿÿÿÿ8µæíãò1J$9464745c-f1ca-484a-bb68-e32bbbf442e2
+tWeb:AvoidCommentedOutCodeCheck
"Remove this commented out code.(ñ†íôüÿÿÿÿJ$54198267-b359-4994-9478-116dd8a741d3
+vWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶€Å‹8¿íîãò1J$12bf0cd8-970e-499c-8b1c-384db4bd47bd
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(¶�×ˆýÿÿÿÿ8Æœïãò1J$d7e31a65-8d2b-4777-bbb6-b04f5bce82ee
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÍÇÙ†ûÿÿÿÿ8Æœïãò1J$49bf1c07-0e03-4614-8016-c5d97062c25c
+{Web:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÓÈÞ©ÿÿÿÿÿ8Æœïãò1J$93145234-29f1-4d0b-86d1-580b65b24a70
+oWeb:AvoidCommentedOutCodeCheck"Remove this commented out code.(ÇÀ£½J$58ea6ed3-12b7-44d0-9b0a-ed73a5657a19
+vWeb:AvoidCommentedOutCodeCheck#"Remove this commented out code.(ž˜“›8Èôïãò1J$bd59900e-5dd0-4a2c-9f3c-138bbfc0a717
+vWeb:AvoidCommentedOutCodeCheck$"Remove this commented out code.(­”¢œ8Èôïãò1J$de2c4110-a5a5-46ef-8442-b3fe0d1d769a
+{Web:AvoidCommentedOutCodeCheck'"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$1768b790-c01c-4f38-b018-e0bd941cb3ca
+vWeb:AvoidCommentedOutCodeCheck("Remove this commented out code.(À…½º8Èôïãò1J$2b063564-5242-4c2b-b91e-3ba553fbb704
+{Web:AvoidCommentedOutCodeCheck+"Remove this commented out code.(µÃ¶»ÿÿÿÿÿ8Èôïãò1J$5dc4f30a-19a5-4c8a-baa6-0dfbc11aa4b3
+vWeb:AvoidCommentedOutCodeCheck,"Remove this commented out code.(‹ü­½8Èôïãò1J$a7aca6ad-544c-48ef-87bc-10c0c879582f
+Yphp:S113"'Add a new line at the end of this file.J$e61bfb01-5931-442e-b93f-b92375e20c19
+‹	php:S4833"QReplace "include_once" with namespace import mechanism through the "use" keyword.(Á–�J$bd94a96f-6455-44f7-b110-800e54612acd
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/f/ff4caf8a71f28c32739b5561e3082208fd397365 b/.idea/sonarlint/issuestore/f/f/ff4caf8a71f28c32739b5561e3082208fd397365
new file mode 100644
index 0000000..7374aec
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/f/ff4caf8a71f28c32739b5561e3082208fd397365
@@ -0,0 +1,2 @@
+
+3php:S113"'Add a new line at the end of this file.
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
index a81eb4c..e839a6f 100644
--- a/.idea/sonarlint/issuestore/index.pb
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -100,4 +100,28 @@ l
 �
 Q.idea/sonarlint/securityhotspotstore/9/6/961998ca1a9275fd6584098a3ca77b3ba90394b3,3\e\3e4d73edffccbc4f02bb12696ceb4730d4675644
 c
-3home_dir/www/ksvc/inc/css/scss/component/_form.scss,0\a\0a400853adbf4e029ab2c2d410c62555546f10bc
\ No newline at end of file
+3home_dir/www/ksvc/inc/css/scss/component/_form.scss,0\a\0a400853adbf4e029ab2c2d410c62555546f10bc
+e
+5home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js,f\9\f909f1873ad9b00d3aadf1e34a760d41d322c9fa
+\
+,home_dir/www/ksvc/prod/reg_plan/reg_plan.php,0\1\019dba2e3e3ca39be57cdeda0181255f2a108089
+n
+>home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php,5\0\506ce27b4205c168de6546ae8ee0d23065d27196
+K
+home_dir/www/common.inc.php,7\b\7b4c396d650b291c80d654c1ef7134d97c208db6
+O
+home_dir/config/html_config.php,8\0\806b045f1c9e62be2771054b6ad277951dff458f
+b
+2home_dir/www/ksvc/insp/reg_insp_qc/reg_insp_qc.php,9\e\9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581
+Q
+!home_dir/www/include/js/common.js,3\7\37af8ab61b5521209dfb77046413f87c5e4895ed
+o
+?home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php,4\7\4714a4eb41b010ff16a0b0d6e1239c2bfe52a965
+p
+@home_dir/www/ksvc/site/sts_order_prod/sts_order_pop_util.inc.php,f\d\fde79b6f9096fc58551697e656ab8dfbbf18f854
+l
+<home_dir/www/ksvc/site/sts_order_prod/popComponent/isDef.php,f\f\ff4caf8a71f28c32739b5561e3082208fd397365
+o
+?home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php,7\f\7f5a5c9663643d4c11bf16ae3de896ce271e9509
+l
+<home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js,9\1\9187a16dfed596874548fa079f89d5e9b5286fcf
\ No newline at end of file
diff --git a/.idea/sonarlint/securityhotspotstore/0/1/019dba2e3e3ca39be57cdeda0181255f2a108089 b/.idea/sonarlint/securityhotspotstore/0/1/019dba2e3e3ca39be57cdeda0181255f2a108089
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/3/7/37af8ab61b5521209dfb77046413f87c5e4895ed b/.idea/sonarlint/securityhotspotstore/3/7/37af8ab61b5521209dfb77046413f87c5e4895ed
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/4/7/4714a4eb41b010ff16a0b0d6e1239c2bfe52a965 b/.idea/sonarlint/securityhotspotstore/4/7/4714a4eb41b010ff16a0b0d6e1239c2bfe52a965
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/5/0/506ce27b4205c168de6546ae8ee0d23065d27196 b/.idea/sonarlint/securityhotspotstore/5/0/506ce27b4205c168de6546ae8ee0d23065d27196
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/7/b/7b4c396d650b291c80d654c1ef7134d97c208db6 b/.idea/sonarlint/securityhotspotstore/7/b/7b4c396d650b291c80d654c1ef7134d97c208db6
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/7/f/7f5a5c9663643d4c11bf16ae3de896ce271e9509 b/.idea/sonarlint/securityhotspotstore/7/f/7f5a5c9663643d4c11bf16ae3de896ce271e9509
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/8/0/806b045f1c9e62be2771054b6ad277951dff458f b/.idea/sonarlint/securityhotspotstore/8/0/806b045f1c9e62be2771054b6ad277951dff458f
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/9/1/9187a16dfed596874548fa079f89d5e9b5286fcf b/.idea/sonarlint/securityhotspotstore/9/1/9187a16dfed596874548fa079f89d5e9b5286fcf
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/9/e/9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581 b/.idea/sonarlint/securityhotspotstore/9/e/9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/f/9/f909f1873ad9b00d3aadf1e34a760d41d322c9fa b/.idea/sonarlint/securityhotspotstore/f/9/f909f1873ad9b00d3aadf1e34a760d41d322c9fa
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/f/d/fde79b6f9096fc58551697e656ab8dfbbf18f854 b/.idea/sonarlint/securityhotspotstore/f/d/fde79b6f9096fc58551697e656ab8dfbbf18f854
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/f/f/ff4caf8a71f28c32739b5561e3082208fd397365 b/.idea/sonarlint/securityhotspotstore/f/f/ff4caf8a71f28c32739b5561e3082208fd397365
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/index.pb b/.idea/sonarlint/securityhotspotstore/index.pb
index a81eb4c..e839a6f 100644
--- a/.idea/sonarlint/securityhotspotstore/index.pb
+++ b/.idea/sonarlint/securityhotspotstore/index.pb
@@ -100,4 +100,28 @@ l
 �
 Q.idea/sonarlint/securityhotspotstore/9/6/961998ca1a9275fd6584098a3ca77b3ba90394b3,3\e\3e4d73edffccbc4f02bb12696ceb4730d4675644
 c
-3home_dir/www/ksvc/inc/css/scss/component/_form.scss,0\a\0a400853adbf4e029ab2c2d410c62555546f10bc
\ No newline at end of file
+3home_dir/www/ksvc/inc/css/scss/component/_form.scss,0\a\0a400853adbf4e029ab2c2d410c62555546f10bc
+e
+5home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js,f\9\f909f1873ad9b00d3aadf1e34a760d41d322c9fa
+\
+,home_dir/www/ksvc/prod/reg_plan/reg_plan.php,0\1\019dba2e3e3ca39be57cdeda0181255f2a108089
+n
+>home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php,5\0\506ce27b4205c168de6546ae8ee0d23065d27196
+K
+home_dir/www/common.inc.php,7\b\7b4c396d650b291c80d654c1ef7134d97c208db6
+O
+home_dir/config/html_config.php,8\0\806b045f1c9e62be2771054b6ad277951dff458f
+b
+2home_dir/www/ksvc/insp/reg_insp_qc/reg_insp_qc.php,9\e\9ee0c53e411ae30e9aa7e0bfcd2eefd80a8b5581
+Q
+!home_dir/www/include/js/common.js,3\7\37af8ab61b5521209dfb77046413f87c5e4895ed
+o
+?home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php,4\7\4714a4eb41b010ff16a0b0d6e1239c2bfe52a965
+p
+@home_dir/www/ksvc/site/sts_order_prod/sts_order_pop_util.inc.php,f\d\fde79b6f9096fc58551697e656ab8dfbbf18f854
+l
+<home_dir/www/ksvc/site/sts_order_prod/popComponent/isDef.php,f\f\ff4caf8a71f28c32739b5561e3082208fd397365
+o
+?home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php,7\f\7f5a5c9663643d4c11bf16ae3de896ce271e9509
+l
+<home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js,9\1\9187a16dfed596874548fa079f89d5e9b5286fcf
\ No newline at end of file
diff --git a/home_dir/www/ksvc/base/insp/insp.js b/home_dir/www/ksvc/base/insp/insp.js
index 3211a24..eb4fa7e 100644
--- a/home_dir/www/ksvc/base/insp/insp.js
+++ b/home_dir/www/ksvc/base/insp/insp.js
@@ -378,10 +378,51 @@ class Tb_insp_class {
       this.cellEdited && this.cellEdited(cell);
     });
 
+    //ì—‘ì…€ì—°ê²°
+    document.getElementById('excel_down').addEventListener('click', function (e) {
+      getExcel2();
+    });
+    
+    document.getElementById('excel_up').addEventListener('click', function (e) {
+      document.getElementById('fileInput').click();
+    });
+    
+    document.getElementById('fileInput').addEventListener('change', function (e) {
+        let file = e.target.files[0];
+        if (!file) {
+            console.log('íŒŒì�¼ì�´ ì„ íƒ�ë�˜ì§€ ì•Šì•˜ìŠµë‹ˆë‹¤.');
+            return;
+        } 
+        let reader = new FileReader();
+        reader.onload = (e) => { 
+            let data = e.target.result;
+            let workbook = XLSX.read(data, { type: 'binary' });
+    
+            workbook.SheetNames.forEach((sheetName) => {
+              let rows = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName], { header:1 });
+              console.log(rows);
+              rows.slice(1).forEach((row,index) => { 
+              let rowToAdd = {
+                INSP_ITEM: row[0],
+                INSP_NAME: row[1], 
+                INSP_METH: row[2],
+                USEFLAG: row[3],  
+                _STATUS_: "I"     
+              };
+              console.log('í–‰ì¶”ê°€ ', rowToAdd);
+              Tb_insp.tbList.addRow(rowToAdd);
+              });
+          });
+      };
+      reader.readAsBinaryString(file);
+    });
+    
+    
+
     // ì¶”ê°€
     ["click", "keypress"].forEach((evt) => {
       this.addBtn.addEventListener(evt, () => {
-        this.addRow && this.addRow();
+        this.addRow && this.addRow() && this.addRow(rowToAdd);
       });
     });
     // ì‚­ì œ
diff --git a/home_dir/www/ksvc/base/insp/insp.php b/home_dir/www/ksvc/base/insp/insp.php
index 239d556..43400af 100644
--- a/home_dir/www/ksvc/base/insp/insp.php
+++ b/home_dir/www/ksvc/base/insp/insp.php
@@ -35,6 +35,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
         <div class="button-container">
           <div class="button-box">
             <button class="point-btn" id="excel_down">ì—‘ì…€ ë‹¤ìš´ë¡œë“œ</button>
+            <input type="file" id="fileInput" style="display: none;" accept=".xlsx, .xls">
             <button class="point-btn" id="excel_up">ì—‘ì…€ ì—…ë¡œë“œ</button>
             <button class="point-btn" id="filter_btn">ì¡°íšŒ</button>
             <button class="point-btn" id="put_btn">ì €ìž¥</button>
@@ -99,5 +100,6 @@ include_once _SVC_INC_PATH_ . "/header.php";
 <?php include_once _SVC_INC_PATH_ . "/footer_common.php"; ?>
 <script src="./insp.js"></script>
 <script src="./insp_excel.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.5/xlsx.full.min.js"></script>
 <?php
 include_once _SVC_INC_PATH_ . "/footer.php";
\ No newline at end of file
diff --git a/home_dir/www/ksvc/base/insp/insp_excel.js b/home_dir/www/ksvc/base/insp/insp_excel.js
index 6461da3..708dee2 100644
--- a/home_dir/www/ksvc/base/insp/insp_excel.js
+++ b/home_dir/www/ksvc/base/insp/insp_excel.js
@@ -1,21 +1,12 @@
 
 let getExcel2 = function (data) {
   //Todo: ì»´í�¼ë„ŒíŠ¸. ì£¼ì„� ì‚­ì œí•˜ì§€ ë§�ìž�
+  
+  let sheet_title = "ê²€ì‚¬í•­ëª©";
+  let file_name = "ê²€ì‚¬í•­ëª©";
 
-  let sheet_title = "";
-  let file_name = "";
-
-  if (data) {
-    //let dateTime = new DateTime().format("Ymdhis");
-    sheet_title = "ë°˜ìž…ì§€ì‹œ";
-    file_name = sheet_title + ".xlsx";
-  } else {
-    sheet_title = "ë°˜ìž…ì§€ì‹œì–‘ì‹�";
-    file_name = sheet_title + ".xlsx";
-  }
-
-  const work_Book = new ExcelJS.Workbook();
-  const work_Sheet = work_Book.addWorksheet(sheet_title);
+  const work_Book = new ExcelJS.Workbook();  // ExcelJS ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë¡œ ìƒˆ ì›Œí�¬ë¶� ìƒ�ì„±
+  const work_Sheet = work_Book.addWorksheet(sheet_title);   // ìƒˆ ì›Œí�¬ì‹œíŠ¸ ì¶”ê°€
 
   const all_border = {
     top: { style: "thin", color: { argb: "FF000000" } },
@@ -80,142 +71,47 @@ let getExcel2 = function (data) {
 
   };
 
-  let ws_row1 = work_Sheet.getRow(1);
-  ws_row1.height = 32;
-  ws_row1.getCell(1).value = "ë°˜ìž…ì§€ì‹œ";
-  ws_row1.getCell(1).style = field_css.title
-  work_Sheet.mergeCells('A1:U1');
+  // // ì²« ë²ˆì§¸ í–‰ ì„¤ì •, ë†’ì�´ì™€ ì œëª© ì„¤ì •
+
+  // let ws_row1 = work_Sheet.getRow(1);
+  // ws_row1.height = 32;
+  // ws_row1.getCell(1).value = "ê²€ì‚¬í•­ëª©";
+  // ws_row1.getCell(1).style = field_css.title
+  // work_Sheet.mergeCells('A1:E1');
 
 
 
-  let ws_row = work_Sheet.getRow(3);
+  
+
+  let ws_row = work_Sheet.getRow(1);
   ws_row.height = 25;
+  // ws_row.getCell(1).style = field_css.blue;
+  // ws_row.getCell(1).value = "NO.";
   ws_row.getCell(1).style = field_css.blue;
-  ws_row.getCell(1).value = "NO.";
+  ws_row.getCell(1).value = "ê²€ì‚¬í•­ëª©";
   ws_row.getCell(2).style = field_css.blue;
-  ws_row.getCell(2).value = "í™”ì£¼";
+  ws_row.getCell(2).value = "ê²€ì‚¬í•­ëª©ëª…";
   ws_row.getCell(3).style = field_css.blue;
-  ws_row.getCell(3).value = "ì„ ì‚¬";
+  ws_row.getCell(3).value = "ê²€ì‚¬ìœ í˜•";
   ws_row.getCell(4).style = field_css.blue;
-  ws_row.getCell(4).value = "ë¶€í‚¹ NO";
-  ws_row.getCell(5).style = field_css.blue;
-  ws_row.getCell(5).value = "ë°˜ì¶œì§€";
-  ws_row.getCell(6).style = field_css.blue;
-  ws_row.getCell(6).value = "ë°˜ìž…ì§€";
-  ws_row.getCell(7).style = field_css.blue;
-  ws_row.getCell(7).value = "ë°˜ìž…ì§€ ëª¨ì„ ";
+  ws_row.getCell(4).value = "ì‚¬ìš©";
 
-  ws_row.getCell(8).style = field_css.blue;
-  ws_row.getCell(8).value = "í•­ì°¨";
-  ws_row.getCell(9).style = field_css.blue;
-  ws_row.getCell(9).value = "ì»¨í…Œì�´ë„ˆë²ˆí˜¸";
-  ws_row.getCell(10).style = field_css.blue;
-  ws_row.getCell(10).value = "ì �ìž¬ìœ ë¬´";
-  ws_row.getCell(11).style = field_css.blue;
-  ws_row.getCell(11).value = "ì»¨.ê·œê²©";
-  ws_row.getCell(12).style = field_css.blue;
-  ws_row.getCell(12).value = "SEAL NO";
-  ws_row.getCell(13).style = field_css.blue;
-  ws_row.getCell(13).value = "ì¤‘ëŸ‰";
-  ws_row.getCell(14).style = field_css.blue;
-  ws_row.getCell(14).value = "POD";
-  ws_row.getCell(15).style = field_css.blue;
-  ws_row.getCell(15).value = "IMDG";
-  ws_row.getCell(16).style = field_css.blue;
-  ws_row.getCell(16).value = "ì ‘ì•ˆì�¼";
-  ws_row.getCell(17).style = field_css.blue;
-  ws_row.getCell(17).value = "ì°¨ëŸ‰ì •ë³´";
-  ws_row.getCell(18).style = field_css.blue;
-  ws_row.getCell(18).value = "ë°˜ìž…ì°¨ëŸ‰ì—°ë�½ì²˜";
-  ws_row.getCell(19).style = field_css.blue;
-  ws_row.getCell(19).value = "ìž…ê³ ì�¼";
-  ws_row.getCell(20).style = field_css.blue;
-  ws_row.getCell(20).value = "ë¹„ê³ ";
-  ws_row.getCell(21).style = field_css.blue;
-  ws_row.getCell(21).value = "ìš”ì²­ì‚¬í•­";
+  
+  
 
 
   work_Sheet.columns = [
+    { width: 15 },
+    { width: 30 },
+    { width: 15 },
+    { width: 15 },
     { width: 9 },
-    { width: 15 },
-    { width: 15 },
-    { width: 18 },
-    { width: 11 },
-    { width: 11 },
-    { width: 11 },
-    { width: 11 },
-    { width: 15 },
-    { width: 18 },
-    { width: 11 },
-    { width: 13 },
-    { width: 11 },
-    { width: 13 },
-    { width: 15 },
-    { width: 23 },
-    { width: 15 },
-    { width: 20 },
-    { width: 18 },
-    { width: 25 },
-    { width: 25 },
+  
   ];
 
 
-  // //ì²«ë²ˆì§¸ ìˆ«ìž�, ì˜†ì—� ë°•ìŠ¤ë¶€ë¶„ ì±„ì›Œë†“ëŠ” ë¶€ë¶„
-  // for (let i = 0; i < data.length; i++) {
-  //   let row = work_Sheet.getRow(i + 4);
-  //   row.height = 22;
-
-
-  //   let numCell = row.getCell(1);
-  //   numCell.value = i + 1;
-  //   numCell.style = field_css.blue;
-
-  //   //ë°•ìŠ¤
-  //   for (let j = 2; j < 18; j++) {
-  //     let cell = row.getCell(j);
-  //     cell.style = field_css.box;
-  //   }
-  // }
-
-
-  // ë�°ì�´í„°ê°€ ìžˆìœ¼ë©´ ë°•ìŠ¤ì•ˆì—� ë�°ì�´í„° ë“¤ì–´ê°€ëŠ” ê³³
-  if (data) {
-    for (let i = 0; i < data.length; i++) 
-    {
-      let ws_row = work_Sheet.getRow(i + 4);
-      ws_row.height = 22; // ë†’ì�´ ì„¤ì •
-
-      ws_row.getCell(2).value = data[i]["BP_NM"] || '';
-      ws_row.getCell(3).value = data[i]["LINER_CD"] || '';
-      ws_row.getCell(4).value = data[i]["BK_NO"] || '';
-      ws_row.getCell(5).value = data[i]["ARR_CD"] || '';
-      ws_row.getCell(6).value = data[i]["DEP_NM"] || '';
-      ws_row.getCell(7).value = data[i]["VES_CD"] || '';
-      ws_row.getCell(8).value = data[i]["VES_VOY"] || '';
-      ws_row.getCell(9).value = data[i]["CONTR_NO"] || '';
-      ws_row.getCell(10).value = data[i]["CONTR_LOAD_STS"] || '';
-      ws_row.getCell(11).value = data[i]["CONTR_SIZE_TYPE"] || '';
-      ws_row.getCell(12).value = data[i]["SEAL_NO"] || '';
-      ws_row.getCell(13).value = data[i]["CARGO_WT"] || '';
-      ws_row.getCell(14).value = data[i]["DEP_NM"] || '';
-      ws_row.getCell(15).value = data[i][""] || '';
-      ws_row.getCell(16).value = data[i]["CSDHPPRARNDE"] || '';
-      ws_row.getCell(17).value = data[i]["IN_VEH_NO"] || '';
-      ws_row.getCell(18).value = data[i]["IN_DRV_TEL_NO"] || '';
-      ws_row.getCell(19).value = data[i]["IN_DT"] || '';
-      ws_row.getCell(20).value = data[i]["REMK"] || '';
-      ws_row.getCell(21).value = data[i]["REQUEST"] || '';
-
-
-      ws_row.getCell(1).value = i + 1;
-      ws_row.getCell(1).style = field_css.blue; 
-      
-      for (let j = 2; j <= 21; j++) {
-      ws_row.getCell(j).style = field_css.box;
-    }
-    }
-  }
 
+   // íŒŒì�¼ ìƒ�ì„± ë°� ë‹¤ìš´ë¡œë“œ ë¶€ë¶„
 
   work_Book.xlsx.writeBuffer().then((data) => {
     const blob = new Blob([data], {
diff --git a/home_dir/www/ksvc/base/item/item.js b/home_dir/www/ksvc/base/item/item.js
index 44bff1e..142228c 100644
--- a/home_dir/www/ksvc/base/item/item.js
+++ b/home_dir/www/ksvc/base/item/item.js
@@ -522,7 +522,7 @@ class Tb_routing_class {
 
           _this.fileData = JSON.parse(data).data;
 
-          console.log(_this.fileData);
+
           if(rowData._STATUS_ !== "I"){
             rowData.FILE_NM = _this.fileData.file_name;
             this.tbList.updateData([
@@ -546,7 +546,7 @@ class Tb_routing_class {
             ]);
           }
 
-          console.log(this.tbList.getData());
+
         }else{
           kuls_alert(data.msg);
         }
@@ -1501,7 +1501,7 @@ class Tb_pic_class {
       },
       complete: () => {
         window.clearTimeout(talert);
-        this.getMainList();
+
         // this.tbList.clearAlert();
         // this.setFilter();
       },
@@ -1706,11 +1706,11 @@ class Tb_pic_class {
       { field: "SID",                       visible:false},
       { field: "FILE_ID",                   visible:false},
       { field: "MAKE_TM",     title: "ë“±ë¡�ì�¼", width: 100, formatter: (cell)=>{
-          let dateData = cell.getValue().date.substring(0,10);
-          if(dateData == '1900-01-01'){
-            dateData = '';
-          }
-          return dateData;
+          // let dateData = cell.getValue().date.substring(0,10);
+          // if(dateData == '1900-01-01'){
+          //   dateData = '';
+          // }
+          return cell;
         }
       },
       { field: "MAKE_USER_ID",title: "ë“±ë¡�ìž�", width: 100 },
diff --git a/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js b/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js
index 49d7f70..cc41532 100644
--- a/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js
+++ b/home_dir/www/ksvc/faclt/reg_faclt_defect/reg_faclt_defect.js
@@ -294,13 +294,14 @@ class Tb_facility_class {
       { formatter: "rownum",      title: "NO",     width: 50},
       { field: "FACLT_NM",        title: "ì„¤ë¹„",    width: 150, editor: "input" , editable:(cell)=>{ let val = cell.getData(); return val._STATUS_ === 'I' },},
       { field: "FACLT_CD",        visible: false, width: 150},
-      { field: "DEFECT_DT",       title: "ë°œìƒ�ì�¼", width: 150,editor:'date', editorParams:{
-          min:"01/01/2000", // the minimum allowed value for the date picker
-          max:"02/12/9999", // the maximum allowed value for the date picker
-          format:"yyyy-MM-dd", // the format of the date value stored in the cell
-          verticalNavigation:"table"}},
-      { field: "DEF_TM",       title: "ë°œìƒ�ì‹œê°„", width: 150, editor: tb_custom_editor.time },
+      // { field: "DEFECT_DT",       title: "ë°œìƒ�ì�¼", width: 150,editor:'date', editorParams:{
+      //     min:"01/01/2000", // the minimum allowed value for the date picker
+      //     max:"02/12/9999", // the maximum allowed value for the date picker
+      //     format:"yyyy-MM-dd", // the format of the date value stored in the cell
+      //     verticalNavigation:"table"}},
+      // { field: "DEF_TM",       title: "ë°œìƒ�ì‹œê°„", width: 150, editor: tb_custom_editor.time },
       { field: "DEFECT_CONTENT",  title: "ê³ ìž¥ë‚´ì—­", width: 300, editor: "input"},
+      { field: "DEFECT_DT",       title: "ë°œìƒ�ì�¼", width: 150},
     ];
     const commonFieldData = {
       headerSort: true,
diff --git a/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js b/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js
index aec2532..856a3a2 100644
--- a/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js
+++ b/home_dir/www/ksvc/faclt/reg_faclt_repair/reg_faclt_repair.js
@@ -299,11 +299,12 @@ class Tb_facility_class {
       { field: "FACLT_NM", title: "ì„¤ë¹„", width: 150,editor: "input", editable:(cell)=>{ let val = cell.getData(); return val._STATUS_ === 'I' }, },
       { field: "FACLT_CD",        visible: false, width: 150},
       { field: "REPAIR_NO",       visible: false, width: 150},
-      { field: "REPAIR_DT", title: "ìˆ˜ë¦¬ì�¼ìž�", width: 150,editor:'date', editorParams: {max:'9999-12-31'} },
       { field: "REPAIR_CONTENT", title: "ìˆ˜ë¦¬ë‚´ì—­", width: 150,editor: "input" },
       { field: "REPAIR_BP_NM", title: "ìˆ˜ë¦¬ì—…ì²´", width: 100,editor: "input" },
-      { field: "REPAIR_AMT", title: "ìˆ˜ë¦¬ê¸ˆì•¡", width: 150,editor: "input" },
+      { field: "REPAIR_AMT", title: "ìˆ˜ë¦¬ê¸ˆì•¡", width: 150,editor: "input", formatter:"money", formatterParams:{ decimal:".",precision:0 } },
       { field: "REPAIR_TEL_NO", title: "ì—°ë�½ì²˜", width: 200,editor: "input"},
+      // { field: "REPAIR_DT", title: "ìˆ˜ë¦¬ì�¼ìž�", width: 150,editor:'date', editorParams: {max:'9999-12-31'} },
+      { field: "REPAIR_DT", title: "ìˆ˜ë¦¬ì�¼ìž�", width: 150 }
     ];
     const commonFieldData = {
       headerSort: true,
diff --git a/home_dir/www/ksvc/inc/common.ajax.php b/home_dir/www/ksvc/inc/common.ajax.php
index 01ffc87..16732ae 100644
--- a/home_dir/www/ksvc/inc/common.ajax.php
+++ b/home_dir/www/ksvc/inc/common.ajax.php
@@ -1,4 +1,9 @@
 <?php
+/*
+ * @Overview ë¶ˆëŸ‰ì‹¤ì � ë“±ë¡�
+ * @History 2024-04-29 / ê¹€ìŠ¹í˜� / ë¬¸ë‹¨ì •ë ¬
+ */
+
 include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
 include_once _HOME_INC_PATH_ . "/ajax_init.php";
 
@@ -10,6 +15,7 @@ if (class_exists("SangsengApi")) {
 $_REQUEST['mode'] = isset($_REQUEST['mode']) ? $_REQUEST['mode'] : "";
 switch ($_REQUEST['mode']) {
 
+//ë¡œê·¸ì�¸
   case "memberLogin":
     if (csrf_check('memberLogin')) {
       $retval['mesg'] = cUtil\Mlang::getText("ì •ìƒ�ì �ì�¸ ì ‘ê·¼ì�´ ì•„ë‹™ë‹ˆë‹¤.");
@@ -39,45 +45,9 @@ switch ($_REQUEST['mode']) {
         unset($_COOKIE['kuls_save_session']);
       }
     }
-
     break;
 
-
-  case "getItemList":
-    $sql = "USP_B_ITEM_S20";
-    // $params = Array(
-    // "ITEM_CD"  => $_REQUEST['ITEM_CD'],
-    // );
-    $rst = $baseObj->DB->exec($sql, $params);
-
-    $rows = array();
-    if ($rst) {
-      $retval['code'] = 1;
-      while ($row = $baseObj->DB->fetch_array($rst)) {
-        $rows[] = $row;
-      }
-      $retval['data'] = $rows;
-    }
-    break;
-
-  case "getDefList":
-  $sql = "USP_P_DEF_RSLT_S20";
-  // $params = Array(
-  // "ITEM_CD"  => $_REQUEST['ITEM_CD'],
-  // );
-  $rst = $baseObj->DB->exec($sql, $params);
-  $rows = array();
-  if ($rst) {
-    $retval['code'] = 1;
-    while ($row = $baseObj->DB->fetch_array($rst)) {
-      $rows[] = $row;
-    }
-    $retval['data'] = $rows;
-  }
-  break;  
-
-
-
+//í† í�°
   case "memberTokenLogin":
     if (csrf_check('memberLogin')) {
       $retval['mesg'] = cUtil\Mlang::getText("ì •ìƒ�ì �ì�¸ ì ‘ê·¼ì�´ ì•„ë‹™ë‹ˆë‹¤.");
@@ -110,16 +80,9 @@ switch ($_REQUEST['mode']) {
         $retval['data']['save_id'] = '';
       }
     }
-
     break;
 
-
-
-
-
-
-
-
+//ë¡œê·¸ì�¸
   case "memberJoin":
     $minfo = $baseObj->getMember($_REQUEST['member_id']);
     if (csrf_check('memberJoin')) {
@@ -151,29 +114,15 @@ switch ($_REQUEST['mode']) {
       $retval['code'] = $baseObj->join($ins_row);
       $retval['mesg'] = cUtil\Mlang::getText("ë“±ë¡�ì—� ì‹¤íŒ¨í•˜ì˜€ìŠµë‹ˆë‹¤.");
     }
-
     break;
 
-
-
-
-
-
-
-
+//ë¡œê·¸ì•„ì›ƒ
   case "memberLogout":
     $apiObj->pushApi($GLOBALS['_Umem']['member_id'], "ì¢…ë£Œ");
     $retval['code'] = $baseObj->logout();
     break;
 
-
-
-
-
-
-
-
-
+//ë©”ë‰´ë¦¬ìŠ¤íŠ¸
   case "getSiteMenuList":
     $mnuObj = new Menu(TB_menu_list);
 
@@ -190,13 +139,12 @@ switch ($_REQUEST['mode']) {
     }
     break;
 
-
-
+//ê±°ëž˜ì²˜ëª©ë¡�
   case "getPartnerList":
     $sql = "USP_B_BIZ_PARTNER_S10";
     $params = array(
       "P_USE_FLG" => "Y",
-      "P_BP_CD" => "",
+      "P_BP_CD"   => "",
       "P_PUR_FLG" => "",
       "P_SAL_FLG" => ""
     );
@@ -207,16 +155,16 @@ switch ($_REQUEST['mode']) {
     if ($rst) {
       $retval['code'] = 1;
       while ($row = $baseObj->DB->fetch_array($rst)) {
-        //                  $row['BP_PRSN_CELL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_CELL_NO']);
-//                  $row['BP_PRSN_EMAIL']   = $baseObj->lcrypt->dec_secure($row['BP_PRSN_EMAIL']);
-//                  $row['BP_PRSN_TEL_NO']  = $baseObj->lcrypt->dec_secure($row['BP_PRSN_TEL_NO']);
+        // $row['BP_PRSN_CELL_NO'] = $baseObj->lcrypt->dec_secure($row['BP_PRSN_CELL_NO']);
+        // $row['BP_PRSN_EMAIL']   = $baseObj->lcrypt->dec_secure($row['BP_PRSN_EMAIL']);
+        // $row['BP_PRSN_TEL_NO']  = $baseObj->lcrypt->dec_secure($row['BP_PRSN_TEL_NO']);
         $rows[] = $row;
       }
       $retval['data'] = $rows;
     }
     break;
 
-
+//ì‚¬ì—…ìž¥
   case "getBizareaList":
     $sql = "USP_B_BIZ_AREA_S10";
     $params = Array(
@@ -224,10 +172,7 @@ switch ($_REQUEST['mode']) {
       ,"BP_NM"            => ""   //ê±°ëž˜ì²˜ëª…
       ,"USEFLAG"          => 'Y'
     );
-
-
     $rst = $baseObj->DB->exec($sql, $params);
-
     $rows = array();
     if ($rst) {
       $retval['code'] = 1;
@@ -240,10 +185,57 @@ switch ($_REQUEST['mode']) {
     break;
 
 
+// ì‚¬ì›�ì •ë³´
+  case 'getWorkerList':
+    $squl = "USP_B_EMPLOYEE_S10";
+    $params = Array(
+      "EMP_NO"      => "",
+      "P_EMP_NM"    => "",
+      "P_DEPT_CD"   => "",
+      "P_DEPT_NM"   => "",
+      "RET_FLG"     => "N"
+    );
+    $rst = $baseObj->DB->exec($squl,$params);
 
+    $rows = array();
+    if( $rst ){
+      $retval['code'] = true;
+      while( $row = $baseObj->DB->fetch_array($rst) ){
+        $rows[] = $row;
+      };
+      $retval['data'] = $rows;
+      $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
+    }else{
+      $retval['code'] = false;
+    }
+    break;
 
+// ë¶€ì„œì •ë³´
+  case 'getDeptList':
+    $squl = "USP_B_DEPT_S10";
 
+    $params = Array(
+      "BIZ_AREA_NM" => "",
+      "DEPT_NM"     => "",
+      "USE_FLG"     => "Y"
+    );
+    $rst = $baseObj->DB->exec($squl, $params);
 
+    $rows = array();
+    if ($rst) {
+      $retval['code'] = true;
+      while ($row = $baseObj->DB->fetch_array($rst)) {
+        $rows[] = $row;
+      }
+      ;
+      $retval['data'] = $rows;
+      $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
+    } else {
+      $retval['code'] = false;
+    }
+    break;
+
+//ë¶€ì„œ íŠ¸ë¦¬
   case "getDeptTree":
     $sql = "USP_B_DEPT_HISTORY_S11";
     $params = array(
@@ -271,62 +263,42 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
-
-  // ì‚¬ì›�ì •ë³´
-  case 'getWorkerList':
-    $squl = "USP_B_EMPLOYEE_S10";
-    $params = Array(
-      "EMP_NO"      => "",
-      "P_EMP_NM"    => "",
-      "P_DEPT_CD"   => "",
-      "P_DEPT_NM"   => "",
-      "RET_FLG"   => "N"
-    );
-    $rst = $baseObj->DB->exec($squl,$params);
-
-    $rows = array();
-    if( $rst ){
-      $retval['code'] = true;
-      while( $row = $baseObj->DB->fetch_array($rst) ){
-        $rows[] = $row;
-      };
-      $retval['data'] = $rows;
-      $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
-    }else{
-      $retval['code'] = false;
-    }
-
-
-
-    break;
-
-
-  // ë¶€ì„œì •ë³´
-  case 'getDeptList':
-    $squl = "USP_B_DEPT_S10";
-
-    $params = Array(
-      "BIZ_AREA_NM" => "",
-      "DEPT_NM"     => "",
-      "USE_FLG"     => "Y"
-    );
-    $rst = $baseObj->DB->exec($squl, $params);
+// í’ˆëª© ì •ë³´
+  case "getItemList":
+    $sql = "USP_B_ITEM_S20";
+     $params = Array(
+     "ITEM_NM"  => '',
+     );
+    $rst = $baseObj->DB->exec($sql, $params);
 
     $rows = array();
     if ($rst) {
-      $retval['code'] = true;
+      $retval['code'] = 1;
       while ($row = $baseObj->DB->fetch_array($rst)) {
         $rows[] = $row;
       }
-      ;
       $retval['data'] = $rows;
-      $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
-    } else {
-      $retval['code'] = false;
     }
     break;
 
-  // ìƒ�ì‚°ì˜¤ë�”(ìž‘ì—…ì§€ì‹œ)ë³„ ê³µì • ì •ë³´
+// ë¶ˆëŸ‰ì‹¤ì �
+  case "getDefList":
+  $sql = "USP_P_DEF_RSLT_S20";
+  // $params = Array(
+  // "ITEM_CD"  => $_REQUEST['ITEM_CD'],
+  // );
+  $rst = $baseObj->DB->exec($sql, $params);
+  $rows = array();
+  if ($rst) {
+    $retval['code'] = 1;
+    while ($row = $baseObj->DB->fetch_array($rst)) {
+      $rows[] = $row;
+    }
+    $retval['data'] = $rows;
+  }
+  break;
+
+// ìƒ�ì‚°ì˜¤ë�”(ìž‘ì—…ì§€ì‹œ)ë³„ ê³µì • ì •ë³´
   case 'getOrderList':
     $squl = "USP_P_WO_S20";
 
@@ -346,8 +318,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
-
-    // ê³µì •ì •ë³´
+// ê³µì •ì •ë³´
   case 'getOperList':
     $squl = "USP_B_OPERATION_S20";
     $rst = $baseObj->DB->exec($squl);
@@ -365,6 +336,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
       $retval['code'] = false;
     }
     break;
+
 // íŠ¹ì • í’ˆëª©ì—� ëŒ€í•œ ê³µì •ì •ë³´
   case 'getItemOperList':
     $squl = "USP_B_OPERATION_S30";
@@ -387,7 +359,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
-  // ì„¤ë¹„ ì •ë³´
+// ì„¤ë¹„ ì •ë³´
   case 'getFacilityList':
     $squl = "USP_B_FACILITY_S10";
     $params = Array(
@@ -412,7 +384,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
-  // ê²€ì‚¬í•­ëª© ì •ë³´
+// ê²€ì‚¬í•­ëª© ì •ë³´
   case "getInspList":
     $sql = "USP_B_INSP_ITEM_S10";
 
@@ -436,26 +408,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
-
-  case "getBasecodeList":
-    $where = new DB_Where();
-    $where->add("CD.Code_Uid <> ?", $_REQUEST['Bran_Uid']);
-    if ($_REQUEST['Group_Uid']) {
-      $where->add("CD.Code_Uid <> ?", $_REQUEST['Group_Uid']);
-    }
-    $where->add("BR.Active = ?", "Y");
-    $where->add("GR.Active = ?", "Y");
-    $rows = $baseObj->getAllBaseCodeList($_REQUEST['Bran_Uid'], $_REQUEST['Group_Uid'] ?: "", "", $where);
-
-    for ($a = 0; $a < count($rows); $a++) {
-      $rows[$a]['Code_Uid_Old'] = $rows[$a]['Code_Uid'];
-    }
-
-    $retval['code'] = 1;
-    $retval['data'] = $rows;
-    break;
-
-    // ìƒ�ì‚°ì‹¤ì � ì˜¤ë�” ê³µì • ì •ë³´
+// ìƒ�ì‚°ì‹¤ì � ì˜¤ë�” ê³µì • ì •ë³´
   case 'getRegOrderList':
     $squl = "USP_P_REG_WO_S20";
 
@@ -475,7 +428,7 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
   break;
 
-   // ìƒ�ì‚°ì‹¤ì � ì„¤ë¹„ ì •ë³´
+// ìƒ�ì‚°ì‹¤ì � ì„¤ë¹„ ì •ë³´
   case 'getOrderFacilityList':
     $squl = "USP_B_REG_FACILITY_S10";
 
@@ -495,10 +448,27 @@ $retval['data'] = $mnuObj->tree_by_parent($rows, 'DEPT_CD', 'PAR_DEPT_CD', '');
     }
     break;
 
+//ê¸°ì´ˆì½”ë“œ
+  case "getBasecodeList":
+    $where = new DB_Where();
+    $where->add("CD.Code_Uid <> ?", $_REQUEST['Bran_Uid']);
+    if ($_REQUEST['Group_Uid']) {
+      $where->add("CD.Code_Uid <> ?", $_REQUEST['Group_Uid']);
+    }
+    $where->add("BR.Active = ?", "Y");
+    $where->add("GR.Active = ?", "Y");
+    $rows = $baseObj->getAllBaseCodeList($_REQUEST['Bran_Uid'], $_REQUEST['Group_Uid'] ?: "", "", $where);
 
+    for ($a = 0; $a < count($rows); $a++) {
+      $rows[$a]['Code_Uid_Old'] = $rows[$a]['Code_Uid'];
+    }
 
+    $retval['code'] = 1;
+    $retval['data'] = $rows;
+    break;
+
+//ê¸°ì´ˆì½”ë“œ
   case "putBasecode":
-
     $_REQUEST['reqdata'] = json_decode($_REQUEST['reqdata']);
     $rst = true;
     foreach ($_REQUEST['reqdata'] as $data) {
diff --git a/home_dir/www/ksvc/inc/css/scss/common/_common.scss b/home_dir/www/ksvc/inc/css/scss/common/_common.scss
index 77ea747..4930fdd 100644
--- a/home_dir/www/ksvc/inc/css/scss/common/_common.scss
+++ b/home_dir/www/ksvc/inc/css/scss/common/_common.scss
@@ -128,16 +128,16 @@ button {
 //   }
 // }
 
-.disabled-btn {
-  background-color: rgba(255, 255, 255, 0.973);
-  color: #dddddd;
-  border-color: #e9e9e9;
-  cursor: default;
+.disabled-btn, button[disabled] {
+  background-color: rgba(255, 255, 255, 0.973) !important;
+  color: #dddddd !important;
+  border-color: #e9e9e9 !important;
+  cursor: default !important;
 
   &:hover {
-    background-color: rgba(255, 255, 255, 0.973);
-    color: #dddddd;
-    border-color: #e9e9e9;
+    background-color: rgba(255, 255, 255, 0.973) !important;
+    color: #dddddd !important;
+    border-color: #e9e9e9 !important;
   }
 }
 
diff --git a/home_dir/www/ksvc/inc/css/scss/component/_table.scss b/home_dir/www/ksvc/inc/css/scss/component/_table.scss
index 1f9335f..35925bf 100644
--- a/home_dir/www/ksvc/inc/css/scss/component/_table.scss
+++ b/home_dir/www/ksvc/inc/css/scss/component/_table.scss
@@ -32,7 +32,9 @@
   // í…Œì�´ë¸” í–‰
   .tabulator-row{
     background-color: transparent;
-    border-bottom: solid 1px $gray-002;
+    border: solid 0.5px $gray-002;
+    border-left: solid 0.5px transparent;
+    border-right: solid 0.5px transparent;
 
     &:hover{
       background-color: $gray-003;
@@ -43,12 +45,27 @@
     &.remove-row{
       background-color: $red;
     }
+    &.edit-row{
+      background-color: #d2ddff;
+    }
+    &.blank-row{
+      border: solid 0.5px red
+    }
 
     .tabulator-cell{
       border-right: solid 1px $gray-002;
 
+      // &.tabulator-editable{
+      //   background-color: transparent ;
+      //   &::after{
+      //     content: "";
+          
+      //   }
+        // &:hover{
+        //   background-color: $gray-003;
+        // }
+      // }
       &.editable-cell, &.tabulator-editable{
-        // background-color: rgba(221, 221, 255, 0.548) ;
         background-color: rgba(255, 253, 221, 0.548) ;
         &::after{
           content: "â—¥";
@@ -86,7 +103,7 @@
 
       &.tabulator-col-group{
         .tabulator-col-group-cols{
-          border-top: solid 1px $gray-002;
+          border-top: solid 1px $gray-004;
         }
 
       }
@@ -186,7 +203,7 @@
 }
 
 .tb-height-full .cont_hfix{
-  height: calc(100% - 43px);
+  height: calc(100% - 44px);
   margin-top: 10px;
   overflow: auto;
 }
@@ -238,6 +255,13 @@
 }
 .vue-table {
   width: 3000px;
+  position: relative;
+
+  thead{
+    position: sticky;
+    left: 0;
+    top: 0;
+  }
 
   th{
     min-width: auto;
@@ -261,6 +285,12 @@
       &.width-200{
         width: 200px;
       }
+      &.width-230{
+        width: 230px;
+      }
+      &.width-800{
+        width: 800px;
+      }
       .tabulator-col-group-cols{
         display: none;
       }
@@ -301,3 +331,26 @@
   }
 }
 
+
+.status-table.vue-table{
+  colgroup{
+    col{}
+  }
+  thead{
+    tr{
+      th{}
+    }
+  }
+
+  tbody{
+    tr{
+      td{
+        &.on{
+          background-color: $gray-002;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
+
diff --git a/home_dir/www/ksvc/inc/css/style.css b/home_dir/www/ksvc/inc/css/style.css
index 1b6790c..373ee96 100644
--- a/home_dir/www/ksvc/inc/css/style.css
+++ b/home_dir/www/ksvc/inc/css/style.css
@@ -102,16 +102,16 @@ button {
   color: #cf5b5b;
 }
 
-.disabled-btn {
-  background-color: rgba(255, 255, 255, 0.973);
-  color: #dddddd;
-  border-color: #e9e9e9;
-  cursor: default;
+.disabled-btn, button[disabled] {
+  background-color: rgba(255, 255, 255, 0.973) !important;
+  color: #dddddd !important;
+  border-color: #e9e9e9 !important;
+  cursor: default !important;
 }
-.disabled-btn:hover {
-  background-color: rgba(255, 255, 255, 0.973);
-  color: #dddddd;
-  border-color: #e9e9e9;
+.disabled-btn:hover, button[disabled]:hover {
+  background-color: rgba(255, 255, 255, 0.973) !important;
+  color: #dddddd !important;
+  border-color: #e9e9e9 !important;
 }
 
 .tab-btn {
@@ -864,6 +864,12 @@ header .status-menu ul li a {
 
 .vue-table {
   width: 3000px;
+  position: relative;
+}
+.vue-table thead {
+  position: sticky;
+  left: 0;
+  top: 0;
 }
 .vue-table th {
   min-width: auto;
diff --git a/home_dir/www/ksvc/inc/css/style.css.map b/home_dir/www/ksvc/inc/css/style.css.map
new file mode 100644
index 0000000..ca3143f
--- /dev/null
+++ b/home_dir/www/ksvc/inc/css/style.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["style.css","scss/common/_common.scss","scss/common/_color.scss","scss/component/_header.scss","scss/component/_sidebar.scss","scss/component/_search.scss","scss/component/_scrollbar.scss","scss/component/_table.scss","scss/component/_form.scss","scss/component/_popup.scss","scss/page/_login.scss","scss/page/_main.scss"],"names":[],"mappings":"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","file":"style.css"}
\ No newline at end of file
diff --git a/home_dir/www/ksvc/inc/js/vars.js.php b/home_dir/www/ksvc/inc/js/vars.js.php
index ef33472..56ecfda 100644
--- a/home_dir/www/ksvc/inc/js/vars.js.php
+++ b/home_dir/www/ksvc/inc/js/vars.js.php
@@ -42,5 +42,6 @@ const varsTLColor       = <?=json_encode($GLOBALS['_TLColor']?:Array())?>;
 const varsIO_TYPE_FIN   = <?=json_encode($GLOBALS['_IO_TYPE_FIN']?:Array())?>;
 const varsNCR_CD        = <?=json_encode($GLOBALS['_NCR_CD']?:Array())?>;
 const varsTASK_TYPE     = <?=json_encode($GLOBALS['_TASK_TYPE']?:Array())?>;
-const varsSTOP_CD     = <?=json_encode($GLOBALS['_STOP_CD']?:Array())?>;
-const varsDEF_CD     = <?=json_encode($GLOBALS['_DEF_CD']?:Array())?>;
\ No newline at end of file
+const varsSTOP_CD       = <?=json_encode($GLOBALS['_STOP_CD']?:Array())?>;
+const varsDEF_CD        = <?=json_encode($GLOBALS['_DEF_CD']?:Array())?>;
+const varsRSLT_GRP      = <?=json_encode($GLOBALS['_RSLT_GRP']?:Array())?>;
\ No newline at end of file
diff --git a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php
index c16bcdf..32217c6 100644
--- a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.ajax.php
@@ -1,5 +1,11 @@
 <?php
 $cate_id = "CNT_CT_WORKER";
+
+/*
+* @Overview ìž‘ì—…ìž�ë³„ ê°€ê³µì‹œê°„
+* @History 2024-04-22 / ìµœìŠ¹ì—° / ìµœì´ˆìž‘ì„±
+*/
+
 include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
 include_once _SVC_INC_PATH_ . "/auth_check.php";
 include_once _HOME_INC_PATH_ . "/ajax_init.php";
@@ -12,13 +18,13 @@ if (!_notAuth("R")) {
     case 'getWoOperList':
 
 
-      $squl = "USP_P_WO_OPER_RSLT_S20";
+      $squl = "USP_P_CNT_CT_WORKER_S10";
 
       $params = array(
         "P_EMP_NO"   => $_REQUEST["EMP_NO"] ?: "",
         "P_EMP_NM"   => $_REQUEST["EMP_NM"] ?: "",
-        "P_START_DATE" => $_REQUEST["date_st"],
-        "P_ED_DATE"    => $_REQUEST["date_ed"],
+        "P_ST_DATE"  => $_REQUEST["date_st"],
+        "P_ED_DATE"  => $_REQUEST["date_ed"],
       );
       $rst = $baseObj->DB->exec($squl, $params);
 
diff --git a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js
index ca56707..82aa00a 100644
--- a/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js
+++ b/home_dir/www/ksvc/prod/cnt_ct_worker/cnt_ct_worker.js
@@ -32,7 +32,6 @@ class Tb_main_class {
       }
     }
     data.mode = mode
-    console.log(data)
     // let USEFLAG = document.getElementById("USE_FLG").checked?"Y":"N"; //ì‚¬ìš©ì—¬ë¶€
     ajax_json({
       url: this.ajaxUrl,
@@ -43,10 +42,11 @@ class Tb_main_class {
           let originData = data.data;
           originData = originData.map(el=>{
             // ëŒ€ê¸°ì‹œê°„!!!!!!!! ë³€ê²½í• ê²ƒ
-            el[`REAL_RUN_TM_${el['WRK_DT']}`] = el['REAL_RUN_TM']
+            el[`REAL_RUN_TM_${el['WORK_DT']}`] = el['REAL_RUN_TM']
             return el;
           });
-          
+          console.log(data.data);
+          console.log(originData);
           originData = originData.reduce((acc, curr)=>{
             const key = curr.EMP_NO + curr.WRK_TEAM;
             
diff --git a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php
index 95c700b..f70d33a 100644
--- a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.ajax.php
@@ -13,11 +13,11 @@ if (!_notAuth("R")) {
     case 'getDefOrderList':
 
 
-      $squl = "USP_P_DEF_RSLT_S10";
+      $squl = "USP_P_CNT_DEF_WO_S10";
 
       $params = array(
         "P_ITEM_GRP"   => $_REQUEST["ITEM_GRP"] ?: "",
-        "P_START_DATE" => $_REQUEST["date_st"],
+        "P_ST_DATE"    => $_REQUEST["date_st"],
         "P_ED_DATE"    => $_REQUEST["date_ed"],
       );
       $rst = $baseObj->DB->exec($squl, $params);
diff --git a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js
index e4eb65e..12569cf 100644
--- a/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js
+++ b/home_dir/www/ksvc/prod/cnt_defect_order/cnt_defect_order.js
@@ -48,7 +48,7 @@ class Tb_main_class {
           });
           
           originData = originData.reduce((acc, curr)=>{
-            const key = curr.WO_NO;
+            const key = curr.WO_NO ;
             
             if(!acc[key]){
               acc[key] = {...curr};
@@ -197,7 +197,7 @@ setFilter() {
       //   formatterParams: { checkval: "Y" },
       // },
       { formatter: "rownum", title: "NO", width: 50 },
-      { field: "WO_NO", title: "ì˜¤ë�”ë²ˆí˜¸", width: 100 },
+      { field: "WO_NO", title: "ì˜¤ë�”ë²ˆí˜¸", width: 100 ,visible : false},
       { field: "ITEM_CD", title: "í’ˆëª©", width: 100,},
       { field: "ITEM_GRP", title: "í’ˆëª©ê·¸ë£¹", width: 100,},
       ...this.getDate()
diff --git a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php
index ced75a9..3d0f162 100644
--- a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.ajax.php
@@ -15,7 +15,7 @@ if(!_notAuth("R")) {
     // ìƒ�ì‚°ì˜¤ë�” ë¦¬ìŠ¤íŠ¸ ì¡°íšŒ
     case 'getDefectWorker':
 
-      $sql = "USP_P_WO_DEF_RSLT_S20";
+      $sql = "USP_P_CNT_DEF_EMP_S10";
       $params = array(
         "WRK_EMP_NO" => $_REQUEST['worker_pop'] ?: "",
         "WRK_EMP_NM"    => $_REQUEST['sub_worker_pop'] ?: "",
diff --git a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js
index 29e4c62..8eacfef 100644
--- a/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js
+++ b/home_dir/www/ksvc/prod/cnt_defect_worker/cnt_defect_worker.js
@@ -198,7 +198,7 @@ class Tb_main_class {
       // },
       // { formatter: "rownum", title: "NO", width: 50 },
       { field: "WRK_TEAM", title: "ì†Œì†�", width: 100 },
-      { field: "EMP_NO", title: "ì„±ëª…", width: 100,},
+      { field: "EMP_NM", title: "ì„±ëª…", width: 100,},
       ...this.getDate()
     ];
     const commonFieldData = {
diff --git a/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php b/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php
index b54fa12..e859fd4 100644
--- a/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_oper_wt/cnt_oper_wt.ajax.php
@@ -13,7 +13,7 @@ if (!_notAuth("R")) {
     case 'getOperWtList':
 
 
-      $squl = "USP_P_WO_OPER_S20";
+      $squl = "USP_P_CNT_OPER_WT_S10";
 
       $params = array(
         "P_OP_CD"      => $_REQUEST["OP_CD"] ?: "",
diff --git a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php
index d9c0cae..7cd3d83 100644
--- a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.ajax.php
@@ -13,7 +13,7 @@ if (!_notAuth("R")) {
     case 'getFacltOperList':
 
 
-      $squl = "USP_P_FACLT_OPER_S30";
+      $squl = "USP_P_CNT_PROD_FACLT_S10";
 
       $params = array(
         "P_ST_DATE"    => $_REQUEST["date_st"],
diff --git a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php
index b1d2cd9..fdb0ed2 100644
--- a/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php
+++ b/home_dir/www/ksvc/prod/cnt_prod_faclt/cnt_prod_faclt.php
@@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
           <!-- <button class="point-btn" id="item_ex_down">ì—‘ì…€ë‹¤ìš´</button>
             <button class="point-btn" id="item_ex_load">ì—‘ì…€ì—…ë¡œë“œ</button> -->
           <button class="point-btn" id="filter_btn">ì¡°íšŒ</button>
-          <button class="point-btn disabled-btn" id="put_item" disabled>ì €ìž¥</button>
+          <!--<button class="point-btn disabled-btn" id="put_item" disabled>ì €ìž¥</button>-->
         </div>
       </div>
       <!-- ì¡°íšŒ ë°� ì €ìž¥ ë²„íŠ¼ ì¢…ë£Œ // -->
diff --git a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php
index 6972ecf..7e3fea0 100644
--- a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php
+++ b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.ajax.php
@@ -19,12 +19,11 @@ if (!_notAuth("R")) {
     case 'getProdList':
 
 
-      $squl = "USP_P_PRD_AMT_S10";
+      $squl = "USP_P_CNT_PROD_WORKER_S10";
 
       $params = array(
-//        "P_ITEM_GRP"   => $_REQUEST["ITEM_GRP"] ?: "",
-        "P_START_DATE" => $_REQUEST["date_st"],
-        "P_ED_DATE"    => $_REQUEST["date_ed"],
+        "P_ST_DATE" => $_REQUEST["date_st"],
+        "P_ED_DATE" => $_REQUEST["date_ed"],
       );
       $rst = $baseObj->DB->exec($squl, $params);
 
diff --git a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php
index e24f26d..a22258b 100644
--- a/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php
+++ b/home_dir/www/ksvc/prod/cnt_prod_worker/cnt_prod_worker.php
@@ -63,7 +63,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
           <!-- <button class="point-btn" id="item_ex_down">ì—‘ì…€ë‹¤ìš´</button>
             <button class="point-btn" id="item_ex_load">ì—‘ì…€ì—…ë¡œë“œ</button> -->
           <button class="point-btn" id="filter_btn">ì¡°íšŒ</button>
-          <button class="point-btn disabled-btn" id="put_item" disabled>ì €ìž¥</button>
+          <!--<button class="point-btn disabled-btn" id="put_item" disabled>ì €ìž¥</button>-->
         </div>
       </div>
       <!-- ì¡°íšŒ ë°� ì €ìž¥ ë²„íŠ¼ ì¢…ë£Œ // -->
diff --git a/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php b/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php
index c1e4d52..5efdbec 100644
--- a/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php
+++ b/home_dir/www/ksvc/prod/reg_order/reg_order.ajax.php
@@ -256,7 +256,8 @@ if(!_notAuth("R")) {
             "ORD_QTY"       => $data['ORD_QTY'],
 //            "ORD_DT"        => $data['ORD_DT']?:date("Y-m-d", time()),
 //            "ORD_DT"        => date("Y-m-d", time()),
-            "ORD_TYPE"      => $data['WRK_QTY']?:"",
+            "WRK_QTY"       => $data['WRK_QTY']?:"",
+            "WO_OP_AMT"     => $data['WO_OP_AMT']?:"",
             "ORD_STATUS"    => $data['PLANT_CD']?:"",
 //            "DLVY_REQ_DT"   => date("Y-m-d", time()),
 //            "DLVY_REQ_DT"   => $data['DLVY_REQ_DT']?:date("Y-m-d", time()),
diff --git a/home_dir/www/ksvc/prod/reg_order/reg_order.js b/home_dir/www/ksvc/prod/reg_order/reg_order.js
index 9f632cb..e74a8bd 100644
--- a/home_dir/www/ksvc/prod/reg_order/reg_order.js
+++ b/home_dir/www/ksvc/prod/reg_order/reg_order.js
@@ -443,7 +443,10 @@ class Tb_process_class {
           for(let temp in data.data){
             this.lastNum += 10;
 
-            this.tbList.addRow({ OP_CD : makingData[temp].OP_CD,OP_SEQ : makingData[temp].OP_SEQ  ,WO_NO : Tb_order.tbList.getSelectedData()[0].WO_NO, _STATUS_: "I" });
+            this.tbList.addRow({ OP_CD : makingData[temp].OP_CD,
+              OP_SEQ : makingData[temp].OP_SEQ  ,
+              WO_OP_AMT : makingData[temp].WO_OP_AMT,
+              WO_NO : Tb_order.tbList.getSelectedData()[0].WO_NO, _STATUS_: "I" });
 
           }
         }
@@ -658,13 +661,14 @@ class Tb_process_class {
       },
       {formatter:"rownum", title:"NO", width:50},
       {field:"OP_SEQ", title:"ê³µìˆœ", width:100},
-      {field:"OP_CD", title:"ê³µì •", width:100,editor: "input"},
-      {field:"ORD_QTY", title:"ì§€ì‹œ ìˆ˜ëŸ‰", width:80 ,editor: "input",
+      {field:"OP_CD", title:"ê³µì •ëª…", width:100,editor: "input"},
+      {field:"WO_OP_AMT", title:"ê³µì • ë‹¨ê°€", width:80 ,editor: "input",
         formatter: "money",
         formatterParams: {
           decimal:".",
           precision:0
-        }
+        },
+        hozAlign: "right"
       },
       // {field:"", title:"ì¤€ë¹„ì‹œê°„</br>(ë¶„)", width:100},
       // {field:"", title:"ê°€ê³µì‹œê°„</br>(ë¶„)", width:100},
diff --git a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js
index d7af035..3f6ee90 100644
--- a/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js
+++ b/home_dir/www/ksvc/prod/reg_order_result/reg_order_result.js
@@ -346,8 +346,10 @@ class Tb_order_class {
    * @Parameter ì—†ì�Œ
    */
   init() {
+
+
     // field ì •ì�˜
-    const fields = [
+    fields = [
       //  ìƒ�ì‚°ì˜¤ë�”, í’ˆëª©, ë�„ë©´ë²ˆí˜¸, ê±°ëž˜ì²˜, ë‚©ê¸°ì�¼, ì§€ì‹œì�¼, ì§€ì‹œêµ¬ë¶„, ì§€ì‹œ ìˆ˜ëŸ‰, ë‹¨ìœ„, ìƒ�íƒœ, ìž‘ì—…ìˆœì„œ, ë¹„ê³ 
       { field:"check", title: "ì„ íƒ�", width: 50, headerSort: false,formatter: tb_common_funtions.formatterCheckboxIcon,formatterParams: { checkval: "Y" },},
       { formatter: "rownum", title: "NO", width: 50 },
diff --git a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js
index 4090e62..b4027a1 100644
--- a/home_dir/www/ksvc/prod/reg_plan/reg_plan.js
+++ b/home_dir/www/ksvc/prod/reg_plan/reg_plan.js
@@ -4,9 +4,10 @@
 
 class Tb_main_class {
   constructor(container) {
+    let _this  = this;
     this.ajaxUrl = "./reg_plan.ajax.php";
     this.tbList = "";
-    this.lastGroupId = 1;
+    _this.lastGroupId = 0;
     this.container = document.querySelector(container);
     this.table = this.container.querySelector(".hy-table");
     // this.upBtn = this.container.querySelector(".up-btn") || "";
@@ -16,14 +17,14 @@ class Tb_main_class {
   }
 
 
-
-
-
-
-
+  /*
+ * @Overview  ìƒ�ì‚°ê³„íš�ë“±ë¡�
+ * @Parameter DATABASEë¡œë¶€í„° ë°›ì�€ ë�°ì�´í„°
+ * @function  DB ë�°ì�´í„° ê°€ê³µí•˜ì—¬ ë°”ì�¸ë”©.
+ */
   manageData(data) {
     // console.log(data);
-
+    let _this = this;
     let arr = new Array();
 
     const result = Object.groupBy(data.data, ({ SEQ_NO }) => SEQ_NO)
@@ -43,6 +44,7 @@ class Tb_main_class {
         tempITEM[`AM_PLAN_QTY_${date}`] = rst.AMITEM
         tempITEM[`PM_PLAN_QTY_${date}`] = rst.PMITEM
         tempITEM[`NI_PLAN_QTY_${date}`] = rst.NIITEM
+        _this.lastGroupId = parseInt(rst.SEQ_NO);
         return tempITEM;
       })
 
@@ -52,11 +54,12 @@ class Tb_main_class {
         let arr = new Array();
         tempQTY['SEQ_NO']              = rst.SEQ_NO
         tempQTY['SEPER']               = "ê³„íš�"
-        tempQTY['PLAN_FACLT_CD']            = rst.PLAN_FACLT_CD
+        tempQTY['PLAN_FACLT_CD']       = rst.PLAN_FACLT_CD
         tempQTY['WRK_TEAM']            = rst.WRK_TEAM
         tempQTY[`AM_PLAN_QTY_${date}`] = rst.AMQTY
         tempQTY[`PM_PLAN_QTY_${date}`] = rst.PMQTY
         tempQTY[`NI_PLAN_QTY_${date}`] = rst.NIQTY
+        _this.lastGroupId = parseInt(rst.SEQ_NO);
         return tempQTY;
       })
 
@@ -71,6 +74,7 @@ class Tb_main_class {
         tempPRD[`AM_PLAN_QTY_${date}`] = rst.AMPRD
         tempPRD[`PM_PLAN_QTY_${date}`] = rst.PMPRD
         tempPRD[`NI_PLAN_QTY_${date}`] = rst.NIPRD
+        _this.lastGroupId = parseInt(rst.SEQ_NO);
         return tempPRD;
       })
 
@@ -164,12 +168,15 @@ class Tb_main_class {
    * @Parameter ì—†ì�Œ
    */
   setFilter() {
+    this.tbList ="";
     this.init();
+
     this.getMainList(
       "getPlanList",
       "team_pop",
       "product_pop",
-      "sub_product_pop"
+      "sub_product_pop",
+        "plan_date"
     );
   }
 
@@ -179,27 +186,31 @@ class Tb_main_class {
    * @function ê¸°ë³¸í‚¤, _STATUS_:I ê°’ì�„ ë„£ì�€ í–‰ ì¶”ê°€
    */
   addRow() {
+    console.log("test");
+    this.lastGroupId += 1;
+
     // Tabulator ì�¸ìŠ¤í„´ìŠ¤ì—� ë�°ì�´í„° ì¶”ê°€
     this.tbList.addRow({
-      groupId: this.lastGroupId + 1,
+      SEQ_NO: this.lastGroupId,
       SEPER: "ê·¸ë£¹",
       _STATUS_: "I",
       SEPER_ID: "GRP",
     });
+
     this.tbList.addRow({
-      groupId: this.lastGroupId + 1,
+      SEQ_NO: this.lastGroupId,
       SEPER: "ê³„íš�",
       _STATUS_: "I",
       SEPER_ID: "PLAN",
     });
+
     this.tbList.addRow({
-      groupId: this.lastGroupId + 1,
+      SEQ_NO: this.lastGroupId,
       SEPER: "ì‹¤ì �",
       _STATUS_: "I",
       SEPER_ID: "RST",
     });
 
-    this.lastGroupId += 1;
   }
 
   /*
@@ -288,9 +299,78 @@ class Tb_main_class {
    * @function _STATUS_ ê°’ì�´ ìžˆëŠ” ë�°ì�´í„°ë§Œ ì¶”ë ¤ì„œ ì—†ìœ¼ë©´ ìƒ�ì„±, ìžˆìœ¼ë©´ ìˆ˜ì •í•˜ê¸°
    */
   putData() {
+    // let _this = this;
+    console.log(this.tbList.getData().filter((row) => row._STATUS_));
+    // ì €ìž¥ ì‹œ ìƒ�íƒœ ë³€í™” ì—†ëŠ” row ìš”ì²­ X
+    if (this.tbList.getData().filter((row) => row._STATUS_).length == 0) {
+      this.getMainList();
+      return false;
+    }
 
-    // ê¸°ë³¸í‚¤ ì¤‘ë³µ í™•ì�¸ ë°� ë°©ì§€
-    // _STATUS_ ìžˆëŠ” ë�°ì�´í„°ë§Œ ë“¤ê³ ì™€ì„œ PUTí•˜ê¸°
+    const blankObj = [];
+    const reqData = [];
+
+    this.tbList.getRows().forEach((row) => {
+      // console.log(row.getData('_STATUS_'))
+      if (row.getData()["_STATUS_"]) {
+        if (
+            Object.keys(row._row.data)
+                .filter((key) => key !== "_STATUS_" && key !== "USE_FLG")
+                .every((key) => {
+                  const value = row._row.data[key];
+                  return value === undefined || value === "";
+                })
+        ) {
+          blankObj.push(row);
+        } else {
+          reqData.push(row.getData());
+        }
+      }
+    });
+
+    let postdata = {
+      mode: "getOrderList",
+      reqdata: JSON.stringify(
+          this.tbList.getData().filter((row) => row._STATUS_)
+      ),
+    };
+    if (blankObj.length !== 0) {
+      kuls_confirm(
+          "ë¹„ì–´ìžˆëŠ” í–‰ì�„ ë¬´ì‹œí•˜ê³  ì§„í–‰í•˜ì‹œê² ìŠµë‹ˆê¹Œ?",
+          "",
+          () => {
+            ajax_json({
+              url: this.ajaxUrl,
+              data: postdata,
+              success: function (data) {
+                if (data.code) {
+                  kuls_success("ì €ìž¥ë�˜ì—ˆìŠµë‹ˆë‹¤.");
+                  this.getMainList();
+                  Tb_insp_list.getMainList();
+                } else {
+                  this.tbList.getRows().forEach((row) => {
+                    //ì�¼ë¶€ ì �ìš©ë�œ ì—´ update ì²˜ë¦¬
+                    if (data.data.includes(row.getData()["PLANT_CD"])) {
+                      row.update({ _STATUS_: "U" });
+                    }
+                  });
+                  kuls_alert(data.mesg);
+                }
+              },
+              error: function (request, status, error) {
+                kuls_alert(error.message);
+              },
+              complete: function () {},
+            });
+          },
+          () => {
+            blankObj.forEach((row) => {
+              row.getElement().classList.add("blank-row");
+            });
+            console.log(blankObj);
+          }
+      );
+    }
   }
 
   /*
@@ -357,17 +437,18 @@ class Tb_main_class {
    * @Parameter ì—†ì�Œ
    */
   init() {
+    let fields = "";
     // field ì •ì�˜
-    const fields = [
-      { field: "id", title: "id", width: 100, visible: false },
-      { field: "WRK_TEAM", title: "íŒ€", width: 100, editor: "input" },
-      { field: "PLAN_FACLT_CD", title: "ì„¤ë¹„", width: 100, editor: "input" },
-      { field: "SEPER", title: "êµ¬ë¶„", width: 100 },
+    fields = [
+      {field: "SEQ_NO", title: "id", width: 100, visible: false},
+      {field: "WRK_TEAM", title: "íŒ€", width: 100, editor: "input"},
+      {field: "PLAN_FACLT_CD", title: "ì„¤ë¹„", width: 100, editor: "input"},
+      {field: "SEPER", title: "êµ¬ë¶„", width: 100},
       // ë‚ ì§œ í•„ë“œ ë�™ì �ìœ¼ë¡œ ë„£ì�„ê²ƒ ì˜¤ëŠ˜ë¶€í„° 7ì�¼ê¹Œì§€
       ...this.getDate(),
     ];
-
-    const commonFieldData = {
+    let commonFieldData = "";
+    commonFieldData = {
       headerSort: false,
       vertAlign: "middle",
       hozAlign: "center",
@@ -375,7 +456,7 @@ class Tb_main_class {
       headerHozAlign: "center", //í—¤ë�” ì •ë ¬
       headerSortTristate: true, //ë�°ì�´í„° ì •ë ¬ => ì •/ì—­/ì´ˆê¸°í™”
     };
-
+    this.tbList = "";
     this.tbList = new Tabulator(this.table, {
       layout: "fitColumns",
       // data: [
@@ -388,7 +469,8 @@ class Tb_main_class {
       columnDefaults: commonFieldData,
       groupStartOpen: true,
     });
-
+  }
+init2(){
     // ë�°ì�´í„° ë¶ˆëŸ¬ì˜¤ê¸°
     this.tbList.on("tableBuilt", () => {
       this.getMainList(
@@ -415,7 +497,8 @@ class Tb_main_class {
     // ì¶”ê°€
     ["click", "keypress"].forEach((evt) => {
       this.addBtn.addEventListener(evt, () => {
-        this.addRow();
+        console.log("test");
+        this.addRow && this.addRow();
       });
     });
     // ì‚­ì œ
@@ -430,6 +513,8 @@ class Tb_main_class {
       const filterBtn = document.querySelector("#filter_btn");
       filterBtn.addEventListener(evt, () => {
         // setFilter ë˜�ëŠ” setData
+        this.init();
+
         this.setFilter();
         // this.getMainList("getPlanList","team_pop","product_pop","sub_product_pop");
       });
@@ -445,3 +530,4 @@ class Tb_main_class {
 }
 const Tb_production_plan = new Tb_main_class("#main_table");
 Tb_production_plan.init();
+Tb_production_plan.init2();
\ No newline at end of file
diff --git a/home_dir/www/ksvc/prod/sts_order/sts_order.php b/home_dir/www/ksvc/prod/sts_order/sts_order.php
index 7630617..81ba8aa 100644
--- a/home_dir/www/ksvc/prod/sts_order/sts_order.php
+++ b/home_dir/www/ksvc/prod/sts_order/sts_order.php
@@ -156,12 +156,12 @@ include_once _SVC_INC_PATH_ . "/header.php";
                     <tbody>
                       <template v-for="(code, idx) in codeList">
                         <tr>
-                          <td rowspan="5">{{code?.WO_NO}}<br>{{code?.ORD_DT.date}}</td>
-                          <td rowspan="5">{{code?.ITEM_CD}}<br>{{code?.DRAW_NO}}<br>{{code?.BP_CD}}</td>
-                          <td rowspan="5">{{code?.DLVY_REQ_DT.date}}</td>
-                          <td rowspan="5">{{code?.WO_SEQ}}</td>
+                        <td rowspan="5">{{code.WO_NO}}<br>{{code.ORD_DT.date}}</td>
+                          <td rowspan="5">{{code.ITEM_CD}}<br>{{code.DRAW_NO}}<br>{{code.BP_CD}}</td>
+                          <td rowspan="5">{{code.DLVY_REQ_DT.date}}</td>
+                          <td rowspan="5">{{code.WO_SEQ}}</td>
                           <td rowspan="5">{{code.ì™„ë£Œ}}</td>
-                          <td colspan="2" v-for="(process, index) in code.OP_CD" :key="`process-${index}`">{{ process?.OP_CD }}</td>
+                          <td colspan="2" v-for="index in 10" :key="`process-${index-1}`">{{ code.OP_CD[index-1]?.OP_CD }}</td>
                         </tr>
                         <tr>
                           <td v-for="n in 20" :key="`plan-${n}`">
@@ -174,7 +174,7 @@ include_once _SVC_INC_PATH_ . "/header.php";
                           </td>
                         </tr>
                         <tr>
-                          <td colspan="2" v-for="(process, index) in code.OP_CD" :key="`pre-${index}`">{{ process?.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ }}</td>
+                          <td colspan="2" v-for="index in 10" :key="`pre-${index}`">{{ code.OP_CD[index-1]?.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ }}</td>
                         </tr>
                         <tr>
                           <td v-for="n in 20" :key="`fa-${n}`">
diff --git a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php
index 69b4c2f..803803d 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isDefHst.php
@@ -8,8 +8,8 @@
     </div>
 
     <div class="input-box flex-1">
-      <label for="">ì„¤ë¹„</label>
-      <input v-model="formData.FACLT_CD" type="text" id="" name="" class="form-control form-control-sm" />
+      <label for="">ê³µì •</label>
+      <input v-model="formData.OP_CD" type="text" id="" name="" class="form-control form-control-sm" />
     </div>
 
   </div>
diff --git a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isRun.php b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isRun.php
index 6c9ddf9..9df0c1f 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isRun.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isRun.php
@@ -11,8 +11,8 @@
     <div class="input-container flexcol gap06">
 
       <div class="input-box flexrow flexend flex-1">
-        <label for="" style="width:80px;">ê°€ë�™ì‹œìž‘ì‹œê°„</label>
-        <input type="text" id="" name="" class="form-control form-control-sm" />
+        <label for="run-time" style="width:80px;">ê°€ë�™ì‹œìž‘ì‹œê°„</label>
+        <input v-model='dateTime' type="text" id="run-time" name="" class="form-control form-control-sm" />
       </div>
     </div>
 
diff --git a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php
index 29b4ac4..20e6f8b 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/popComponent/isWorker.php
@@ -22,7 +22,7 @@
 
 
   <div style="height:calc(100% - 80px);">
-    <div class="hy-table" id="isWorker"></div>
+    <div class="hy-table groupby" id="isWorker"></div>
   </div>
   <!-- <div class="table-title">
     <div class="button-box flexend">
diff --git a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php
index 7ada3ed..53d873e 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.ajax.php
@@ -15,10 +15,12 @@ if( !_notAuth("R") ){/************ ê¶Œí•œì²´í�¬*/
     // ì„¤ë¹„ ê³ ìž¥ë“±ë¡� ì¡°íšŒ
 
     // ê°€ë�™ vs ë¹„ê°€ë�™
-    case "":
-      $sql = "";
+    case "getWokerInfo":
+      $sql = "USP_P_REG_PROD_POP_S10";
 
       $params = array(
+        'WO_NO'  => $_REQUEST["WO_NO"] ?: "",
+        'OP_SEQ' => $_REQUEST["OP_SEQ"] ?: ""
       );
 
       $rst = $baseObj->DB->exec($sql,$params);
@@ -34,11 +36,148 @@ if( !_notAuth("R") ){/************ ê¶Œí•œì²´í�¬*/
       }else{
         $retval['code'] = false;
       }
+      
+      break;
+      
+      
+      case "getRunInfo":
 
+        $sql = "USP_P_REG_PROD_RUN_S10";
+        $params = array(
+          'WO_NO'  => $_REQUEST["WO_NO"] ?: "",
+          'WO_SEQ' => $_REQUEST["WO_SEQ"] ?: "",
+          'EMP_NO' => $_REQUEST["EMP_NO"] ?: "",
+        );
+  
+        $rst = $baseObj->DB->exec($sql, $params);
+  
+        $rows = array();
+        if( $rst ){
+          $retval['code'] = true;
+          while( $row = $baseObj->DB->fetch_array($rst) ){
+            $rows[] = $row;
+          }
+          $retval['data'] = $rows;
+          $retval['mesg'] = "ì •ìƒ�ì �ìœ¼ë¡œ ìž‘ë�™í•˜ì˜€ìŠµë‹ˆë‹¤.";
+        }else{
+          $retval['code'] = false;
+        }
       break;
 
 
-    case "o":
+      case "putRunInfo":
+        if (_notAuth("W")){ break; }
+
+        $_REQUEST["reqdata"] = json_decode($_REQUEST['reqdata']);
+
+        foreach ($_REQUEST['reqdata'] as $data) {
+          $data = (array) $data;
+
+          if($data['_STATUS_'] == 'U'){
+            $sql = 'USP_P_REG_PROD_RUN_U10';
+
+            $params = array(
+              // "FACLT_CD" => $data['DEPT_CD']?:"",
+              // "WO_NO" => $data['DEPT_NM']?:"",
+              // "WO_SEQ" => $data['BIZ_AREA_CD'] ?: "",
+              // "WORK_DT" => $data['PAR_DEPT_CD']?:"",
+              // "RUNSTOP_GB" => $data['EMP_NO']?:"",
+              // "STOP_CD" => $data['USE_FLG'] ?: "",
+              // "OPER_ST_TM" => $data['USE_FLG'] ?: "",
+              // "EMP_NO" => $data['USE_FLG'] ?: "",
+    
+              // "MAKE_USER_ID" => $GLOBALS['_Umem']['member_id'],
+  
+            );
+          }else{
+            $sql = 'USP_P_REG_PROD_RUN_I10';
+
+            $params = array(
+              "FACLT_CD" => $data['FACLT_CD']?:"",
+              "WO_NO" => $data['WO_NO']?:"",
+              "WO_SEQ" => $data['WO_SEQ'] ?: "",
+              "WORK_DT" => $data['WORK_DT']?:"",
+              "RUNSTOP_GB" => $data['RUNSTOP_GB']?:"",
+              "STOP_CD" => $data['STOP_CD'] ?: "",
+              "OPER_ST_TM" => $data['OPER_ST_TM'] ?: "",
+              "EMP_NO" => $data['EMP_NO'] ?: "",
+    
+              "MAKE_USER_ID" => $GLOBALS['_Umem']['member_id'],
+  
+            );
+          }
+
+          $rst = $baseObj->DB->exec($sql, $params);
+        }
+
+        if ($rst && !$_REQUEST['RS_CODE']) {
+          $retval['code'] = true;
+        } else {
+          $retval['code'] = false;
+          $retval['mesg'] = $_REQUEST['RS_MSG'];
+        }
+        break;
+    case 'getRoutingList':
+      $sql = "USP_B_ROUTING_S10";
+      $params = Array(
+        "ITEM_CD"     => $_REQUEST['ITEM_CD']?:"",
+      );
+      $rst = $baseObj->DB->exec($sql,$params);
+
+      $rows = array();
+      if( $rst ){
+        while( $row = $baseObj->DB->fetch_array($rst) ){
+          $rows[] = $row;
+        };
+
+        $retval['code'] = true;
+        $retval['data'] = $rows;
+//        print_r($retval['data']);
+        $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
+      }else{
+        $retval['code'] = false;
+      }
+      break;
+    case 'getDrawList':
+      $sql = "USP_B_ITEM_DRAW_S10";
+      $params = Array(
+        "ITEM_CD"     => $_REQUEST['ITEM_CD'],
+      );
+      $rst = $baseObj->DB->exec($sql,$params);
+
+      $rows = array();
+      if( $rst ){
+        while( $row = $baseObj->DB->fetch_array($rst) ){
+          $rows[] = $row;
+        };
+
+        $retval['code'] = true;
+        $retval['data'] = $rows;
+        $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
+      }else{
+        $retval['code'] = false;
+      }
+      break;
+    case 'getDefHst':
+      $sql = "USP_P_REG_PROD_DEF_HST_S10";
+      $params = Array(
+        "ITEM_CD"     => $_REQUEST['ITEM_CD'],
+        "OP_CD"       => $_REQUEST['OP_CD']
+      );
+      $rst = $baseObj->DB->exec($sql,$params);
+
+      $rows = array();
+      if( $rst ){
+        while( $row = $baseObj->DB->fetch_array($rst) ){
+          $rows[] = $row;
+        };
+
+        $retval['code'] = true;
+        $retval['data'] = $rows;
+        $retval['mesg'] = 'ì •ìƒ� ë�™ìž‘ ë�˜ì—ˆìŠµë‹ˆë‹¤.';
+      }else{
+        $retval['code'] = false;
+      }
       break;
     }
   }
diff --git a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js
index 2188600..19a52b6 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js
+++ b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.js
@@ -1,23 +1,75 @@
+
+
+
+
+
 class SimpleTable {
-  constructor(fields, getmode, putmode){
-    this.field = fields;
+  constructor(fields, getmode, putmode, formData){
+    // ajax
     this.ajaxUrl = './reg_prod_result.ajax.php';
-    this.getmode = getmode?getmode:'';
-    this.putmode = putmode?putmode:'';
+    this.getMode = getmode?getmode:'';
+    this.putMode = putmode?putmode:'';
+    
+    // data
+    this.field = fields;
+    this.formData = formData;
+
+    // element
     this.container = document.querySelector(".detail-contents");
     this.table = this.container?.querySelector(".hy-table");
+    this.addBtn = this.container?.querySelector(".add-btn");
   }
 
   getMainList(){
-    // ajax_json({
+    return ajax_json({
+      url: this.ajaxUrl,
+      data: {
+        mode: this.getMode,
+        ...this.formData
+      },
+      success:( data ) => {
+        if( data.code ){
+          this.tbList.setData(data.data);
+        }else{
+          console.log(data)
+        }
+      },
+      error: (request, status, error)=>{
+        kuls_alert(error.message);
 
-    // })
+      },
+    })
   }
-  addRow(){}
-  putData(){
-    // ajax_json({})
+  // addRow(data){
+  //   this.tbList.addRow({...data})
+  // }
+  putData(addData, updateData){
+    const postData = {
+      mode : this.putMode,
+      reqdata : JSON.stringify([{...this.formData, ...addData}])
+    };
+
+    ajax_json({
+      url: this.ajaxUrl,
+      data: postData,
+      success: (data)=>{
+        if (data.code) {
+          kuls_success("ì €ìž¥ë�˜ì—ˆìŠµë‹ˆë‹¤.");
+          this.getMainList();
+        }else{
+          kuls_alert(data.mesg);
+        }
+      },
+      error: function (request, status, error) {
+        kuls_alert(error.message);
+      },
+      complete: function () {
+        pop
+      }
+    })
+    
   }
-  init(){
+  init(addData, updateData){
     const commonFieldData = {
       headerSort: false,
       vertAlign: "middle",
@@ -62,7 +114,18 @@ class SimpleTable {
     })
 
     this.tbList.on("tableBuilt", () => {
-      this.getMainList();
+      this.getMainList().then(()=>{
+        if(addData){
+          this.tbList.addRow({...addData});
+        };
+        if(updateData){
+          this.tbList.update(updateData);
+        };
+      })
+    })
+
+    this.addBtn?.addEventListener('click', ()=>{
+      this.putData(addData,false);
     })
 
     // í–‰ì„ íƒ�
@@ -115,16 +178,38 @@ class FieldPop {
 
           tabs1: [ 'ìž‘ì—…í‘œì¤€ì„œ ì¡°íšŒ', 'ë�„ë©´ ì¡°íšŒ' ], //popup ë�„ìš°ê¸°
 
-          tabs2: [{ isDefHst : 'ê³¼ê±°ë¶ˆëŸ‰ì�´ë ¥ ì¡°íšŒ' }, { isFacltBreak : 'ì„¤ë¹„ ê³ ìž¥ë“±ë¡�' }, {isRun : 'ê°€ë�™'}, {isNoRun : 'ë¹„ê°€ë�™'} ],
+          tabs2: [
+            {
+              id : 'isDefHst',
+              name : 'ê³¼ê±°ë¶ˆëŸ‰ì�´ë ¥ ì¡°íšŒ'
+            },
+            { id : 'isFacltBreak',
+              name : 'ì„¤ë¹„ ê³ ìž¥ë“±ë¡�'
+            },
+            { id : 'isRun',
+              name : 'ê°€ë�™'
+            }, 
+            { id : 'isNoRun',
+              name : 'ë¹„ê°€ë�™'
+            } 
+          ],
 
           activeTab : '',
+
+          isDisabled : [false, false, false, true],
+
+          dateTime : '00:00',
+
+          getMode : '',
+
+          putMode : '',
           
           tableField : {
             isDefHst : [
               { field: "DEF_NO", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
-              { field: "DEF_FACLT_CD", title: "ì„¤ë¹„", width: '23%'},
-              { field: "DEF_CD", title: "ë¶ˆëŸ‰ì›�ì�¸", width: '23%'},
-              { field: "DEF_QTY", title: "ë¶ˆëŸ‰ìˆ˜ëŸ‰", width: '23%'},
+              // { field: "OP_CD", title: "", width: '23%'},
+              { field: "DEF_NM", title: "ë¶ˆëŸ‰ì›�ì�¸", width: '23%'},
+              { field: "DEF_TOT", title: "ë¶ˆëŸ‰ìˆ˜ëŸ‰", width: '23%'},
               { field: "DEF_PRICE", title: "ë¶ˆëŸ‰ë‹¨ê°€", width: '23%'},
 
 
@@ -132,10 +217,19 @@ class FieldPop {
             isWorker : [
               { field: "", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
               { field: "", title: "ì‹¤ì � ë“±ë¡� ì‹œê°„", minWidth: 150, width:'26%'},
-              { field: "", title: "ì˜¤ë�” ë²ˆí˜¸", minWidth: 150, width:'25%'},
-              { field: "", title: "ì‹¤ì � ìˆ˜ëŸ‰", minWidth: 100, width:'20%'},
-              { field: "", title: "ë‹¬ì„± ê¸ˆì•¡", minWidth: 100, width:'20%'}
+              { field: "WO_NO", title: "ì˜¤ë�” ë²ˆí˜¸", minWidth: 150, width:'25%'},
+              { field: "PRD_QTY", title: "ì‹¤ì � ìˆ˜ëŸ‰", minWidth: 100, width:'20%',
+                bottomCalc: "sum",
+                bottomCalcFormatter:"money",
+                bottomCalcFormatterParams:{ decimal:".", precision:0 }
+              },
+              { field: "", title: "ë‹¬ì„± ê¸ˆì•¡", minWidth: 100, width:'20%', 
+                bottomCalc: "sum",
+                bottomCalcFormatter:"money",
+                bottomCalcFormatterParams:{ decimal:".", precision:0 }
+              }
             ],
+
             isFacility : [
               { field: "", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
               { field: "", title: "ì„¤ë¹„ì½”ë“œ",        minWidth: 80,  width:'14%'},
@@ -152,12 +246,12 @@ class FieldPop {
               { field: "", title: "ìž‘ì—…ìž�", minWidth: 100, width:'20%'}
             ],
             isRun : [
-              { field: "", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
-              { field: "", title: "ìƒ�ì‚° ì˜¤ë�”", minWidth: 100, width:'18%',},
-              { field: "", title: "êµ¬ë¶„", minWidth: 80, width:'15%',},
-              { field: "", title: "ë¹„ê°€ë�™ ì‚¬ìœ ", minWidth: 100, width:'18%',},
-              { field: "", title: "ì‹œìž‘ì‹œê°„", minWidth: 120, width:'20%',},
-              { field: "", title: "ì¢…ë£Œì‹œê°„", minWidth: 120, width:'20%',}
+              { field:"FACLT_OPER_NO", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
+              { field: "WO_NO", title: "ìƒ�ì‚° ì˜¤ë�”", minWidth: 100, width:'18%',},
+              { field: "RUNSTOP_GB", title: "êµ¬ë¶„", minWidth: 80, width:'15%',},
+              { field: "STOP_CD", title: "ë¹„ê°€ë�™ ì‚¬ìœ ", minWidth: 100, width:'18%',},
+              { field: "OPER_ST_TM", title: "ì‹œìž‘ì‹œê°„", minWidth: 120, width:'20%',},
+              { field: "OPER_ED_TM", title: "ì¢…ë£Œì‹œê°„", minWidth: 120, width:'20%',}
             ],
             isNoRun : [
               { field: "", formatter:"rownum", title: "ìˆœë²ˆ", width: 50},
@@ -235,74 +329,152 @@ class FieldPop {
           modal.delete();
         },
 
-        callTable(com){
+        callTable(com, addData=false, updateData=false ){
 
           this.$nextTick(()=>{
-            // ì—¬ê¸°ì„œ mode ëª… ë�™ì �ìœ¼ë¡œ ì •ì�˜í• ê²ƒ (comì�„ ì‚¬ìš©)
-            const getmode = '';
-            const putmode = '';
 
-            const table = new SimpleTable(this.tableField[com], getmode, putmode);
 
-            table.init();
+            
+            const table = new SimpleTable(this.tableField[com], this.getMode, this.putMode, this.formData);
+
+            table.init(addData, updateData);
+
 
           })
         },
-        // openDrawPop(){
-        //   const process = data['OP_CD'][idx]
-        //   const bindingData = {
-        //     WO_NO: data['WO_NO'],
-        //     // ìƒ�íƒœ: data[ìƒ�íƒœ],
-        //     DRAW_NO: data['DRAW_NO'],
-        //     ITEM_CD: data['ITEM_CD'],
-        //     OP_CD: process['OP_CD'],
-        //     EMP_NO: process['EMP_NO'],
-        //     FACLT_CD: process['FACLT_CD'],
-        //     ED_TM: process['ED_TM'],
-        //     PRD_QTY: process['PRD_QTY'],
-        //   }
-        //   console.log(bindingData)
-        //   const pop = new FieldPop(bindingData);
-        //   pop.init();
-        // },
-        // openGuide(){
-        //   const process = data['OP_CD'][idx]
-        //   const bindingData = {
-        //     WO_NO: data['WO_NO'],
-        //     // ìƒ�íƒœ: data[ìƒ�íƒœ],
-        //     DRAW_NO: data['DRAW_NO'],
-        //     ITEM_CD: data['ITEM_CD'],
-        //     OP_CD: process['OP_CD'],
-        //     EMP_NO: process['EMP_NO'],
-        //     FACLT_CD: process['FACLT_CD'],
-        //     ED_TM: process['ED_TM'],
-        //     PRD_QTY: process['PRD_QTY'],
-        //   }
-        //   console.log(bindingData)
-        //   const pop = new FieldPop(bindingData);
-        //   pop.init();
-        // },
+
         // í�´ë¦­ì‹œ ì»´í�¬ë„ŒíŠ¸ ìƒ�ì„± ë°� ì‚­ì œë¡œ íŽ˜ì�´ì§€ ë ˆì�´ì•„ì›ƒ ë³€ê²½
         showComponent(com, tab) {
           this.activeTab = tab;
-          
+
           Object.keys(this.isComponent).map((key)=>{
             this.isComponent[key] = com == key ? true : false;
           });
 
-          if(com=='isInsp'){
-            this.isTab = {
-              isInsp: true,
-              isFile: false
-            }
-          };
-          this.callTable(com);
+          switch(com){
+            case 'isWorker':
+              this.getMode = 'getWokerInfo';
+              this.putMode = '';
+
+              this.callTable(com);
+              break;
+            case 'isInsp':
+              this.isTab = {
+                isInsp: true,
+                isFile: false
+              }
+              this.callTable(com);
+              break;
+            case 'isRun':
+              const now = new Date();
+              this.dateTime = now.getHours() + ":" 
+                            + ( now.getMinutes()<10 ? '0' + now.getMinutes() : now.getMinutes() ) + ":"
+                            + ( now.getSeconds()<10 ? '0' + now.getSeconds() : now.getSeconds() );
+
+              this.getMode = 'getRunInfo';
+              this.putMode = 'putRunInfo';
+
+              this.callTable(com,{ 
+                WO_NO: this.formData.WO_NO, 
+                RUNSTOP_GB: 'R', 
+                OPER_ST_TM : this.dateTime,
+                _STATUS_ : 'I'
+              });
+
+
+              break;
+            case 'isDefHst':
+              this.getMode = 'getDefHst';
+              this.putMode = '';
+
+              this.callTable(com,{
+                ITEM_CD : this.formData.ITEM_CD,
+                OP_CD   : this.formData.OP_CD,
+              });
+
+
+              break;
+            default:
+              this.callTable(com);
+              break;
+            
+          }
+          
+          
 
         },
+        getFileUrl(DRAW_NO, SID, FILE_ID, FILE_NM,down){
+          let urlStr = '/include/getFile.php'+"?gubun=draw&nid="
+              + DRAW_NO +
+              "&sid="+ SID +
+              "&file_id="+ FILE_ID+
+              "&name="+FILE_NM
+          if(down == true){
+            location.href = urlStr;
+          }
+          return urlStr;
+        },
+        popDrawSTD(text){
 
+          const item_cd = document.getElementById("ITEM_CD").value;
+          if(text === 'ìž‘ì—…í‘œì¤€ì„œ ì¡°íšŒ'){
+            // const wo_no = document.getElementById("WO_NO").value;
+            vnLoad("", "./sts_order_pop_util.inc.php", "", (loadHtml) => {
+              this.modal = kuls_modal(loadHtml);
+
+            const draw_std = new Tb_draw_std_class("#sub_table", item_cd);
+            draw_std.init();
+            });
+          }else{
+            let _this = this;
+            // let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
+
+            ajax_json({
+              url: './reg_prod_result.ajax.php',
+              data: { mode : "getDrawList", ITEM_CD : item_cd},
+              success: (data) => {
+                console.log(data.data[0]);
+                const drawData = data.data[0]
+                // _this.getFileUrl(
+                //     drawData.DRAW_NO,
+                //     drawData.SID,
+                //     drawData.FILE_ID,
+                //     drawData.FILE_NM,
+                //     true
+                // );
+
+                pop_filedown(
+                    _this.getFileUrl(
+                        drawData.DRAW_NO,
+                        drawData.SID,
+                        drawData.FILE_ID,
+                        drawData.FILE_NM,
+                    ), drawData.FILE_NM.split(".").pop()
+                );
+              },
+              error: (req, status, err) => {
+                kuls_alert(err.message);
+              },
+              complete: () => {
+                // window.clearTimeout(talert);
+                // this.getMainList();
+                // this.tbList.clearAlert();
+                // this.setFilter();
+              },
+            });
+
+
+
+
+
+
+          }
+
+
+        },
         // í�´ë¦­ì‹œ íƒ­ë©”ë‰´ í™œì„±í™”
         isChangeTab(com) {
-          Object.keys(this.isTab).map((key)=>{
+          Object.keys(this.isTab).map( (key) => {
             this.isTab[key] = com == key ? true : false;
           });
 
@@ -321,5 +493,137 @@ class FieldPop {
     }).mount('#popup_field')
   }
 
+
 }
 
+
+class Tb_draw_std_class {
+  constructor(container,item_cd) {
+    this.ajaxUrl = "./reg_prod_result.ajax.php";
+    this.container = document.querySelector(container);
+
+    this.item_cd = item_cd;
+    this.table = this.container.querySelector(".hy-table");
+    this.addBtn = this.container.querySelector(".add-btn") || "";
+    this.removeBtn = this.container.querySelector(".remove-btn") || "";
+
+    console.log(this.container);
+  }
+
+  getMainList(){
+    let _this = this;
+    let talert = window.setTimeout(()=> { this.tbList.alert("Loading ...") }, 1000);
+    ajax_json({
+      url: this.ajaxUrl,
+      data: { mode: "getRoutingList", ITEM_CD :this.item_cd},
+      success: (data) => {
+        // console.log(data.data);
+        this.tbList.setData(data.data);
+      },
+      error: (req, status, err) => {
+        kuls_alert(err.message);
+      },
+      complete: () => {
+        window.clearTimeout(talert);
+        // this.tbList.clearAlert();
+        // this.setFilter();
+      },
+    });
+
+
+  }
+  downloadIcon = function(cell, formatterParams, onRendered){ //plain text value
+    if(!cell.getRow().getData().FILE_NM){
+      // kuls_alert("");
+      return "<button class='reverse-btn disabled-btn' disabled>ë‹¤ìš´</button>";
+    }
+    return "<button class='reverse-btn'>ë‹¤ìš´</button>";
+
+  };
+  previewIcon = function(cell, formatterParams, onRendered){ //plain text value
+    if(!cell.getRow().getData().FILE_NM){
+      // kuls_alert("");
+      return "<button class='reverse-btn disabled-btn' diabled>ë¯¸ë¦¬ë³´ê¸°</button>";
+    }
+    // console.log(cell.getRow().getData().FILE_NM);
+    return "<button class='reverse-btn'>ë¯¸ë¦¬ë³´ê¸°</button>";
+
+  };
+  init(){
+    let _this = this;
+    const fields = [
+
+      { formatter: "rownum", title: "NO", width: 50 },
+      { field: "OP_CD", title: "ê³µì •ì½”ë“œ", width: 100 },
+      { field: "OP_NM", title: "ê³µì •ëª…", width: 150 },
+      { title: "ìž‘ì—… í‘œì¤€ì„œ", cssClass:"width-230", columns:[
+          { field: "SID",                       visible:false},
+          { field: "FILE_ID",                   visible:false},
+          { field:"FILE_NM", width:100, formatter: this.previewIcon, cellClick:function(e,cell){
+              pop_filedown(
+                  _this.getFileUrl(
+                      cell.getRow().getData().ITEM_CD,
+                      cell.getRow().getData().ROUT_SQNO,
+                      cell.getRow().getData().FILE_NM,
+                      "",
+                      "rout",
+                      // cell.getRow().getData().FILE_NM,
+                      false
+                  ), cell.getRow().getData().FILE_NM.split(".").pop()
+              );
+            }
+          },
+          { field:"DOWNLOAD", width:100, formatter: this.downloadIcon,
+            cellClick:function(e, cell){
+
+              _this.getFileUrl(
+                  cell.getRow().getData().ITEM_CD,
+                  cell.getRow().getData().ROUT_SQNO,
+                  cell.getRow().getData().FILE_NM,
+                  "",
+                  "rout",
+                  true
+              );
+              //   location.href = '/include/getFile.php'+"?gubun=draw&nid="
+              //                 + cell.getRow().getData().DRAW_NO
+              //                 + "&sid="+cell.getRow().getData().SID
+              //                 + "&file_id="+cell.getRow().getData().FILE_ID
+            }},
+          // {field:"REGISTER", width:50,editor: _this.fileEditor}
+          // {field:"REGISTER", width:50,formatter: function(cell,formatterParams){
+          //     if(cell.getRow().getData().FILE_NM){
+          //       return "<button class='reverse-btn disabled-btn' disabled>ì—…ë¡œë“œ</button>";
+          //     }
+          //     return _this.uploadButton(cell)}
+          // },
+          // {field:"DELETE",   width:50,formatter: function(cell,formatterParams){return _this.deleteButton(cell)}}
+
+        ]
+      },
+    ];
+    const commonFieldData = {
+      headerSort: true,
+      vertAlign: "middle",
+      hozAlign: "center",
+      resizable: "header", //Resize ëŠ” í—¤ë�”ì—�ì„œë§Œ ê°€ëŠ¥
+      headerHozAlign: "center", //í—¤ë�” ì •ë ¬
+      headerSortTristate: true, //ë�°ì�´í„° ì •ë ¬ => ì •/ì—­/ì´ˆê¸°í™”
+    };
+    this.tbList = new Tabulator(this.table, {
+      layout: "fitColumns",
+      data: [], //ê¸°ë³¸ ë�°ì�´í„°
+      columns: fields, //ì»¬ëŸ¼ ì„¤ì •
+      columnDefaults: commonFieldData,
+      headerSortElement: "<i class='bi'></i>", //ì •ë ¬ ì•„ì�´ì½˜
+      // validationMode: "highlight",
+    });
+
+    /*
+     * @Overview í…Œì�´ë¸” ë§Œë“¤ì–´ì§€ë©´ ë�°ì�´í„° ë¶ˆëŸ¬ì˜¤ê¸°
+     * @Parameter ì—†ì�Œ
+     */
+    this.tbList.on("tableBuilt", () => {
+      this.getMainList();
+    });
+  }
+}
diff --git a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.php b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.php
index dace372..3ae2f54 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/reg_prod_result.php
@@ -21,10 +21,10 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
             </div> -->
             
           <div class="form-button-box flexrow gap06 flex-3 min-width-572">
-            <button type="button" v-for="(tab, idx) in tabs1" :key="idx" :class="{ on : activeTab === tab}" @click="activeTab === tab" >{{ tab }}</button>
+            <button type="button" v-for="(tab, idx) in tabs1" :key="idx" :class="{ on : activeTab === tab}" @click="popDrawSTD(`${tab}`)" >{{ tab }}</button>
           </div>
           <div class="form-button-box flexrow gap06 flex-5 flexend">
-            <button type="button" v-for="(tab, idx) in tabs2" :key="idx" :class="{ on : activeTab === tab[Object.keys(tab)[0]] }" @click="showComponent(Object.keys(tab)[0], tab[Object.keys(tab)[0]])" >{{ tab[Object.keys(tab)[0]] }}</button>
+            <button type="button" v-for="(tab, idx) in tabs2" :key="idx" :disabled="isDisabled[idx]" :class="{ on : activeTab === tab.name }" @click="showComponent(tab.id, tab.name)" >{{ tab.name }}</button>
           </div>
         </div>
 
diff --git a/home_dir/www/ksvc/site/sts_order_prod/popComponent/sts_order_pop_util.inc.php b/home_dir/www/ksvc/site/sts_order_prod/sts_order_pop_util.inc.php
similarity index 90%
rename from home_dir/www/ksvc/site/sts_order_prod/popComponent/sts_order_pop_util.inc.php
rename to home_dir/www/ksvc/site/sts_order_prod/sts_order_pop_util.inc.php
index 9579a68..8d121b0 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/popComponent/sts_order_pop_util.inc.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/sts_order_pop_util.inc.php
@@ -3,10 +3,10 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
 ?>
 <!-- file upload popup <ì²¨ë¶€íŒŒì�¼ ë“±ë¡�> -->
 
-<!-- ì²¨ë¶€íŒŒì�¼ ë“±ë¡� íŒ�ì—… -->
+<!-- ìž‘ì—…í‘œì¤€ì„œ ì¡°íšŒ íŒ�ì—… -->
 <div id="popup_file_upload">
   <div class="awn-popup-confirm awn-partner custom-popup">
-    <div class="awn-popup-title"><i class="bi bi-card-heading"></i> ì²¨ë¶€íŒŒì�¼ ë“±ë¡�</div>
+    <div class="awn-popup-title"><i class="bi bi-card-heading"></i> ìž‘ì—…í‘œì¤€ì„œ</div>
     <div class="awn-popup-search mb-block btn-ksmain-inject-block">
 <!--      <div class="s_exp">â€» ë�”ë¸”í�´ë¦­ìœ¼ë¡œ ì„ íƒ�/ë°˜ì˜� í•©ë‹ˆë‹¤.</div>-->
       <div class="s_fld form-inline d-block">
@@ -26,7 +26,7 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
       </div>
     </div>
     <div class="awn-popup-content" style="padding: 10px 10px;">
-      <div class="table-box flex-1" id="main_table">
+      <div class="table-box flex-1" id="sub_table">
         <!-- í…Œì�´ë¸” í—¤ë�” (ì œëª©, ì¶”ê°€, ì‚­ì œ, ì €ìž¥) -->
         <div class="table-title">
           <p class="tilte"></p>
@@ -56,4 +56,6 @@ include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
     </div>
   </div>
 </div>
-<!-- file upload popup <ì²¨ë¶€íŒŒì�¼ ë“±ë¡�> -->
\ No newline at end of file
+<!-- file upload popup <ì²¨ë¶€íŒŒì�¼ ë“±ë¡�> -->
+
+<script src="./reg_prod_result.js"></script>
\ No newline at end of file
diff --git a/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.js b/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.js
index 615c176..623161f 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.js
+++ b/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.js
@@ -236,42 +236,6 @@ const VueOperStatusCode = createApp({
       //   }
       // },
   methods:{
-    initData(group){
-      for(let i = 0; i < group.length; i++){
-
-        finalDataList = []
-        for(let j=0;j<10;j++){
-          const operData = group[i][j];
-          // console.log(operData)
-          if(operData){
-            finalDataList.push(
-              {
-                OP_CD: operData.OP_CD ,
-                PLAN_QTY: operData.PLAN_QTY,
-                PRD_QTY : operData.PRD_QTY,
-                ST_TM:operData.ST_TM,
-                ED_TM : operData.ED_TM,
-                ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ : operData.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ ,
-                FACLT_CD: operData.FACLT_CD,
-                EMP_NM: operData.EMP_NM
-              }
-            )
-          }else{
-            finalDataList.push({})
-          }
-        }
-
-        group[i][0].ê³µì • = finalDataList
-
-        this.codeList.push(group[i][0]);
-        for(let i=0; i<this.codeList.length; i++){
-          this.isHover[i] = []
-        }
-
-      }
-
-    },
-
 
     // tableBuild ë�˜ì—ˆì�„ë•Œ getManList
     getMainList(mode,...test) {
@@ -332,10 +296,12 @@ const VueOperStatusCode = createApp({
         group[i][0].OP_CD = group[i].map(function (element) {
           return {
             OP_CD: element?.OP_CD,
+            OP_SEQ: element?.OP_SEQ,
             ê³„íš�ìˆ˜ëŸ‰: element?.ê³„íš�ìˆ˜ëŸ‰,
             PRD_QTY: element?.PRD_QTY,
             ST_TM: element?.ST_TM,
             ED_TM: element?.ED_TM,
+            EMP_NO: element?.WRK_EMP_NO,
             ì˜ˆìƒ�ì¢…ë£Œì‹œê°„: element?.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„,
             FACLT_CD: element?.FACLT_CD,
             EMP_NM: element?.EMP_NM
@@ -374,10 +340,12 @@ const VueOperStatusCode = createApp({
 
 
 
-      this.codeList = realTemp
+      this.codeList = realTemp;
 
 
-      this.initData(group);
+      for(let i=0; i<this.codeList.length; i++){
+        this.isHover[i] = []
+      }
 
       // ì‹¤ì œ ë�°ì�´í„° ìž…ë ¥í•¨ìˆ˜
       // ajax_json({
@@ -401,9 +369,11 @@ const VueOperStatusCode = createApp({
       const process = data['OP_CD'][idx]
       const bindingData = {
         WO_NO: data['WO_NO'],
+        WO_SEQ: data['WO_SEQ'],
         // ìƒ�íƒœ: data[ìƒ�íƒœ],
         DRAW_NO: data['DRAW_NO'],
         ITEM_CD: data['ITEM_CD'],
+        OP_SEQ: process['OP_SEQ'],
         OP_CD: process['OP_CD'],
         EMP_NO: process['EMP_NO'],
         FACLT_CD: process['FACLT_CD'],
@@ -413,7 +383,6 @@ const VueOperStatusCode = createApp({
       console.log(bindingData)
       const pop = new FieldPop(bindingData);
       pop.init();
-
     }
   },
   
diff --git a/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.php b/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.php
index 2f2d77a..643a65c 100644
--- a/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.php
+++ b/home_dir/www/ksvc/site/sts_order_prod/sts_order_prod.php
@@ -143,14 +143,14 @@ include_once _SVC_INC_PATH_ . "/header.php";
                   <tbody>
                     <template v-for="(code, idx) in codeList">
                       <tr>
-                        <td rowspan="5">{{code?.WO_NO}}<br>{{code?.ë“±ë¡�ì�¼}}</td>
-                        <td rowspan="5">{{code?.ITEM_CD}}<br>{{code?.DRAW_NO}}<br>{{code?.BP_CD}}</td>
-                        <td rowspan="5">{{code?.íŒ�ë§¤ì˜¤ë�”ìˆ˜ëŸ‰}}</td>
-                        <td rowspan="5">{{code?.DLVY_REQ_DT}}</td>
-                        <td rowspan="5">{{code?.WO_SEQ}}</td>
-                        <td rowspan="5">{{code?.ì™„ë£Œ}}</td>
-                        <td colspan="2" v-for="(process, index) in code?.OP_CD" :key="`process-${index}`" @click="openPop(code, index)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index], 'blue-back':process.stats=='P', 'green-back':process.stats=='C', 'orange-back':process.stats=='D', 'gray-back':process.stats=='W' }">
-                          {{ process.OP_CD }}
+                        <td rowspan="5">{{code.WO_NO}}<br>{{code.ë“±ë¡�ì�¼}}</td>
+                        <td rowspan="5">{{code.ITEM_CD}}<br>{{code.DRAW_NO}}<br>{{code.BP_CD}}</td>
+                        <td rowspan="5">{{code.íŒ�ë§¤ì˜¤ë�”ìˆ˜ëŸ‰}}</td>
+                        <td rowspan="5">{{code.DLVY_REQ_DT}}</td>
+                        <td rowspan="5">{{code.WO_SEQ}}</td>
+                        <td rowspan="5">{{code.ì™„ë£Œ}}</td>
+                        <td colspan="2" v-for="index in 10" :key="`process-${index-1}`" @click="openPop(code, index-1)" @mouseenter="isHover[idx][index-1] = true" @mouseleave="isHover[idx][index-1] = false" :class="{'on':isHover[idx][index-1] }">
+                          {{ code.OP_CD[index-1]?.OP_CD }}
                         </td>
                       </tr>
                       <tr>
@@ -164,7 +164,8 @@ include_once _SVC_INC_PATH_ . "/header.php";
                         </td>
                       </tr>
                       <tr>
-                        <td colspan="2" v-for="(process, index) in code?.OP_CD" :key="`pre-${index}`" @click="openPop(process)" @mouseenter="isHover[idx][index] = true" @mouseleave="isHover[idx][index] = false" :class="{'on':isHover[idx][index]}">{{ process?.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ }}
+                        <td colspan="2" v-for="index in 10" :key="`pre-${index}`" @click="openPop(code, index-1)" @mouseenter="isHover[idx][index-1] = true" @mouseleave="isHover[idx][index-1] = false" :class="{'on':isHover[idx][index-1]}">
+                        {{ code.OP_CD[index-1]?.ì˜ˆìƒ�ì¢…ë£Œì‹œê°„ }}
                         </td>
                       </tr>
                       <tr>
