+ Update methode to linking bank account to user's wallet
This commit is contained in:
parent
efe050f1a8
commit
d66558708b
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use App\Models\Network;
|
||||
use App\Models\NetworksOperator;
|
||||
use App\Models\User;
|
||||
use App\Models\UsersBankingAccountVerification;
|
||||
use App\Models\WalletAgent;
|
||||
use App\Models\WalletsUser;
|
||||
use App\Traits\ApiResponser;
|
||||
|
@ -517,6 +518,90 @@ INNER JOIN countries c ON oc.id_country = c.id INNER JOIN type_operators top ON
|
|||
* )
|
||||
* )
|
||||
*/
|
||||
|
||||
/**
|
||||
* @OA\Schema(
|
||||
* schema="user_link_bank_account_frame",
|
||||
* title="User - Rattacher le compte bancaire à son wallet - Trame envoyé",
|
||||
* @OA\Property(property="id_wallet_user",
|
||||
* type="integer",
|
||||
* example=9,
|
||||
* description="ID du wallet de l'agent enregistré dans la base de données"
|
||||
* ),
|
||||
* @OA\Property(property="id_wallet_network",
|
||||
* type="integer",
|
||||
* example=101,
|
||||
* description="ID du reseau enregistré dans la base de données auquel appartient le wallet"
|
||||
* ),
|
||||
* @OA\Property(property="iban",
|
||||
* type="string",
|
||||
* description="Identifiant bancaire"
|
||||
* ),
|
||||
* @OA\Property(property="id_bank",
|
||||
* type="integer",
|
||||
* example=4,
|
||||
* description="ID de la banque enregistré dans la base de données"
|
||||
* ),
|
||||
* @OA\Property(property="lastname",
|
||||
* type="string",
|
||||
* description="Noms de l'emetteur"
|
||||
* ),
|
||||
* @OA\Property(property="firstname",
|
||||
* type="string",
|
||||
* description="Prenoms de l'emetteur"
|
||||
* ),
|
||||
* @OA\Property(property="email_emetteur",
|
||||
* type="string",
|
||||
* description="Email de l'emetteur"
|
||||
* ),
|
||||
* @OA\Property(property="type_document_emetteur",
|
||||
* type="string",
|
||||
* description="Type de document que l'emetteur a fourni pour son identification"
|
||||
* ),
|
||||
* @OA\Property(property="id_document_emetteur",
|
||||
* type="string",
|
||||
* description="ID de l'emetteur sur le document qu'il a fourni pour son identification"
|
||||
* ),
|
||||
* @OA\Property(property="nom_destinataire",
|
||||
* type="string",
|
||||
* description="Noms du destinataire"
|
||||
* ),
|
||||
* @OA\Property(property="prenom_destinataire",
|
||||
* type="string",
|
||||
* description="Prenoms du destinataire"
|
||||
* ),
|
||||
* @OA\Property(property="montant",
|
||||
* type="number",
|
||||
* example = 10000,
|
||||
* description="Montant de la transaction"
|
||||
* ),
|
||||
* @OA\Property(property="frais",
|
||||
* type="number",
|
||||
* example = 100,
|
||||
* description="Montant des frais de la transaction"
|
||||
* ),
|
||||
* @OA\Property(property="taxe",
|
||||
* type="number",
|
||||
* example = 50,
|
||||
* description="Montant des taxes de la transaction"
|
||||
* ),
|
||||
* @OA\Property(property="commission_hyp",
|
||||
* type="number",
|
||||
* example = 25,
|
||||
* description="Montant de la commission de l'hyperviseur du réseau sur la transaction"
|
||||
* ),
|
||||
* @OA\Property(property="commission_sup",
|
||||
* type="number",
|
||||
* example = 25,
|
||||
* description="Montant de la commission du superviseur de l'agent du réseau sur la transaction"
|
||||
* ),
|
||||
* @OA\Property(property="commission_ag",
|
||||
* type="number",
|
||||
* example = 25,
|
||||
* description="Montant de la commission de l'agent géolocalisé sur la transaction"
|
||||
* ),
|
||||
* )
|
||||
*/
|
||||
// Rattacher le compte bancaire au wallet
|
||||
public function linkBankAccount(Request $request)
|
||||
{
|
||||
|
@ -557,6 +642,17 @@ INNER JOIN countries c ON oc.id_country = c.id INNER JOIN type_operators top ON
|
|||
return $this->errorResponse(trans('errors.bank_not_match_iban'));
|
||||
}
|
||||
|
||||
$user_banking_account_verif = new UsersBankingAccountVerification();
|
||||
$user_banking_account_verif->id_transaction = $this->getTransactionID();
|
||||
$user_banking_account_verif->iban = $request->iban;
|
||||
$user_banking_account_verif->user_code = $user->user_code;
|
||||
$user_banking_account_verif->id_bank_country = $request->id_bank;
|
||||
$user_banking_account_verif->is_verified = $user_banking_account_verif->was_treated = 0;
|
||||
$user_banking_account_verif->id_network = $request->id_wallet_network;
|
||||
$user_banking_account_verif->save();
|
||||
|
||||
$request->id_transaction = $user_banking_account_verif->id_transaction;
|
||||
|
||||
// Envoyer une requete vers la banque contant ses informations personnelles pour verfication du code iban
|
||||
Log::info('-------------------------- User - Rattacher le compte bancaire au wallet ------------------------------------');
|
||||
Log::info(array_merge($request->toArray(), $identification->toArray()));
|
||||
|
@ -564,4 +660,14 @@ INNER JOIN countries c ON oc.id_country = c.id INNER JOIN type_operators top ON
|
|||
|
||||
return $this->successResponse(trans('messages.successful_bank_account_attachment_taken'));
|
||||
}
|
||||
|
||||
private function getTransactionID()
|
||||
{
|
||||
do {
|
||||
$code = $this->generateTransactionCode();
|
||||
$result = collect(DB::select('SELECT * FROM users_banking_account_verification WHERE id_transaction = :code', ['code' => $code]));
|
||||
$codeCorrect = sizeof($result) < 0;
|
||||
} while ($codeCorrect);
|
||||
return $code;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Created by Reliese Model.
|
||||
*/
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class UsersBankingAccountVerification
|
||||
*
|
||||
* @property int $id
|
||||
* @property string $id_transaction
|
||||
* @property string $user_code
|
||||
* @property string $iban
|
||||
* @property int $id_bank_country
|
||||
* @property int $id_network
|
||||
* @property bool $is_verified
|
||||
* @property bool $was_treated
|
||||
* @property Carbon $created_at
|
||||
* @property Carbon $updated_at
|
||||
*
|
||||
* @package App\Models
|
||||
*/
|
||||
class UsersBankingAccountVerification extends Model
|
||||
{
|
||||
protected $table = 'users_banking_account_verification';
|
||||
|
||||
protected $casts = [
|
||||
'id_bank_country' => 'int',
|
||||
'id_network' => 'int',
|
||||
'is_verified' => 'bool',
|
||||
'was_treated' => 'bool'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'id_transaction',
|
||||
'user_code',
|
||||
'iban',
|
||||
'id_bank_country',
|
||||
'id_network',
|
||||
'is_verified',
|
||||
'was_treated'
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue