Merge pull request #2185 from cuneytsenturk/show-transfer

Added transfer show page
This commit is contained in:
Cüneyt Şentürk
2021-07-11 12:36:08 +03:00
committed by GitHub
46 changed files with 2647 additions and 14 deletions

View File

@ -15,6 +15,7 @@ use App\Models\Banking\Transfer;
use App\Models\Setting\Currency;
use App\Utilities\Modules;
use Date;
use Illuminate\Support\Str;
class Transfers extends Controller
{
@ -37,9 +38,9 @@ class Transfers extends Controller
*
* @return Response
*/
public function show()
public function show(Transfer $transfer)
{
return redirect()->route('transfers.index');
return view('banking.transfers.show', compact('transfer'));
}
/**
@ -53,11 +54,19 @@ class Transfers extends Controller
$payment_methods = Modules::getPaymentMethods();
$currencies = Currency::enabled()->orderBy('name')->get()->makeHidden(['id', 'company_id', 'created_at', 'updated_at', 'deleted_at']);
$currency = Currency::where('code', setting('default.currency'))->first();
return view('banking.transfers.create', compact('accounts', 'payment_methods', 'currencies', 'currency'));
$file_type_mimes = explode(',', config('filesystems.mimes'));
$file_types = [];
foreach ($file_type_mimes as $mime) {
$file_types[] = '.' . $mime;
}
$file_types = implode(',', $file_types);
return view('banking.transfers.create', compact('accounts', 'payment_methods', 'currency', 'file_types'));
}
/**
@ -72,7 +81,7 @@ class Transfers extends Controller
$response = $this->ajaxDispatch(new CreateTransfer($request));
if ($response['success']) {
$response['redirect'] = route('transfers.index');
$response['redirect'] = route('transfers.show', $response['data']->id);
$message = trans('messages.success.added', ['type' => trans_choice('general.transfers', 1)]);
@ -88,6 +97,24 @@ class Transfers extends Controller
return response()->json($response);
}
/**
* Duplicate the specified resource.
*
* @param Transfer $transfer
*
* @return Response
*/
public function duplicate(Transfer $transfer)
{
$clone = $transfer->duplicate();
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.transfers', 1)]);
flash($message)->success();
return redirect()->route('transfers.show', $clone->id);
}
/**
* Import the specified resource.
*
@ -139,11 +166,19 @@ class Transfers extends Controller
$account = $transfer->expense_transaction->account;
$currencies = Currency::enabled()->orderBy('name')->get()->makeHidden(['id', 'company_id', 'created_at', 'updated_at', 'deleted_at']);
$currency = Currency::where('code', $account->currency_code)->first();
return view('banking.transfers.edit', compact('transfer', 'accounts', 'payment_methods', 'currencies', 'currency'));
$file_type_mimes = explode(',', config('filesystems.mimes'));
$file_types = [];
foreach ($file_type_mimes as $mime) {
$file_types[] = '.' . $mime;
}
$file_types = implode(',', $file_types);
return view('banking.transfers.edit', compact('transfer', 'accounts', 'payment_methods', 'currency', 'file_types'));
}
/**
@ -159,7 +194,7 @@ class Transfers extends Controller
$response = $this->ajaxDispatch(new UpdateTransfer($transfer, $request));
if ($response['success']) {
$response['redirect'] = route('transfers.index');
$response['redirect'] = route('transfers.show', $transfer->id);
$message = trans('messages.success.updated', ['type' => trans_choice('general.transfers', 1)]);
@ -210,4 +245,46 @@ class Transfers extends Controller
{
return $this->exportExcel(new Export, trans_choice('general.transfers', 2));
}
/**
* Print the transfer.
*
* @param Transfer $transfer
*
* @return Response
*/
public function printTransfer(Transfer $transfer)
{
event(new \App\Events\Banking\TransferPrinting($transfer));
$view = view($transfer->template_path, compact('transfer'));
return mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8');
}
/**
* Download the PDF file of transfer.
*
* @param Transfer $transfer
*
* @return Response
*/
public function pdfTransfer(Transfer $transfer)
{
event(new \App\Events\Banking\TransferPrinting($transfer));
$currency_style = true;
$view = view($transfer->template_path, compact('transfer', 'currency_style'))->render();
$html = mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8');
$pdf = app('dompdf.wrapper');
$pdf->loadHTML($html);
//$pdf->setPaper('A4', 'portrait');
$file_name = trans_choice('general.transfers', 1) . '-' . Str::slug($transfer->id, '-', language()->getShortCode()) . '-' . time() . '.pdf';
return $pdf->download($file_name);
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace App\Http\Controllers\Modals;
use App\Abstracts\Http\Controller;
use App\Http\Requests\Setting\Setting as Request;
class TransferTemplates extends Controller
{
public $skip_keys = ['company_id', '_method', '_token', '_prefix', '_template'];
public function __construct()
{
// Add CRUD permission check
$this->middleware('permission:create-settings-settings')->only('create', 'store');
$this->middleware('permission:read-settings-settings')->only('index', 'edit');
$this->middleware('permission:update-settings-settings')->only('update', 'enable', 'disable');
$this->middleware('permission:delete-settings-settings')->only('destroy');
}
/**
* Update the specified resource in storage.
*
* @param Request $request
*
* @return Response
*/
public function update(Request $request)
{
$fields = $request->all();
$prefix = $request->get('_prefix', 'transfer');
$company_id = $request->get('company_id');
if (empty($company_id)) {
$company_id = company_id();
}
foreach ($fields as $key => $value) {
$real_key = $prefix . '.' . $key;
// Don't process unwanted keys
if (in_array($key, $this->skip_keys)) {
continue;
}
setting()->set($real_key, $value);
}
// Save all settings
setting()->save();
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
$response = [
'status' => null,
'success' => true,
'error' => false,
'message' => $message,
'data' => null,
'redirect' => route('settings.invoice.edit'),
];
flash($message)->success();
return response()->json($response);
}
}