diff --git a/app/Http/Controllers/WalletController.php b/app/Http/Controllers/WalletController.php index 487b421..b1ceb88 100755 --- a/app/Http/Controllers/WalletController.php +++ b/app/Http/Controllers/WalletController.php @@ -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; + } } diff --git a/app/Models/UsersBankingAccountVerification.php b/app/Models/UsersBankingAccountVerification.php new file mode 100644 index 0000000..23db113 --- /dev/null +++ b/app/Models/UsersBankingAccountVerification.php @@ -0,0 +1,48 @@ + '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' + ]; +}