MPEDA / src /lib /taClaimsLocal.ts
sarveshpatel's picture
Upload 139 files
f305a41 verified
import { taClaims, TAClaim, User } from "@/data/dummyData";
const LOCAL_KEY = "auditor_local_ta_claims";
function readLocal(): TAClaim[] {
if (typeof window === "undefined") return [];
try {
const raw = localStorage.getItem(LOCAL_KEY);
if (!raw) return [];
const parsed = JSON.parse(raw);
if (!Array.isArray(parsed)) return [];
return parsed as TAClaim[];
} catch {
return [];
}
}
function writeLocal(claims: TAClaim[]) {
if (typeof window === "undefined") return;
try {
localStorage.setItem(LOCAL_KEY, JSON.stringify(claims));
} catch {
// ignore
}
}
export function getAuditorTaClaims(user?: User | null): TAClaim[] {
if (!user) return [];
const base = taClaims.filter((c) => c.auditorId === user.id);
const local = readLocal().filter((c) => c.auditorId === user.id);
return [...base, ...local].sort(
(a, b) =>
new Date(b.submittedDate).getTime() - new Date(a.submittedDate).getTime(),
);
}
export interface NewTaClaimInput {
auditId: string;
travelDate: string;
fromLocation: string;
toLocation: string;
travelMode: string;
distance: string;
fareAmount: string;
daAmount: string;
}
export function createTaClaimForAuditor(
user: User,
input: NewTaClaimInput,
): TAClaim {
const now = new Date();
const id = `TC${now.getTime()}`;
const totalAmount =
Number(input.fareAmount || 0) + Number(input.daAmount || 0);
const claim: TAClaim = {
id,
auditorId: user.id,
auditorName: user.name,
auditId: input.auditId,
applicationNo: "",
travelDate: input.travelDate,
fromLocation: input.fromLocation,
toLocation: input.toLocation,
travelMode: input.travelMode,
distance: Number(input.distance || 0),
fareAmount: Number(input.fareAmount || 0),
daAmount: Number(input.daAmount || 0),
totalAmount,
status: "submitted",
submittedDate: now.toISOString().slice(0, 10),
processedDate: undefined,
};
const all = readLocal();
writeLocal([...all, claim]);
return claim;
}