diff --git a/app/tmpl/page.tsx b/app/tmpl/page.tsx index 81ac506..4cdb892 100644 --- a/app/tmpl/page.tsx +++ b/app/tmpl/page.tsx @@ -1,28 +1,43 @@ -// app/page.tsx (ระบบ B) -'use client'; +// app/page.tsx +import fs from 'fs'; +import path from 'path'; import Link from "next/link"; -import type { ChangeEvent } from 'react'; -import DependentDropdown, { DropdownData } from '@/components/utils/DependentDropdown'; +import TmplHome from "@/components/TmplHome"; +import { DropdownData } from '@/components/utils/DependentDropdown'; import { - Bookmark, ToyBrick, FilePenLine, BicepsFlexed, Rocket, Workflow, Files, Blocks, FileQuestionMark, - ExternalLink, - FileText, - Highlighter, - MessagesSquare, + ToyBrick, FilePenLine, Rocket, Workflow, NotepadTextDashed, + Files, Blocks, FileQuestionMark, ShieldLock, FileUp, GitMerge, + ExternalLink, FileText } from "lucide-react"; export default function HomePage() { - const templateData: DropdownData = { - T_X: ['T_no_warning', 'TF_no_warning_P2', 'TS_P2_IN'], - T12_X: ['T12_b2_IN', 'T12_FD155_3s-long'], - }; - const handleTmplSelect = (template: string, data: string) => { - //console.log('Location Selected:', { template, data }); - }; - const handleInput = (e: ChangeEvent) => { - // console.log(e.target) - return true; + // อ่านไฟล์จากโฟลเดอร์ public/tmpl บน Server + const tmplDirectory = path.join(process.cwd(), 'public/tmpl'); + let filenames: string[] = []; + + try { + filenames = fs.readdirSync(tmplDirectory); + } catch (error) { + console.error("ไม่พบโฟลเดอร์ public/tmpl", error); } + + // กรองเฉพาะไฟล์ .docx และ .json + const docxFiles = filenames.filter(file => file.endsWith('.docx')); + const jsonFiles = filenames.filter(file => file.endsWith('.json')); + + // สร้างโครงสร้างข้อมูลสำหรับ DependentDropdown แบบอัตโนมัติ (หรือปรับเงื่อนไขการจัดกลุ่มตามต้องการ) + // ตัวอย่างนี้จัดกลุ่มตามชื่อไฟล์ตั้งต้น + const templateData: DropdownData = {}; + docxFiles.forEach(docx => { + const key = docx.replace('.docx', ''); + // หาไฟล์ json ที่ชื่อขึ้นต้นตรงกันมาใส่เป็นตัวเลือกย่อย + const matchedJsons = jsonFiles + .filter(json => json.startsWith(key)) + .map(json => json.replace('.json', '')); + + templateData[key] = matchedJsons.length > 0 ? matchedJsons : ['default']; + }); + return (
@@ -30,71 +45,81 @@ export default function HomePage() { DOCEDIT Template & Add-ins

- ระบบเทมเพลตเพื่อสร้างเอกสาร MS Word และจัดการรุ่นของเอกสารผ่าน Word Add-ins ยุคใหม่ แบบอิสระ ที่สามารถ Integrate กับระบบความปลอดภัยของระบบอื่นๆได้ + ชุดพัฒนาระบบสร้างเอกสาร docx จากข้อมูลและเทมเพลต นำไปแก้ไขจัดหน้าต่อบน MS Word โดยที่ข้อมูลในฟอร์มเอกสารสามารถสะกัดออกมาใช้งานต่อได้ ควบคุมรุ่นของเอกสารด้วย Add-ins สามารถผสานกับระบบงานเดิมได้แบบไร้รอยต่อ

+ {/* ส่วนเนื้อหาคงที่ (Features, Flow, Add-ins) */}

- ระบบนี้ทำอะไรได้ + คุณสมบัติของระบบ

{[ { icon: FileText, - title: "DOCX Template", + title: "ออกแบบเทมเพลตด้วย Microsoft Word", detail: - "ออกแบบหน้าของเอกสารจาก Microsoft Word โดยไม่ต้องใช้เครื่องมือพิเศษ " + - "สามารถนำเอกสารตัวเดิมมาใช้ออกแบบได้ทันที " + - "ไม่จำเป็นต้องมีทักษะการเขียนโปรแกรมก็สามารถสร้างเทมเพลตได้ด้วยตัวเอง", + "สร้างเทมเพลตเอกสารได้ง่าย ๆ ด้วย Microsoft Word เครื่องมือที่ทุกคนคุ้นเคย " + + "ไม่จำเป็นต้องติดตั้งโปรแกรมเพิ่มเติมหรือเรียนรู้เครื่องมือเฉพาะทาง สามารถนำเอกสาร Word ที่มีอยู่เดิมมาปรับใช้เป็นเทมเพลตได้ทันที " + + "ไแม้ไม่มีทักษะด้านการเขียนโปรแกรม ก็สามารถออกแบบและสร้างเทมเพลตเอกสารได้ด้วยตนเอง ", + }, + { + icon: NotepadTextDashed, + title: "รองรับเอกสารที่มีเงื่อนไขซับซ้อน", + detail: + "รองรับการสร้างเอกสารที่มีโครงสร้างและเงื่อนไขซับซ้อน ไม่ว่าจะเป็นข้อมูลจำนวนไม่แน่นอน การแสดงผลตามเงื่อนไข " + + "หรือการจัดรูปแบบเนื้อหาแบบไดนามิก สามารถเพิ่มชุดคำสั่งและเขียนโปรแกรมลงในเทมเพลตได้ เช่น FOR, IF, " + + "การแทรกโค้ด และฟังก์ชันเพิ่มเติม พร้อม API สำหรับนักพัฒนา เพื่อทดสอบการสร้างเอกสารจากเทมเพลต DOCX ร่วมกับชุดข้อมูล JSON ได้อย่างสะดวก " }, { icon: FilePenLine, - title: "Fill Form", + title: "เปลี่ยนเอกสาร Word ให้เป็นแบบฟอร์มอัจฉริยะ", detail: - "รอรับ Rich และ Plain Text Content Control " + - "สามารถสร้างฟอร์มสำหรับกรอกข้อมูลจากไฟล์ docx " + - "สามารถใช้ API ดึงข้อมูลในฟอร์มกลับมาเพื่อนำไปใช้งานต่อ เช่นเก็บในฐานข้อมูลได้", + "รองรับ Rich Text และ Plain Text Content Controls ใน Microsoft Word " + + "สามารถนำไฟล์ DOCX มาสร้างเป็นแบบฟอร์มสำหรับกรอกข้อมูลได้ทันที โดยไม่ต้องเสียเวลาออกแบบฟอร์มใหม่บน " + + "Web Application พร้อม API สำหรับดึงข้อมูลที่ผู้ใช้กรอกกลับมาในรูปแบบ JSON เพื่อนำไปประมวลผล "+ + "จัดเก็บลงฐานข้อมูล หรือเชื่อมต่อกับกระบวนการทำงานอื่น ๆ ได้อย่างยืดหยุ่น ", }, { icon: ToyBrick, - title: "Integration", + title: "เชื่อมต่อระบบงานเดิมได้อย่างอิสร", detail: - "ระบบทำงานเป็นอิสระแบบ Microservice ใช้ API Key เพื่อจำกัดการใช้งาน สามารถออกบัตรผ่านที่ลงลายเซ็นต์ด้วย HmacSha256" + - "เพื่อให้ผสาน(Integrate)กับระบบงานที่มีอยู่เดิม ได้อย่างปลอดภัย" + - "เพื่อให้ผสานกับระบบงานอื่นๆ ได้อย่างปลอดภัย", + "ออกแบบให้ทำงานเป็นระบบอิสระ สามารถเชื่อมต่อกับระบบงานที่มีอยู่เดิมผ่าน API ได้อย่างยืดหยุ่น รองรับการออก Access Token " + + "สำหรับกำหนดสิทธิ์และควบคุมการเข้าถึง โดยไม่จำเป็นต้องพึ่งพาระบบ Single Sign-On (SSO) " + + "หรือเชื่อมต่อเข้าถึงฐานข้อมูลของระบบงานเดิม ช่วยลดความซับซ้อนในการบูรณาการระบบและเพิ่มความคล่องตัวในการพัฒนา ", }, { - icon: FileText, - title: "Dynamic Template", + icon: GitMerge, + title: "จัดการเวอร์ชันเอกสารอย่างเป็นระบบ", detail: - "รองรับเทมเพลตที่ซับซ้อน ข้อมูลที่มีจำนวนไม่แน่นอน การแสดงผลตามเงื่อนไขแบบต่างๆ " + - "สามารถเขียนโปรแกรมเพิ่มลงในเทมเพลตได้ รองรับ FOR , IF แทรกโค้ด " + - "ฟังก์ชั่นเพื่อสร้าง Content Control Bookmark ฯลฯ" + - "มี API ช่วยนักพัฒนาสร้างเอกสารจากเทมเพลต(DOCX)และข้อมูล(JSON) " + "รองรับการจัดเก็บและบริหารจัดการเวอร์ชันของเอกสารร่วมกันผ่าน Microsoft Word Add-ins " + + "สามารถบันทึกเวอร์ชันใหม่ เรียกดูประวัติการแก้ไข และเรียกคืนเวอร์ชันที่ต้องการกลับมาแก้ไขต่อได้ " + + "ช่วยให้การทำงานร่วมกันเป็นระบบ ลดความสับสนจากการจัดเก็บไฟล์หลายฉบับ และสามารถตรวจสอบย้อนกลับไปยังเวอร์ชันก่อนหน้าได้", }, { icon: Rocket, - title: "Versioning", + title: "ประสิทธิภาพสูง พร้อมรองรับการขยายระบบ", detail: - "จัดการ Veresion(รุ่น)ของเอกสารร่วมกันได้ผ่าน Microsoft Word Add-ins " + - "สามารถดึง Veresion ที่ต้องการกลับมาแก้ไขได้ ", + "พัฒนาด้วยสถาปัตยกรรมแบบ Container รองรับการขยายระบบ (Scalability) ได้อย่างยืดหยุ่น " + + "กระบวนการสร้างเอกสารจากเทมเพลตทำงานแบบ Multi-threading สามารถใช้ประโยชน์จาก CPU หลายแกนประมวลผลพร้อมกัน " + + "รองรับการจัดเก็บไฟล์ผ่าน Object Storage ที่มีความยืดหยุ่นและรองรับการขยายพื้นที่จัดเก็บ ช่วยเพิ่มประสิทธิภาพและรองรับปริมาณงานที่เพิ่มขึ้นในอนาคต ", }, { - icon: Rocket, - title: "High Performance", + icon: FileUp, + title: "ส่งออก PDF ด้วยรูปแบบที่ตรงกับต้นฉบับ", detail: - "containerization ขยายระบบได้ง่าย " + - "การสร้าง template ทำงานแบบ Multi-Thread รองรับ CPU หลายแกน " + - "เก็บไฟล์ใน Object Storage มีความทนทานและรับโหลดได้หนัก", + "สร้างไฟล์ PDF โดยอัตโนมัติทุกครั้งที่บันทึกเวอร์ชันเอกสาร ผ่าน Microsoft Word โดยตรง ทำให้รูปแบบและการจัดวางหน้าของ PDF " + + "สอดคล้องกับเอกสารต้นฉบับ ลดปัญหาความคลาดเคลื่อนของรูปแบบเอกสารจากความแตกต่างของ Microsoft Office แต่ละเวอร์ชัน " + + "นอกจากนี้ยังประมวลผลบนเครื่องผู้ใช้งาน (Client-side Processing) ช่วยลดภาระการประมวลผลและการใช้ทรัพยากรของเซิร์ฟเวอร์", }, { - icon: Rocket, - title: "PDF Export", + icon: ShieldLock, + title: "ปลอดภัยด้วยมาตรฐานการสื่อสารและการควบคุมการเข้าถึง", detail: - "ทุกครั้งที่ Save Veresion จะสร้าง PDF อัตโนมัติในด้วย MS Word ทำให้ได้เค้าโครงของหน้าตรงกับเอกสารที่แก้ไข " + - "โดยไม่เกิดปัญหาความผิดเพี้ยนของ PDF ที่ใช้ MS Office ต่างเวอร์ชั่นในการแปลง ประมวลผลที่ไคลเอนต์ลดการใช้ทรัพยากรที่เซิร์ฟเวอร์", + "ให้ความสำคัญกับความปลอดภัยของข้อมูล ด้วยการเข้ารหัสการสื่อสารผ่าน HTTPS และควบคุมการเข้าถึงไฟล์ด้วย Access Token " + + "ที่ผ่านการลงลายมือชื่อดิจิทัลด้วย HMAC-SHA256 ช่วยป้องกันการปลอมแปลง Token และจำกัดการเข้าถึงทรัพยากรตามสิทธิ์ที่ได้รับ ลดความเสี่ยงจากการเข้าถึงข้อมูลโดยไม่ได้รับอนุญาต", }, ].map(({ icon: Icon, title, detail }) => ( @@ -114,97 +139,41 @@ export default function HomePage() {
))}
+ + + {/* ส่วนตัวอย่างการใช้งานที่ต้องการให้อัปเดตอัตโนมัติ */}

ตัวอย่างการใช้งาน

+ + + + + +
+
-
- +
- -
- - - -
-

Template & Data

-

- Template: T_X.docx,   - T12_X.docx
- Data: TF_no_warning_P2.json,   - T_no_warning.json,   - TS_P2_IN.json
- T12_b2_IN.json,   - T12_FD155_3s-long.json -
- นำไฟล์ไปทดสอบกับ API - -

-
-
- -
- - - -
-

Form (POST)

-
- -
- -
-
- -
-
- -
- - - -
-
-
-
@@ -212,7 +181,7 @@ export default function HomePage() {

Flow

-
+
ลิงค์เลือกไฟล์
↓
ตรวจสิทธิ์ สร้าง docx
@@ -229,25 +198,11 @@ export default function HomePage() {
-
+
+

@@ -262,22 +217,25 @@ export default function HomePage() {

Word Add-ins

-

- การติดตั้งสามารถติดตั้งได้หลายวิธี +

+ การนำไปเผยแพร่สามารถติดตั้งได้หลายวิธี (แนะนำ Shared Folder Sideloading)
    -
  1. 1. ติดตั้งผ่าน Office Store (วิธีทั่วไปสำหรับผู้ใช้ทั่วไป)
  2. -
  3. 2. Sideloading ด้วยไฟล์ +
  4. 1. ติดตั้งผ่าน Office Store การเผยแพร่ต้องสมัครบัญชีนักพัฒนาใช้ Microsoft Partner Center ลงทะเบียนในโปรแกรม Office Store
  5. +
  6. 2. การติดตั้งระดับองค์กร (ผ่าน Microsoft 365 Admin Center) ทำตาม + + วีดีโอนี้
  7. +
  8. 3. Sideloading ด้วยไฟล์ manifest.xml (Office 365) Insert>Add-ins>My Add-ins คลิ้ก "Upload My Add-in"
  9. -
  10. 3. Shared Folder Sideloading(Office 2019+) นำไฟล์ - manifest.xml  ไปทำตามวีดีโอ +
  11. 4. Shared Folder Sideloading(Office 2019+ รุ่นเดสท็อป) นำไฟล์ + manifest.xml  ไปทำตามวีดีโอ ติดตั้ง MS Word Add-ins
  12. -
  13. 4. ใช้คำสั่ง reg.exe ร่วมกับ - manifest.xml  ไปทำตามวีดีโอ +
  14. 5. นักพัฒนา ใช้คำสั่ง reg.exe ร่วมกับ + manifest.xml  ไปทำตามวีดีโอ ติดตั้ง MS Word Add-ins
  15. -
  16. 5. สคริปต์ PowerShell(Dev Install) - - install-word-addins.ps1  - แล้วเรียกคำสั่งด้านล่างเพื่อติดตั้ง
    +
  17. 6. นักพัฒนาสร้างสคริปต์ + + install-word-addins.ps1 (เรียกใช้ reg.exe)  + สำหรับ Power Shell จะต้องให้สิทธิ์ในการเรียกใช้ สามารถเรียกคำสั่งด้านล่างเพื่อติดตั้ง

    Unblock-File .\install-word-addins.ps1
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
    @@ -290,16 +248,17 @@ export default function HomePage() { ด้วยข้อกำหนดของ TOR ให้รองรับ Word 2019(Desktop) บนวินโดว์ 10 เป็นขั้นต่ำ ทำให้ถูกจำกัดที่ WordApi 1.3 เท่านั้น ฟึเจอร์บางอย่างบน Add-ins จะถูกจำกัดตามความสามารถตามรุ่นของ WordApi การทดสอบต่างๆตามที่กำหนดใน TOR
    - สำหรับ Microsoft Office เวอร์ชันขายขาดแบบเก่า (เช่น Office 2016, 2019 หรือ 2021) จะไม่มีปุ่มอัปโหลดไฟล์ XML + สำหรับ Microsoft Office เวอร์ชันขายขาดแบบเก่า (เช่น Office 2016, 2019, 2021 หรือ 2024) จะไม่มีปุ่มอัปโหลดไฟล์ XML บนหน้าต่างเมนูโดยตรงเหมือน Microsoft 365 หากต้องการติดตั้งไฟล์ manifest.xml ในรุ่นดังกล่าว - จำเป็นต้องใช้วิธีแชร์โฟลเดอร์เครือข่าย (Shared Folder Sideloading) + นะนำให้ใช้วิธีแชร์โฟลเดอร์เครือข่าย (Shared Folder Sideloading) หรือผ่าน Microsoft 365 Admin Center
    -

    +
+ ); diff --git a/components/TmplHome.tsx b/components/TmplHome.tsx new file mode 100644 index 0000000..17b0943 --- /dev/null +++ b/components/TmplHome.tsx @@ -0,0 +1,114 @@ +// components/TemplateFormClient.tsx +'use client'; +import { useState, type ChangeEvent } from 'react'; +import Link from "next/link"; +import DependentDropdown, { type DropdownData } from '@/components/utils/DependentDropdown'; + +interface TemplateFormClientProps { + templateData: DropdownData; +} + +export default function TemplateFormClient({ templateData }: TemplateFormClientProps) { + const handleTmplSelect = (template: string, data: string) => { + // Handle selection if needed + }; + + return ( + + + + +
+ {/* ส่วน Template & Data แสดงรายการไฟล์จริงจากโฟลเดอร์ */} +
+
+

Template & Data

+
+ {Object.entries(templateData).map(([tid, jsonList]) => ( +
+ Template: + + {tid}.docx + +
+ Data: + {jsonList.map((fid, idx) => ( + + + {fid}.json + + {idx < jsonList.length - 1 ? ', ' : ''} + + ))} +
+ ))} +
+ นำไฟล์ไปทดสอบกับ API +
+
+
+
+ {/* ส่วน Form (POST) */} +
+
+

Form (POST)

+
+
+ +
+
+ +
+
+ +
+ + +
+
+
+ {/* ส่วน Link (GET) */} +
+
+

Link (GET)

+

+ {Object.entries(templateData).map(([tid, jsonList]) => { + // jsonList คืออาเรย์ของชื่อไฟล์ json (fid) ที่ผูกอยู่กับ template (tid) นี้ + return jsonList.map((fid) => { + const linkHref = `/docedit/api/template/download-docx?tid=${tid}&fid=${fid}&uid=john&uname=John%20Doe`; + const displayLabel = `${fid}_john_xxx.docx`; // หรือปรับรูปแบบข้อความแสดงผลตามต้องการ + + return ( + + + {displayLabel} + +
+
+ ); + }); + })} +

+
+
+ +
+ ); +} \ No newline at end of file diff --git a/public/tmpl/JT_.docx b/public/tmpl/JT_.docx new file mode 100644 index 0000000..c58e277 Binary files /dev/null and b/public/tmpl/JT_.docx differ diff --git a/public/tmpl/JT_data_test.json b/public/tmpl/JT_data_test.json new file mode 100644 index 0000000..6ce9598 --- /dev/null +++ b/public/tmpl/JT_data_test.json @@ -0,0 +1,36 @@ +{ + "info": { + "ticket_data": "JSON String" + }, + "dc": { + "Interpleader": true, + "Appeal": true, + "docname": "คำแถลงการณ์", + "docabbr": "ต. ๑๕", + "blackno": "คดีหมายเลขดำที่", + "court": "ศาลปกครองกลาง", + "formNameFull": "คำแถลงการณ์ของตุลาการผู้แถลงคดี", + "suitblacktype": "", + "panels": [ + { + "pname": "นางสาวสมรัก คำหวาน", + "pmname": "ตุลาการศาลปกครองกลาง" + } + ] + }, + "cc": { + "blackyear": "๓๔/๒๕๖๙", + "subject": "คดีพิพาทเกี่ยวกับความรับผิดอย่างอื่นของหน่วยงานทางปกครองหรือเจ้าหน้าที่ของรัฐอันเกิดจากการใช้อำนาจตามกฎหมาย", + "curdate": "วันที่ เดือน พฤศจิกายน พุทธศักราช ๒๕๖๙", + "acc1": "ผู้ฟ้องคดี", + "accuser": "นางพึงกระทำดี มีธรรม", + "acc3": "ผู้ร้องสอด", + "interpleader": "สมหมาย ทดสอบ", + "acc2": "ผู้ถูกฟ้องคดี", + "accused": "กรมสนับสนุนบริการสุขภาพ", + "acc4": "ผู้อุทธรณ์", + "appeal": "นายอุทธรณ์ ทดสอบ", + "boardno": "องค์คณะที่ ๒ ในศาลปกครองกลาง", + "detail1": "ผู้ฟ้องคดีเป็นเจ้าของกรรมสิทธิ์ที่ดินโฉนดที่ดินเลขที่ ๑๒๓๔ตำบลบางแม่นาง อำเภอบางใหญ่ จังหวัดนนทบุรี เนื้อที่ ๕ ไร่ ที่ดินแปลงดังกล่าวถูกเวนคืนเนื้อที่ ๒ ไร่ ตามพระราชกฤษฎีกากำหนดเขตที่ดินในบริเวณที่ที่จะเวนคืน เพื่อสร้างทางหลวงพิเศษหมายเลข ๘๑ สายบางใหญ่ – กาญจนบุรี พ.ศ. ๒๕๖๐ คณะกรรมการกำหนดราคาเบื้องต้นฯ กำหนดค่าทดแทนที่ดินในราคาไร่ละ ๓,๐๐๐,๐๐๐ บาท หรือตารางวาละ ๗,๕๐๐ บาท เป็นเงิน ๖,๐๐๐,๐๐๐ บาท ต่อมา ผู้ถูกฟ้องคดีที่ ๓ โดยผู้อำนวยการแขวงทางหลวงนนทบุรี มีหนังสือลงวันที่ ๒๐ พฤศจิกายน ๒๕๖๒ แจ้งให้ผู้ฟ้องคดีไปตกลงราคาค่าทดแทนอสังหาริมทรัพย์ที่ถูกเขตทางหลวงในวันที่ ๓๐ พฤศจิกายน ๒๕๖๒ และมีหนังสือลงวันที่ ๙ ธันวาคม ๒๕๖๒ แจ้งให้ผู้ฟ้องคดีไปรับเงินค่าทดแทนจำนวนดังกล่าว ผู้ฟ้องคดีได้รับเงินค่าทดแทนที่ดินจำนวนดังกล่าวในวันที่ ๑๙ ธันวาคม ๒๕๖๒ และไม่พอใจจำนวนเงินค่าทดแทน จึงมีหนังสือลงวันที่ ๑๐ มกราคม ๒๕๖๓ อุทธรณ์ต่อผู้ถูกฟ้องคดีที่ ๒ ขอค่าทดแทนเพิ่ม ต่อมา ผู้อำนวยการกองอุทธรณ์เงินค่าทดแทนมีหนังสือ ลงวันที่ ๒๐ ธันวาคม ๒๕๖๓ แจ้งผู้ฟ้องคดีว่า คณะกรรมการพิจารณาอุทธรณ์พิจารณาแล้ว มีมติยืนราคาค่าทดแทนที่ดินโฉนดที่ดินเลขที่ ๑๒๓๔ ตามมติคณะกรรมการกำหนดราคาเบื้องต้นฯ ตารางวาละ ๗,๕๐๐ บาท ซึ่งผู้ถูกฟ้องคดีที่ ๒ พิจารณาแล้วเห็นชอบตามมติของคณะกรรมการพิจารณาอุทธรณ์ฯ ผู้ฟ้องคดีเห็นว่า การกำหนดเงินค่าทดแทนที่ดินไม่เป็นธรรม เนื่องจากที่ดินของผู้ฟ้องคดีถูกเวนคืนจำนวน ๒ ไร่ ส่งผลให้ที่ดินของผู้ฟ้องคดีส่วนที่เหลือขาดแหล่งน้ำในการใช้ทำการเกษตรทันที และราคาซื้อขายตามท้องตลาดในบริเวณดังกล่าวตารางวาละ ๑๕,๐๐๐ บาท อีกทั้งที่ดินของผู้ฟ้องคดีอยู่บริเวณเดียวกับที่ดินโฉนดที่ดินเลขที่ ๕๖๗๘ ของนางสาว ส. ซึ่งคณะกรรมการพิจารณาอุทธรณ์ฯ มีมติเพิ่มค่าทดแทนที่ดินโฉนดที่ดินเลขที่ ๕๖๗๘ เป็นตารางวาละ ๑๒,๐๐๐ บาท ขอให้ศาลมีคำพิพากษาหรือคำสั่งให้ผู้ถูกฟ้องคดีทั้งสามร่วมกันหรือแทนกันชำระเงินค่าทดแทนให้แก่ผู้ฟ้องคดีเพิ่มอีกจำนวน ๓,๖๐๐,๐๐๐ บาท พร้อมดอกเบี้ยในอัตราสูงสุดของดอกเบี้ยเงินฝากประเภทฝากประจำของธนาคารออมสินจากต้นเงินดังกล่าวนับถัดจากวันฟ้องเป็นต้นไปจนกว่าจะชำระให้ผู้ฟ้องคดีเสร็จสิ้น ศาลปกครองกลางพิจารณายกฟ้อง" + } +} diff --git a/public/tmpl/J_.docx b/public/tmpl/J_.docx new file mode 100644 index 0000000..c803c25 Binary files /dev/null and b/public/tmpl/J_.docx differ diff --git a/public/tmpl/J_data_test.json b/public/tmpl/J_data_test.json new file mode 100644 index 0000000..6410b5c --- /dev/null +++ b/public/tmpl/J_data_test.json @@ -0,0 +1,57 @@ +{ + "info": {"ticket_data": "JSON String"}, + "dc": { + "Interpleader": true, + "docname": "คำพิพากษา", + "docabbr": "ต. ๒๒", + "blackno": "คดีหมายเลขดำที่", + "redno": "คดีหมายเลขแดงที่", + "court": "ศาลปกครองกลาง", + "panels": [ + {"pname": "นายตุลาการก นามสกุลก", "pmname": "ตุลาการหัวหน้าคณะศาลปกครองกลาง"}, + {"pname": "นายตุลาการข นามสกุลข", "pmname": "ตุลาการศาลปกครองกลาง", "pm": "ตุลาการเจ้าของสำนวน"}, + {"pname": "นายตุลาการค นามสกุลค", "pmname": "ตุลาการศาลปกครองกลาง"}, + {"pname": "นายตุลาการง นามสกุลง", "pmname": "ตุลาการศาลปกครองกลาง"}, + {"pname": "นายตุลาการจ นามสกุลจ", "pmname": "ตุลาการศาลปกครองกลาง"} + ], + "pnameInter": "สมรัก คำหวาน", + "dissents": [ + { + "SuitType": "คดีหมายเลขดำที่", + "SuitTypeR": "คดีหมายเลขแดงที่", + "blackno": "๓๔/๒๕๖๙", + "redno": "", + "detail": "ข้าพเจ้าไม่เห็นพ้องด้วยกับคำพิพากษาของศาล เนื่องจากราคาซื้อขายตามท้องตลาดในบริเวณดังกล่าวสูงกว่าค่าทดแทนที่กำหนด จึงเห็นควรให้ผู้ถูกฟ้องคดีชำระเงินค่าทดแทนเพิ่ม ข้าพเจ้าไม่เห็นพ้องด้วยกับคำพิพากษาของศาล เนื่องจากราคาซื้อขายตามท้องตลาดในบริเวณดังกล่าวสูงกว่าค่าทดแทนที่กำหนด จึงเห็นควรให้ผู้ถูกฟ้องคดีชำระเงินค่าทดแทนเพิ่ม", + "panels": [ + {"pname": "นายตุลาการค นามสกุลค", "pmname": "ตุลาการศาลปกครองกลาง"}, + {"pname": "นายตุลาการง นามสกุลง", "pmname": "ตุลาการศาลปกครองกลาง"}, + {"pname": "นายตุลาการจ นามสกุลจ", "pmname": "ตุลาการศาลปกครองกลาง"} + ] + }, + { + "SuitType": "คดีหมายเลขดำที่", + "SuitTypeR": "คดีหมายเลขแดงที่", + "blackno": "๓๔/๒๕๖๙", + "redno": "", + "detail": "ข้าพเจ้าเห็นด้วยกับผลของคำพิพากษา แต่ด้วยเหตุผลที่แตกต่างกัน กล่าวคือ ผู้ฟ้องคดีไม่ได้ยื่นอุทธรณ์ภายในระยะเวลาที่กฎหมายกำหนด ข้าพเจ้าไม่เห็นพ้องด้วยกับคำพิพากษาของศาล เนื่องจากราคาซื้อขายตามท้องตลาดในบริเวณดังกล่าวสูงกว่าค่าทดแทนที่กำหนด จึงเห็นควรให้ผู้ถูกฟ้องคดีชำระเงินค่าทดแทนเพิ่ม", + "panels": [ + {"pname": "นายตุลาการก นามสกุลก", "pmname": "ตุลาการหัวหน้าคณะศาลปกครองกลาง"}, + {"pname": "นายตุลาการข นามสกุลข", "pmname": "ตุลาการศาลปกครองกลาง"} + ] + } + ] + }, + "cc": { + "blackyear": "๓๔/๒๕๖๙", + "redyear": "", + "curdate": "วันที่ เดือน พฤศจิกายน พุทธศักราช ๒๕๖๙", + "accuser": "นางพึงกระทำดี มีธรรม", + "acc1": "ผู้ฟ้องคดี", + "interpleader": "สมหมาย ทดสอบ", + "acc3": "ผู้ร้องสอด", + "accused": "กรมสนับสนุนบริการสุขภาพ", + "acc2": "ผู้ถูกฟ้องคดี", + "subject": "คดีพิพาทเกี่ยวกับความรับผิดอย่างอื่นของหน่วยงานทางปกครองหรือเจ้าหน้าที่ของรัฐอันเกิดจากการใช้อำนาจตามกฎหมาย", + "detail1": "ผู้ฟ้องคดีเป็นเจ้าของกรรมสิทธิ์ที่ดินโฉนดที่ดินเลขที่ ๑๒๓๔ตำบลบางแม่นาง อำเภอบางใหญ่ จังหวัดนนทบุรี เนื้อที่ ๕ ไร่ ที่ดินแปลงดังกล่าวถูกเวนคืนเนื้อที่ ๒ ไร่ ตามพระราชกฤษฎีกากำหนดเขตที่ดินในบริเวณที่ที่จะเวนคืน เพื่อสร้างทางหลวงพิเศษหมายเลข ๘๑ สายบางใหญ่ – กาญจนบุรี พ.ศ. ๒๕๖๐ คณะกรรมการกำหนดราคาเบื้องต้นฯ กำหนดค่าทดแทนที่ดินในราคาไร่ละ ๓,๐๐๐,๐๐๐ บาท หรือตารางวาละ ๗,๕๐๐ บาท เป็นเงิน ๖,๐๐๐,๐๐๐ บาท ต่อมา ผู้ถูกฟ้องคดีที่ ๓ โดยผู้อำนวยการแขวงทางหลวงนนทบุรี มีหนังสือลงวันที่ ๒๐ พฤศจิกายน ๒๕๖๒ แจ้งให้ผู้ฟ้องคดีไปตกลงราคาค่าทดแทนอสังหาริมทรัพย์ที่ถูกเขตทางหลวงในวันที่ ๓๐ พฤศจิกายน ๒๕๖๒ และมีหนังสือลงวันที่ ๙ ธันวาคม ๒๕๖๒ แจ้งให้ผู้ฟ้องคดีไปรับเงินค่าทดแทนจำนวนดังกล่าว ผู้ฟ้องคดีได้รับเงินค่าทดแทนที่ดินจำนวนดังกล่าวในวันที่ ๑๙ ธันวาคม ๒๕๖๒ และไม่พอใจจำนวนเงินค่าทดแทน จึงมีหนังสือลงวันที่ ๑๐ มกราคม ๒๕๖๓ อุทธรณ์ต่อผู้ถูกฟ้องคดีที่ ๒ ขอค่าทดแทนเพิ่ม ต่อมา ผู้อำนวยการกองอุทธรณ์เงินค่าทดแทนมีหนังสือ ลงวันที่ ๒๐ ธันวาคม ๒๕๖๓ แจ้งผู้ฟ้องคดีว่า คณะกรรมการพิจารณาอุทธรณ์พิจารณาแล้ว มีมติยืนราคาค่าทดแทนที่ดินโฉนดที่ดินเลขที่ ๑๒๓๔ ตามมติคณะกรรมการกำหนดราคาเบื้องต้นฯ ตารางวาละ ๗,๕๐๐ บาท ซึ่งผู้ถูกฟ้องคดีที่ ๒ พิจารณาแล้วเห็นชอบตามมติของคณะกรรมการพิจารณาอุทธรณ์ฯ ผู้ฟ้องคดีเห็นว่า การกำหนดเงินค่าทดแทนที่ดินไม่เป็นธรรม เนื่องจากที่ดินของผู้ฟ้องคดีถูกเวนคืนจำนวน ๒ ไร่ ส่งผลให้ที่ดินของผู้ฟ้องคดีส่วนที่เหลือขาดแหล่งน้ำในการใช้ทำการเกษตรทันที และราคาซื้อขายตามท้องตลาดในบริเวณดังกล่าวตารางวาละ ๑๕,๐๐๐ บาท อีกทั้งที่ดินของผู้ฟ้องคดีอยู่บริเวณเดียวกับที่ดินโฉนดที่ดินเลขที่ ๕๖๗๘ ของนางสาว ส. ซึ่งคณะกรรมการพิจารณาอุทธรณ์ฯ มีมติเพิ่มค่าทดแทนที่ดินโฉนดที่ดินเลขที่ ๕๖๗๘ เป็นตารางวาละ ๑๒,๐๐๐ บาท ขอให้ศาลมีคำพิพากษาหรือคำสั่งให้ผู้ถูกฟ้องคดีทั้งสามร่วมกันหรือแทนกันชำระเงินค่าทดแทนให้แก่ผู้ฟ้องคดีเพิ่มอีกจำนวน ๓,๖๐๐,๐๐๐ บาท พร้อมดอกเบี้ยในอัตราสูงสุดของดอกเบี้ยเงินฝากประเภทฝากประจำของธนาคารออมสินจากต้นเงินดังกล่าวนับถัดจากวันฟ้องเป็นต้นไปจนกว่าจะชำระให้ผู้ฟ้องคดีเสร็จสิ้น ศาลปกครองกลางพิจารณายกฟ้อง" + } +} diff --git a/public/tmpl/T12_X.docx b/public/tmpl/T12_.docx similarity index 100% rename from public/tmpl/T12_X.docx rename to public/tmpl/T12_.docx diff --git a/public/tmpl/T_X.docx b/public/tmpl/T_.docx similarity index 100% rename from public/tmpl/T_X.docx rename to public/tmpl/T_.docx diff --git a/public/tmpl/TF_no_warning_P2.json b/public/tmpl/T_TF_no_warning_P2.json similarity index 100% rename from public/tmpl/TF_no_warning_P2.json rename to public/tmpl/T_TF_no_warning_P2.json diff --git a/public/tmpl/TS_P2_IN.json b/public/tmpl/T_TS_P2_IN.json similarity index 100% rename from public/tmpl/TS_P2_IN.json rename to public/tmpl/T_TS_P2_IN.json diff --git a/public/tmpl/T_no_warning.json b/public/tmpl/T_T_no_warning.json similarity index 100% rename from public/tmpl/T_no_warning.json rename to public/tmpl/T_T_no_warning.json