Fix Swagger bugs and add ceiling (plafond) to ilink paliers config wallet

This commit is contained in:
Djery-Tom 2022-04-14 19:27:06 +01:00
parent f92c63fd54
commit 765ca8d963
4 changed files with 108 additions and 56 deletions

View File

@ -63,22 +63,26 @@ class iLinkTransactionController extends Controller
* } * }
* ), * ),
* examples = { * examples = {
* "user_payement_of_operator" : { * @OA\Examples(
* "summary" : "User - Payer une facture chez un opérateur donné", * example = "user_payement_of_operator",
* "value" : {"type":19,"id_wallet_user":9,"id_wallet_network":101,"no_facture":"CDE1425533","type_operator":"water","id_operator":6,"montant":100000,"password":"1234"} * summary = "User - Payer une facture chez un opérateur donné",
* }, * value = {"type":19,"id_wallet_user":9,"id_wallet_network":101,"no_facture":"CDE1425533","type_operator":"water","id_operator":6,"montant":100000,"password":"1234"}
* "user_remove_from_bank_to_wallet" : { * ),
* "summary" : "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur", * @OA\Examples(
* "value": {"type":20,"id_wallet_user":1,"montant":100000,"password":"1234"} * example = "user_remove_from_bank_to_wallet",
* }, * summary = "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur",
* "user_send_from_wallet_to_bank" : { * value = {"type":20,"id_wallet_user":1,"montant":100000,"password":"1234"}
* "summary" : "User - Envoi de wallet à banque", * ),
* "value": {"type":4,"id_wallet_user":9,"id_wallet_network":101,"montant":100000,"password":"1234"} * @OA\Examples(
* }, * example = "user_send_from_wallet_to_bank",
* "agent_send_from_cash_to_bank" : { * summary = "User - Envoi de wallet à banque",
* "summary" : "Agent - Envoi de cash vers banque", * value = {"type":4,"id_wallet_user":9,"id_wallet_network":101,"montant":100000,"password":"1234"}
* "value" : {"type":18,"id_wallet_agent":9716,"id_wallet_network":101,"iban":"CM15UBAA412341234123412341233","id_bank":4,"nom_emetteur":"Djery","prenom_emetteur":"Tom","email_emetteur":"ddietchi@ilink-app.com","type_document_emetteur":"passport","id_document_emetteur":"12345","nom_destinataire":"Brice","prenom_destinataire":"zele","montant":100000,"password":"1234"} * ),
* }, * @OA\Examples(
* example = "agent_send_from_cash_to_bank",
* summary = "Agent - Envoi de cash vers banque",
* value = {"type":18,"id_wallet_agent":9716,"id_wallet_network":101,"iban":"CM15UBAA412341234123412341233","id_bank":4,"nom_emetteur":"Djery","prenom_emetteur":"Tom","email_emetteur":"ddietchi@ilink-app.com","type_document_emetteur":"passport","id_document_emetteur":"12345","nom_destinataire":"Brice","prenom_destinataire":"zele","montant":100000,"password":"1234"}
* )
* } * }
* ) * )
* ), * ),
@ -91,42 +95,46 @@ class iLinkTransactionController extends Controller
* ref="#/components/schemas/ApiResponse", * ref="#/components/schemas/ApiResponse",
* ), * ),
* examples = { * examples = {
* "user_payement_of_operator" : { * @OA\Examples(
* "summary" : "User - Payer une facture chez un opérateur donné", * example = "user_payement_of_operator" ,
* "value" : { * summary = "User - Payer une facture chez un opérateur donné",
* value = {
* "status" : 200, * "status" : 200,
* "response" : "Paiement d'une facture chez un operateur\nInformations de la transaction :\n - Numéro : 7S9PZO26VAQ3\n - Montant de la transaction : 100000 FCFA\n * "response" : "Paiement d'une facture chez un operateur\nInformations de la transaction :\n - Numéro : 7S9PZO26VAQ3\n - Montant de la transaction : 100000 FCFA\n
- Frais : 0 FCFA\n - Montant net payé: 100000 FCFA\n - Compte émetteur : s6LD9PmCJC\n - Operateur : CDE\n - Type d'operateur : Opérateur d'eau\n - No facture : CDE1425533\n\nCe message a été envoyé dans le mail de l'émetteur", - Frais : 0 FCFA\n - Montant net payé: 100000 FCFA\n - Compte émetteur : s6LD9PmCJC\n - Operateur : CDE\n - Type d'operateur : Opérateur d'eau\n - No facture : CDE1425533\n\nCe message a été envoyé dans le mail de l'émetteur",
* "error":null * "error":null
* } * }
* }, * ),
* "user_remove_from_bank_to_wallet" : { * @OA\Examples(
* "summary" : "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur", * example = "user_remove_from_bank_to_wallet",
* "value" : { * summary = "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur",
* value = {
* "status" : 200, * "status" : 200,
* "response" : "Retrait de la banque vers le wallet\nInformations de la transaction :\n - Numéro : 2XWQD7ZD9E7R\n - Montant de la transaction : 100000 FCFA\n * "response" : "Retrait de la banque vers le wallet\nInformations de la transaction :\n - Numéro : 2XWQD7ZD9E7R\n - Montant de la transaction : 100000 FCFA\n
- Frais : 0 FCFA\n - Montant net d\\'envoi: 100000 FCFA\n - Compte émetteur : BZdsWkdfl\n - Banque : UBA Cameroon\n - IBAN : \n\nCe message a été envoyé dans le mail de l'émetteur", - Frais : 0 FCFA\n - Montant net d\\'envoi: 100000 FCFA\n - Compte émetteur : BZdsWkdfl\n - Banque : UBA Cameroon\n - IBAN : \n\nCe message a été envoyé dans le mail de l'émetteur",
* "error":null * "error":null
* } * }
* }, * ),
* "user_send_from_wallet_to_bank" : { * @OA\Examples(
* "summary" : "User - Envoi de wallet à banque", * example = "user_send_from_wallet_to_bank",
* "value" : { * summary = "User - Envoi de wallet à banque",
* value = {
* "status" : 200, * "status" : 200,
* "response" : "Envoi d'argent de votre compte vers la banque\nInformations de la transaction :\n - Numéro : NA69C5RTBY7B\n - Montant de la transaction : 100000 FCFA\n * "response" : "Envoi d'argent de votre compte vers la banque\nInformations de la transaction :\n - Numéro : NA69C5RTBY7B\n - Montant de la transaction : 100000 FCFA\n
- Frais : 0 FCFA\n - Montant net d'envoi: 100000 FCFA\n - Compte émetteur : s6LD9PmCJC\n - Banque : UBA Cameroon\n - IBAN : \n\nCe message a été envoyé dans le mail de l'émetteur", - Frais : 0 FCFA\n - Montant net d'envoi: 100000 FCFA\n - Compte émetteur : s6LD9PmCJC\n - Banque : UBA Cameroon\n - IBAN : \n\nCe message a été envoyé dans le mail de l'émetteur",
* "error":null * "error":null
* } * }
* }, * ),
* "agent_send_from_cash_to_bank" : { * @OA\Examples(
* "summary" : "Agent - Envoi de cash vers banque", * example = "agent_send_from_cash_to_bank" ,
* "value" : { * summary = "Agent - Envoi de cash vers banque",
* value = {
* "status" : 200, * "status" : 200,
* "response" : "Envoi d'argent en cash vers la banque\nInformations de la transaction :\n - Numéro : E58K8ZFPB5AN\n - Montant de la transaction : 100000 FCFA\n - Frais : 0 FCFA\n - Montant net d'envoi: 100000 FCFA\n * "response" : "Envoi d'argent en cash vers la banque\nInformations de la transaction :\n - Numéro : E58K8ZFPB5AN\n - Montant de la transaction : 100000 FCFA\n - Frais : 0 FCFA\n - Montant net d'envoi: 100000 FCFA\n
- Compte de l'agent : 38LEDBostp\n - Noms de l'emetteur : Tom Djery\n - Noms du destinataire : zele Brice\n - IBAN du destinataire : CM15UBAA412341234123412341233\n - Banque : UBA Cameroon\n\nCe message a été envoyé dans le mail de l'émetteur", - Compte de l'agent : 38LEDBostp\n - Noms de l'emetteur : Tom Djery\n - Noms du destinataire : zele Brice\n - IBAN du destinataire : CM15UBAA412341234123412341233\n - Banque : UBA Cameroon\n\nCe message a été envoyé dans le mail de l'émetteur",
* "error":null * "error":null
* } * }
* }, * ),
* } * }
* ) * )
* ) * )
@ -563,7 +571,7 @@ class iLinkTransactionController extends Controller
// $transaction->save(); // $transaction->save();
Log::info('-------------------------- User - Envoi de wallet à banque ------------------------------------'); Log::info('-------------------------- User - Envoi de wallet à banque ------------------------------------');
Log::info($transaction->toArray()); Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------'); Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_send_to_bank', $message = trans('messages.successful_user_send_to_bank',
@ -1346,7 +1354,7 @@ class iLinkTransactionController extends Controller
// $transaction->save(); // $transaction->save();
Log::info('-------------------------- Agent - Envoi de cash vers banque ------------------------------------'); Log::info('-------------------------- Agent - Envoi de cash vers banque ------------------------------------');
Log::info($transaction->toArray()); Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------'); Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_agent_send_from_cash_to_bank', $message = trans('messages.successful_agent_send_from_cash_to_bank',
@ -1449,7 +1457,7 @@ class iLinkTransactionController extends Controller
// $transaction->save(); // $transaction->save();
Log::info('-------------------------- User - Payer une facture chez un operateur ------------------------------------'); Log::info('-------------------------- User - Payer une facture chez un operateur ------------------------------------');
Log::info($transaction->toArray()); Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------'); Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_payment_of_operator', $message = trans('messages.successful_user_payment_of_operator',
@ -1544,7 +1552,7 @@ class iLinkTransactionController extends Controller
// $transaction->save(); // $transaction->save();
Log::info('-------------------------- User - Retrait de la banque vers le wallet ------------------------------------'); Log::info('-------------------------- User - Retrait de la banque vers le wallet ------------------------------------');
Log::info($transaction->toArray()); Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------'); Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_remove_from_bank_to_wallet', $message = trans('messages.successful_user_remove_from_bank_to_wallet',
@ -1856,6 +1864,7 @@ class iLinkTransactionController extends Controller
private function calculateFees(array $paliers, $montant) private function calculateFees(array $paliers, $montant)
{ {
$size = sizeof($paliers); $size = sizeof($paliers);
$fees = 0;
if ($size > 0) { if ($size > 0) {
$min = $paliers[0]->min; $min = $paliers[0]->min;
$max = $paliers[$size - 1]->max; $max = $paliers[$size - 1]->max;
@ -1868,15 +1877,22 @@ class iLinkTransactionController extends Controller
} }
if ($palier) { if ($palier) {
return (($palier->min + $palier->max) / 2 * $palier->taux / 100); $fees = (($palier->min + $palier->max) / 2 * $palier->taux / 100);
} else { } else {
if ($montant < $min) if ($montant < $min) {
return $min * $paliers[0]->taux / 100; $palier = $paliers[0];
else if ($montant > $max) $fees = $min * $palier->taux / 100;
return $max * $paliers[$size - 1]->taux / 100; } else if ($montant > $max) {
$palier = $paliers[$size - 1];
$fees = $max * $palier->taux / 100;
} }
} }
return 0;
if (!empty($palier->plafond) && ($fees > $palier->plafond)) {
$fees = $palier->plafond;
}
}
return $fees;
} }

View File

@ -16,6 +16,7 @@ use Illuminate\Database\Eloquent\Model;
* @property float $min * @property float $min
* @property float $max * @property float $max
* @property float $taux * @property float $taux
* @property float $plafond
* @property int $idConfig * @property int $idConfig
* *
* @property ConfigWallet $config_wallet * @property ConfigWallet $config_wallet
@ -31,6 +32,7 @@ class PaliersConfigWallet extends Model
'min' => 'float', 'min' => 'float',
'max' => 'float', 'max' => 'float',
'taux' => 'float', 'taux' => 'float',
'plafond' => 'float',
'idConfig' => 'int' 'idConfig' => 'int'
]; ];
@ -39,6 +41,7 @@ class PaliersConfigWallet extends Model
'min', 'min',
'max', 'max',
'taux', 'taux',
'plafond',
'idConfig' 'idConfig'
]; ];

View File

@ -15,7 +15,8 @@
"laravel/lumen-framework": "^8.0", "laravel/lumen-framework": "^8.0",
"maatwebsite/excel": "^3.1", "maatwebsite/excel": "^3.1",
"simplesoftwareio/simple-qrcode": "^4.2", "simplesoftwareio/simple-qrcode": "^4.2",
"twilio/sdk": "^6.28" "twilio/sdk": "^6.28",
"ext-json": "*"
}, },
"require-dev": { "require-dev": {
"fzaninotto/faker": "^1.9.1", "fzaninotto/faker": "^1.9.1",

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddPlafondToPaliersConfigWallet extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('paliersConfigWallet', function (Blueprint $table) {
$table->decimal('plafond', 10, 2)->nullable()->after('taux');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('paliersConfigWallet', function (Blueprint $table) {
$table->dropColumn('plafond');
});
}
}