diff --git a/src/Models/Transaction.php b/src/Models/Transaction.php index 40ca058..ce074a7 100644 --- a/src/Models/Transaction.php +++ b/src/Models/Transaction.php @@ -369,7 +369,7 @@ public function getAmountAttribute(): float foreach ($this->getLineItems() as $lineItem) { if($lineItem->credited != $this->credited){ $amount += $lineItem->amount * $lineItem->quantity; - if (!$lineItem->vat_inclusive) { + if (!is_null($lineItem->vat) && !$lineItem->vat_inclusive) { $amount += $lineItem->amount * ($lineItem->vat->rate / 100) * $lineItem->quantity; } } @@ -385,16 +385,14 @@ public function getAmountAttribute(): float */ public function getCompoundEntries() { - if($this->isPosted){ - $this->compoundEntries[ - Transaction::getCompoundEntrytype($this->credited) - ][$this->account_id] = floatval($this->main_account_amount); + $this->compoundEntries[ + Transaction::getCompoundEntrytype($this->credited) + ][$this->account_id] = floatval($this->main_account_amount); - foreach ($this->lineItems as $lineItem) { - $this->compoundEntries[ - Transaction::getCompoundEntrytype($lineItem->credited) - ][$lineItem->account_id] = $lineItem->amount * $lineItem->quantity; - } + foreach ($this->lineItems as $lineItem) { + $this->compoundEntries[ + Transaction::getCompoundEntrytype($lineItem->credited) + ][$lineItem->account_id] = $lineItem->amount * $lineItem->quantity; } return $this->compoundEntries; } @@ -717,6 +715,10 @@ public function save(array $options = []): bool ); } + if (!isset($this->exchange_rate_id)) { + $this->exchange_rate_id = Auth::user()->entity->default_rate->id; + } + if ($this->isDirty('transaction_type') && $this->transaction_type != $this->getOriginal('transaction_type') && !is_null($this->id)) { throw new InvalidTransactionType(); }