WIP report. Added stats, sagas for calculation, formatting.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user