WIP report. Added stats, sagas for calculation, formatting.

This commit is contained in:
Patrick Fic
2020-10-20 16:37:39 -07:00
parent 045346ce48
commit 329c975019
10 changed files with 335 additions and 20 deletions

View File

@@ -1,12 +1,16 @@
import Dinero from "dinero.js";
export function CalculateJobRpsDollars(job) {
export function CalculateJobRpsDollars(job, returnSumActPrice) {
if (!job) {
return 0;
}
return job.joblines
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) })
@@ -15,9 +19,14 @@ export function CalculateJobRpsDollars(job) {
return acc;
}
}, Dinero());
return returnSumActPrice ? { actPriceSum, jobRpsDollars } : jobRpsDollars;
}
export function CalculateJobRpsPc(job, currentRpsDollars) {
export function CalculateJobRpsPc(
job,
currentRpsDollars,
returnSumDbPrice = false
) {
//TODO Redo this to do total of db price - act price / db price
if (!job) {
return 0;
@@ -25,7 +34,9 @@ export function CalculateJobRpsPc(job, currentRpsDollars) {
const dbPriceSum = job.joblines
.filter((j) => !j.ignore)
.reduce((acc, val) => {
return acc + val.db_price;
}, 0);
return (currentRpsDollars.getAmount() / dbPriceSum).toFixed(1);
return acc.add(Dinero({ amount: Math.round((val.db_price || 0) * 100) }));
}, Dinero());
const jobRpsPc = currentRpsDollars.getAmount() / dbPriceSum.getAmount();
return returnSumDbPrice ? { dbPriceSum, jobRpsPc } : jobRpsPc;
}

View File

@@ -4,9 +4,9 @@ export default function GetJobTarget(group, v_age, targets) {
const targetPc = targetsForGroup.filter(
(t) => t.ageGte <= v_age && (t.ageLt ? t.ageLt > v_age : true)
);
if (targetPc.length === 0) return 100;
if (targetPc.length === 0) return 1;
else if (targetPc.length === 1) return targetPc[0].target;
else {
return 100;
return 1;
}
}