hrms-mgt/src/modules/11_discipline/store/OrderStore.ts
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 6e78a643e6 ออกคำสั่ง => fix bug
2024-07-12 10:32:24 +07:00

102 lines
3.4 KiB
TypeScript

import { defineStore } from "pinia";
import { ref } from "vue";
import { useCounterMixin } from "@/stores/mixin";
import type { QTableProps } from "quasar";
import type {
DataList,
DataListRes,
} from "@/modules/11_discipline/interface/response/order";
const mixin = useCounterMixin();
const { date2Thai } = mixin;
export const useOrderStore = defineStore("DisciplineOrder", () => {
const columns = ref<QTableProps["columns"]>([]);
const visibleColumns = ref<string[]>([]);
const mainData = ref<DataList[]>([]);
const rows = ref<DataList[]>([]);
async function fetchOrder(data: DataListRes[]) {
let datalist: DataList[] = data.map((e: DataListRes) => ({
fiscalYear: e.fiscalYear,
orderBy: e.orderBy,
orderById: e.orderById,
orderByOrganization: e.orderByOrganization,
orderDate: e.orderDate ? date2Thai(e.orderDate) : "",
orderId: e.orderId,
orderName: e.orderName,
orderNo: e.orderNo,
orderStatusName: e.orderStatusName,
orderStatusValue: e.orderStatusValue,
orderTypeName: e.orderTypeName,
orderTypeValue: e.orderTypeValue,
signatoryBy: e.signatoryBy,
signatoryPosition: e.signatoryPosition,
faultLevel: e.faultLevel ?? "-",
caseFault: e.caseFault ?? "-",
fullName: e.fullName ?? "-",
result: e.result ?? "-",
refRaw: e.refRaw ?? "-",
}));
mainData.value = datalist;
filterListOrder("", "ทั้งหมด", 0);
}
function filterListOrder(
filter_1: string | null,
filter_2: string,
filterYear: number | null
) {
rows.value = [];
if (filter_1 === "" && filter_2 === "ทั้งหมด" && filterYear === 0) {
rows.value = mainData.value;
} else if (filter_1 !== "" && filter_2 === "ทั้งหมด" && filterYear === 0) {
rows.value = mainData.value.filter(
(item) => item.orderTypeValue === filter_1
);
} else if (filter_1 === "" && filter_2 !== "ทั้งหมด" && filterYear === 0) {
rows.value = mainData.value.filter(
(item) => item.orderStatusName === filter_2
);
} else if (filter_1 === "" && filter_2 === "ทั้งหมด" && filterYear !== 0) {
rows.value = mainData.value.filter(
(item) => Number(item.fiscalYear) === filterYear
);
} else if (filter_1 !== "" && filter_2 !== "ทั้งหมด" && filterYear === 0) {
rows.value = mainData.value.filter(
(item) =>
item.orderTypeValue === filter_1 && item.orderStatusName === filter_2
);
} else if (filter_1 !== "" && filter_2 === "ทั้งหมด" && filterYear !== 0) {
rows.value = mainData.value.filter(
(item) =>
item.orderTypeValue === filter_1 &&
Number(item.fiscalYear) === filterYear
);
} else if (filter_1 === "" && filter_2 !== "ทั้งหมด" && filterYear !== 0) {
rows.value = mainData.value.filter(
(item) =>
item.orderStatusName === filter_2 &&
Number(item.fiscalYear) === filterYear
);
} else if (filter_1 !== "" && filter_2 !== "ทั้งหมด" && filterYear !== 0) {
rows.value = mainData.value.filter(
(item) =>
item.orderTypeValue === filter_1 &&
item.orderStatusName === filter_2 &&
Number(item.fiscalYear) === filterYear
);
}
}
return {
rows,
mainData,
columns,
visibleColumns,
fetchOrder,
filterListOrder,
};
});