hrms-mgt/src/modules/11_discipline/store/OrderStore.ts

98 lines
3.3 KiB
TypeScript
Raw Normal View History

import { defineStore } from "pinia";
import { ref } from "vue";
import { useCounterMixin } from "@/stores/mixin";
2023-10-20 10:31:07 +07:00
import type { QTableProps } from "quasar";
import type {
DataList,
DataListRes,
} from "@/modules/11_discipline/interface/response/order";
2023-10-19 15:39:18 +07:00
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,
}));
mainData.value = datalist;
filterListOrder("", "ทั้งหมด", 0);
}
function filterListOrder(
filter_1: string,
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,
};
});