+ Add generated id for transactions

This commit is contained in:
Djery-Tom 2020-06-25 09:01:59 +01:00
parent ac01a41878
commit 482487643f
7 changed files with 216 additions and 116 deletions

View File

@ -2,10 +2,9 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\Wallet;
use App\Models\User;
use App\Models\WalletsUser; use App\Models\WalletsUser;
use App\Traits\ApiResponser; use App\Traits\ApiResponser;
use App\Traits\Helper;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
@ -13,6 +12,7 @@ use Illuminate\Support\Facades\DB;
class WalletController extends Controller class WalletController extends Controller
{ {
use ApiResponser; use ApiResponser;
use Helper;
/** /**
* Create a new controller instance. * Create a new controller instance.
@ -104,6 +104,9 @@ class WalletController extends Controller
if($wallet){ if($wallet){
$wallet->country = 'Gabon'; $wallet->country = 'Gabon';
$wallet->network = 'iLink World'; $wallet->network = 'iLink World';
$walletUser = WalletsUser::findOrFail($wallet->id);
$init_country = $walletUser->user->network->country->id;
$wallet->currency_code = $this->getCurrency($init_country);
return $this->successResponse($wallet); return $this->successResponse($wallet);
} else } else
return $this->errorResponse(trans('errors.model_not_found',['model'=>'wallet']),Response::HTTP_BAD_REQUEST); return $this->errorResponse(trans('errors.model_not_found',['model'=>'wallet']),Response::HTTP_BAD_REQUEST);

View File

@ -137,13 +137,13 @@ class iLinkTransactionController extends Controller
$transaction->part_reseau_emetteur = $frais; $transaction->part_reseau_emetteur = $frais;
} }
$transaction->commission_hyp = $transaction->part_reseau_emetteur; $transaction->commission_hyp = $transaction->part_reseau_emetteur;
$reseauPayeur->balance_com += $transaction->part_reseau_payeur; $reseauPayeur->balance_com += $this->toMoneyAmount($transaction->part_reseau_payeur,$init_country,$request->final_country);
if ($configPayeur->type == 'ilink') { if ($configPayeur->type == 'ilink') {
$destinataire = User::where('user_code', $request->id_destinataire)->first(); $destinataire = User::where('user_code', $request->id_destinataire)->first();
if ($destinataire) { // Si c'est un wallet ilink if ($destinataire) { // Si c'est un wallet ilink
if ($destinataire->network->country->id == $request->final_country) { if ($destinataire->network->country->id == $request->final_country) {
$walletDestinataire = WalletsUser::where('idUser', $destinataire->id)->firstOrFail(); $walletDestinataire = WalletsUser::where('idUser', $destinataire->id)->firstOrFail();
$walletDestinataire->balance += $montantDepot; $walletDestinataire->balance += $this->toMoneyAmount($montantDepot,$init_country,$request->final_country);
$walletDestinataire->save(); $walletDestinataire->save();
} else { } else {
$country = Country::findOrFail($request->final_country); $country = Country::findOrFail($request->final_country);
@ -156,12 +156,12 @@ class iLinkTransactionController extends Controller
$hyperviseurPayeur = AgentPlus::where('category', 'hyper')->where('network_id', $request->network_destinataire)->firstOrFail(); $hyperviseurPayeur = AgentPlus::where('category', 'hyper')->where('network_id', $request->network_destinataire)->firstOrFail();
if ($hyperviseurPayeur->id == $hyperviseur->id) { //Si c'est le reseau payeur est aussi emetteur if ($hyperviseurPayeur->id == $hyperviseur->id) { //Si c'est le reseau payeur est aussi emetteur
$walletHyperviseur->balance_com += $transaction->part_reseau_payeur; $walletHyperviseur->balance_com += $transaction->part_reseau_payeur;
$reseauPayeur->balance_com += $transaction->part_reseau_emetteur; $reseauPayeur->balance_com += $this->toMoneyAmount($transaction->part_reseau_emetteur,$init_country,$request->final_country);
$transaction->id_wallet_hyp_payeur = $walletHyperviseur->id; $transaction->id_wallet_hyp_payeur = $walletHyperviseur->id;
} else { } else {
$wallet_agent_hypPayeur = WalletAgent::where('agent_id', $hyperviseurPayeur->id)->firstOrFail(); $wallet_agent_hypPayeur = WalletAgent::where('agent_id', $hyperviseurPayeur->id)->firstOrFail();
$walletHyperviseurPayeur = Wallet::findOrFail($wallet_agent_hypPayeur->wallet_id); $walletHyperviseurPayeur = Wallet::findOrFail($wallet_agent_hypPayeur->wallet_id);
$walletHyperviseurPayeur->balance_com += $transaction->part_reseau_payeur; $walletHyperviseurPayeur->balance_com += $this->toMoneyAmount($transaction->part_reseau_payeur,$init_country,$request->final_country);
$transaction->id_wallet_hyp_payeur = $walletHyperviseurPayeur->id; $transaction->id_wallet_hyp_payeur = $walletHyperviseurPayeur->id;
$walletHyperviseurPayeur->save(); $walletHyperviseurPayeur->save();
} }
@ -174,17 +174,22 @@ class iLinkTransactionController extends Controller
$walletHyperviseur->balance_com += $transaction->part_reseau_emetteur; $walletHyperviseur->balance_com += $transaction->part_reseau_emetteur;
$walletUser->balance -= $transaction->montant; $walletUser->balance -= $transaction->montant;
$transaction->id_wallet_hyp = $walletHyperviseur->id; $transaction->id_wallet_hyp = $walletHyperviseur->id;
$transaction->id_transaction = $this->getTransactionID();
$walletHyperviseur->save(); $walletHyperviseur->save();
$walletUser->save(); $walletUser->save();
$reseauPayeur->save(); $reseauPayeur->save();
$transaction->save(); $transaction->save();
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_wallet', $this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_wallet',
['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country), ['id_transaction' => $transaction->id_transaction , 'amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country),
'net_final' => $this->convertMoney($montantDepot, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country), 'net_final' => $this->toMoneyWithCurrency($montantDepot, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country),
'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country),
'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]));
return $this->successResponse(trans('messages.successful_user_send_to_wallet_2',
['amount' => $this->toMoney($transaction->montant, $init_country), 'net_init' => $this->toMoney($montantDepot, $init_country),
'net_final' => $this->toMoneyWithCurrency($montantDepot, $init_country, $request->final_country), 'fees' => $this->toMoney($frais + $taxe, $init_country),
'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country), 'init_country' => $this->getCountryName($init_country), 'final_country' => $this->getCountryName($request->final_country),
'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire])); 'sender_code' => $user->user_code, 'receiver_code' => $transaction->id_destinataire]));
return $this->successResponse(trans('messages.successful_transaction'));
} }
} else { } else {
return $this->errorResponse(trans('messages.incorrect_user_password')); return $this->errorResponse(trans('messages.incorrect_user_password'));
@ -222,9 +227,10 @@ class iLinkTransactionController extends Controller
$transaction->date = new \DateTime(); $transaction->date = new \DateTime();
$walletHyperviseur->save(); $walletHyperviseur->save();
$walletUser->save(); $walletUser->save();
$transaction->id_transaction = $this->getTransactionID();
$transaction->save(); $transaction->save();
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_cart', $this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_user_send_to_cart',
['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $init_country), ['id_transaction' => $transaction->id_transaction, 'amount' => $this->toMoney($transaction->montant, $init_country),
'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country), 'net' => $this->toMoney($montantDepot, $init_country), 'fees' => $this->toMoney($frais, $init_country),
'sender_code' => $user->user_code, 'cart_number' => wordwrap($request->numero_carte, 4, ' ', true)])); 'sender_code' => $user->user_code, 'cart_number' => wordwrap($request->numero_carte, 4, ' ', true)]));
return $this->successResponse(trans('messages.successful_transaction')); return $this->successResponse(trans('messages.successful_transaction'));
@ -394,7 +400,7 @@ class iLinkTransactionController extends Controller
$transaction->save(); $transaction->save();
$this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_deposit_ilink', $this->sendMail($user->email, trans('messages.successful_transaction'), trans('messages.successful_deposit_ilink',
['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantDepot, $request->init_country), ['id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantDepot, $request->init_country),
'net_final' => $this->convertMoney($montantDepot, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country), 'net_final' => $this->toMoneyWithCurrency($montantDepot, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country),
'user_code' => $request->user_code])); 'user_code' => $request->user_code]));
return $this->successResponse(trans('messages.successful_transaction')); return $this->successResponse(trans('messages.successful_transaction'));
} else { } else {
@ -537,7 +543,7 @@ class iLinkTransactionController extends Controller
$this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash', $this->sendMail($request->email_emetteur, trans('messages.successful_transaction'), trans('messages.successful_send_cash',
['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->prenom_destinataire, ['sender_name' => $request->prenom_emetteur . ' ' . $request->nom_emetteur, 'receiver_name' => $request->prenom_destinataire . ' ' . $request->prenom_destinataire,
'id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantRetrait, $request->init_country), 'id_transaction' => $transaction->id, 'amount' => $this->toMoney($transaction->montant, $request->init_country), 'net_init' => $this->toMoney($montantRetrait, $request->init_country),
'net_final' => $this->convertMoney($montantRetrait, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country), 'net_final' => $this->toMoneyWithCurrency($montantRetrait, $request->init_country, $request->final_country), 'fees' => $this->toMoney($frais, $request->init_country), 'tax' => $this->toMoney($taxe, $request->init_country),
'code' => wordwrap($code_retrait, 4, ' ', true)])); 'code' => wordwrap($code_retrait, 4, ' ', true)]));
return $this->successResponse(trans('messages.successful_transaction')); return $this->successResponse(trans('messages.successful_transaction'));
} else { } else {
@ -640,15 +646,17 @@ class iLinkTransactionController extends Controller
$frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_user_wallet_wallet, $request->montant) : $this->calculateFees($plr_user_wallet_wallet_national, $request->montant); $frais = ($init_country != $request->final_country) ? $this->calculateFees($plr_user_wallet_wallet, $request->montant) : $this->calculateFees($plr_user_wallet_wallet_national, $request->montant);
$taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais); $taxe = ($init_country != $request->final_country) ? $this->calculateTax($taxesInternationales, $frais) : $this->calculateTax($taxesNationales, $frais);
$destinataire = User::where('user_code', $request->id_destinataire)->first(); $destinataire = User::where('user_code', $request->id_destinataire)->first();
$data['destinataire'] = $destinataire ? $destinataire->lastname . ' ' . $destinataire->firstname : 'Inconnu'; $data['destinataire'] = $destinataire ? $destinataire->lastname . ' ' . $destinataire->firstname : $request->id_destinataire;
$data['frais'] = $frais + $taxe; $data['frais'] = $this->toMoney($frais + $taxe, $init_country);
$data['montant_net'] = $request->montant - $frais - $taxe; $data['montant_net_init'] = $this->toMoney($request->montant - $frais - $taxe, $init_country);
$data['montant_net_final'] = $this->toMoneyWithCurrency($request->montant - $frais - $taxe, $init_country ,$request->final_country );
return $this->successResponse($data); return $this->successResponse($data);
break; break;
case 2: //User - Envoi de wallet à carte case 2: //User - Envoi de wallet à carte
$frais = $request->montant * $config->taux_com_user_wallet_carte / 100; $frais = $request->montant * $config->taux_com_user_wallet_carte / 100;
$data['frais'] = $frais; $data['frais'] = $this->toMoney($frais, $init_country);
$data['montant_net'] = $request->montant - $frais; $data['montant_net_init'] = $this->toMoney($request->montant - $frais, $init_country);
$data['montant_net_final'] = $this->toMoneyWithCurrency($request->montant - $frais, $init_country ,$request->final_country );
return $this->successResponse($data); return $this->successResponse($data);
break; break;
} }

View File

@ -0,0 +1,52 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Class CountriesCurrency
*
* @property int $id
* @property string $code_dial
* @property string $name
* @property string $code_country
* @property float $longitude
* @property float $latitude
* @property int $idCurrency
* @property string $currency_code
* @property string $currency_name_en
* @property string $currency_name_fr
*
* @package App\Models
*/
class CountriesCurrency extends Model
{
protected $table = 'countries_currencies';
public $incrementing = false;
public $timestamps = false;
protected $casts = [
'id' => 'int',
'longitude' => 'float',
'latitude' => 'float',
'idCurrency' => 'int'
];
protected $fillable = [
'id',
'code_dial',
'name',
'code_country',
'longitude',
'latitude',
'idCurrency',
'currency_code',
'currency_name_en',
'currency_name_fr'
];
}

View File

@ -13,6 +13,7 @@ use Illuminate\Database\Eloquent\Model;
* Class WalletIlinkTransaction * Class WalletIlinkTransaction
* *
* @property int $id * @property int $id
* @property string $id_transaction
* @property float $montant * @property float $montant
* @property float $montant_depot * @property float $montant_depot
* @property float $montant_retrait * @property float $montant_retrait
@ -64,108 +65,109 @@ use Illuminate\Database\Eloquent\Model;
*/ */
class WalletIlinkTransaction extends Model class WalletIlinkTransaction extends Model
{ {
protected $table = 'wallet_ilink_transaction'; protected $table = 'wallet_ilink_transaction';
public $timestamps = false; public $timestamps = false;
protected $casts = [ protected $casts = [
'montant' => 'float', 'montant' => 'float',
'montant_depot' => 'float', 'montant_depot' => 'float',
'montant_retrait' => 'float', 'montant_retrait' => 'float',
'status_retrait' => 'int', 'status_retrait' => 'int',
'network_destinataire' => 'int', 'network_destinataire' => 'int',
'network_emetteur' => 'int', 'network_emetteur' => 'int',
'frais' => 'float', 'frais' => 'float',
'taxe' => 'float', 'taxe' => 'float',
'part_reseau_emetteur' => 'float', 'part_reseau_emetteur' => 'float',
'part_reseau_payeur' => 'float', 'part_reseau_payeur' => 'float',
'init_country' => 'int', 'init_country' => 'int',
'final_country' => 'int', 'final_country' => 'int',
'commission_banque' => 'float', 'commission_banque' => 'float',
'commission_ag' => 'float', 'commission_ag' => 'float',
'commission_sup' => 'float', 'commission_sup' => 'float',
'commission_hyp' => 'float', 'commission_hyp' => 'float',
'id_wallet_user' => 'int', 'id_wallet_user' => 'int',
'id_wallet_ag' => 'int', 'id_wallet_ag' => 'int',
'id_wallet_sup' => 'int', 'id_wallet_sup' => 'int',
'id_wallet_hyp' => 'int', 'id_wallet_hyp' => 'int',
'id_wallet_hyp_payeur' => 'int', 'id_wallet_hyp_payeur' => 'int',
'canceled' => 'int', 'canceled' => 'int',
'type' => 'int' 'type' => 'int'
]; ];
protected $dates = [ protected $dates = [
'date_retrait', 'date_retrait',
'expiration_date', 'expiration_date',
'date' 'date'
]; ];
protected $fillable = [ protected $fillable = [
'montant', 'id_transaction',
'montant_depot', 'montant',
'montant_retrait', 'montant_depot',
'encrypted_code_retrait', 'montant_retrait',
'code_retrait_salt', 'encrypted_code_retrait',
'status_retrait', 'code_retrait_salt',
'date_retrait', 'status_retrait',
'id_destinataire', 'date_retrait',
'type_id_destinataire', 'id_destinataire',
'network_destinataire', 'type_id_destinataire',
'type_document_destinataire', 'network_destinataire',
'id_document_destinataire', 'type_document_destinataire',
'nom_destinataire', 'id_document_destinataire',
'prenom_destinataire', 'nom_destinataire',
'nom_emetteur', 'prenom_destinataire',
'prenom_emetteur', 'nom_emetteur',
'email_emetteur', 'prenom_emetteur',
'network_emetteur', 'email_emetteur',
'type_document_emetteur', 'network_emetteur',
'id_document_emetteur', 'type_document_emetteur',
'frais', 'id_document_emetteur',
'taxe', 'frais',
'part_reseau_emetteur', 'taxe',
'part_reseau_payeur', 'part_reseau_emetteur',
'numero_carte', 'part_reseau_payeur',
'expiration_date', 'numero_carte',
'init_country', 'expiration_date',
'final_country', 'init_country',
'commission_banque', 'final_country',
'commission_ag', 'commission_banque',
'commission_sup', 'commission_ag',
'commission_hyp', 'commission_sup',
'id_wallet_user', 'commission_hyp',
'id_wallet_ag', 'id_wallet_user',
'id_wallet_sup', 'id_wallet_ag',
'id_wallet_hyp', 'id_wallet_sup',
'id_wallet_hyp_payeur', 'id_wallet_hyp',
'canceled', 'id_wallet_hyp_payeur',
'type', 'canceled',
'date' 'type',
]; 'date'
];
public function country() public function country()
{ {
return $this->belongsTo(Country::class, 'final_country'); return $this->belongsTo(Country::class, 'final_country');
} }
public function wallet() public function wallet()
{ {
return $this->belongsTo(Wallet::class, 'id_wallet_sup'); return $this->belongsTo(Wallet::class, 'id_wallet_hyp_payeur');
} }
public function wallets_user() public function wallets_user()
{ {
return $this->belongsTo(WalletsUser::class, 'id_wallet_user'); return $this->belongsTo(WalletsUser::class, 'id_wallet_user');
} }
public function type_ilink_transaction() public function type_ilink_transaction()
{ {
return $this->belongsTo(TypeIlinkTransaction::class, 'type'); return $this->belongsTo(TypeIlinkTransaction::class, 'type');
} }
public function network() public function network()
{ {
return $this->belongsTo(Network::class, 'network_emetteur'); return $this->belongsTo(Network::class, 'network_emetteur');
} }
// Regles de validation // Regles de validation
//Envoi de cash vers wallet iLink //Envoi de cash vers wallet iLink

View File

@ -4,7 +4,9 @@
namespace App\Traits; namespace App\Traits;
use App\Models\CountriesCurrency;
use App\Models\Country; use App\Models\Country;
use DateTime;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use Brick\Money\CurrencyConverter; use Brick\Money\CurrencyConverter;
use Brick\Money\ExchangeRateProvider\PDOProvider; use Brick\Money\ExchangeRateProvider\PDOProvider;
@ -62,7 +64,7 @@ trait Helper
return $money->formatTo('fr_FR'); return $money->formatTo('fr_FR');
} }
public function convertMoney($amount , $init_country , $final_country) private function convertMoney($amount , $init_country , $final_country)
{ {
// set to whatever your rates are relative to // set to whatever your rates are relative to
$baseCurrency = 'USD'; $baseCurrency = 'USD';
@ -88,12 +90,25 @@ trait Helper
$init_country = Country::findOrFail($init_country); $init_country = Country::findOrFail($init_country);
$final_country = Country::findOrFail($final_country); $final_country = Country::findOrFail($final_country);
$init_money = Money::of(round($amount, 0),$init_country->currency->code);; $init_money = Money::of(round($amount, 0),$init_country->currency->code);;
$final_money = $converter->convert($init_money, $final_country->currency->code, RoundingMode::DOWN); return $converter->convert($init_money, $final_country->currency->code, RoundingMode::DOWN);
return $final_money->formatTo('fr_FR');
} }
public function getNetworkEmetteur($id_wallet){ public function toMoneyWithCurrency($amount , $init_country , $final_country){
return $this->convertMoney($amount , $init_country , $final_country)->formatTo('fr_FR');
} }
public function toMoneyAmount($amount , $init_country , $final_country){
return $this->convertMoney($amount , $init_country , $final_country)->getAmount()->toFloat();
}
public function getTransactionID(){
$d = new DateTime();
$first = str_replace(['-',':'], '',$d->format("Y-m-d H:i:s.u"));
return str_replace(' ' ,'.',$first);
}
public function getCurrency($id_country){
$cc = CountriesCurrency::findOrFail($id_country);
return $cc->currency_code;
}
} }

View File

@ -48,6 +48,16 @@ Transaction information:
'successful_user_send_to_wallet' => 'Money sent to a wallet. 'successful_user_send_to_wallet' => 'Money sent to a wallet.
Transaction information: Transaction information:
- Transaction ID : :id_transaction - Transaction ID : :id_transaction
- Amount of the transaction : :amount
- Country of departure: :init_country
- Net amount of the country of departure : :net_init
- Country of destination: :final_country
- Net amount of the destination country : :net_final
- Fees + Tax : :fees
- Number of the sending wallet: :sender_code
- Number of the recipient wallet: :receiver_code',
'successful_user_send_to_wallet_2' => 'Money sent to a wallet.
Transaction information:
- Amount of the transaction : :amount - Amount of the transaction : :amount
- Country of departure: :init_country - Country of departure: :init_country
- Net amount of the country of departure : :net_init - Net amount of the country of departure : :net_init

View File

@ -48,6 +48,16 @@ Informations de la transaction :
'successful_user_send_to_wallet' => 'Envoi d\'argent vers un wallet effectué. 'successful_user_send_to_wallet' => 'Envoi d\'argent vers un wallet effectué.
Informations de la transaction : Informations de la transaction :
- Transaction ID : :id_transaction - Transaction ID : :id_transaction
- Montant de la transaction : :amount
- Pays de départ : :init_country
- Montant net du pays de départ : :net_init
- Pays de destination : :final_country
- Montant net du pays de destination : :net_final
- Frais et Taxe : :fees
- Numero du wallet émetteur : :sender_code
- Numero du wallet destinataire : :receiver_code',
'successful_user_send_to_wallet_2' => 'Envoi d\'argent vers un wallet effectué.
Informations de la transaction :
- Montant de la transaction : :amount - Montant de la transaction : :amount
- Pays de départ : :init_country - Pays de départ : :init_country
- Montant net du pays de départ : :net_init - Montant net du pays de départ : :net_init