import { defineStore } from "pinia"; import { ref, } from "vue"; import { useCounterMixin } from "@/stores/mixin"; const mixin = useCounterMixin(); const { date2Thai, } = mixin; export const useResultDataStore = defineStore("insigniaResult", () => { const insignia = ref('') const insigniaOp = ref([{ name: "ทั้งหมด", id: "" }]) const insigniaOp2 = ref([]) const insigniaType = ref() const invoiceType = ref('all') const invoiceTypeop = ref([{ name: "ทั้งหมด", id: "all" }, { name: "ใบกำกับที่ค้างจ่าย", id: "noDate" }, { name: "ใบกำกับที่จ่ายแล้ว", id: "haveDate" }]) const employeeClass = ref("all"); const employeeClassOps = ref([{ name: "ทั้งหมด", id: "all" }, { name: "ข้าราชการ กทม.สามัญ", id: "officer" }, { name: "ลูกจ้างประจำ", id: "perm" }]) const rows = ref([]) const listInsignia = ref([]) const fetchDatainsignia = async (data: any) => { insignia.value = '' invoiceType.value = 'all' data.forEach((e: any) => { insigniaOp.value.push({ name: e.name, id: e.id }) }); data.forEach((e: any) => { insigniaOp2.value.push({ name: e.name, id: e.id }) }); } const fetchDatainsigniaType = async (data: any) => { insigniaType.value = data.map((e: any) => ({ name: e.id, label: e.name })) } const fetchlistinsignia = async (data: any) => { rows.value = []; let alllist = await data.map((e: any) => ({ id: e.id, citizenId: e.citizenId, prefix: e.prefix, position: e.position, status: status(e.status), dateReceive: date2Thai(e.dateReceive), name: e.prefix + e.fullName, type: e.requestInsignia, employeeType: profileType(e.profileType), profileType: e.profileType, volumeNo: e.volumeNo, section: e.section, page: e.page, number: e.no, vatnumber: e.number, datepay: date2Thai(e.datePayment), typepay: e.typePayment, address: e.address, })); rows.value = alllist listInsignia.value = alllist searchData(invoiceType.value, employeeClass.value); } const searchData = (invoice: string, employeeClass: string) => { if (invoice !== 'all' && employeeClass !== 'all') { let list = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice && e.employeeType === profileType(employeeClass)) rows.value = list } else if (invoice !== 'all' && employeeClass === 'all') { let list = listInsignia.value.filter((e: any) => convertDatepay(e.datepay) === invoice) rows.value = list } else if (invoice === 'all' && employeeClass !== 'all') { let list = listInsignia.value.filter((e: any) => e.employeeType === profileType(employeeClass)) rows.value = list } } const status = (val: string) => { switch (val) { case "PENDING": return "รอบันทึกข้อมูล"; case "REJECT": return "ยกเลิก"; case "DELETE": return "ลบ"; case "DONE": return "บันทึกลง ก.พ. 7 แล้ว"; } } const profileType = (val: string) => { switch (val) { case "officer": return "ข้าราชการ กทม.สามัญ"; case "employee": return "ลูกจ้างประจำ"; } } const convertDatepay = (val: any) => { switch (val) { case null: return "noDate"; default: return "haveDate"; } } return { rows, insignia, insigniaOp, insigniaOp2, insigniaType, invoiceType, invoiceTypeop, employeeClass, employeeClassOps, fetchDatainsignia, fetchDatainsigniaType, status, profileType, fetchlistinsignia, searchData, // selectInvoice, // selectEmployeeClass, }; });