mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-07 11:39:00 +00:00
35 lines
1,011 B
TypeScript
35 lines
1,011 B
TypeScript
export type UpliftFormValues = {
|
|
amount: number;
|
|
reason: string;
|
|
evidenceFile?: File;
|
|
};
|
|
|
|
export function isApprovalRequired(requested: string, currentNte: number | undefined): boolean {
|
|
const amount = Number.parseFloat(requested);
|
|
if (!Number.isFinite(amount)) {
|
|
return currentNte == null;
|
|
}
|
|
return currentNte == null || amount > currentNte;
|
|
}
|
|
|
|
export function validateUpliftAmount(
|
|
requested: string,
|
|
currentNte: number | undefined,
|
|
reason: string,
|
|
evidence: { file?: File; hasExisting?: boolean },
|
|
): string {
|
|
const amount = Number.parseFloat(requested);
|
|
if (!Number.isFinite(amount) || amount <= 0) {
|
|
return "Enter a valid requested NTE amount.";
|
|
}
|
|
if (!isApprovalRequired(requested, currentNte)) {
|
|
return "";
|
|
}
|
|
if (!reason.trim()) {
|
|
return "Please include a reason for the uplift request.";
|
|
}
|
|
if (!evidence.file && !evidence.hasExisting) {
|
|
return "Attach PDF, JPG, or PNG evidence — approval-required requests need evidence.";
|
|
}
|
|
return "";
|
|
}
|