<?php
namespace App\Http\Controllers;
use App\Bank\Payment;
use App\Classes\Comerciante;
use App\Classes\GenerateImaliAccount;
use App\Classes\Record;
use App\Imali\ImaliAccount;
use App\Imali\MerchantAccount;
use App\Imali\MerchantContract;
use App\Imali\RamoActivity;
use App\Imali\RechargeImaliAccount;
use App\Store;
use App\StoreConfig;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use QRCode;
use Webpatser\Uuid\Uuid;
class ComercianteController extends Controller
{
public function getUserByImaliAccount($account_number)
{
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
// ->join('recharge_imali_accounts', 'recharge_imali_accounts.imali_account_id', '=', 'imali_accounts.id')
->where('imali_accounts.account_number', $account_number)
->first();
$recharge = RechargeImaliAccount::query()
->join('imali_accounts', 'recharge_imali_accounts.imali_account_id', '=', 'imali_accounts.id')
->where('imali_accounts.account_number', $account_number)
->get()
->last();
return response()->json(['user' => $user, 'lastRecharge' => $recharge]);
}
public function getUserByImaliAccountPhone($account_number)
{
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
// ->join('recharge_imali_accounts', 'recharge_imali_accounts.imali_account_id', '=', 'imali_accounts.id')
->where('imali_accounts.account_number', $account_number)
->select('users.name', 'imali_accounts.account_number')
->first();
$recharge = RechargeImaliAccount::query()
->join('imali_accounts', 'recharge_imali_accounts.imali_account_id', '=', 'imali_accounts.id')
->where('imali_accounts.account_number', $account_number)
->get()
->last();
return response()->json($user);
}
public function getUserData($id)
{
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
->where('users.id', $id)
->first();
return response()->json($user);
}
public function getRamoActivity()
{
$log = new Record();
$ramo = RamoActivity::query()->orderBy('nome', 'asc')->get();
return response()->json(['data' => $ramo], 200);
}
public function saveLoja(Request $request)
{
if ($request->isXmlHttpRequest()) {
return response()->json("Fe");
}
if ($request->isJson()) {
$this->validate($request, [
'name' => 'required',
'email' => 'required',
'nuit' => 'required|int',
'address' => 'required',
'manager' => 'required',
'username' => 'required',
'manager_phone_number' => 'required|string',
'mobile_phone' => 'required|string',
'taxa' => 'required',
'max_balance' => 'required',
'nr_transaction' => 'required',
'min_amount' => 'required',
'max_amount' => 'required',
'use_point_limit' => 'required',
]);
$random = new GenerateImaliAccount();
// $number = $random->GenerateImaliAccountNumberAndStore();
$number = $random->GenerateImaliAccountNumberAndStoreAndMerchant();
$response = Store::create([
'name' => $request->name,
'username' => $request->username,
'nuit' => $request->nuit,
'nib' => $request->nib,
'address' => $request->address,
'balance' => 0,
'manager' => $request->manager,
'manager_phone_number' => $request->manager_phone_number,
'public_id' => Uuid::generate()->string,
'mobile_phone' => $request->mobile_phone,
'account_number' => $number,
'email' => $request->email,
'logo' => url('/') . '/imaliapi/public/images/comerciante/logo/store.png',
'photo' => url('/') . '/imaliapi/public/images/comerciante/logo/store.png',
'password' => Hash::make('12345678'),
'user_client_id' => $request->user_client_id,
'merchant_account_id' => $request->merchant_account_id,
// 'merchant_contract_id' => $request->$contrato->id,
'industry_activity' => $request->industry_activity,
'user_id' => $request->user()->id
]);
$contrato = MerchantContract::create([
'taxa' => $request->taxa,
'max_balance' => $request->max_balance,
'nr_transaction' => $request->nr_transaction,
'status' => 'activo',
'min_amount' => $request->min_amount,
'max_amount' => $request->max_amount,
'use_point' => true,
'use_point_limit' => $request->use_point_limit,
'user_id' => $request->user()->id,
'merchant_account_id' => $request->merchant_account_id,
'store_id' => $response->id,
]);
$response->update(['merchant_contract_id' => $contrato->id]);
$storeConfig = StoreConfig::query()
->where('store_id', '=', $response->id)
->first();
if (!$storeConfig) {
StoreConfig::create([
'store_id' => $response->id
]);
}
if ($response) {
$fileQrcode = $path = public_path('/images/comerciante/qrcode/loja' . '/' . $response->public_id . '.' . 'png');
// $response->update(['qrcode' => 'http://localhost:8000/images/comerciante/qrcode/' . $response->public_id . '.' . 'png']);
// $response->update(['qrcode' => 'http://160.242.35.226/imaliapi/public/images/comerciante/qrcode/loja/' . $response->public_id . '.' . 'png']);
$response->update(['qrcode' => url('/') . '/images/comerciante/qrcode/loja/' . $response->public_id . '.' . 'png']);
\QRCode::text($response->public_id)
->setOutfile($fileQrcode)
->setSize(10)
->setMargin(10)
->png();
return response()->json(['message' => 'Loja Adiconada com Sucesso'], 200);
}
}
}
public function generateQrcode($id, $accountNumber)
{
$response = Store::query()
->where('id', $id)
->where('account_number', $accountNumber)
->first();
if ($response) {
$fileQrcode = $path = public_path('/images/comerciante/qrcode' . '/' . $response->public_id . '.' . 'png');
// $response->update(['qrcode' => 'http://localhost:8000/images/comerciante/qrcode/' . $response->public_id . '.' . 'png']);
// $response->update(['qrcode' => 'http://160.242.35.226/imaliapi/public/images/comerciante/qrcode/' . $response->public_id . '.' . 'png']);
$response->update(['qrcode' => url('/') . '/images/comerciante/qrcode/' . $response->public_id . '.' . 'png']);
\QRCode::text($response->public_id)
->setOutfile($fileQrcode)
->setSize(10)
->setMargin(10)
->png();
return response()->json(['message' => 'Gerado com Sucesso'], 200);
} else {
return response()->json(['message' => 'Falha ao Gerar o Qrcode. Erro Loja nao encontrada'], 400);
}
}
public function saveComerciante22(Request $request)
{
$comerciante = MerchantAccount::create([
'name' => $request->name,
'address' => $request->address,
'institution' => $request->institution,
'bi' => $request->bi,
// 'nuit' => $request->nuit,
'status' => 'activa',
'phone_number' => $request->phone_number,
'email' => $request->email,
'password' => Hash::make('12345678'),
'imali_account_id' => null,
// 'account_number' => $numero,
'user_id' => $request->user()->id,
// 'nib' => $request->nib,
'public_merchant_id' => Uuid::generate()->string
]);
}
public function saveComerciante(Request $request)
{
$this->validate($request, [
'name' => 'required',
'institution' => 'required',
'address' => 'required',
'phone_number' => 'required|unique:merchant_accounts,phone_number',
'email' => 'required|email|unique:merchant_accounts,email',
'nuit' => 'required|min:9',
'nib' => 'required',
'bi' => 'required|min:13'
], [
'email.required' => 'O Campo Email é de carácter Obrigatório',
'email.unique' => 'Este Email já está em uso',
'phone.required' => 'O Número do celular é obrigatório',
'phone_number.unique' => 'O Número do celular já está em uso',
'phone_number.min' => 'O Campo Celular deve ter 9 dígitos',
'name.required' => 'O Campo Nome é obrigatório',
'bi.required' => 'O campo Bi é Obrigatório',
'bi.min' => 'O campo Bi ter 13 dígitos',
]);
// $user = User::find($request->user()->id);
// $imali = ImaliAccount::query()->where('account_number', $request->account_number)->first();
// $imaliCheck = ImaliAccount::query()->where('account_number', $request->account_number)->count();
// $ramo = RamoActivity::find(1);
// $generate = new Comerciante();
// $numero = $generate->generateNumber(9);
// $numero = $random->GenerateImaliAccountNumberAndMetchant();
// $imali = new GenerateImaliAccount();
//// $generateImaliAcount = $imali->GenerateImaliAccountNumberAndMetchant();
//// $generateImaliAcount = $imali->GenerateImaliAccountNumberAndStore();
// $generateImaliAcount = $imali->GenerateImaliAccountNumberAndStoreAndMerchant();
// str_replace(["-", "–"], '', Uuid::generate()->string);
// 'account_number' => $numero,
$random = new GenerateImaliAccount();
$numero = $random->GenerateImaliAccountNumberAndStoreAndMerchant();
// $numero = $random->GenerateImaliAccountNumberAndStore();
$comerciante = MerchantAccount::create([
'name' => $request->name,
'address' => $request->address,
'institution' => $request->institution,
'bi' => $request->bi,
'nuit' => $request->nuit,
'status' => 'activa',
'phone_number' => $request->phone_number,
'email' => $request->email,
'password' => Hash::make('12345678'),
'account_number' => $numero,
'imali_account_id' => null,
'user_id' => $request->user()->id,
'nib' => $request->nib,
'public_merchant_id' => Uuid::generate()->string,
'kyc_config_id' => 1
]);
$fileQrcode = $path = public_path('/images/comerciante/qrcode/comerciante' . '/' . $comerciante->public_merchant_id . '.' . 'png');
$comerciante->update(['qrcode' => url('/') . '/images/comerciante/qrcode/comerciante/' . $comerciante->public_merchant_id . '.' . 'png']);
\QRCode::text($comerciante->public_merchant_id)
->setOutfile($fileQrcode)
->setSize(10)
->setMargin(10)
->png();
return response()->json(['message' => 'Comerciante Adicionado com Sucesso'], 200);
// if ($imaliCheck === 0) {
// $comerciante = MerchantAccount::create([
// 'name' => $request->name,
// 'address' => $request->address,
// 'institution' => $request->institution,
// 'bi' => $request->bi,
// 'nuit' => $request->nuit,
// 'status' => 'activa',
// 'phone_number' => $request->phone_number,
// 'email' => $request->email,
// 'password' => Hash::make('12345678'),
// 'imali_account_id' => null,
// 'account_number' => $numero,
// 'user_id' => $request->user()->id,
// 'nib' => $request->nib,
// 'public_merchant_id' => Uuid::generate()->string
// ]);
//
// $fileQrcode = $path = public_path('/images/comerciante/qrcode/comerciante' . '/' . $comerciante->account_number . '.' . 'png');
// $comerciante->update(['qrcode' => 'http://160.242.36.118:81/imaliapitest/public/images/comerciante/qrcode/comerciante/' . $comerciante->public_merchant_id . '.' . 'png']);
// \QRCode::text($comerciante->public_merchant_id)
// ->setOutfile($fileQrcode)
// ->setSize(10)
// ->setMargin(10)
// ->png();
//
//
//
//
//// if ($contrato) {
//// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->public_merchant_id.'.'.'png');
////// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->account_number.'.'.'png');
//// $comerciante->update(['qrcode' => 'http://localhost:8000/images/comerciante/qrcode/'.$comerciante->public_merchant_id.'.'.'png']);
//// \QRCode::text($comerciante->public_merchant_id)
//// ->setOutfile($fileQrcode)
//// ->setSize(10)
//// ->setMargin(10)
//// ->png();
////
//// $log = new Record();
////
//// $log->createLog([
//// 'description' => 'Comerciante Adicionado com Sucesso',
//// 'details' => $request->all(),
//// 'operation' => 'Save Comerciante',
//// 'status' => 'Success',
//// 'user_id' => $request->user()->id
//// ]);
////
//// return response()->json(['message' => 'Comerciante Adicionado com Sucesso'], 200);
//// }
// return response()->json(['message' => 'Comerciante Adicionado com Sucesso'], 200);
// } else {
//
// $comerciante = MerchantAccount::create([
// 'name' => $request->name,
// 'address' => $request->address,
// 'institution' => $request->institution,
// 'bi' => $request->bi,
// 'nuit' => $request->nuit,
// 'status' => 'activa',
// 'phone_number' => $request->phone_number,
// 'email' => $request->email,
// 'password' => Hash::make('12345678'),
// 'account_number' => $numero,
// 'imali_account_id' => null,
// 'user_id' => $request->user()->id,
// 'nib' => $request->nib,
// 'public_merchant_id' => Uuid::generate()->string
// ]);
//
//// $contrato = MerchantContract::create([
//// 'taxa' =>$request->taxa,
//// 'max_balance' => $request->max_balance,
//// 'nr_transaction' => $request->nr_transaction,
//// 'status' => 'activo',
//// 'min_amount' => $request->min_amount,
//// 'max_amount' => $request->max_amount,
//// 'use_point' => true,
//// 'use_point_limit' => $request->use_point_limit,
//// 'user_id' => $request->user()->id,
//// 'merchant_account_id' => $comerciante->id
//// ]);
//
// $fileQrcode = $path = public_path('/images/comerciante/qrcode/comerciante' . '/' . $comerciante->account_number . '.' . 'png');
// $comerciante->update(['qrcode' => 'http://160.242.36.118:81/imaliapitest/public/images/comerciante/qrcode/comerciante/' . $comerciante->public_merchant_id . '.' . 'png']);
// \QRCode::text($comerciante->public_merchant_id)
// ->setOutfile($fileQrcode)
// ->setSize(10)
// ->setMargin(10)
// ->png();
// if ($contrato) {
// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->public_merchant_id.'.'.'png');
//// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->account_number.'.'.'png');
// $comerciante->update(['qrcode' => 'http://localhost:8000/images/comerciante/qrcode/'.$comerciante->public_merchant_id.'.'.'png']);
// \QRCode::text($comerciante->public_merchant_id)
// ->setOutfile($fileQrcode)
// ->setSize(10)
// ->setMargin(10)
// ->png();
//
// $log = new Record();
//
// $log->createLog([
// 'description' => 'Comerciante Adicionado com Sucesso',
// 'details' => $request->all(),
// 'operation' => 'Save Comerciante',
// 'status' => 'Success',
// 'user_id' => $request->user()->id
// ]);
//
// return response()->json(['message' => 'Comerciante adicionado com sucesso'], 200);
// }
// $comerciante = MerchantAccount::create([
// 'name' => $request->name,
// 'endereco' => $request->endereco,
// 'account_number' => $numero,
// 'balance' => 0,
// 'balance_maximo' => $request->balance_maximo,
// 'estado' => 'activa',
// 'estado_color' => '#388E3C',
// 'imali_account_id' => $imali->id,
// 'user_id' => $request->user_id,
// 'ramo_activity_id' => $request->ramo_activity_id,
// 'telefone_comerciante' => $request->telefone_comerciante,
// 'telefone_loja' => $request->telefone_loja,
// 'nome_comerciante' => $request->nome_comerciante
// ]);
//
// $contrato = MerchantContract::create([
// 'taxa' =>$request->taxa,
// 'balance_max' => $request->balance_max,
// 'nr_transacao' => $request->nr_transacao,
// 'estado' => 'active',
// 'valor_max' => $request->valor_max,
// 'valor_min' => $request->valor_min,
// 'estado_color' => '#388E3C',
// 'use_point' => true,
// 'use_point_limite' => $request->use_point_limite,
// 'user_id' => $request->user_id,
// 'merchant_account_id' => $comerciante->id
// ]);
//
// if ($contrato) {
// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->account_number.'.'.'png');
//// $fileQrcode = $path = public_path('/images/comerciante/qrcode'.'/'.$comerciante->account_number.'.'.'png');
// $comerciante->update(['qrcode' => 'http://localhost:8000/images/comerciante/qrcode/'.$comerciante->account_number.'.'.'png']);
// \QRCode::text($comerciante->account_number)
// ->setOutfile($fileQrcode)
// ->setSize(10)
// ->setMargin(10)
// ->png();;
// return response()->json(['message' => 'Comerciante adicionado com sucesso'], 200);
// }
// return response()->json(['message' => 'Comerciante adicionado com sucesso'], 200);
}
public function updateComerciante(Request $request)
{
// $comerciante = MerchantAccount::find($request->id);
$comerciante = MerchantAccount::query()
->where('id', '=', $request->id)->first();
// $imaliCheck = ImaliAccount::query()->where('account_number', $request->account_number)->count();
$comerciante->update([
'name' => $request->name,
'address' => $request->address,
// 'balance' => 0,
'email' => $request->email,
'phone_number' => $request->phone_number,
'institution' => $request->institution,
'bi' => $request->bi,
// 'balance_maximo' => $request->balance_maximo,
'status' => 'activa',
// 'estado' => 'activa',
// 'estado_color' => '#388E3C',
// 'imali_account_id' => null,
'user_id' => $request->user_id,
// 'ramo_activity_id' => $request->ramo_activity_id,
// 'telefone_comerciante' => $request->telefone_comerciante,
// 'telefone_loja' => $request->telefone_loja,
// 'nome_comerciante' => $request->nome_comerciante,
// 'email_loja' => $request->email_loja,
// 'nib' => $request->nib,
]);
// $contrato = MerchantContract::query()->where('merchant_account_id', $comerciante->id)->first();
// $contrato->update([
// 'taxa' => $request->taxa,
// 'balance_max' => $request->balance_max,
// 'nr_transacao' => $request->nr_transacao,
// 'estado' => 'active',
// 'valor_max' => $request->valor_max,
// 'valor_min' => $request->valor_min,
// 'estado_color' => '#388E3C',
// 'use_point' => true,
// 'use_point_limite' => $request->use_point_limite,
// 'user_id' => $request->user_id,
// ]);
return response()->json(['message' => 'Dados do Comerciante ' . $comerciante->name, ' actualizados com Sucesso'], 200);
}
public function getComerciante($account_number)
{
$comerciante = MerchantAccount::query()
->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
->join('users', 'users.id', '=', 'merchant_accounts.user_id')
->leftJoin('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
->join('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
->where('merchant_accounts.account_number', $account_number)
->select('merchant_accounts.*')
->first();
if ($comerciante) {
return response()->json($comerciante, 200);
} else {
return response()->json(['message' => 'Qrcode Inválido'], 404);
}
}
public function getMerchant(Request $request)
{
$log = new Record();
$comerciante = MerchantAccount::query()
->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
->join('users', 'users.id', '=', 'merchant_accounts.user_id')
->leftJoin('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
->join('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
->where('merchant_accounts.public_merchant_id', $request->merchant_id)
->select('merchant_accounts.*')
->first();
if ($comerciante) {
$log->createLog([
'description' => 'Comerciante encontrado com Sucesso',
'details' => $comerciante->name . ' ' . $comerciante->account_number,
'operation' => 'Get Comerciante',
'status' => 'Success',
'user_id' => $request->user()->id
]);
return response()->json($comerciante, 200);
} else {
$log->createLog([
'description' => 'Qrcode Inválido',
'details' => $request->all(),
'operation' => 'Get Comerciante',
'status' => 'Success',
'user_id' => $request->user()->id
]);
return response()->json(['message' => 'Qrcode Inválido'], 404);
}
}
public function getStorePayment(Request $request)
{
$log = new Record();
$comerciante = Store::query()
->where('public_id', '=', $request->merchant_id)
->join('ramo_activities', 'ramo_activities.id', '=', 'stores.industry_activity')
->select('stores.*', 'ramo_activities.nome as category', 'ramo_activities.logo as logo_category')
->first();
if ($comerciante) {
$log->createLog([
'description' => 'Comerciante encontrado com Sucesso',
'details' => $comerciante->name . ' ' . $comerciante->account_number,
'operation' => 'Get Comerciante',
'status' => 'Success',
'user_id' => $request->user()->id
]);
$comerciante->makeHidden([
"industry_activity", "user_id", "created_at", "updated_at", "user_client_id",
"balance", "session_status", "nib", "nuit", "status", "email", "manager_phone_number",
"manager", "id", "merchant_account_id", "merchant_contract_id", "username", "latitude", "longitude"
]);
return response()->json($comerciante);
} else {
$store = Store::query()
->join('payments', 'payments.store_id', '=', 'stores.id')
->join('ramo_activities', 'ramo_activities.id', '=', 'stores.industry_activity')
->where('payments.transaction_id', '=', $request->merchant_id)
->select('stores.name', 'stores.mobile_phone', 'stores.account_number', 'stores.address', 'payments.transaction_id as transaction', 'payments.amount', 'ramo_activities.nome as category', 'ramo_activities.logo as logo_category')
->first();
if ($store) {
return response()->json($store);
} else {
return response()->json(['message' => 'Qrcode Inválido'], 404);
}
}
}
public function getMerchant2(Request $request)
{
$log = new Record();
// $comerciante = MerchantAccount::query()
// ->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
// ->join('users', 'users.id', '=', 'merchant_accounts.user_id')
// ->leftJoin('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
// ->join('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
// ->where('merchant_accounts.public_merchant_id', $request->merchant_id)
// ->select('merchant_accounts.*')
// ->first();
$comerciante = Store::query()
->where('public_id', '=', $request->merchant_id)
->join('ramo_activities', 'ramo_activities.id', '=', 'stores.industry_activity')
->select('stores.*', 'ramo_activities.nome as category', 'ramo_activities.logo as logo_category')
->first();
if ($comerciante) {
$log->createLog([
'description' => 'Comerciante encontrado com Sucesso',
'details' => $comerciante->name . ' ' . $comerciante->account_number,
'operation' => 'Get Comerciante',
'status' => 'Success',
'user_id' => $request->user()->id
]);
return response()->json($comerciante, 200);
} else {
$store = Store::query()
// ->join('store_amount_generations', 'store_amount_generations.store_id', '=', 'stores.id')
->join('payments', 'payments.store_id', '=', 'stores.id')
->join('ramo_activities', 'ramo_activities.id', '=', 'stores.industry_activity')
->where('store_amount_generations.transaction', '=', $request->merchant_id)
->select('stores.*', 'store_amount_generations.amount', 'ramo_activities.nome as category', 'ramo_activities.logo as logo_category', 'store_amount_generations.*', 'store_amount_generations.id as store_amount_generation_id')
->first();
if ($store) {
return response()->json($store);
} else {
return response()->json(['message' => 'Qrcode Inválido'], 404);
}
}
}
public function getComerciante2($account_number)
{
$comerciante = MerchantAccount::query()
->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
->join('users', 'users.id', '=', 'merchant_accounts.user_id')
->join('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
->join('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
->where('merchant_accounts.account_number', $account_number)
->select('ramo_activities.nome as ramo', 'imali_accounts.account_number as imali_account', 'users.name as user_name', 'merchant_contracts.*', 'merchant_accounts.*')
->first();
return response()->json(['data' => $comerciante], 200);
}
public function getComerciantes()
{
$comerciante = MerchantAccount::query()
// ->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
->join('admins', 'admins.id', '=', 'merchant_accounts.user_id')
// ->leftJoin('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
->leftJoin('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
// ->select('ramo_activities.nome as ramo', 'imali_accounts.account_number as imali_account', 'users.name as user_name', 'merchant_contracts.*', 'merchant_accounts.*')
->select('merchant_accounts.*', 'admins.name as username')
->distinct()
->paginate(10);
$comerciante = MerchantAccount::query()
// ->join('ramo_activities', 'ramo_activities.id', '=', 'merchant_accounts.ramo_activity_id')
->join('admins', 'admins.id', '=', 'merchant_accounts.user_id')
// ->leftJoin('imali_accounts', 'imali_accounts.id', '=', 'merchant_accounts.imali_account_id')
->leftJoin('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
// ->select('ramo_activities.nome as ramo', 'imali_accounts.account_number as imali_account', 'users.name as> ->select('merchant_accounts.*', 'admins.name as username')
->distinct()
->paginate(10);
return response()->json(['data' => $comerciante], 200);
return response()->json(['data' => $comerciante], 200);
}
public function getComercianteTransactions($account_number)
{
$comerciante = MerchantAccount::query()
->join('merchant_contracts', 'merchant_contracts.merchant_account_id', '=', 'merchant_accounts.id')
->where('merchant_accounts.account_number', $account_number)
->first();
$payments = Payment::query()
->join('users', 'users.id', '=', 'payments.sender_id')
->join('imali_accounts', 'imali_accounts.user_id', '=', 'payments.sender_id')
->where('payments.merchant_account_id', $comerciante->id)
->get();
return response()->json(['payments' => $payments, 'data' => $comerciante], 200);
}
public function getUserByImaliAccountReference($reference)
{
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
->where('imali_accounts.reference', $reference)
->first();
$lastBalance = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
->join('recharge_imali_accounts', 'recharge_imali_accounts.imali_account_id', '=', 'imali_accounts.id')
->where('imali_accounts.reference', $reference)
->select('recharge_imali_accounts.*')
->get()->last();
return response()->json(['data' => $user, 'lastBalance' => $lastBalance]);
}
public function getStore($id)
{
$store = Store::query()
->where('stores.merchant_account_id', $id)
->leftJoin('admins', 'admins.id', '=', 'stores.user_id')
->leftJoin('ramo_activities', 'ramo_activities.id', '=', 'stores.industry_activity')
->leftJoin('merchant_contracts', 'stores.merchant_contract_id', '=', 'merchant_contracts.id')
->join('merchant_accounts', 'stores.merchant_account_id', '=', 'merchant_accounts.id')
->select('stores.*', 'admins.name as username', 'ramo_activities.nome as industry', 'merchant_contracts.*', 'merchant_accounts.name as merchant_name', 'stores.name as store_name')
->get();
return response()->json(['data' => $store]);
}
}