updating cycle close request feature to get approval from national dashboard instead auto from system

This commit is contained in:
Alberto-Audrix committed 2026-09-09 14:18:39 +07:00
1 parent 3a868cf1db
commit e4dbfd0252
31 files changed
+1322 -182

No files matched your search

+4 -5
View File
@@ -7,7 +7,7 @@ import type {
ManualInput,
} from '../types/api.ts';
import type { DashboardReportPayload, DashboardReportType } from '../types/dashboardReport.ts';
import { cycleDayForDate } from './format.ts';
import { cycleDayForDate, cycleLastDayIndex, resolveCycleBoundDate } from './format.ts';
export type BuildInMemoryReportInput = {
cycle: Cycle;
@@ -48,9 +48,8 @@ function feedAccuracy(iot: number | null, manual: number | null): number | null
export function buildInMemoryReport(input: BuildInMemoryReportInput): DashboardReportPayload {
const { cycle } = input;
// Day numbering stays 0-based (day 0 = start_date), but the report must never
// run past the cycle end date. lastDay = start_date → end_date in days, which
// is total_days - 1 for a contiguous cycle.
const lastDay = cycleDayForDate(cycle.start_date, cycle.end_date);
// run past the approved end (or soft bound while open).
const lastDay = cycleLastDayIndex(cycle);
const endCycleUpTo = Math.min(cycle.total_days, lastDay);
const defaultUpTo =
input.reportType === 'end_cycle'
@@ -202,7 +201,7 @@ export function buildInMemoryReport(input: BuildInMemoryReportInput): DashboardR
return {
cycleId: String(cycle.id),
cycleStart: cycle.start_date,
cycleEnd: cycle.end_date,
cycleEnd: cycle.end_date ?? resolveCycleBoundDate(cycle),
kandangId: input.kandangId,
kandangName: input.kandangName,
area: input.area,