|
- import dayjs, { ConfigType } from "dayjs";
- import { Uom } from "../api/settings/uom";
- import { ListIterateeCustom, every, isArray, isNaN, isNull, isUndefined, take } from "lodash";
-
- export const manhourFormatter = new Intl.NumberFormat("en-HK", {
- minimumFractionDigits: 2,
- maximumFractionDigits: 2,
- });
-
- export const moneyFormatter = new Intl.NumberFormat("en-HK", {
- style: "currency",
- currency: "HKD",
- });
-
- export const decimalFormatter = new Intl.NumberFormat("en-HK", {
- minimumFractionDigits: 2,
- })
-
- export const integerFormatter = new Intl.NumberFormat("en-HK", {
-
- })
-
- export const INPUT_DATE_FORMAT = "YYYY-MM-DD";
-
- export const OUTPUT_DATE_FORMAT = "YYYY/MM/DD";
-
- export const OUTPUT_TIME_FORMAT = "HH:mm:ss";
-
- export const arrayToDayjs = (arr: ConfigType | (number | undefined)[]) => {
- const isValidNumber = (item: ListIterateeCustom<number | undefined, boolean>): boolean =>
- typeof item === "number" && !isNaN(item) && isFinite(item)
-
- let tempArr = arr;
-
- if (isArray(arr) && every(arr, isValidNumber) && arr.length >= 3) {
- // [year, month, day]
- tempArr = take(arr, 3)
- }
-
- return dayjs(tempArr as ConfigType)
- }
-
- export const arrayToDateString = (arr: ConfigType | (number | undefined)[]) => {
- return arrayToDayjs(arr).format(OUTPUT_DATE_FORMAT)
- }
-
- export const dateStringToDayjs = (date: string) => {
- // Format: YYYY/MM/DD
- return dayjs(date, OUTPUT_DATE_FORMAT)
- }
-
- export const dateTimeStringToDayjs = (dateTime: string) => {
- // Format: YYYY/MM/DD HH:mm:ss
- return dayjs(dateTime, `${OUTPUT_DATE_FORMAT} ${OUTPUT_TIME_FORMAT}`)
- }
-
- export const stockInLineStatusMap: { [status: string]: number } = {
- "draft": 0,
- "pending": 1,
- "qc": 2,
- "determine1": 3,
- "determine2": 4,
- "determine3": 5,
- "receiving": 6,
- "received": 7,
- "completed": 8,
- "rejected": 9,
- };
-
- export const pickOrderStatusMap: { [status: string]: number } = {
- "pending": 1,
- "consolidated": 2,
- "released": 3,
- "completed": 4,
- };
-
- export const calculateWeight = (qty: number, uom: Uom) => {
- return qty * (uom.unit2Qty || 1) * (uom.unit3Qty || 1) * (uom.unit4Qty || 1);
- }
-
- export const returnWeightUnit = (uom: Uom) => {
- return uom.unit4 || uom.unit3 || uom.unit2 || uom.unit1;
- }
|