251119:1200 set backend

This commit is contained in:
2025-11-19 11:57:46 +07:00
parent a3e25d6c52
commit 2b36e5554b
29 changed files with 7719 additions and 204 deletions

View File

@@ -1,5 +1,5 @@
-- ==========================================================
-- DMS v1.4.0 Document Management System Database
-- DMS v1.4.2 Document Management System Database
-- Deploy Script Schema
-- Server: Container Station on QNAPQNAP TS-473A
-- Database service: MariaDB 10.11
@@ -2007,54 +2007,6 @@ CREATE INDEX idx_audit_request_id ON audit_logs(request_id);
-- =====================================================
-- 11. 📊 Views & Procedures (วิว และ โปรซีเดอร์)
-- =====================================================
-- Stored Procedure ดึงเลขที่เอกสารถัดไป
DELIMITER // CREATE PROCEDURE sp_get_next_document_number(
IN p_project_id INT,
IN p_originator_organization_id INT,
IN p_correspondence_type_id INT,
IN p_current_year INT,
OUT p_next_number INT
) BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN -- หากเกิดข้อผิดพลาด ให้ยกเลิก Transaction และส่ง Error กลับไป
ROLLBACK;
END;
START TRANSACTION;
-- ล็อกแถวเพื่อป้องกัน Race Condition
SELECT last_number INTO p_next_number
FROM document_number_counters
WHERE project_id = p_project_id
AND originator_organization_id = p_originator_organization_id
AND correspondence_type_id = p_correspondence_type_id
AND current_year = p_current_year FOR
UPDATE;
-- ถ้าไม่พบ record ให้สร้างใหม่
IF p_next_number IS NULL THEN
SET p_next_number = 1;
INSERT INTO document_number_counters (
project_id,
originator_organization_id,
correspondence_type_id,
current_year,
last_number
)
VALUES (
p_project_id,
p_originator_organization_id,
p_correspondence_type_id,
p_current_year,
p_next_number
);
ELSE -- อัพเดทเลขที่ล่าสุด
SET p_next_number = p_next_number + 1;
UPDATE document_number_counters
SET last_number = p_next_number
WHERE project_id = p_project_id
AND originator_organization_id = p_originator_organization_id
AND correspondence_type_id = p_correspondence_type_id
AND current_year = p_current_year;
END IF;
COMMIT;
END // DELIMITER;
-- View แสดง Revision "ปัจจุบัน" ของ correspondences ทั้งหมด (ที่ไม่ใช่ RFA)
CREATE VIEW v_current_correspondences AS
SELECT c.id AS correspondence_id,