diff --git a/front_end/src/Apps/Payroll.jsx b/front_end/src/Apps/Payroll.jsx index 10491a438..02283c8ad 100644 --- a/front_end/src/Apps/Payroll.jsx +++ b/front_end/src/Apps/Payroll.jsx @@ -252,16 +252,18 @@ export default function Payroll() { - - + + + + diff --git a/front_end/src/Components/EditPayroll/DisplayAttrition/index.jsx b/front_end/src/Components/EditPayroll/DisplayAttrition/index.jsx index 9b8a3723c..a906fbbf0 100644 --- a/front_end/src/Components/EditPayroll/DisplayAttrition/index.jsx +++ b/front_end/src/Components/EditPayroll/DisplayAttrition/index.jsx @@ -1,5 +1,6 @@ import PayModifierHeaders from "../PayModifierHeaders"; import DisplayPayModifier from "../DisplayPayModifier"; +import { decimalToPercentage, percentageToDecimal } from "../../../Util"; const DisplayAttrition = ({ attrition = [], @@ -18,14 +19,24 @@ const DisplayAttrition = ({ {attrition.map((value, index) => { return ( - onInputChange(index, e.target.value)} - > + + + onInputChange( + index, + percentageToDecimal(e.target.value), + ) + } + > + + % + + ); })} diff --git a/front_end/src/Components/EditPayroll/DisplayPayModifier/index.jsx b/front_end/src/Components/EditPayroll/DisplayPayModifier/index.jsx index fe6e297e3..e57396deb 100644 --- a/front_end/src/Components/EditPayroll/DisplayPayModifier/index.jsx +++ b/front_end/src/Components/EditPayroll/DisplayPayModifier/index.jsx @@ -1,3 +1,4 @@ +import { valueAboveOneToPercentage } from "../../../Util"; import PayModifierHeaders from "../PayModifierHeaders"; const DisplayPayModifier = ({ modifier = [], title }) => { @@ -20,7 +21,7 @@ const DisplayPayModifier = ({ modifier = [], title }) => { {modifier.map((value, index) => { return ( - {value} + {valueAboveOneToPercentage(value)}% ); })} diff --git a/front_end/src/Util.js b/front_end/src/Util.js index 0b9b005eb..4fd85dabd 100644 --- a/front_end/src/Util.js +++ b/front_end/src/Util.js @@ -36,6 +36,22 @@ function getCookie(name) { return cookieValue; } +export const percentageToDecimal = (percentage) => { + return 1.0 - percentage / 100; +}; + +export const decimalToPercentage = (decimal) => { + // Converts a decimal between 0.0 and 1.0 to percentage: 0.2 = 20% + // Rounded to prevent decimal precision issues + return Math.round((1.0 - decimal) * 100 * 1e10) / 1e10; +}; + +export const valueAboveOneToPercentage = (value) => { + // Converts a value greater than 1.0 to percentage: 1.2 = 20% + // Rounded to prevent decimal precision issues + return Math.round((value - 1.0) * 100 * 1e10) / 1e10; +}; + var currencyFormat = new Intl.NumberFormat("en-GB", { style: "currency", currency: "GBP",