Updates for exchange rates

This commit is contained in:
David Bomba 2024-02-20 21:16:00 +11:00
parent b7bfb4ee0c
commit 6f495a77fa

View File

@ -286,21 +286,21 @@ class ProfitLoss
$pivot_diff = $pivot->amount - $pivot->refunded; $pivot_diff = $pivot->amount - $pivot->refunded;
$amount_payment_paid += $pivot_diff; $amount_payment_paid += $pivot_diff;
$amount_payment_paid_converted += $pivot_diff / ($payment->exchange_rate ?: 1); $amount_payment_paid_converted += $pivot_diff * ($payment->exchange_rate ?: 1);
if ($invoice->amount > 0) { if ($invoice->amount > 0) {
$tax_amount += ($pivot_diff / $invoice->amount) * $invoice->total_taxes; $tax_amount += ($pivot_diff / $invoice->amount) * $invoice->total_taxes;
$tax_amount_converted += (($pivot_diff / $invoice->amount) * $invoice->total_taxes) / $payment->exchange_rate; $tax_amount_converted += (($pivot_diff / $invoice->amount) * $invoice->total_taxes) / $invoice->exchange_rate;
} }
} }
if ($pivot->paymentable_type == 'credits') { if ($pivot->paymentable_type == 'credits') {
$amount_credit_paid += $pivot->amount - $pivot->refunded; $amount_credit_paid += $pivot->amount - $pivot->refunded;
$amount_credit_paid_converted += $pivot_diff / ($payment->exchange_rate ?: 1); $amount_credit_paid_converted += $pivot_diff * ($payment->exchange_rate ?: 1);
$tax_amount_credit += ($pivot_diff / $invoice->amount) * $invoice->total_taxes; $tax_amount_credit += ($pivot_diff / $invoice->amount) * $invoice->total_taxes;
$tax_amount_credit_converted += (($pivot_diff / $invoice->amount) * $invoice->total_taxes) / $payment->exchange_rate; $tax_amount_credit_converted += (($pivot_diff / $invoice->amount) * $invoice->total_taxes) / $invoice->exchange_rate;
} }
} }
@ -316,6 +316,7 @@ class ProfitLoss
$this->invoice_payment_map[] = $map; $this->invoice_payment_map[] = $map;
}); });
nlog($this->invoice_payment_map);
return $this; return $this;
} }
@ -421,6 +422,11 @@ class ProfitLoss
private function expenseData() private function expenseData()
{ {
$expenses = Expense::query()->where('company_id', $this->company->id) $expenses = Expense::query()->where('company_id', $this->company->id)
->where(function ($query){
$query->whereNull('client_id')->orWhereHas('client', function ($q){
$q->where('is_deleted', 0);
});
})
->where('is_deleted', 0) ->where('is_deleted', 0)
->withTrashed() ->withTrashed()
->whereBetween('date', [$this->start_date, $this->end_date]) ->whereBetween('date', [$this->start_date, $this->end_date])
@ -435,7 +441,7 @@ class ProfitLoss
$map->total = $expense->amount; $map->total = $expense->amount;
$map->converted_total = $converted_total = $this->getConvertedTotal($expense->amount, $expense->exchange_rate); $map->converted_total = $converted_total = $this->getConvertedTotal($expense->amount, $expense->exchange_rate);
$map->tax = $tax = $this->getTax($expense); $map->tax = $tax = $this->getConvertedTotal($this->getTax($expense), $expense->exchange_rate);
$map->net_converted_total = $expense->uses_inclusive_taxes ? ($converted_total - $tax) : $converted_total; $map->net_converted_total = $expense->uses_inclusive_taxes ? ($converted_total - $tax) : $converted_total;
$map->category_id = $expense->category_id; $map->category_id = $expense->category_id;
$map->category_name = $expense->category ? $expense->category->name : 'No Category Defined'; $map->category_name = $expense->category ? $expense->category->name : 'No Category Defined';
@ -480,10 +486,6 @@ class ProfitLoss
//is amount tax //is amount tax
if ($expense->calculate_tax_by_amount) { if ($expense->calculate_tax_by_amount) {
nlog($expense->tax_amount1);
nlog($expense->tax_amount2);
nlog($expense->tax_amount3);
return $expense->tax_amount1 + $expense->tax_amount2 + $expense->tax_amount3; return $expense->tax_amount1 + $expense->tax_amount2 + $expense->tax_amount3;
} }