21 lines
939 B
TypeScript
21 lines
939 B
TypeScript
export interface WarehouseArrivalPlan {
|
|||
|
|
plannedAt: string | null
|
||
|
|
version: number
|
||
|
|
planCount: number
|
||
|
|
}
|
||
|
|
|
||
|
|
/** 默认值只有当地日期,不能作为人工维护的日期时间提交。 */
|
||
|
|
export function projectWarehouseArrival(arrivalAt: string | null | undefined, plan: WarehouseArrivalPlan | undefined) {
|
||
|
|
const canDefault = !plan || plan.version === 0 && plan.planCount === 0
|
||
|
|
let date = plan?.plannedAt?.slice(0, 10) || null
|
||
|
|
if (!date && canDefault && arrivalAt) {
|
||
|
|
const day = arrivalAt.slice(0, 10)
|
||
|
|
const calendarDate = new Date(`${day}T12:00:00Z`)
|
||
|
|
if (/^\d{4}-\d{2}-\d{2}$/.test(day) && !Number.isNaN(calendarDate.getTime()) && calendarDate.toISOString().slice(0, 10) === day) {
|
||
|
|
calendarDate.setUTCDate(calendarDate.getUTCDate() + 2)
|
||
|
|
date = calendarDate.toISOString().slice(0, 10)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return { date, time: plan?.plannedAt?.slice(11, 16) || '', isDefault: !plan?.plannedAt && canDefault }
|
||
|
|
}
|