• File: UserKycController.php
  • Full Path: /var/www/lastworkingimaliapi/app/Http/Controllers/UserKycController.php
  • Date Modified: 10/16/2022 1:09 AM
  • File size: 5.18 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Controllers;

use App\Bank\Payment;
use App\Classes\Kyc;
use App\Imali\ImaliAccount;
use App\Imali\ImaliAccountConfig;
use App\Imali\Transfer;
use Illuminate\Http\Request;

class UserKycController extends Controller
{
    public function check(Request $request)
    {
        $kyc = new Kyc();

        $result = $kyc->checkSender($request);

        if ($result) {
            return $result;
        } else {
            return response()->json(['message' => 'KYC Verificado'], 200);
        }

//        $sender = ImaliAccount::query()
//            ->join('users', 'users.id', '=', 'imali_accounts.user_id')
//            ->join('imali_account_configs', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
//            ->where('imali_accounts.user_id', $request->id)
//            ->first();
//
//       $receiver = ImaliAccount::query()
//           ->join('users', 'users.id', '=', 'imali_accounts.user_id')
//           ->join('imali_account_configs', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
//           ->where('imali_accounts.user_id', $request->receiver_id)
//           ->select('imali_accounts.*', 'users.name', 'imali_account_configs.*')
//           ->first();
//
//       $payments  = Transfer::query()
//                                 ->whereDate('created_at', date('Y-m-d'))
//                                 ->where('reciever_id', $request->receiver_id)
//                                 ->count();
//
//        $transferencias = Transfer::query()->where('sender_id', $request->id)->whereYear('created_at', date('Y'))->sum('amount');
//        $pagamentos = Payment::query()->where('sender_id', $request->id)->whereYear('created_at', date('Y'))->sum('amount');
//
//        $total = $pagamentos + $transferencias;
//
//
//        if ($total >= $sender->max_value_year) {
//          return response()->json(['message' => 'Atingiu o limite de transanccões ao Ano'], 400);
//        }
//
//        if ($sender->max_value_operation < $request->amount) {
//            return response()->json(['message' => 'Limite por transacção '.$sender->max_value_operation, 'INS-1' => 400], 400);
//        }
//
//        if ($receiver->balance >= $sender->max_balance) {
//            return response()->json(['message' => 'Problemas na conta do '. $receiver->name, 'INS-2' => 400], 400);
//        }
//        if ($payments > $receiver->	nr_transaction){
//            return response()->json(['message' => $receiver->name.' atingiu o limite diário' , 'INS-3' => 400, $receiver], 400);
//        }
    }

    public function makeCheck(Request $request)
    {

        $kyc = new Kyc();

        $result = $kyc->checkRecharge($request);

        if ($result) {
            return $result;
        } else {
            return response()->json(['message' => 'KYC Verificado recharge'], 200);
        }
    }

    public function checkSenderPayment(Request $request)
    {
        $kyc = new Kyc();
        $kycCheck = $kyc->checkSenderPayment($request);

        if ($kycCheck) {
            return $kycCheck;
        } else {
            return response()->json(['message' => 'KYC Verificado recharge'], 200);
        }
    }

    public function deleteKyc($id)
    {
        $kyc = ImaliAccountConfig::query()
            ->join('imali_accounts', 'imali_account_configs.id', '=', 'imali_accounts.imali_account_config')
            ->where('imali_account_configs.id','=',$id)
            ->select('imali_account_configs.*')
            ->count();


        if ($kyc>0) {
            return response()->json(['message' => 'Este kYC já está sendo Utilizado'], 400);
        } else {
            $kycD = ImaliAccountConfig::find($id);

            $kycD->delete();

            return response()->json(['message' => 'Kyc'.$kycD->level.' eliminado com Sucesso']);
        }
    }

    public function saveKyc(Request $request)
    {
        ImaliAccountConfig::create([
            'taxa' => $request->taxa,
            'level' => $request->level,
            'nr_transaction' => $request->nr_transaction,
            'point_value' => $request->point_value,
            'max_value_operation' => $request->max_value_operation,
            'min_value_operation' => $request->min_value_operation,
            'max_value_year' => $request->max_value_year,
            'max_balance' => $request->max_balance
        ]);

        return response()->json(['message' => 'Kyc eliminado com Sucesso']);
    }
    public function updateKyc(Request $request)
    {
        $update2 = ImaliAccountConfig::find($request->id);

        $update2->update([
            'taxa' => $request->taxa,
            'level' => $request->level,
            'nr_transaction' => $request->nr_transaction,
            'point_value' => $request->point_value,
            'max_value_operation' => $request->max_value_operation,
            'min_value_operation' => $request->min_value_operation,
            'max_value_year' => $request->max_value_year,
            'max_balance' => $request->max_balance
        ]);

        return response()->json(['message' => 'Kyc actualizado com Sucesso']);
    }
}