From 4594bc6a72c295e5bc24e6989cae3fb2a0cc7379 Mon Sep 17 00:00:00 2001 From: cuneytsenturk Date: Wed, 29 Aug 2018 17:51:10 +0300 Subject: [PATCH] refs #451 Invoice item currency --- app/Http/Controllers/Expenses/Bills.php | 2 +- app/Http/Controllers/Incomes/Invoices.php | 2 +- app/Http/Middleware/Money.php | 6 +++++- resources/views/expenses/bills/item.blade.php | 1 + resources/views/incomes/invoices/create.blade.php | 9 ++++++++- resources/views/incomes/invoices/edit.blade.php | 12 +++++++++--- resources/views/incomes/invoices/item.blade.php | 1 + 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/Expenses/Bills.php b/app/Http/Controllers/Expenses/Bills.php index c55c70998..9eda13e4e 100644 --- a/app/Http/Controllers/Expenses/Bills.php +++ b/app/Http/Controllers/Expenses/Bills.php @@ -755,7 +755,7 @@ class Bills extends Controller // it should be integer for amount mask $currency->precision = (int) $currency->precision; - $html = view('expenses.bills.item', compact('item_row', 'taxes'))->render(); + $html = view('expenses.bills.item', compact('item_row', 'taxes', 'currency'))->render(); return response()->json([ 'success' => true, diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php index d8d1d57c3..fe9ab749c 100644 --- a/app/Http/Controllers/Incomes/Invoices.php +++ b/app/Http/Controllers/Incomes/Invoices.php @@ -892,7 +892,7 @@ class Invoices extends Controller // it should be integer for amount mask $currency->precision = (int) $currency->precision; - $html = view('incomes.invoices.item', compact('item_row', 'taxes'))->render(); + $html = view('incomes.invoices.item', compact('item_row', 'taxes', 'currency'))->render(); return response()->json([ 'success' => true, diff --git a/app/Http/Middleware/Money.php b/app/Http/Middleware/Money.php index 4694b71e2..5766c6934 100644 --- a/app/Http/Middleware/Money.php +++ b/app/Http/Middleware/Money.php @@ -38,7 +38,11 @@ class Money if (isset($bill_number) || isset($invoice_number) || !empty($items)) { if (!empty($items)) { foreach ($items as $key => $item) { - $items[$key]['price'] = money($item['price'], $currency_code)->getAmount(); + if (isset($item['currency']) && $item['currency'] != $currency_code) { + $items[$key]['price'] = money($item['price'], $item['currency'])->getAmount(); + } else { + $items[$key]['price'] = money($item['price'], $currency_code)->getAmount(); + } } $request->request->set('item', $items); diff --git a/resources/views/expenses/bills/item.blade.php b/resources/views/expenses/bills/item.blade.php index 1ee34c082..403585fcf 100644 --- a/resources/views/expenses/bills/item.blade.php +++ b/resources/views/expenses/bills/item.blade.php @@ -25,6 +25,7 @@ @stack('price_input_start') + @stack('price_input_end') @stack('price_td_end') diff --git a/resources/views/incomes/invoices/create.blade.php b/resources/views/incomes/invoices/create.blade.php index e0b9d9e28..7391668cb 100644 --- a/resources/views/incomes/invoices/create.blade.php +++ b/resources/views/incomes/invoices/create.blade.php @@ -161,11 +161,13 @@ var item_row = '{{ $item_row }}'; $(document).on('click', '#button-add-item', function (e) { + var currency_code = $('#currency_code').val(); + $.ajax({ url: '{{ url("incomes/invoices/addItem") }}', type: 'GET', dataType: 'JSON', - data: {item_row: item_row, currency_code : $('#currency_code').val()}, + data: {item_row: item_row, currency_code : currency_code}, success: function(json) { if (json['success']) { $('#items tbody #addItem').before(json['html']); @@ -371,6 +373,11 @@ $('#currency_rate').val(data.currency_rate); $('.input-price').each(function(){ + input_price_id = $(this).attr('id'); + input_currency_id = input_price_id.replace('price', 'currency'); + + $('#' + input_currency_id).val(data.currency_code); + amount = $(this).maskMoney('unmasked')[0]; $(this).maskMoney({ diff --git a/resources/views/incomes/invoices/edit.blade.php b/resources/views/incomes/invoices/edit.blade.php index 738e9eeb4..d61f1d040 100644 --- a/resources/views/incomes/invoices/edit.blade.php +++ b/resources/views/incomes/invoices/edit.blade.php @@ -142,11 +142,13 @@ var item_row = '{{ $item_row }}'; $(document).on('click', '#button-add-item', function (e) { + var currency_code = $('#currency_code').val(); + $.ajax({ url: '{{ url("incomes/invoices/addItem") }}', type: 'GET', dataType: 'JSON', - data: {item_row: item_row}, + data: {item_row: item_row, currency_code : currency_code}, success: function(json) { if (json['success']) { $('#items tbody #addItem').before(json['html']); @@ -403,12 +405,11 @@ }); function totalItem() { - $.ajax({ url: '{{ url("common/items/totalItem") }}', type: 'POST', dataType: 'JSON', - data: $('#currency_code, #discount input[type=\'number\'], #items input[type=\'text\'],#items input[type=\'number\'],#items input[type=\'hidden\'], #items textarea, #items select'), + data: $('#currency_code, #discount input[type=\'number\'], #items input[type=\'text\'], #items input[type=\'number\'], #items input[type=\'hidden\'], #items textarea, #items select'), headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}' }, success: function(data) { if (data) { @@ -424,6 +425,11 @@ $('#grand-total').html(data.grand_total); $('.input-price').each(function(){ + input_price_id = $(this).attr('id'); + input_currency_id = input_price_id.replace('price', 'currency'); + + $('#' + input_currency_id).val(data.currency_code); + amount = $(this).maskMoney('unmasked')[0]; $(this).maskMoney({ diff --git a/resources/views/incomes/invoices/item.blade.php b/resources/views/incomes/invoices/item.blade.php index 9efe56e6a..c178be22e 100644 --- a/resources/views/incomes/invoices/item.blade.php +++ b/resources/views/incomes/invoices/item.blade.php @@ -25,6 +25,7 @@ @stack('price_input_start') + @stack('price_input_end') @stack('price_td_end')