<?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']); } }