iworks-core-api
Version:
iwroks server api module
29 lines (26 loc) • 886 B
text/typescript
import {
JobPriceType,
} from '../model/jobTpl';
export const evenRound = (num: number, decimalPlaces: number) => {
const d = decimalPlaces || 0;
const m = Math.pow(10, d);
const n = +(d ? num * m : num).toFixed(8); // Avoid rounding errors
const i = Math.floor(n);
const f = n - i;
const e = 1e-8; // Allow for rounding errors in f
const r = (f > 0.5 - e && f < 0.5 + e) ?
((i % 2 === 0) ? i : i + 1) : Math.round(n);
return d ? r / m : r;
};
export const jobPriceCalcStrategies = new Map([
[JobPriceType.fixed, (vol: number, jobTpl: any): number => {
return jobTpl.price;
}],
[JobPriceType.hourly, (vol: number, jobTpl: any): number => {
return (vol / jobTpl.volPerHour) * jobTpl.price;
}],
// TODO: implement custom price calculation
[JobPriceType.custom, (vol: number, jobTpl: any): number => {
return jobTpl.price;
}],
]);