mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-25 23:02:52 -04:00 
			
		
		
		
	Merge pull request #6166 from turbo124/v5-develop
Fixes for check data scripts
This commit is contained in:
		
						commit
						1922fa16fc
					
				| @ -321,10 +321,17 @@ class CheckData extends Command | |||||||
| 
 | 
 | ||||||
|             foreach ($client->invoices()->where('is_deleted', false)->where('status_id', '>', 1)->get() as $invoice) { |             foreach ($client->invoices()->where('is_deleted', false)->where('status_id', '>', 1)->get() as $invoice) { | ||||||
| 
 | 
 | ||||||
|                 $total_amount = $invoice->payments()->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED])->get()->sum('pivot.amount'); |                 // $total_amount = $invoice->payments()->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED])->get()->sum('pivot.amount');
 | ||||||
|                 $total_refund = $invoice->payments()->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED])->get()->sum('pivot.refunded'); |                 // $total_refund = $invoice->payments()->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED])->get()->sum('pivot.refunded');
 | ||||||
|  | 
 | ||||||
|  |                 // $total_invoice_payments += ($total_amount - $total_refund);
 | ||||||
|  | 
 | ||||||
|  |                 $total_invoice_payments += $invoice->payments() | ||||||
|  |                                                     ->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED]) | ||||||
|  |                                                     ->selectRaw('sum(paymentables.amount - paymentables.refunded) as p') | ||||||
|  |                                                     ->pluck('p') | ||||||
|  |                                                     ->first(); | ||||||
| 
 | 
 | ||||||
|                 $total_invoice_payments += ($total_amount - $total_refund); |  | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             //commented IN 27/06/2021 - sums ALL client payments AND the unapplied amounts to match the client paid to date
 |             //commented IN 27/06/2021 - sums ALL client payments AND the unapplied amounts to match the client paid to date
 | ||||||
| @ -339,7 +346,12 @@ class CheckData extends Command | |||||||
| 
 | 
 | ||||||
|             // 10/02/21
 |             // 10/02/21
 | ||||||
|             foreach ($client->payments as $payment) { |             foreach ($client->payments as $payment) { | ||||||
|                 $credit_total_applied += $payment->paymentables()->where('paymentable_type', App\Models\Credit::class)->get()->sum(DB::raw('amount')); |                 // $credit_total_applied += $payment->paymentables()->where('paymentable_type', App\Models\Credit::class)->get()->sum(DB::raw('amount'));
 | ||||||
|  |             $credit_total_applied += $payment->paymentables() | ||||||
|  |                                             ->where('paymentable_type', App\Models\Credit::class) | ||||||
|  |                                             ->selectRaw('sum(paymentables.amount - paymentables.refunded) as p') | ||||||
|  |                                             ->pluck('p') | ||||||
|  |                                             ->first(); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if ($credit_total_applied < 0) { |             if ($credit_total_applied < 0) { | ||||||
| @ -372,17 +384,25 @@ class CheckData extends Command | |||||||
|         Client::cursor()->where('is_deleted', 0)->each(function ($client) { |         Client::cursor()->where('is_deleted', 0)->each(function ($client) { | ||||||
|              |              | ||||||
|             $client->invoices->where('is_deleted', false)->whereIn('status_id', '!=', Invoice::STATUS_DRAFT)->each(function ($invoice) use ($client) { |             $client->invoices->where('is_deleted', false)->whereIn('status_id', '!=', Invoice::STATUS_DRAFT)->each(function ($invoice) use ($client) { | ||||||
|                 $total_amount = $invoice->payments()->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED])->get()->sum('pivot.amount'); |                 // $total_amount = $invoice->payments()->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED])->get()->sum('pivot.amount');
 | ||||||
|                 $total_refund = $invoice->payments()->get()->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED])->sum('pivot.refunded'); |                 // $total_refund = $invoice->payments()->get()->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED])->sum('pivot.refunded');
 | ||||||
|  | 
 | ||||||
|  |                 $total_paid = $invoice->payments() | ||||||
|  |                                     ->where('is_deleted', false)->whereIn('status_id', [Payment::STATUS_COMPLETED, Payment:: STATUS_PENDING, Payment::STATUS_PARTIALLY_REFUNDED, Payment::STATUS_REFUNDED]) | ||||||
|  |                                     ->selectRaw('sum(paymentables.amount - paymentables.refunded) as p') | ||||||
|  |                                     ->pluck('p') | ||||||
|  |                                     ->first(); | ||||||
|  | 
 | ||||||
|  |                 // $total_paid = $total_amount - $total_refund;
 | ||||||
|  | 
 | ||||||
|                 $total_credit = $invoice->credits()->get()->sum('amount'); |                 $total_credit = $invoice->credits()->get()->sum('amount'); | ||||||
| 
 | 
 | ||||||
|                 $total_paid = $total_amount - $total_refund; |  | ||||||
|                 $calculated_paid_amount = $invoice->amount - $invoice->balance - $total_credit; |                 $calculated_paid_amount = $invoice->amount - $invoice->balance - $total_credit; | ||||||
| 
 | 
 | ||||||
|                 if ((string)$total_paid != (string)($invoice->amount - $invoice->balance - $total_credit)) { |                 if ((string)$total_paid != (string)($invoice->amount - $invoice->balance - $total_credit)) { | ||||||
|                     $this->wrong_balances++; |                     $this->wrong_balances++; | ||||||
| 
 | 
 | ||||||
|                     $this->logMessage($client->present()->name.' - '.$client->id." - Total Amount = {$total_amount} != Calculated Total = {$calculated_paid_amount} - Total Refund = {$total_refund} Total credit = {$total_credit}"); |                     $this->logMessage($client->present()->name.' - '.$client->id." - Total Paid = {$total_paid} != Calculated Total = {$calculated_paid_amount}"); | ||||||
| 
 | 
 | ||||||
|                     $this->isValid = false; |                     $this->isValid = false; | ||||||
|                 } |                 } | ||||||
|  | |||||||
| @ -220,6 +220,10 @@ class CompanyImport implements ShouldQueue | |||||||
| 
 | 
 | ||||||
|     private function unzipFile() |     private function unzipFile() | ||||||
|     { |     { | ||||||
|  |          | ||||||
|  |         if(mime_content_type(Storage::path($this->file_location)) == 'text/plain') | ||||||
|  |             return Storage::path($this->file_location); | ||||||
|  | 
 | ||||||
|         $path = TempFile::filePath(Storage::get($this->file_location), basename($this->file_location)); |         $path = TempFile::filePath(Storage::get($this->file_location), basename($this->file_location)); | ||||||
| 
 | 
 | ||||||
|         $zip = new ZipArchive(); |         $zip = new ZipArchive(); | ||||||
|  | |||||||
| @ -63,51 +63,12 @@ class ZipInvoices implements ShouldQueue | |||||||
|     /** |     /** | ||||||
|      * Execute the job. |      * Execute the job. | ||||||
|      * |      * | ||||||
|      * |  | ||||||
|      * @return void |      * @return void | ||||||
|      * @throws \ZipStream\Exception\FileNotFoundException |      * @throws \ZipStream\Exception\FileNotFoundException | ||||||
|      * @throws \ZipStream\Exception\FileNotReadableException |      * @throws \ZipStream\Exception\FileNotReadableException | ||||||
|      * @throws \ZipStream\Exception\OverflowException |      * @throws \ZipStream\Exception\OverflowException | ||||||
|      */ |      */ | ||||||
|     // public function handle()
 |      | ||||||
|     // {
 |  | ||||||
|     //     $tempStream = fopen('php://memory', 'w+');
 |  | ||||||
| 
 |  | ||||||
|     //     $options = new Archive();
 |  | ||||||
|     //     $options->setOutputStream($tempStream);
 |  | ||||||
| 
 |  | ||||||
|     //     // create a new zipstream object
 |  | ||||||
|     //     $file_name = date('Y-m-d').'_'.str_replace(' ', '_', trans('texts.invoices')).'.zip';
 |  | ||||||
| 
 |  | ||||||
|     //     $invoice = $this->invoices->first();
 |  | ||||||
|     //     $invitation = $invoice->invitations->first();
 |  | ||||||
| 
 |  | ||||||
|     //     $path = $invoice->client->invoice_filepath($invitation);
 |  | ||||||
| 
 |  | ||||||
|     //     $zip = new ZipStream($file_name, $options);
 |  | ||||||
| 
 |  | ||||||
|     //     foreach ($this->invoices as $invoice) {
 |  | ||||||
|     //         //$zip->addFileFromPath(basename($invoice->pdf_file_path()), TempFile::path($invoice->pdf_file_path()));
 |  | ||||||
|     //         $zip->addFileFromPath(basename($invoice->pdf_file_path($invitation)), $invoice->pdf_file_path());
 |  | ||||||
|     //     }
 |  | ||||||
| 
 |  | ||||||
|     //     $zip->finish();
 |  | ||||||
| 
 |  | ||||||
|     //     Storage::disk('public')->put($path.$file_name, $tempStream);
 |  | ||||||
| 
 |  | ||||||
|     //     fclose($tempStream);
 |  | ||||||
| 
 |  | ||||||
|     //     $nmo = new NinjaMailerObject;
 |  | ||||||
|     //     $nmo->mailable = new DownloadInvoices(Storage::disk('public')->url($path.$file_name), $this->company);
 |  | ||||||
|     //     $nmo->to_user = $this->user;
 |  | ||||||
|     //     $nmo->settings = $this->settings;
 |  | ||||||
|     //     $nmo->company = $this->company;
 |  | ||||||
|          |  | ||||||
|     //     NinjaMailerJob::dispatch($nmo);
 |  | ||||||
|          |  | ||||||
|     //     UnlinkFile::dispatch('public', $path.$file_name)->delay(now()->addHours(1));
 |  | ||||||
|     // }
 |  | ||||||
| 
 |  | ||||||
|     public function handle() |     public function handle() | ||||||
|     { |     { | ||||||
|         # create new zip object
 |         # create new zip object
 | ||||||
| @ -145,8 +106,6 @@ class ZipInvoices implements ShouldQueue | |||||||
|          |          | ||||||
|         NinjaMailerJob::dispatch($nmo); |         NinjaMailerJob::dispatch($nmo); | ||||||
|          |          | ||||||
|         nlog("sending email"); |  | ||||||
| 
 |  | ||||||
|         UnlinkFile::dispatch(config('filesystems.default'), $path.$file_name)->delay(now()->addHours(1)); |         UnlinkFile::dispatch(config('filesystems.default'), $path.$file_name)->delay(now()->addHours(1)); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -128,7 +128,7 @@ class ACH | |||||||
|         $data['currency'] = $this->stripe->client->getCurrencyCode(); |         $data['currency'] = $this->stripe->client->getCurrencyCode(); | ||||||
|         $data['payment_method_id'] = GatewayType::BANK_TRANSFER; |         $data['payment_method_id'] = GatewayType::BANK_TRANSFER; | ||||||
|         $data['customer'] = $this->stripe->findOrCreateCustomer(); |         $data['customer'] = $this->stripe->findOrCreateCustomer(); | ||||||
|         $data['amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision); |         $data['amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision, $this->stripe->client->currency()); | ||||||
| 
 | 
 | ||||||
|         return render('gateways.stripe.ach.pay', $data); |         return render('gateways.stripe.ach.pay', $data); | ||||||
|     } |     } | ||||||
| @ -151,7 +151,7 @@ class ACH | |||||||
|         $state = [ |         $state = [ | ||||||
|             'payment_method' => $request->payment_method_id, |             'payment_method' => $request->payment_method_id, | ||||||
|             'gateway_type_id' => $request->company_gateway_id, |             'gateway_type_id' => $request->company_gateway_id, | ||||||
|             'amount' => $this->stripe->convertToStripeAmount($request->amount, $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertToStripeAmount($request->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'currency' => $request->currency, |             'currency' => $request->currency, | ||||||
|             'customer' => $request->customer, |             'customer' => $request->customer, | ||||||
|         ]; |         ]; | ||||||
| @ -196,7 +196,7 @@ class ACH | |||||||
|         $data = [ |         $data = [ | ||||||
|             'payment_method' => $state['source'], |             'payment_method' => $state['source'], | ||||||
|             'payment_type' => PaymentType::ACH, |             'payment_type' => PaymentType::ACH, | ||||||
|             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->amount, $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'transaction_reference' => $state['charge']->id, |             'transaction_reference' => $state['charge']->id, | ||||||
|             'gateway_type_id' => GatewayType::BANK_TRANSFER, |             'gateway_type_id' => GatewayType::BANK_TRANSFER, | ||||||
|         ]; |         ]; | ||||||
|  | |||||||
| @ -37,7 +37,7 @@ class Alipay | |||||||
|         $data['gateway'] = $this->stripe; |         $data['gateway'] = $this->stripe; | ||||||
|         $data['return_url'] = $this->buildReturnUrl(); |         $data['return_url'] = $this->buildReturnUrl(); | ||||||
|         $data['currency'] = $this->stripe->client->getCurrencyCode(); |         $data['currency'] = $this->stripe->client->getCurrencyCode(); | ||||||
|         $data['stripe_amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision); |         $data['stripe_amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision, $this->stripe->client->currency()); | ||||||
|         $data['invoices'] = $this->stripe->payment_hash->invoices(); |         $data['invoices'] = $this->stripe->payment_hash->invoices(); | ||||||
| 
 | 
 | ||||||
|         $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, ['stripe_amount' => $data['stripe_amount']]); |         $this->stripe->payment_hash->data = array_merge((array) $this->stripe->payment_hash->data, ['stripe_amount' => $data['stripe_amount']]); | ||||||
| @ -74,7 +74,7 @@ class Alipay | |||||||
|         $data = [ |         $data = [ | ||||||
|             'payment_method' => $this->stripe->payment_hash->data->source, |             'payment_method' => $this->stripe->payment_hash->data->source, | ||||||
|             'payment_type' => PaymentType::ALIPAY, |             'payment_type' => PaymentType::ALIPAY, | ||||||
|             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'transaction_reference' => $source, |             'transaction_reference' => $source, | ||||||
|             'gateway_type_id' => GatewayType::ALIPAY, |             'gateway_type_id' => GatewayType::ALIPAY, | ||||||
| 
 | 
 | ||||||
| @ -104,7 +104,7 @@ class Alipay | |||||||
|             $this->stripe->client, |             $this->stripe->client, | ||||||
|             $server_response, |             $server_response, | ||||||
|             $this->stripe->client->company, |             $this->stripe->client->company, | ||||||
|             $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision) |             $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()) | ||||||
|         ); |         ); | ||||||
| 
 | 
 | ||||||
|         $message = [ |         $message = [ | ||||||
|  | |||||||
| @ -68,7 +68,7 @@ class Charge | |||||||
|         try { |         try { | ||||||
| 
 | 
 | ||||||
|             $data = [ |             $data = [ | ||||||
|               'amount' => $this->stripe->convertToStripeAmount($amount, $this->stripe->client->currency()->precision), |               'amount' => $this->stripe->convertToStripeAmount($amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|               'currency' => $this->stripe->client->getCurrencyCode(), |               'currency' => $this->stripe->client->getCurrencyCode(), | ||||||
|               'payment_method' => $cgt->token, |               'payment_method' => $cgt->token, | ||||||
|               'customer' => $cgt->gateway_customer_reference, |               'customer' => $cgt->gateway_customer_reference, | ||||||
|  | |||||||
| @ -60,7 +60,7 @@ class CreditCard | |||||||
|     public function paymentView(array $data) |     public function paymentView(array $data) | ||||||
|     { |     { | ||||||
|         $payment_intent_data = [ |         $payment_intent_data = [ | ||||||
|             'amount' => $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'currency' => $this->stripe->client->getCurrencyCode(), |             'currency' => $this->stripe->client->getCurrencyCode(), | ||||||
|             'customer' => $this->stripe->findOrCreateCustomer(), |             'customer' => $this->stripe->findOrCreateCustomer(), | ||||||
|             'description' => ctrans('texts.invoices') . ': ' . collect($data['invoices'])->pluck('invoice_number'), // TODO: More meaningful description.
 |             'description' => ctrans('texts.invoices') . ': ' . collect($data['invoices'])->pluck('invoice_number'), // TODO: More meaningful description.
 | ||||||
| @ -115,7 +115,7 @@ class CreditCard | |||||||
|         $data = [ |         $data = [ | ||||||
|             'payment_method' => $this->stripe->payment_hash->data->server_response->payment_method, |             'payment_method' => $this->stripe->payment_hash->data->server_response->payment_method, | ||||||
|             'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)), |             'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)), | ||||||
|             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->server_response->amount, $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->server_response->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'transaction_reference' => optional($this->stripe->payment_hash->data->payment_intent->charges->data[0])->id, |             'transaction_reference' => optional($this->stripe->payment_hash->data->payment_intent->charges->data[0])->id, | ||||||
|             'gateway_type_id' => GatewayType::CREDIT_CARD, |             'gateway_type_id' => GatewayType::CREDIT_CARD, | ||||||
|         ]; |         ]; | ||||||
|  | |||||||
| @ -40,7 +40,7 @@ class SOFORT | |||||||
|     { |     { | ||||||
|         $data['gateway'] = $this->stripe; |         $data['gateway'] = $this->stripe; | ||||||
|         $data['return_url'] = $this->buildReturnUrl(); |         $data['return_url'] = $this->buildReturnUrl(); | ||||||
|         $data['stripe_amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision); |         $data['stripe_amount'] = $this->stripe->convertToStripeAmount($data['total']['amount_with_fee'], $this->stripe->client->currency()->precision, $this->stripe->client->currency()); | ||||||
|         $data['client'] = $this->stripe->client; |         $data['client'] = $this->stripe->client; | ||||||
|         $data['country'] = $this->stripe->client->country->iso_3166_2; |         $data['country'] = $this->stripe->client->country->iso_3166_2; | ||||||
| 
 | 
 | ||||||
| @ -80,7 +80,7 @@ class SOFORT | |||||||
|         $data = [ |         $data = [ | ||||||
|             'payment_method' => $this->stripe->payment_hash->data->source, |             'payment_method' => $this->stripe->payment_hash->data->source, | ||||||
|             'payment_type' => PaymentType::SOFORT, |             'payment_type' => PaymentType::SOFORT, | ||||||
|             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision), |             'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()), | ||||||
|             'transaction_reference' => $source, |             'transaction_reference' => $source, | ||||||
|             'gateway_type_id' => GatewayType::SOFORT, |             'gateway_type_id' => GatewayType::SOFORT, | ||||||
|         ]; |         ]; | ||||||
| @ -107,7 +107,7 @@ class SOFORT | |||||||
|             $this->stripe->client, |             $this->stripe->client, | ||||||
|             $server_response, |             $server_response, | ||||||
|             $this->stripe->client->company, |             $this->stripe->client->company, | ||||||
|             $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision) |             $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->stripe_amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()) | ||||||
|         ); |         ); | ||||||
| 
 | 
 | ||||||
|         $message = [ |         $message = [ | ||||||
|  | |||||||
| @ -14,13 +14,24 @@ namespace App\PaymentDrivers\Stripe; | |||||||
| 
 | 
 | ||||||
| trait Utilities | trait Utilities | ||||||
| { | { | ||||||
|     public function convertFromStripeAmount($amount, $precision) |     /*Helpers for currency conversions, NOTE* for some currencies we need to change behaviour */ | ||||||
|  |     public function convertFromStripeAmount($amount, $precision, $currency) | ||||||
|     { |     { | ||||||
|  | 
 | ||||||
|  |         if($currency->code == "JPY") | ||||||
|  |             return $amount; | ||||||
|  | 
 | ||||||
|         return $amount / pow(10, $precision); |         return $amount / pow(10, $precision); | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public function convertToStripeAmount($amount, $precision) |     public function convertToStripeAmount($amount, $precision, $currency) | ||||||
|     { |     { | ||||||
|         return (int)($amount * pow(10, $precision)); | 
 | ||||||
|  |        if($currency->code == "JPY") | ||||||
|  |             return $amount;  | ||||||
|  | 
 | ||||||
|  |         return round(($amount * pow(10, $precision)),0); | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -341,7 +341,7 @@ class StripePaymentDriver extends BaseDriver | |||||||
|         try { |         try { | ||||||
|             $response = $this->stripe |             $response = $this->stripe | ||||||
|                 ->refunds |                 ->refunds | ||||||
|                 ->create(['charge' => $payment->transaction_reference, 'amount' => $this->convertToStripeAmount($amount, $this->client->currency()->precision)], $meta); |                 ->create(['charge' => $payment->transaction_reference, 'amount' => $this->convertToStripeAmount($amount, $this->client->currency()->precision, $this->client->currency())], $meta); | ||||||
| 
 | 
 | ||||||
|             if ($response->status == $response::STATUS_SUCCEEDED) { |             if ($response->status == $response::STATUS_SUCCEEDED) { | ||||||
|                 SystemLogger::dispatch(['server_response' => $response, 'data' => request()->all(),], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_STRIPE, $this->client, $this->client->company); |                 SystemLogger::dispatch(['server_response' => $response, 'data' => request()->all(),], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_SUCCESS, SystemLog::TYPE_STRIPE, $this->client, $this->client->company); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user