43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
import Dinero from "dinero.js";
|
|
|
|
export function CalculateJobRpsDollars(job, returnSumActPrice) {
|
|
if (!job) {
|
|
return 0;
|
|
}
|
|
let actPriceSum = Dinero();
|
|
const jobRpsDollars = job.joblines
|
|
.filter((j) => !j.ignore)
|
|
.reduce((acc, val) => {
|
|
actPriceSum = actPriceSum.add(
|
|
Dinero({ amount: Math.round((val.act_price || 0) * 100) })
|
|
);
|
|
if (val.price_diff > 0) {
|
|
return acc.add(
|
|
Dinero({ amount: Math.round((val.price_diff || 0) * 100) })
|
|
);
|
|
} else {
|
|
return acc;
|
|
}
|
|
}, Dinero());
|
|
return returnSumActPrice ? { actPriceSum, jobRpsDollars } : jobRpsDollars;
|
|
}
|
|
|
|
export function CalculateJobRpsPc(
|
|
job,
|
|
currentRpsDollars,
|
|
returnSumDbPrice = false
|
|
) {
|
|
//TODO Redo this to do total of db price - act price / db price
|
|
if (!job) {
|
|
return 0;
|
|
}
|
|
const dbPriceSum = job.joblines
|
|
.filter((j) => !j.ignore)
|
|
.reduce((acc, val) => {
|
|
return acc.add(Dinero({ amount: Math.round((val.db_price || 0) * 100) }));
|
|
}, Dinero());
|
|
|
|
const jobRpsPc = currentRpsDollars.getAmount() / dbPriceSum.getAmount();
|
|
return returnSumDbPrice ? { dbPriceSum, jobRpsPc } : jobRpsPc;
|
|
}
|