mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-11 18:51:31 +00:00
updated streamline-setup v2
This commit is contained in:
+1156
File diff suppressed because it is too large
Load Diff
+240
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user