Include paid sub invoices in expenses/profit/year totals
This commit is contained in:
@@ -429,19 +429,25 @@ export default function Invoices() {
|
|||||||
const paidSubcontractorPOs = subcontractorPOs.filter(po => po.status === 'paid');
|
const paidSubcontractorPOs = subcontractorPOs.filter(po => po.status === 'paid');
|
||||||
const payableSubcontractorPOs = subcontractorPOs.filter(po => ['approved', 'ready_to_pay'].includes(po.status));
|
const payableSubcontractorPOs = subcontractorPOs.filter(po => ['approved', 'ready_to_pay'].includes(po.status));
|
||||||
const selectedSubcontractorPO = subcontractorPOs.find(po => po.id === selectedSubcontractorPOId);
|
const selectedSubcontractorPO = subcontractorPOs.find(po => po.id === selectedSubcontractorPOId);
|
||||||
const totalPaidSubcontractors = paidSubcontractorPOs.reduce((s, po) => s + Number(po.amount), 0);
|
const subInvoiceItemTotal = (inv) => (inv.items || []).reduce((a, x) => a + Number(x.unit_price || 0) * Number(x.quantity || 1), 0);
|
||||||
|
const paidSubInvoices = subInvoices.filter(i => i.status === 'paid');
|
||||||
|
const totalPaidSubInvoices = paidSubInvoices.reduce((s, i) => s + subInvoiceItemTotal(i), 0);
|
||||||
|
const totalPaidSubcontractors = paidSubcontractorPOs.reduce((s, po) => s + Number(po.amount), 0) + totalPaidSubInvoices;
|
||||||
const totalPayableSubcontractorPOs = payableSubcontractorPOs.reduce((s, po) => s + Number(po.amount), 0);
|
const totalPayableSubcontractorPOs = payableSubcontractorPOs.reduce((s, po) => s + Number(po.amount), 0);
|
||||||
const totalPayableSubInvoices = subInvoices.filter(i => i.status === 'submitted').reduce((s, i) => s + (i.items || []).reduce((a, x) => a + Number(x.unit_price || 0) * Number(x.quantity || 1), 0), 0);
|
const totalPayableSubInvoices = subInvoices.filter(i => i.status === 'submitted').reduce((s, i) => s + subInvoiceItemTotal(i), 0);
|
||||||
const totalPayableSubcontractors = totalPayableSubcontractorPOs + totalPayableSubInvoices;
|
const totalPayableSubcontractors = totalPayableSubcontractorPOs + totalPayableSubInvoices;
|
||||||
const payableSubcontractorCount = payableSubcontractorPOs.length + subInvoices.filter(i => i.status === 'submitted').length;
|
const payableSubcontractorCount = payableSubcontractorPOs.length + subInvoices.filter(i => i.status === 'submitted').length;
|
||||||
const totalExpenses = filteredExpenses.reduce((s, e) => s + Number(e.amount), 0);
|
const totalExpenses = filteredExpenses.reduce((s, e) => s + Number(e.amount), 0);
|
||||||
const currentYear = new Date().getFullYear();
|
const currentYear = new Date().getFullYear();
|
||||||
const yearExpenses = expenses.filter(e => new Date(e.date).getFullYear() === currentYear);
|
const yearExpenses = expenses.filter(e => new Date(e.date).getFullYear() === currentYear);
|
||||||
const currentYearExpenseTotal = yearExpenses.reduce((s, e) => s + Number(e.amount), 0);
|
const currentYearExpenseTotal = yearExpenses.reduce((s, e) => s + Number(e.amount), 0);
|
||||||
const currentYearPaidSubcontractors = paidSubcontractorPOs
|
const currentYearPaidSubcontractorPOs = paidSubcontractorPOs
|
||||||
.filter(po => new Date(po.paid_at || po.date).getFullYear() === currentYear)
|
.filter(po => new Date(po.paid_at || po.date).getFullYear() === currentYear)
|
||||||
.reduce((s, po) => s + Number(po.amount), 0);
|
.reduce((s, po) => s + Number(po.amount), 0);
|
||||||
const currentYearTotalExpenses = currentYearExpenseTotal + currentYearPaidSubcontractors;
|
const currentYearPaidSubInvoices = paidSubInvoices
|
||||||
|
.filter(i => new Date(i.paid_at).getFullYear() === currentYear)
|
||||||
|
.reduce((s, i) => s + subInvoiceItemTotal(i), 0);
|
||||||
|
const currentYearTotalExpenses = currentYearExpenseTotal + currentYearPaidSubcontractorPOs + currentYearPaidSubInvoices;
|
||||||
const revenue = totals.paid;
|
const revenue = totals.paid;
|
||||||
const profit = totals.netReceived - expenses.reduce((s, e) => s + Number(e.amount), 0) - totalPaidSubcontractors;
|
const profit = totals.netReceived - expenses.reduce((s, e) => s + Number(e.amount), 0) - totalPaidSubcontractors;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user