• 0 Open
    0 Closed

    สาขา

    เป็นข้อมูลสาขา มีผลเกี่ยวกับสิทธิการเข้าถึงข้อมูลต่างๆ ดูรายละเอียด

    คุณสมบัติ

    เป็นข้อมูลที่ใช้ในการสร้าง Flow Account โดยจะเป็นข้อมูลเสริมที่สามารถเพิ่มเข้าไปนอกเหนือจากที่ระบบมีให้ได้ โดยข้อมูลคุณสมบัติจะมีผลกับ ใบรายการคำขอ ให้สามารถกรอกข้อมูลเพิ่มเติมเข้าไปเก็บได้

    ขั้นตอนการทำงาน

    เป็นข้อมูลสำหรับใช้กำหนดขั้นตอน ผู้รับผิดชอบและคุณสมบัติ โดยข้อมูลนี้จะถูกนำไปใช้กำหนดในข้อมูลสินค้าและบริการใน่ส่วนของ Package และมีผลในใบรายการคำขอ โดยที่ใบรายการคำขอจะมีขั้นตอนตามที่กำหนดไว้

    NOTE 1: ข้อมูลขั้นตอนการทำงานถูกออกแบบในตอนแรกให้สามารถกำหนดเองได้อย่างอิสระ ซึ่งระบบที่ทำไว้ เมื่อกำหนดค่าของขั้นตอนในสินค้าและบริการจะมี Field ข้อมูลหนึ่งที่ใช้ในการเก็บข้อมูลอะไรก็ได้ซึ่งในตอนนี้ใช้ในการกำหนดว่าสินค้านั้นๆ อยู่ในขั้นตตอนไหน และมีคุณสมบัติอะไรบ้าง และสามารถเพิ่มข้อมูลเข้าไปได้เลย และ Field ข้อมูลนี้ หลังบ้านจะไม่ถูกนำมาใช้ในการดึงข้อมูลโดยเด็ดขาดเนื่องจากไม่รู้ว่าโครงสร้างเป็นยังไง (จริงๆ สามารถทำได้ แต่ต้องตกลงกับหน้าบ้าน) เนื่องจาก Field นี้หลักๆ จะใช้ในการแสดงผลในหน้าบ้านเพียงเท่านั้น

    NOTE 2: ขั้นตอนการทำงานแก้ไขมีผลต่อการแสดงผลข้อมูล Flow การทำงานใบรายการคำขอ

    ผู้ใช้

    ข้อมูลผู้ใช้ของระบบ โดยผู้ใช้จะมีสิทธิตามสาขาๆ นั้นๆ แตกต่างกันขึ้นอยู่กับ Role ของผู้ใช้

    ในส่วนของหลังบ้าน สิทธิ ของ Role นั้นๆ ถูกกำหนดโดย Code ดังนี้

    const MANAGE_ROLES = [
      "system",
      "head_of_admin",
      "admin",
      "executive",
      "accountant",
      "branch_admin",
      "branch_manager",
      "branch_accountant",
    ];
    
    function globalAllow(user: RequestWithUser["user"]) {
      const listAllowed = ["system", "head_of_admin", "admin", "executive", "accountant"];
      return user.roles?.some((v) => listAllowed.includes(v)) || false;
    }
    
    const permissionCondCompany = createPermCondition((_) => true);
    const permissionCond = createPermCondition(globalAllow);
    const permissionCheckCompany = createPermCheck((_) => true);
    const permissionCheck = createPermCheck(globalAllow);
    

    ซึ่ง globalAllow จะเป็นการกำหนดว่าใครสามารถดำเนินการ Create / Update / Delete ข้ามสาขาได้บ้าง

    และเมื่อต้องการดึงข้อมูลแยกตามสิทธิจะใช้ createPermCondition เพื่อสร้างเงื่อนไขสำหรับใช้ Query ขึ้นมา และ createPermCheck จะใช้สำหรับสร้างฟังก์ชั่นตรวจสอบสิทธิเมื่อมีการดำเนินการ Create / Update / Delete ขึ้นมา

    สามารถดูตัวอย่างการ Implementation ได้ ใน controller ต่างๆ

    สินค้าและบริการ, ลูกค้า(นายจ้าง/ลูกจ้าง), ประเภทกิจการ, กลุ่มผู้ใช้และหน่วยงาน

    ข้อมูลนี้เป็นข้อมูลหลักที่ถูกนำไปใช้ในระบบต่อไป