feat: Implement Day-End Sales report fe
CI/CD - ERP Distribution / Build & Deploy Frontend (pull_request) Successful in 2m38s
CI/CD - ERP Distribution / Build & Deploy Backend (pull_request) Failing after 13m9s

This commit is contained in:
2026-10-23 14:54:40 +05:30
parent 15e4738dd4
commit e175a7a040
5 changed files with 507 additions and 1 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ export { drivers, compliance } from './drivers'
export { purchaseOrders, grn, purchaseReturns } from './procurement'
export { rides, loadingSheets, deliveryTasks } from './operations'
export { stock } from './stock'
export { productReports, stockReports, dashboardReports, paymentReports } from './reports'
export { productReports, stockReports, dashboardReports, paymentReports, dayEndReports } from './reports'
export { shopPos, invoices, payments } from './sales'
export { saleReturns, claims, supplierClaims } from './returns-claims'
export { sysConfig, ITEM_TRACKING_KEYS, GRN_TAX_KEYS, grnTaxSettings, DEFAULT_GRN_TAX_SETTINGS, invoiceCreationMode, INVOICE_CREATION_MODE_KEY, DEFAULT_INVOICE_CREATION_MODE } from './sys-config'
+40
View File
@@ -231,3 +231,43 @@ export const paymentReports = {
analytics: (params?: { from?: string; to?: string; regionId?: string }) =>
api.get<PaymentAnalyticsResponse>('/reports/payments/analytics', { params }).then(r => r.data),
}
export interface DayEndRow {
date: string
totalSales: number
collected: number
due: number
cash: number
cheque: number
credit: number
returns: number
expenses: number
income: number
invoiceCount: number
paymentCount: number
cashCollected: number
cashExpensesPaid: number
netCash: number
}
export interface DayEndResponse {
date: string
summary: DayEndRow
byMethod: Array<{ method: 'Cash' | 'Cheque' | 'Credit'; count: number; amount: number }>
expenses: Array<{ id: string; category: string; payee: string | null; description: string | null; method: string | null; amount: number }>
}
export interface DayEndDailyResponse {
from: string
to: string
days: DayEndRow[]
totals: DayEndRow
}
export const dayEndReports = {
day: (params?: { date?: string }) =>
api.get<DayEndResponse>('/reports/day-end', { params }).then(r => r.data),
daily: (params?: { from?: string; to?: string }) =>
api.get<DayEndDailyResponse>('/reports/day-end/daily', { params }).then(r => r.data),
}