implemented the sales and revenue report

This commit is contained in:
2026-06-23 19:18:01 +05:30
parent 8707004405
commit 93df333df1
17 changed files with 2410 additions and 712 deletions

View File

@@ -61,6 +61,13 @@ import {
CreateTenantLocationInput,
updateTenantLocation,
UpdateTenantLocationInput,
createProductLocation,
createStockRequest,
getStockRequests,
updateStockRequest,
CreateProductLocationInput,
StockRequestInput,
UpdateStockRequestInput,
} from './fiestaApi';
export const fiestaKeys = {
@@ -97,6 +104,7 @@ export const fiestaKeys = {
fleetSummary: (params: Record<string, unknown>) => ['fiesta', 'fleetSummary', params] as const,
users: (params: Record<string, unknown>) => ['fiesta', 'users', params] as const,
user: (userid: number) => ['fiesta', 'user', userid] as const,
stockRequests: (params: Record<string, unknown>) => ['fiesta', 'stockRequests', params] as const,
};
// ── Orders ──────────────────────────────────────────────────────────────────
@@ -685,6 +693,52 @@ export function useFiestaProductSubcategories(opts: { categoryid: number; tenant
});
}
export function useFiestaGetStockRequests(opts: {
tenantid: number;
locationid?: number;
status?: string;
pageno?: number;
pagesize?: number;
}) {
return useQuery({
queryKey: fiestaKeys.stockRequests(opts),
queryFn: () => getStockRequests(opts),
enabled: Boolean(opts.tenantid),
});
}
export function useFiestaCreateProductLocation() {
const qc = useQueryClient();
return useMutation({
mutationFn: (input: CreateProductLocationInput) => createProductLocation(input),
onSuccess: () => {
qc.invalidateQueries({ queryKey: ['fiesta', 'productLocations'] });
},
});
}
export function useFiestaCreateStockRequest() {
const qc = useQueryClient();
return useMutation({
mutationFn: (input: StockRequestInput) => createStockRequest(input),
onSuccess: () => {
qc.invalidateQueries({ queryKey: ['fiesta', 'stockRequests'] });
},
});
}
export function useFiestaUpdateStockRequest() {
const qc = useQueryClient();
return useMutation({
mutationFn: (input: UpdateStockRequestInput) => updateStockRequest(input),
onSuccess: () => {
qc.invalidateQueries({ queryKey: ['fiesta', 'stockRequests'] });
qc.invalidateQueries({ queryKey: ['fiesta', 'stockStatement'] });
qc.invalidateQueries({ queryKey: ['fiesta', 'productStocks'] });
},
});
}
// ── Users ─────────────────────────────────────────────────────────────────────
export function useFiestaUsers(opts: {
tenantid: number;