feat: add stores of report
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 10s
Some checks failed
Spell Check / Spell Check with Typos (push) Failing after 10s
This commit is contained in:
parent
b892924a18
commit
9aef359291
2 changed files with 112 additions and 0 deletions
71
src/stores/report/index.ts
Normal file
71
src/stores/report/index.ts
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
import { ref } from 'vue';
|
||||
import { defineStore } from 'pinia';
|
||||
import { Pagination, Status } from '../types';
|
||||
import { api } from 'src/boot/axios';
|
||||
import { Report, ReportProduct, ReportQuotation, ReportSale } from './types';
|
||||
|
||||
const ENDPOINT = 'report';
|
||||
|
||||
export async function getReportQuotation() {
|
||||
const res = await api.get<ReportQuotation[]>(`/${ENDPOINT}/quotation`);
|
||||
if (res.status < 400) {
|
||||
res.data;
|
||||
return res.data;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getReportInvoice() {
|
||||
const res = await api.get<Report[]>(`/${ENDPOINT}/invoice`);
|
||||
if (res.status < 400) {
|
||||
return res.data;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getReportReceipt() {
|
||||
const res = await api.get<Report[]>(`/${ENDPOINT}/receipt`);
|
||||
if (res.status < 400) {
|
||||
return res.data;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getReportSale() {
|
||||
const res = await api.get<ReportSale>(`/${ENDPOINT}/sale`);
|
||||
|
||||
if (res.status < 400) {
|
||||
return res.data;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export async function getReportProduct() {
|
||||
const res = await api.get<ReportProduct[]>(`/${ENDPOINT}/Product`);
|
||||
if (res.status < 400) {
|
||||
return res.data;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export const useReportStore = defineStore('report-store', () => {
|
||||
const dataReportQuotation = ref<ReportQuotation[]>([]);
|
||||
const dataReportInvoice = ref<Report[]>([]);
|
||||
const dataReportReceipt = ref<Report[]>([]);
|
||||
const dataReportSale = ref<ReportSale>();
|
||||
const dataReportProduct = ref<ReportProduct[]>([]);
|
||||
|
||||
return {
|
||||
dataReportQuotation,
|
||||
dataReportInvoice,
|
||||
dataReportReceipt,
|
||||
dataReportSale,
|
||||
dataReportProduct,
|
||||
|
||||
getReportQuotation,
|
||||
getReportInvoice,
|
||||
getReportReceipt,
|
||||
getReportSale,
|
||||
getReportProduct,
|
||||
};
|
||||
});
|
||||
41
src/stores/report/types.ts
Normal file
41
src/stores/report/types.ts
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import { QuotationStatus } from 'src/stores/quotations/types';
|
||||
import { ProductGroup } from '../product-service/types';
|
||||
import { User } from '../user';
|
||||
import { CustomerBranch } from '../customer';
|
||||
|
||||
export type ReportQuotation = {
|
||||
updatedAt: Date | null;
|
||||
createdAt: Date | null;
|
||||
status: QuotationStatus;
|
||||
code: string;
|
||||
};
|
||||
|
||||
export enum Status {
|
||||
PaymentInProcess = 'PaymentInProcess',
|
||||
PaymentSuccess = 'PaymentSuccess',
|
||||
PaymentWait = 'PaymentWait',
|
||||
PaymentRetry = 'PaymentRetry',
|
||||
}
|
||||
|
||||
// use with Invoice and Receipt
|
||||
export type Report = {
|
||||
createdAt: Date | null;
|
||||
status: Status;
|
||||
code: string;
|
||||
};
|
||||
|
||||
export type ReportProduct = {
|
||||
updatedAt: Date | null;
|
||||
createdAt: Date | null;
|
||||
order: number;
|
||||
did: number;
|
||||
sale: number;
|
||||
name: string;
|
||||
code: string;
|
||||
};
|
||||
|
||||
export type ReportSale = {
|
||||
byCustomer: (Omit<CustomerBranch, '_count'> & { _count: number })[];
|
||||
bySale: (User & { _count: number })[];
|
||||
byProductGroup: (Omit<ProductGroup, '_count'> & { _count: number })[];
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue