updated streamline-setup v2

This commit is contained in:
2025-01-15 08:53:49 -08:00
committed by alec.turner
parent a2ce9248f0
commit 4b569f81b0
20228 changed files with 2932048 additions and 63204 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,240 @@
<?php
namespace Modules\Banking\Http\Controllers;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Streamline\Models\BankDeposit;
use Streamline\Models\BankingRecord;
use Illuminate\Http\Request;
use Streamline\Models\BankTransfer;
use Streamline\Models\ChartOfAccount;
use Streamline\Models\Payment;
use Streamline\Models\User;
class BankingRecordController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index(Request $request)
{
$records = [];
$bank = $request->bank;
$staff_members = User::get();
$display = bank_register_label_setter($request);
$today = Carbon::today()->toDateString();
$banks = ChartOfAccount::where('type', 4)->where('id', '!=', 10)->get();
$yesterday = Carbon::yesterday()->toDateString();
$end = Carbon::parse($request->end_date)->endOfDay()->toDateTimeString();
$start = Carbon::parse($request->start_date)->startOfDay()->toDateTimeString();
if($request->staff_member == "ALL STAFF"){
switch ($request->dates){
case 'today':
$records = BankingRecord::whereDate('record_date', $today)->where('bank', $request->bank)
->get();
break;
case 'yesterday':
$records = BankingRecord::whereDate('record_date', $yesterday)->where('bank', $request->bank)
->get();
break;
case 'custom_date':
$records = BankingRecord::whereDate('record_date', $start)->where('bank', $request->bank)
->get();
break;
case 'custom_date_range':
$records = BankingRecord::whereBetween('record_date', [$start, $end])->where('bank', $request->bank)
->get();
break;
}
}
else{
switch ($request->dates){
case 'today':
$records = BankingRecord::where('created_by', $request->staff_member)->whereDate('record_date', $today)
->where('bank', $request->bank)->get();
break;
case 'yesterday':
$records = BankingRecord::where('created_by', $request->staff_member)->whereDate('record_date', $yesterday)
->where('bank', $request->bank)->get();
break;
case 'custom_date':
$records = BankingRecord::where('created_by', $request->staff_member)->whereDate('record_date', $start)
->where('bank', $request->bank)->get();
break;
case 'custom_date_range':
$records = BankingRecord::where('created_by', $request->staff_member)->whereBetween('record_date', [$start, $end])
->where('bank', $request->bank)->get();
break;
}
}
return view('banking::banking_records.index', compact('records', 'display', 'staff_members', 'banks', 'bank'));
}
public function reverse($trans_id){
// update account balances on banking records
$deposits = BankDeposit::where('trans_id', $trans_id)->get();
$transfers = BankTransfer::where('trans_id', $trans_id)->get();
$payments = Payment::where('transaction_id', $trans_id)->get();
$records = BankingRecord::where('trans_id', $trans_id)->get();
if(count($deposits) > 0){
foreach ($deposits as $deposit){
$deposit_amount = (int)$deposit->amount;
$current_deposit_to_balance = ChartOfAccount::where('id', $deposit->deposit_to)->pluck('balance')->first();
$current_deposit_from_balance = ChartOfAccount::where('id', $deposit->from_account)->pluck('balance')->first();
ChartOfAccount::where('id', $deposit->deposit_to)->update(['balance' => ((int)$current_deposit_to_balance) - (int)$deposit_amount]);
ChartOfAccount::where('id', $deposit->from_account)->update(['balance' => ((int)$current_deposit_from_balance) + (int)$deposit_amount]);
$proceeding_deposits = BankDeposit::where('created_at', '>', $deposit->created_at)->get();
foreach ($proceeding_deposits as $proceeding_deposit){
BankDeposit::where('id', $proceeding_deposit->id)->update(['previous_from_account_balance' => ((int)$proceeding_deposit->previous_from_account_balance + (int)$deposit_amount)]);
BankDeposit::where('id', $proceeding_deposit->id)->update(['previous_to_account_balance' => ((int)$proceeding_deposit->previous_to_account_balance - (int)$deposit_amount)]);
}
$deposit->delete();
foreach ($records as $record){
$proceeding_records = BankingRecord::where('created_at', '>', $record->created_at)->get();
foreach ($proceeding_records as $proceeding_record){
BankingRecord::where('id', $proceeding_record->id)->update(['account_balance' => ((int)$proceeding_record->account_balance - (int)$deposit_amount)]);
}
$record->delete();
}
// update chart of account balances
flash('Bank Transaction successfully reversed.')->success();
return redirect('/banking/register');
}
}elseif(count($transfers) > 0){
foreach ($transfers as $transfer){
$transfer_amount = (int)$transfer->balance;
$current_transfer_to_balance = ChartOfAccount::where('id', $transfer->to_account)->pluck('balance')->first();
$current_transfer_from_balance = ChartOfAccount::where('id', $transfer->from_account)->pluck('balance')->first();
ChartOfAccount::where('id', $transfer->to_account)->update(['balance' => ((int)$current_transfer_to_balance) - (int)$transfer_amount]);
ChartOfAccount::where('id', $transfer->from_account)->update(['balance' => ((int)$current_transfer_from_balance) + (int)$transfer_amount]);
$proceeding_transfers = BankDeposit::where('created_at', '>', $transfer->created_at)->get();
foreach ($proceeding_transfers as $proceeding_transfer){
BankTransfer::where('id', $proceeding_transfer->id)->update(['previous_from_account_balance' => ((int)$proceeding_transfer->previous_from_account_balance + (int)$transfer_amount)]);
BankTransfer::where('id', $proceeding_transfer->id)->update(['previous_to_account_balance' => ((int)$proceeding_transfer->previous_to_account_balance - (int)$transfer_amount)]);
}
$transfer->delete();
foreach ($records as $record){
$proceeding_records = BankingRecord::where('created_at', '>', $record->created_at)->get();
foreach ($proceeding_records as $proceeding_record){
BankingRecord::where('id', $proceeding_record->id)->update(['account_balance' => ((int)$proceeding_record->account_balance - (int)$transfer_amount)]);
}
$record->delete();
}
// update chart of account balances
flash('Bank Transaction successfully reversed.')->success();
return redirect('/banking/register');
}
}elseif(count($payments) > 0){
foreach ($payments as $payment){
$bank_account = $payment->account_id;
$payment_item_account = get_name($payment->item_id, 'id', 'account_id', 'payment_items');
$payment_amount = (int)$payment->amount;
$current_transfer_to_balance = ChartOfAccount::where('id', $payment_item_account)->pluck('balance')->first();
$current_transfer_from_balance = ChartOfAccount::where('id', $bank_account)->pluck('balance')->first();
ChartOfAccount::where('id', $payment_item_account)->update(['balance' => ((int)$current_transfer_to_balance) - (int)$payment_amount]);
ChartOfAccount::where('id', $bank_account)->update(['balance' => ((int)$current_transfer_from_balance) + (int)$payment_amount]);
$proceeding_payments = Payment::where('created_at', '>', $payment->created_at)->get();
foreach ($proceeding_payments as $proceeding_payment){
Payment::where('id', $proceeding_payment->id)->update(['account_balance' => ((int)$proceeding_payment->account_balance + (int)$payment_amount)]);
}
$payment->delete();
foreach ($records as $record){
$proceeding_records = BankingRecord::where('created_at', '>', $record->created_at)->get();
foreach ($proceeding_records as $proceeding_record){
BankingRecord::where('id', $proceeding_record->id)->update(['account_balance' => ((int)$proceeding_record->account_balance + (int)$payment_amount)]);
}
$record->delete();
}
// update chart of account balances
flash('Bank Transaction successfully reversed.')->success();
return redirect('/banking/register');
}
}
// update chart of account balances
flash('Bank Transaction Reversal Failed.')->error();
return redirect('/banking/register');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
*/
public function show(BankingRecord $bankingRecord)
{
//
}
/**
* Show the form for editing the specified resource.
*
*/
public function edit(BankingRecord $bankingRecord)
{
//
}
/**
* Update the specified resource in storage.
*
*/
public function update(Request $request, BankingRecord $bankingRecord)
{
//
}
/**
* Remove the specified resource from storage.
*
*/
public function destroy(BankingRecord $bankingRecord)
{
//
}
}
@@ -0,0 +1,13 @@
<?php
namespace Modules\Banking\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}