mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-30 23:04:34 -04:00
Line item tax amounts
This commit is contained in:
parent
ce30aa7702
commit
b3d53a7cd8
@ -45,7 +45,7 @@ class InvoiceItem
|
|||||||
|
|
||||||
public $gross_line_total = 0;
|
public $gross_line_total = 0;
|
||||||
|
|
||||||
public $gross_tax_total = 0;
|
public $tax_amount = 0;
|
||||||
|
|
||||||
public $date = '';
|
public $date = '';
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ class InvoiceItem
|
|||||||
'sort_id' => 'string',
|
'sort_id' => 'string',
|
||||||
'line_total' => 'float',
|
'line_total' => 'float',
|
||||||
'gross_line_total' => 'float',
|
'gross_line_total' => 'float',
|
||||||
'gross_tax_total' => 'float',
|
'tax_amount' => 'float',
|
||||||
'date' => 'string',
|
'date' => 'string',
|
||||||
'custom_value1' => 'string',
|
'custom_value1' => 'string',
|
||||||
'custom_value2' => 'string',
|
'custom_value2' => 'string',
|
||||||
|
@ -30,7 +30,7 @@ class InvoiceItemSum
|
|||||||
|
|
||||||
private $gross_line_total;
|
private $gross_line_total;
|
||||||
|
|
||||||
private $gross_tax_total;
|
private $tax_amount;
|
||||||
|
|
||||||
private $currency;
|
private $currency;
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ class InvoiceItemSum
|
|||||||
|
|
||||||
$this->item->gross_line_total = $this->getLineTotal() + $item_tax;
|
$this->item->gross_line_total = $this->getLineTotal() + $item_tax;
|
||||||
|
|
||||||
$this->item->gross_tax_total = $item_tax;
|
$this->item->tax_amount = $item_tax;
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ class InvoiceItemSumInclusive
|
|||||||
|
|
||||||
private $tax_collection;
|
private $tax_collection;
|
||||||
|
|
||||||
private $gross_tax_total;
|
private $tax_amount;
|
||||||
|
|
||||||
public function __construct($invoice)
|
public function __construct($invoice)
|
||||||
{
|
{
|
||||||
@ -146,7 +146,7 @@ class InvoiceItemSumInclusive
|
|||||||
$this->groupTax($this->item->tax_name3, $this->item->tax_rate3, $item_tax_rate3_total);
|
$this->groupTax($this->item->tax_name3, $this->item->tax_rate3, $item_tax_rate3_total);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->item->gross_tax_total = $this->formatValue($item_tax, $this->currency->precision);
|
$this->item->tax_amount = $this->formatValue($item_tax, $this->currency->precision);
|
||||||
|
|
||||||
$this->setTotalTaxes($this->formatValue($item_tax, $this->currency->precision));
|
$this->setTotalTaxes($this->formatValue($item_tax, $this->currency->precision));
|
||||||
|
|
||||||
|
@ -92,11 +92,14 @@ class MatchBankTransactions implements ShouldQueue
|
|||||||
|
|
||||||
$this->company = Company::find($this->company_id);
|
$this->company = Company::find($this->company_id);
|
||||||
|
|
||||||
$yodlee = new Yodlee($this->company->account->bank_integration_account_id);
|
if($this->company->account->bank_integration_account_id)
|
||||||
|
$yodlee = new Yodlee($this->company->account->bank_integration_account_id);
|
||||||
|
else
|
||||||
|
$yodlee = false;
|
||||||
|
|
||||||
$bank_categories = Cache::get('bank_categories');
|
$bank_categories = Cache::get('bank_categories');
|
||||||
|
|
||||||
if(!$bank_categories){
|
if(!$bank_categories && $yodlee){
|
||||||
$_categories = $yodlee->getTransactionCategories();
|
$_categories = $yodlee->getTransactionCategories();
|
||||||
$this->categories = collect($_categories->transactionCategory);
|
$this->categories = collect($_categories->transactionCategory);
|
||||||
Cache::forever('bank_categories', $this->categories);
|
Cache::forever('bank_categories', $this->categories);
|
||||||
@ -159,7 +162,7 @@ class MatchBankTransactions implements ShouldQueue
|
|||||||
|
|
||||||
$_invoices = Invoice::withTrashed()->find($this->getInvoices($input['invoice_ids']));
|
$_invoices = Invoice::withTrashed()->find($this->getInvoices($input['invoice_ids']));
|
||||||
|
|
||||||
$amount = $this->bt->amount;
|
$amount = $this->bt->amount;
|
||||||
|
|
||||||
if($_invoices && $this->checkPayable($_invoices)){
|
if($_invoices && $this->checkPayable($_invoices)){
|
||||||
|
|
||||||
@ -220,7 +223,7 @@ class MatchBankTransactions implements ShouldQueue
|
|||||||
$this->applied_amount += $this->invoice->balance;
|
$this->applied_amount += $this->invoice->balance;
|
||||||
$this->available_balance = $this->available_balance - $this->invoice->balance;
|
$this->available_balance = $this->available_balance - $this->invoice->balance;
|
||||||
}
|
}
|
||||||
elseif(floatval($this->invoice->balance) > floatval($this->available_balance) && $this->available_balance > 0)
|
elseif(floatval($this->invoice->balance) >= floatval($this->available_balance) && $this->available_balance > 0)
|
||||||
{
|
{
|
||||||
$_amount = $this->available_balance;
|
$_amount = $this->available_balance;
|
||||||
$this->applied_amount += $this->available_balance;
|
$this->applied_amount += $this->available_balance;
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\Invoice;
|
||||||
use App\Utils\Traits\MakesHash;
|
use App\Utils\Traits\MakesHash;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
@ -95,4 +96,22 @@ class BankTransaction extends BaseModel
|
|||||||
return $this->belongsTo(Account::class)->withTrashed();
|
return $this->belongsTo(Account::class)->withTrashed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function matchInvoiceNumber()
|
||||||
|
{
|
||||||
|
|
||||||
|
if(strlen($this->description) > 1)
|
||||||
|
{
|
||||||
|
|
||||||
|
$i = Invoice::where('company_id', $this->company_id)
|
||||||
|
->whereIn('status_id', [1,2,3])
|
||||||
|
->where('is_deleted', 0)
|
||||||
|
->where('number', 'LIKE', '%'.$this->description.'%')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
return $i ?: false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
@ -31,6 +31,13 @@ class BankTransactionRepository extends BaseRepository
|
|||||||
|
|
||||||
$bank_transaction->save();
|
$bank_transaction->save();
|
||||||
|
|
||||||
|
if($bank_transaction->base_type == 'CREDIT' && $invoice = $bank_transaction->matchInvoiceNumber())
|
||||||
|
{
|
||||||
|
$bank_transaction->invoice_ids = $invoice->hashed_id;
|
||||||
|
$bank_transaction->status_id = BankTransaction::STATUS_MATCHED;
|
||||||
|
$bank_transaction->save();
|
||||||
|
}
|
||||||
|
|
||||||
return $bank_transaction;
|
return $bank_transaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,7 +485,7 @@ class HtmlEngine
|
|||||||
$data['$product.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
$data['$product.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
||||||
$data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
|
$data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
|
||||||
$data['$product.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.gross_line_total')];
|
$data['$product.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.gross_line_total')];
|
||||||
$data['$product.gross_tax_total'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
$data['$product.tax_amount'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
||||||
$data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
|
$data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
|
||||||
$data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
|
$data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
|
||||||
$data['$product.product1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'product1')];
|
$data['$product.product1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'product1')];
|
||||||
|
@ -206,7 +206,7 @@ trait MakesInvoiceValues
|
|||||||
'tax_name1',
|
'tax_name1',
|
||||||
'tax_name2',
|
'tax_name2',
|
||||||
'tax_name3',
|
'tax_name3',
|
||||||
'gross_tax_total',
|
'tax_amount',
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'tax',
|
'tax',
|
||||||
@ -327,10 +327,10 @@ trait MakesInvoiceValues
|
|||||||
$data[$key][$table_type.'.gross_line_total'] = '';
|
$data[$key][$table_type.'.gross_line_total'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property_exists($item, 'gross_tax_total')) {
|
if (property_exists($item, 'tax_amount')) {
|
||||||
$data[$key][$table_type.'.gross_tax_total'] = ($item->gross_tax_total == 0) ? '' : Number::formatMoney($item->gross_tax_total, $entity);
|
$data[$key][$table_type.'.tax_amount'] = ($item->tax_amount == 0) ? '' : Number::formatMoney($item->tax_amount, $entity);
|
||||||
} else {
|
} else {
|
||||||
$data[$key][$table_type.'.gross_tax_total'] = '';
|
$data[$key][$table_type.'.tax_amount'] = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($item->discount) && $item->discount > 0) {
|
if (isset($item->discount) && $item->discount > 0) {
|
||||||
|
@ -355,7 +355,7 @@ class VendorHtmlEngine
|
|||||||
$data['$product.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
$data['$product.tax_name3'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
||||||
$data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
|
$data['$product.line_total'] = ['value' => '', 'label' => ctrans('texts.line_total')];
|
||||||
$data['$product.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.gross_line_total')];
|
$data['$product.gross_line_total'] = ['value' => '', 'label' => ctrans('texts.gross_line_total')];
|
||||||
$data['$product.gross_tax_total'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
$data['$product.tax_amount'] = ['value' => '', 'label' => ctrans('texts.tax')];
|
||||||
$data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
|
$data['$product.description'] = ['value' => '', 'label' => ctrans('texts.description')];
|
||||||
$data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
|
$data['$product.unit_cost'] = ['value' => '', 'label' => ctrans('texts.unit_cost')];
|
||||||
$data['$product.product1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'product1')];
|
$data['$product.product1'] = ['value' => '', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'product1')];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user