Skip to content

[16.0][ADD] purchase viewer modules: เพิ่ม viewer modules สำหรับ PR, PA, WA และ Invoice Plan - #1159

Open
madara1150 wants to merge 2 commits into
16.0from
madara1150/add-purchase-viewer-modules
Open

[16.0][ADD] purchase viewer modules: เพิ่ม viewer modules สำหรับ PR, PA, WA และ Invoice Plan#1159
madara1150 wants to merge 2 commits into
16.0from
madara1150/add-purchase-viewer-modules

Conversation

@madara1150

Copy link
Copy Markdown
Collaborator

สรุป

เพิ่ม viewer modules 5 ชุด เพื่อให้ผู้ใช้ที่มีสิทธิ์ Purchase Viewer (group_purchase_viewer) สามารถอ่านข้อมูลของ PR (พ.1), PA (พจ.1), ตรวจรับ (WA) และ Invoice Plan ได้โดยไม่สามารถแก้ไขได้

Modules ที่เพิ่ม

Module Depends On คำอธิบาย
purchase_request_viewer purchase_viewer, purchase_request อ่านข้อมูล PR (พ.1) และบรรทัดรายการ
purchase_request_kmitl_viewer purchase_request_viewer, purchase_request_kmitl อ่านข้อมูล Procurement Type, Method, Committee
purchase_request_approval_viewer purchase_request_kmitl_viewer, purchase_request_approval อ่านข้อมูล PA (พจ.1) และบรรทัดรายการ
purchase_work_acceptance_viewer purchase_viewer, purchase_work_acceptance_kmitl อ่านข้อมูล WA (ตรวจรับ) และคณะกรรมการ
purchase_invoice_plan_viewer purchase_viewer, purchase_invoice_plan อ่านข้อมูล Invoice Plan ใน PO

Dependency Chain

purchase_viewer (เดิม)
    └── purchase_request_viewer
            └── purchase_request_kmitl_viewer
                    └── purchase_request_approval_viewer

purchase_viewer (เดิม)
    └── purchase_work_acceptance_viewer
    └── purchase_invoice_plan_viewer

รายละเอียดการออกแบบ

  • ไม่สร้าง group ใหม่ — ทุก module ใช้ group_purchase_viewer จาก purchase_viewer ที่มีอยู่
  • Menu visibility — แต่ละ module เพิ่มสิทธิ์การมองเห็น menu ให้ group_purchase_viewer ผ่าน views/menus.xml
  • ไม่รวม Wizard models — wizard (cancel, return, etc.) ถูก exclude เพราะ viewer ไม่ต้องใช้
  • purchase_invoice_plan_viewer ไม่มี views/menus.xml เพราะ Invoice Plan เป็น tab ใน PO form ไม่มี menu แยก

วิธีทดสอบ

  1. ติดตั้ง purchase_request_approval_viewer (จะติดตั้ง dependencies ทั้งหมดให้อัตโนมัติ)
  2. สร้าง user ที่มีเฉพาะ group Purchase / Viewer
  3. ตรวจสอบว่าเห็น menus: Purchase Requests, พจ.1, Work Acceptance
  4. เปิด record ใดก็ได้ — ต้องอ่านได้ ไม่มีปุ่ม Edit / Create / Delete
  5. ทดสอบ purchase_work_acceptance_viewer แยก → เห็นเฉพาะ WA menu (ไม่เห็น PR/PA)
  6. ติดตั้ง purchase_invoice_plan_viewer → tab Invoice Plan ใน PO form อ่านได้

…e_request_approval_viewer, purchase_work_acceptance_viewer, purchase_invoice_plan_viewer: add viewer modules for read-only access
@madara1150

Copy link
Copy Markdown
Collaborator Author

ภาพรวมทั้ง 5 Modules


Dependency Chain

purchase_viewer  ──────────────────────────────────────────────────────┐
(existing group)                                                        │
     │                                                                  │
     ▼                                                                  ▼
purchase_request_viewer          purchase_work_acceptance_viewer   purchase_invoice_plan_viewer
(PR + PR line)                   (WA + WA line + Committee)        (Invoice Plan)
     │
     ▼
purchase_request_kmitl_viewer
(Procurement Type/Method/Committee)
     │
     ▼
purchase_request_approval_viewer
(PA + PA line)

1. purchase_request_viewer

purchase_request_viewer/
├── __init__.py
├── __manifest__.py          depends: [purchase_viewer, purchase_request]
├── security/
│   └── ir.model.access.csv  ← read-only access
└── views/
    └── menus.xml            ← grant menu visibility

Models ที่ได้สิทธิ์อ่าน:

Model อธิบาย
purchase.request ใบขอให้จัดหา (พ.1)
purchase.request.line บรรทัดรายการ พ.1

Menu ที่ unlock:

purchase_request.parent_menu_purchase_request  →  "Purchase Requests"

2. purchase_request_kmitl_viewer

purchase_request_kmitl_viewer/
├── __init__.py
├── __manifest__.py          depends: [purchase_request_viewer, purchase_request_kmitl]
├── security/
│   └── ir.model.access.csv
└── views/
    └── menus.xml

Models ที่ได้สิทธิ์อ่าน:

Model อธิบาย
procurement.type ประเภทการจัดซื้อ
procurement.method วิธีการจัดซื้อ
procurement.committee คณะกรรมการ

Menu ที่ unlock:

purchase_request_kmitl.purchase_request_kmitl_root_menu  →  "พ.1" ใต้เมนู Purchase

3. purchase_request_approval_viewer

purchase_request_approval_viewer/
├── __init__.py
├── __manifest__.py          depends: [purchase_request_kmitl_viewer, purchase_request_approval]
├── security/
│   └── ir.model.access.csv
└── views/
    └── menus.xml

Models ที่ได้สิทธิ์อ่าน:

Model อธิบาย
purchase.request.approval ขออนุมัติจัดซื้อ (พจ.1)
purchase.request.approval.line บรรทัดรายการ พจ.1

Menu ที่ unlock (2 จุด):

purchase_request_approval.purchase_request_approval_menu               →  "พจ.1" ใต้ Purchase
purchase_request_approval.purchase_request_approval_menu_purchase_request  →  "พจ.1" ใต้ PR menu

4. purchase_work_acceptance_viewer

purchase_work_acceptance_viewer/
├── __init__.py
├── __manifest__.py          depends: [purchase_viewer, purchase_work_acceptance_kmitl]
├── security/
│   └── ir.model.access.csv
└── views/
    └── menus.xml

Models ที่ได้สิทธิ์อ่าน:

Model อธิบาย
work.acceptance ใบตรวจรับ (WA)
work.acceptance.line บรรทัดรายการ WA
work.acceptance.committee คณะกรรมการตรวจรับ

Menu ที่ unlock:

purchase_work_acceptance_kmitl.menu_purchase_work_acceptance  →  "Work Acceptance"

5. purchase_invoice_plan_viewer

purchase_invoice_plan_viewer/
├── __init__.py
├── __manifest__.py          depends: [purchase_viewer, purchase_invoice_plan]
└── security/
    └── ir.model.access.csv  (ไม่มี views/ เพราะไม่มี menu แยก)

Models ที่ได้สิทธิ์อ่าน:

Model อธิบาย
purchase.invoice.plan แผนการวางบิล (tab ใน PO form)

สิทธิ์ที่ได้รับทุก module (read-only)

perm_read = ✅   perm_write = ❌   perm_create = ❌   perm_unlink = ❌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant