<?php
namespace App\Http\Controllers;
use App\Imali\ImaliAccount;
use App\TransactionHistory;
use Illuminate\Http\Request;
class
TransactionHistoryController extends Controller
{
public function getExtrato($accountNumber, $datainicial, $datafinal)
{
// $data = TransactionHistory::query()
// ->leftJoin('purchase_vouchers', 'purchase_vouchers.id', '=', 'transaction_histories.voucher_id')
// ->leftJoin('payments', 'payments.id', '=', 'transaction_histories.payment_id')
// ->leftJoin('transfer_histories', 'transfer_histories.id', '=', 'transaction_histories.transfer_history_id')
// ->leftJoin('waters', 'waters.id', '=', 'transaction_histories.water_id')
// ->leftJoin('credelecs', 'credelecs.id', '=', 'transaction_histories.credelec_id')
// ->leftJoin('recharge_imali_accounts', 'recharge_imali_accounts.id', '=', 'transaction_histories.recharge_id')
// ->leftJoin('ramo_activities', 'ramo_activities.id', '=', 'transaction_histories.category_id')
// ->orderByDesc('transaction_histories.created_at')
// ->paginate(25);
//
// $data = TransactionHistory::query()
// ->leftJoin('purchase_vouchers', function ($join) {
// $join->on('purchase_vouchers.id', '=', 'transaction_histories.voucher_id')
// ->where('transaction_histories.voucher_id', '<>', null);
// })
// ->leftJoin('payments', function ($join) {
// $join->on('payments.id', '=', 'transaction_histories.payment_id');
// })
// ->leftJoin('transfer_histories', function ($join) {
// $join->on('transfer_histories.id', '=', 'transaction_histories.transfer_history_id');
// })
// ->leftJoin('waters', function ($join) {
// $join->on('waters.id', '=', 'transaction_histories.water_id');
// })
// ->leftJoin('credelecs', function ($join) {
// $join->on('credelecs.id', '=', 'transaction_histories.credelec_id');
// })
// ->leftJoin('recharge_imali_accounts', function ($join) {
// $join->on('recharge_imali_accounts.id', '=', 'transaction_histories.recharge_id');
// })
// ->leftJoin('ramo_activities', function ($join) {
// $join->on('ramo_activities.id', '=', 'transaction_histories.category_id');
// })
// ->orderByDesc('transaction_histories.created_at')
//// ->whereNull(['transaction_histories.voucher_id', 'transaction_histories.credelec_id', 'transaction_histories.transfer_history_id',
//// 'transaction_histories.water_id', 'transaction_histories.recharge_id', 'transaction_histories.category_id'])
//// ->select('transaction_histories.transaction_type')
// ->paginate(25);
//
// $data->makeHidden(['voucher_id', 'credelect_id', 'water_id', 'transfer_history_id', 'payment_id', 'transfer_id', 'recharge_id', 'money_request_id', 'id', 'category_id']);
// $data = TransactionHistory::query()
// ->with(['vouchers', function ($query) {
// $query->select('id');
// }])
// ->get();
if ($datainicial === $datafinal) {
$account = ImaliAccount::query()
->where('account_number', $accountNumber)
->first();
if ($account) {
// 'payment.store','payment.storePayment'
$data = TransactionHistory::query()
->with(['voucher', 'transferHistory.client', 'transferHistory', 'water', 'payment','payment.storePayment','credelec', 'recharge', 'category', 'user'])
->orderByDesc('transaction_histories.created_at')
->where('transaction_histories.user_id', $account->user_id)
->whereDate('transaction_histories.created_at', '=', $datainicial)
->paginate(10);
$data->makeHidden(['voucher_id', 'credelec_id', 'water_id', 'transfer_history_id', 'payment_id', 'transfer_id', 'recharge_id', 'money_request_id', 'id', 'category_id']);
return response()->json($data);
} else {
return response()->json(['message' => 'Conta inválida'], 404);
}
} else {
$account = ImaliAccount::query()
->where('account_number', $accountNumber)
->first();
if ($account) {
$data = TransactionHistory::query()
->with(['voucher', 'transferHistory.client', 'transferHistory', 'water', 'payment', 'credelec', 'recharge', 'category', 'user'])
->orderByDesc('transaction_histories.created_at')
->where('transaction_histories.user_id', $account->user_id)
->whereDate('transaction_histories.created_at', '>=', $datainicial)
->whereDate('transaction_histories.created_at', '<=', $datafinal)
->paginate(10);
$data->makeHidden(['voucher_id', 'credelec_id', 'water_id', 'transfer_history_id', 'payment_id', 'transfer_id', 'recharge_id', 'money_request_id', 'id', 'category_id']);
return response()->json($data);
} else {
return response()->json(['message' => 'Conta inválida'], 404);
}
}
}
}