1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-06 03:02:34 +01:00

Working on gateway fees

This commit is contained in:
David Bomba 2019-09-09 13:27:16 +10:00
parent 8a90d46287
commit c7512f1572
3 changed files with 59 additions and 3 deletions

View File

@ -0,0 +1,29 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com)
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2019. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://opensource.org/licenses/AAL
*/
namespace App\DataMapper;
class PaymentTransaction
{
public $transaction_id;
public $gateway_response;
public $account_gateway_id;
public $payment_type_id;
public $status; // prepayment|payment|response|completed
public $invoices;
}

View File

@ -183,10 +183,22 @@ class Client extends BaseModel
$payment_methods_collections = collect($payment_methods); $payment_methods_collections = collect($payment_methods);
$payment_methods_intersect = $payment_methods_collections->intersectByKeys( $payment_methods_collections->flatten(1)->unique() ); $payment_methods_intersect = $payment_methods_collections->intersectByKeys( $payment_methods_collections->flatten(1)->unique() );
$multiplied = $collection->map(function ($item, $key) { $payment_list = $payment_methods_intersect->map(function ($value, $key) {
return $item * 2;
$gateway = $gateways->where('id', $key)->first();
$fee_label = $gateway->calcGatewayFee($amount, $this);
return [
'company_gateway_id' => $key,
'payment_method_id' => $value,
'url' => $label
'label' => ctrans('texts.'$gateway->type->alias) . $fee_label,
];
}); });
} }

View File

@ -127,4 +127,19 @@ class CompanyGateway extends BaseModel
{ {
return ! empty($this->config('enablePayPal')); return ! empty($this->config('enablePayPal'));
} }
/**
* Returns the formatted fee amount for the gateway
*
* @param float $amount The payment amount
* @param Client $client The client object
* @return string The fee amount formatted in the client currency
*/
public function calcGatewayFee($amount, Client $client) :string
{
$fee = '';
}
} }