UNPKG

@jonstuebe/allot-utils

Version:

Util functions for Allot

48 lines 2.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const date_fns_1 = require("date-fns"); const bill_1 = require("./bill"); const utils_1 = require("./utils"); function validatePayPeriod(payPeriod, bills, paychecks) { return Object.assign(Object.assign({}, payPeriod), { bills: bills.filter((bill) => { return bill_1.isBillInPayPeriod(bill, payPeriod); }), paychecks: paychecks.filter((paycheck) => { return isPaycheckInPayPeriod(paycheck, payPeriod); }) }); } exports.validatePayPeriod = validatePayPeriod; function validatePayPeriods(payPeriods, bills, paychecks) { return payPeriods.map(payPeriod => validatePayPeriod(payPeriod, bills, paychecks)); } exports.validatePayPeriods = validatePayPeriods; function totalIncomeInPayPeriod(payPeriod) { return payPeriod.paychecks.reduce((acc, paycheck) => acc + paycheck.amount, 0); } exports.totalIncomeInPayPeriod = totalIncomeInPayPeriod; function totalBillsInPayPeriod(payPeriod) { return payPeriod.bills.reduce((acc, bill) => acc + bill_1.getBillAmountForPayPeriod(bill, payPeriod), 0); } exports.totalBillsInPayPeriod = totalBillsInPayPeriod; function getPayPeriods(paydays) { return paydays.map((payday, index) => { let end = paydays[index + 1] ? date_fns_1.addDays(paydays[index + 1], -1) : date_fns_1.addDays(payday, date_fns_1.differenceInDays(payday, paydays[index - 1])); return { start: payday, end, bills: [], paychecks: [] }; }); } exports.getPayPeriods = getPayPeriods; function formatPayPeriodDate({ start, end }, formatType = "MMM do y") { return `${date_fns_1.format(start, formatType)} - ${date_fns_1.format(end, formatType)}`; } exports.formatPayPeriodDate = formatPayPeriodDate; function isPaycheckInPayPeriod(paycheck, payPeriod) { return utils_1.isBetween(paycheck.date, payPeriod.start, payPeriod.end, true); } exports.isPaycheckInPayPeriod = isPaycheckInPayPeriod; //# sourceMappingURL=payPeriod.js.map