diff --git a/app/Http/Controllers/Common/Items.php b/app/Http/Controllers/Common/Items.php index 9e24c7df9..414eaa275 100644 --- a/app/Http/Controllers/Common/Items.php +++ b/app/Http/Controllers/Common/Items.php @@ -280,8 +280,8 @@ class Items extends Controller $item_tax_price = ($item->sale_price / 100) * $tax->rate; } - $item->sale_price = $this->convertPrice($item->sale_price, $currency_code, $currency->rate); - $item->purchase_price = $this->convertPrice($item->purchase_price, $currency_code, $currency->rate); + //$item->sale_price = $this->convertPrice($item->sale_price, $currency_code, $currency->rate); + //$item->purchase_price = $this->convertPrice($item->purchase_price, $currency_code, $currency->rate); switch ($type) { case 'bill': diff --git a/app/Http/Controllers/Incomes/Invoices.php b/app/Http/Controllers/Incomes/Invoices.php index fe9ab749c..7575c79b6 100644 --- a/app/Http/Controllers/Incomes/Invoices.php +++ b/app/Http/Controllers/Incomes/Invoices.php @@ -76,7 +76,9 @@ class Invoices extends Controller foreach ($invoice->payments as $item) { $default_amount = $item->amount; - if ($invoice->currency_code != $item->currency_code) { + if ($invoice->currency_code == $item->currency_code) { + $amount = (double)$default_amount; + } else { $default_amount_model = new InvoicePayment(); $default_amount_model->default_currency_code = $invoice->currency_code; @@ -85,17 +87,17 @@ class Invoices extends Controller $default_amount_model->currency_rate = $_currencies[$item->currency_code]; $default_amount = (double) $default_amount_model->getDivideConvertedAmount(); + + $convert_amount = new InvoicePayment(); + + $convert_amount->default_currency_code = $item->currency_code; + $convert_amount->amount = $default_amount; + $convert_amount->currency_code = $invoice->currency_code; + $convert_amount->currency_rate = $_currencies[$invoice->currency_code]; + + $amount = (double) $convert_amount->getDynamicConvertedAmount(); } - $convert_amount = new InvoicePayment(); - - $convert_amount->default_currency_code = $item->currency_code; - $convert_amount->amount = $default_amount; - $convert_amount->currency_code = $invoice->currency_code; - $convert_amount->currency_rate = $_currencies[$invoice->currency_code]; - - $amount = (double) $convert_amount->getDynamicConvertedAmount(); - $paid += $amount; } } diff --git a/app/Http/Controllers/Modals/InvoicePayments.php b/app/Http/Controllers/Modals/InvoicePayments.php index b5f6eac45..737dd13a6 100644 --- a/app/Http/Controllers/Modals/InvoicePayments.php +++ b/app/Http/Controllers/Modals/InvoicePayments.php @@ -39,13 +39,13 @@ class InvoicePayments extends Controller $currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code')->toArray(); - $currency = Currency::where('code', setting('general.default_currency'))->first(); - $account_currency_code = Account::where('id', setting('general.default_account'))->pluck('currency_code')->first(); + $currency = Currency::where('code', $account_currency_code)->first(); + $payment_methods = Modules::getPaymentMethods(); - $invoice->paid = $this->getPaid($invoice); + $paid = $this->getPaid($invoice); // Get Invoice Totals foreach ($invoice->totals as $invoice_total) { @@ -88,7 +88,9 @@ class InvoicePayments extends Controller $default_amount = (double) $request['amount']; - if ($invoice->currency_code != $request['currency_code']) { + if ($invoice->currency_code == $request['currency_code']) { + $amount = $default_amount; + } else { $default_amount_model = new InvoicePayment(); $default_amount_model->default_currency_code = $invoice->currency_code; @@ -97,17 +99,17 @@ class InvoicePayments extends Controller $default_amount_model->currency_rate = $currencies[$request['currency_code']]; $default_amount = (double) $default_amount_model->getDivideConvertedAmount(); + + $convert_amount = new InvoicePayment(); + + $convert_amount->default_currency_code = $request['currency_code']; + $convert_amount->amount = $default_amount; + $convert_amount->currency_code = $invoice->currency_code; + $convert_amount->currency_rate = $currencies[$invoice->currency_code]; + + $amount = (double) $convert_amount->getDynamicConvertedAmount(); } - $convert_amount = new InvoicePayment(); - - $convert_amount->default_currency_code = $request['currency_code']; - $convert_amount->amount = $default_amount; - $convert_amount->currency_code = $invoice->currency_code; - $convert_amount->currency_rate = $currencies[$invoice->currency_code]; - - $amount = (double) $convert_amount->getDynamicConvertedAmount(); - if ($invoice->payments()->count()) { $total_amount -= $this->getPaid($invoice); } @@ -134,18 +136,18 @@ class InvoicePayments extends Controller $error_amount_model->currency_rate = $currencies[$invoice->currency_code]; $error_amount = (double) $error_amount_model->getDivideConvertedAmount(); + + $convert_amount = new InvoicePayment(); + + $convert_amount->default_currency_code = $invoice->currency_code; + $convert_amount->amount = $error_amount; + $convert_amount->currency_code = $request['currency_code']; + $convert_amount->currency_rate = $currencies[$request['currency_code']]; + + $error_amount = (double) $convert_amount->getDynamicConvertedAmount(); } - $convert_amount = new InvoicePayment(); - - $convert_amount->default_currency_code = $invoice->currency_code; - $convert_amount->amount = $error_amount; - $convert_amount->currency_code = $request['currency_code']; - $convert_amount->currency_rate = $currencies[$request['currency_code']]; - - $error_amount = (double) $convert_amount->getDynamicConvertedAmount(); - - $message = trans('messages.error.over_payment', ['amount' => money($error_amount, $request['currency_code'], true)]); + $message = trans('messages.error.over_payment', ['amount' => money($error_amount, $request['currency_code'],true)]); return response()->json([ 'success' => false, @@ -217,7 +219,9 @@ class InvoicePayments extends Controller foreach ($invoice->payments as $item) { $default_amount = $item->amount; - if ($invoice->currency_code != $item->currency_code) { + if ($invoice->currency_code == $item->currency_code) { + $amount = (double) $default_amount; + } else { $default_amount_model = new InvoicePayment(); $default_amount_model->default_currency_code = $invoice->currency_code; @@ -226,17 +230,17 @@ class InvoicePayments extends Controller $default_amount_model->currency_rate = $_currencies[$item->currency_code]; $default_amount = (double) $default_amount_model->getDivideConvertedAmount(); + + $convert_amount = new InvoicePayment(); + + $convert_amount->default_currency_code = $item->currency_code; + $convert_amount->amount = $default_amount; + $convert_amount->currency_code = $invoice->currency_code; + $convert_amount->currency_rate = $_currencies[$invoice->currency_code]; + + $amount = (double) $convert_amount->getDynamicConvertedAmount(); } - $convert_amount = new InvoicePayment(); - - $convert_amount->default_currency_code = $item->currency_code; - $convert_amount->amount = $default_amount; - $convert_amount->currency_code = $invoice->currency_code; - $convert_amount->currency_rate = $_currencies[$invoice->currency_code]; - - $amount = (double) $convert_amount->getDynamicConvertedAmount(); - $paid += $amount; } } diff --git a/resources/views/incomes/invoices/create.blade.php b/resources/views/incomes/invoices/create.blade.php index 2acd9db12..b6cee24f4 100644 --- a/resources/views/incomes/invoices/create.blade.php +++ b/resources/views/incomes/invoices/create.blade.php @@ -373,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 d61f1d040..5cf2e18a3 100644 --- a/resources/views/incomes/invoices/edit.blade.php +++ b/resources/views/incomes/invoices/edit.blade.php @@ -381,6 +381,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({