IO-1166 Job Costing Summaries updates.
This commit is contained in:
@@ -67,6 +67,12 @@ async function JobCostingMulti(req, res) {
|
|||||||
gpdollars: Dinero({ amount: 0 }),
|
gpdollars: Dinero({ amount: 0 }),
|
||||||
gppercent: null,
|
gppercent: null,
|
||||||
gppercentFormatted: null,
|
gppercentFormatted: null,
|
||||||
|
totalLaborGp: Dinero({ amount: 0 }),
|
||||||
|
totalPartsGp: Dinero({ amount: 0 }),
|
||||||
|
totalLaborGppercent: null,
|
||||||
|
totalLaborGppercentFormatted: null,
|
||||||
|
totalPartsGppercent: null,
|
||||||
|
totalPartsGppercentFormatted: null,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -149,12 +155,39 @@ async function JobCostingMulti(req, res) {
|
|||||||
multiSummary.summaryData.gpdollars.add(
|
multiSummary.summaryData.gpdollars.add(
|
||||||
costingData.summaryData.gpdollars
|
costingData.summaryData.gpdollars
|
||||||
);
|
);
|
||||||
|
|
||||||
|
multiSummary.summaryData.totalLaborGp =
|
||||||
|
multiSummary.summaryData.totalLaborGp.add(
|
||||||
|
costingData.summaryData.totalLaborGp
|
||||||
|
);
|
||||||
|
multiSummary.summaryData.totalPartsGp =
|
||||||
|
multiSummary.summaryData.totalPartsGp.add(
|
||||||
|
costingData.summaryData.totalPartsGp
|
||||||
|
);
|
||||||
|
|
||||||
console.timeEnd(`SummaryOfCostingData-${job.id}`);
|
console.timeEnd(`SummaryOfCostingData-${job.id}`);
|
||||||
//Take the summary data & add it to total summary data.
|
//Take the summary data & add it to total summary data.
|
||||||
});
|
});
|
||||||
|
|
||||||
//For each center, recalculate and toFormat() the values.
|
//For each center, recalculate and toFormat() the values.
|
||||||
multiSummary.summaryData.gpdollars;
|
|
||||||
|
multiSummary.summaryData.totalLaborGppercent = (
|
||||||
|
(multiSummary.summaryData.totalLaborGp.getAmount() /
|
||||||
|
multiSummary.summaryData.totalLaborSales.getAmount()) *
|
||||||
|
100
|
||||||
|
).toFixed(2);
|
||||||
|
multiSummary.summaryData.totalLaborGppercentFormatted = formatGpPercent(
|
||||||
|
multiSummary.summaryData.totalLaborGppercent
|
||||||
|
);
|
||||||
|
|
||||||
|
multiSummary.summaryData.totalPartsGppercent = (
|
||||||
|
(multiSummary.summaryData.totalPartsGp.getAmount() /
|
||||||
|
multiSummary.summaryData.totalPartsSales.getAmount()) *
|
||||||
|
100
|
||||||
|
).toFixed(2);
|
||||||
|
multiSummary.summaryData.totalPartsGppercentFormatted = formatGpPercent(
|
||||||
|
multiSummary.summaryData.totalPartsGppercent
|
||||||
|
);
|
||||||
|
|
||||||
multiSummary.summaryData.gppercent = (
|
multiSummary.summaryData.gppercent = (
|
||||||
(multiSummary.summaryData.gpdollars.getAmount() /
|
(multiSummary.summaryData.gpdollars.getAmount() /
|
||||||
@@ -418,7 +451,14 @@ function GenerateCostingData(job) {
|
|||||||
totalLaborCost: Dinero({ amount: 0 }),
|
totalLaborCost: Dinero({ amount: 0 }),
|
||||||
totalPartsCost: Dinero({ amount: 0 }),
|
totalPartsCost: Dinero({ amount: 0 }),
|
||||||
totalCost: Dinero({ amount: 0 }),
|
totalCost: Dinero({ amount: 0 }),
|
||||||
|
totalLaborGp: Dinero({ amount: 0 }),
|
||||||
|
totalPartsGp: Dinero({ amount: 0 }),
|
||||||
gpdollars: Dinero({ amount: 0 }),
|
gpdollars: Dinero({ amount: 0 }),
|
||||||
|
|
||||||
|
totalLaborGppercent: null,
|
||||||
|
totalLaborGppercentFormatted: null,
|
||||||
|
totalPartsGppercent: null,
|
||||||
|
totalPartsGppercentFormatted: null,
|
||||||
gppercent: null,
|
gppercent: null,
|
||||||
gppercentFormatted: null,
|
gppercentFormatted: null,
|
||||||
};
|
};
|
||||||
@@ -503,6 +543,31 @@ function GenerateCostingData(job) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Final summary data massaging.
|
//Final summary data massaging.
|
||||||
|
|
||||||
|
summaryData.totalLaborGp = summaryData.totalLaborSales.subtract(
|
||||||
|
summaryData.totalLaborCost
|
||||||
|
);
|
||||||
|
summaryData.totalLaborGppercent = (
|
||||||
|
(summaryData.totalLaborGp.getAmount() /
|
||||||
|
summaryData.totalLaborSales.getAmount()) *
|
||||||
|
100
|
||||||
|
).toFixed(2);
|
||||||
|
summaryData.totalLaborGppercentFormatted = formatGpPercent(
|
||||||
|
summaryData.totalLaborGppercent
|
||||||
|
);
|
||||||
|
|
||||||
|
summaryData.totalPartsGp = summaryData.totalPartsSales.subtract(
|
||||||
|
summaryData.totalPartsCost
|
||||||
|
);
|
||||||
|
summaryData.totalPartsGppercent = (
|
||||||
|
(summaryData.totalPartsGp.getAmount() /
|
||||||
|
summaryData.totalPartsSales.getAmount()) *
|
||||||
|
100
|
||||||
|
).toFixed(2);
|
||||||
|
summaryData.totalPartsGppercentFormatted = formatGpPercent(
|
||||||
|
summaryData.totalPartsGppercent
|
||||||
|
);
|
||||||
|
|
||||||
summaryData.gpdollars = summaryData.totalSales.subtract(
|
summaryData.gpdollars = summaryData.totalSales.subtract(
|
||||||
summaryData.totalCost
|
summaryData.totalCost
|
||||||
);
|
);
|
||||||
@@ -510,6 +575,7 @@ function GenerateCostingData(job) {
|
|||||||
(summaryData.gpdollars.getAmount() / summaryData.totalSales.getAmount()) *
|
(summaryData.gpdollars.getAmount() / summaryData.totalSales.getAmount()) *
|
||||||
100
|
100
|
||||||
).toFixed(2);
|
).toFixed(2);
|
||||||
|
|
||||||
if (isNaN(summaryData.gppercent)) summaryData.gppercentFormatted = 0;
|
if (isNaN(summaryData.gppercent)) summaryData.gppercentFormatted = 0;
|
||||||
else if (!isFinite(summaryData.gppercent))
|
else if (!isFinite(summaryData.gppercent))
|
||||||
summaryData.gppercentFormatted = "- ∞";
|
summaryData.gppercentFormatted = "- ∞";
|
||||||
|
|||||||
Reference in New Issue
Block a user