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 = {
* "user_payement_of_operator" : {
* "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",
* "value": {"type":20,"id_wallet_user":1,"montant":100000,"password":"1234"}
* },
* "user_send_from_wallet_to_bank" : {
* "summary" : "User - Envoi de wallet à banque",
* "value": {"type":4,"id_wallet_user":9,"id_wallet_network":101,"montant":100000,"password":"1234"}
* },
* "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"}
* },
* @OA\Examples(
* example = "user_payement_of_operator",
* 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"}
* ),
* @OA\Examples(
* example = "user_remove_from_bank_to_wallet",
* summary = "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur",
* value = {"type":20,"id_wallet_user":1,"montant":100000,"password":"1234"}
* ),
* @OA\Examples(
* example = "user_send_from_wallet_to_bank",
* summary = "User - Envoi de wallet à banque",
* value = {"type":4,"id_wallet_user":9,"id_wallet_network":101,"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",
* ),
* examples = {
* "user_payement_of_operator" : {
* "summary" : "User - Payer une facture chez un opérateur donné",
* "value" : {
* @OA\Examples(
* example = "user_payement_of_operator" ,
* summary = "User - Payer une facture chez un opérateur donné",
* value = {
* "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
- 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
* }
* },
* "user_remove_from_bank_to_wallet" : {
* "summary" : "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur",
* "value" : {
* ),
* @OA\Examples(
* example = "user_remove_from_bank_to_wallet",
* summary = "User - Retrait du compte bancaire rattaché vers le wallet de l'utilisateur",
* value = {
* "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
- 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
* }
* },
* "user_send_from_wallet_to_bank" : {
* "summary" : "User - Envoi de wallet à banque",
* "value" : {
* ),
* @OA\Examples(
* example = "user_send_from_wallet_to_bank",
* summary = "User - Envoi de wallet à banque",
* value = {
* "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
- 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
* }
* },
* "agent_send_from_cash_to_bank" : {
* "summary" : "Agent - Envoi de cash vers banque",
* "value" : {
* ),
* @OA\Examples(
* example = "agent_send_from_cash_to_bank" ,
* summary = "Agent - Envoi de cash vers banque",
* value = {
* "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
- 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
* }
* },
* ),
* }
* )
* )
@ -563,7 +571,7 @@ class iLinkTransactionController extends Controller
// $transaction->save();
Log::info('-------------------------- User - Envoi de wallet à banque ------------------------------------');
Log::info($transaction->toArray());
Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_send_to_bank',
@ -1346,7 +1354,7 @@ class iLinkTransactionController extends Controller
// $transaction->save();
Log::info('-------------------------- Agent - Envoi de cash vers banque ------------------------------------');
Log::info($transaction->toArray());
Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_agent_send_from_cash_to_bank',
@ -1449,7 +1457,7 @@ class iLinkTransactionController extends Controller
// $transaction->save();
Log::info('-------------------------- User - Payer une facture chez un operateur ------------------------------------');
Log::info($transaction->toArray());
Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_payment_of_operator',
@ -1544,7 +1552,7 @@ class iLinkTransactionController extends Controller
// $transaction->save();
Log::info('-------------------------- User - Retrait de la banque vers le wallet ------------------------------------');
Log::info($transaction->toArray());
Log::info(json_encode($transaction));
Log::info('------------------------------------------------------------------------------------------------');
$message = trans('messages.successful_user_remove_from_bank_to_wallet',
@ -1856,6 +1864,7 @@ class iLinkTransactionController extends Controller
private function calculateFees(array $paliers, $montant)
{
$size = sizeof($paliers);
$fees = 0;
if ($size > 0) {
$min = $paliers[0]->min;
$max = $paliers[$size - 1]->max;
@ -1868,15 +1877,22 @@ class iLinkTransactionController extends Controller
}
if ($palier) {
return (($palier->min + $palier->max) / 2 * $palier->taux / 100);
$fees = (($palier->min + $palier->max) / 2 * $palier->taux / 100);
} else {
if ($montant < $min)
return $min * $paliers[0]->taux / 100;
else if ($montant > $max)
return $max * $paliers[$size - 1]->taux / 100;
if ($montant < $min) {
$palier = $paliers[0];
$fees = $min * $palier->taux / 100;
} else if ($montant > $max) {
$palier = $paliers[$size - 1];
$fees = $max * $palier->taux / 100;
}
}
if (!empty($palier->plafond) && ($fees > $palier->plafond)) {
$fees = $palier->plafond;
}
}
return 0;
return $fees;
}

View File

@ -10,14 +10,15 @@ use Illuminate\Database\Eloquent\Model;
/**
* Class PaliersConfigWallet
*
*
* @property int $id
* @property string $type
* @property float $min
* @property float $max
* @property float $taux
* @property float $plafond
* @property int $idConfig
*
*
* @property ConfigWallet $config_wallet
*
* @package App\Models
@ -28,19 +29,21 @@ class PaliersConfigWallet extends Model
public $timestamps = false;
protected $casts = [
'min' => 'float',
'max' => 'float',
'taux' => 'float',
'idConfig' => 'int'
];
'min' => 'float',
'max' => 'float',
'taux' => 'float',
'plafond' => 'float',
'idConfig' => 'int'
];
protected $fillable = [
'type',
'min',
'max',
'taux',
'idConfig'
];
'type',
'min',
'max',
'taux',
'plafond',
'idConfig'
];
public function config_wallet()
{

View File

@ -15,7 +15,8 @@
"laravel/lumen-framework": "^8.0",
"maatwebsite/excel": "^3.1",
"simplesoftwareio/simple-qrcode": "^4.2",
"twilio/sdk": "^6.28"
"twilio/sdk": "^6.28",
"ext-json": "*"
},
"require-dev": {
"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');
});
}
}