Merge remote-tracking branch 'AkauntingOrigin/master'
This commit is contained in:
@ -134,7 +134,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateContact($contact, request()->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -147,7 +147,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteContact($contact));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -160,7 +160,7 @@ abstract class BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTransaction($transaction));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -82,17 +82,29 @@ abstract class Controller extends BaseController
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function importExcel($class, $request, $url)
|
||||
public function importExcel($class, $request)
|
||||
{
|
||||
try {
|
||||
Excel::import($class, $request->file('import'));
|
||||
} catch (SheetNotFoundException | ErrorException | Exception | Throwable $e) {
|
||||
flash($e->getMessage())->error()->important();
|
||||
|
||||
return redirect()->route('import.create', explode('/', $url));
|
||||
$response = [
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'data' => null,
|
||||
'message' => '',
|
||||
];
|
||||
} catch (SheetNotFoundException | ErrorException | Exception | Throwable $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
$response = [
|
||||
'success' => false,
|
||||
'error' => true,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
}
|
||||
|
||||
return true;
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -73,7 +73,7 @@ abstract class PaymentController extends BaseController
|
||||
|
||||
$this->logger->info($this->module->getName() . ':: Invoice: ' . $invoice->id . ' - Cancel Message: ' . $message);
|
||||
|
||||
flash($message)->warning();
|
||||
flash($message)->warning()->important();
|
||||
|
||||
$invoice_url = $this->getInvoiceUrl($invoice);
|
||||
|
||||
|
@ -277,44 +277,28 @@ abstract class Report
|
||||
case 'yearly':
|
||||
$start->addYear();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
$j += 11;
|
||||
|
||||
break;
|
||||
case 'quarterly':
|
||||
$start->addQuarter();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
$j += 2;
|
||||
|
||||
break;
|
||||
default:
|
||||
$start->addMonth();
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[$j] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
$date = $this->getFormattedDate($start);
|
||||
|
||||
$this->dates[] = $date;
|
||||
|
||||
foreach ($this->tables as $table) {
|
||||
$this->footer_totals[$table][$date] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -387,16 +371,35 @@ abstract class Report
|
||||
{
|
||||
switch ($this->getSetting('period')) {
|
||||
case 'yearly':
|
||||
$i = $date->copy()->format($this->getYearlyDateFormat());
|
||||
$financial_year = $this->getFinancialYear($this->year);
|
||||
|
||||
if ($date->greaterThanOrEqualTo($financial_year->getStartDate()) && $date->lessThanOrEqualTo($financial_year->getEndDate())) {
|
||||
if (setting('localisation.financial_denote') == 'begins') {
|
||||
$i = $financial_year->getStartDate()->copy()->format($this->getYearlyDateFormat());
|
||||
} else {
|
||||
$i = $financial_year->getEndDate()->copy()->format($this->getYearlyDateFormat());
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case 'quarterly':
|
||||
$start = $date->copy()->startOfQuarter()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$end = $date->copy()->endOfQuarter()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$quarters = $this->getFinancialQuarters($this->year);
|
||||
|
||||
foreach ($quarters as $quarter) {
|
||||
if ($date->lessThan($quarter->getStartDate()) || $date->greaterThan($quarter->getEndDate())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$start = $quarter->getStartDate()->format($this->getQuarterlyDateFormat($this->year));
|
||||
$end = $quarter->getEndDate()->format($this->getQuarterlyDateFormat($this->year));
|
||||
}
|
||||
|
||||
$i = $start . '-' . $end;
|
||||
|
||||
break;
|
||||
default:
|
||||
$i = $date->copy()->format($this->getMonthlyDateFormat($this->year));
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -537,7 +537,7 @@ abstract class DocumentForm extends Base
|
||||
if (request()->has($issued_at)) {
|
||||
$issuedAt = request()->get($issued_at);
|
||||
} else {
|
||||
$issuedAt = request()->get('invoiced_at', Date::now()->toDateString());
|
||||
$issuedAt = request()->get('invoice_at', Date::now()->toDateString());
|
||||
}
|
||||
|
||||
return $issuedAt;
|
||||
@ -572,20 +572,19 @@ abstract class DocumentForm extends Base
|
||||
return $document->due_at;
|
||||
}
|
||||
|
||||
$addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : setting('invoice.payment_terms', 0);
|
||||
$issued_at = $type . '_at';
|
||||
|
||||
switch ($type) {
|
||||
case 'bill':
|
||||
case 'expense':
|
||||
case 'purchase':
|
||||
$due_at = request()->get('billed_at', Date::now()->toDateString());
|
||||
break;
|
||||
default:
|
||||
$due_at = Date::parse(request()->get('invoiced_at', Date::now()->toDateString()))->addDays($addDays)->toDateString();
|
||||
break;
|
||||
if (request()->has($issued_at)) {
|
||||
$issuedAt = request()->get($issued_at);
|
||||
} else {
|
||||
$issuedAt = Date::now()->toDateString();
|
||||
}
|
||||
|
||||
return $due_at;
|
||||
$addDays = (setting($type . '.payment_terms', 0)) ? setting($type . '.payment_terms', 0) : 0;
|
||||
|
||||
$dueAt = Date::parse($issuedAt)->addDays($addDays)->toDateString();
|
||||
|
||||
return $dueAt;
|
||||
}
|
||||
|
||||
protected function getOrderNumber($type, $document, $orderNumber)
|
||||
|
@ -37,7 +37,7 @@ class Users extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateUser($user, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Users extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteUser($user));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Accounts extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateAccount($account, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Accounts extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteAccount($account));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ class Transfers extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTransfer($transfer));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 1]), session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCompany($company, $request->merge(['enabled' => 0]), session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -63,7 +63,7 @@ class Companies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCompany($company, session('company_id')));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 1])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateDashboard($dashboard, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -63,7 +63,7 @@ class Dashboards extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDashboard($dashboard));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ class Items extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteItem($item));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ class Bills extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDocument($bill));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ class Invoices extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteDocument($invoice));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Categories extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCategory($category, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Categories extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCategory($category));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Currencies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateCurrency($currency, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Currencies extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteCurrency($currency));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class Taxes extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new UpdateTax($tax, $request->merge(['enabled' => 0])));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ class Taxes extends BulkAction
|
||||
try {
|
||||
$this->dispatch(new DeleteTax($tax));
|
||||
} catch (\Exception $e) {
|
||||
flash($e->getMessage())->error();
|
||||
flash($e->getMessage())->error()->important();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class Handler extends ExceptionHandler
|
||||
return response()->json(['error' => 'Not Found'], 404);
|
||||
}
|
||||
|
||||
flash(trans('errors.body.page_not_found'))->error();
|
||||
flash(trans('errors.body.page_not_found'))->error()->important();
|
||||
|
||||
// normal 404 view page feedback
|
||||
return redirect()
|
||||
|
@ -55,7 +55,7 @@ class Permissions extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -96,7 +96,7 @@ class Permissions extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -122,7 +122,7 @@ class Permissions extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -63,7 +63,7 @@ class Roles extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -111,7 +111,7 @@ class Roles extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -137,7 +137,7 @@ class Roles extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -85,7 +85,7 @@ class Users extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -167,7 +167,7 @@ class Users extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -229,7 +229,7 @@ class Users extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -70,7 +70,7 @@ class Accounts extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -117,7 +117,7 @@ class Accounts extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -179,7 +179,7 @@ class Accounts extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -85,7 +85,7 @@ class Reconciliations extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -134,7 +134,7 @@ class Reconciliations extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -160,7 +160,7 @@ class Reconciliations extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -42,13 +42,23 @@ class Transactions extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
\Excel::import(new Import(), $request->file('import'));
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 2)]);
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transactions.index');
|
||||
|
||||
flash($message)->success();
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transactions', 1)]);
|
||||
|
||||
return redirect()->route('transactions.index');
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['banking', 'transactions']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -71,7 +81,7 @@ class Transactions extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -25,64 +25,11 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data = [];
|
||||
|
||||
$items = Transfer::with(
|
||||
$transfers = Transfer::with(
|
||||
'expense_transaction', 'expense_transaction.account', 'income_transaction', 'income_transaction.account'
|
||||
)->collect(['expense_transaction.paid_at' => 'desc']);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$income_transaction = $item->income_transaction;
|
||||
$expense_transaction = $item->expense_transaction;
|
||||
|
||||
$name = trans('transfers.messages.delete', [
|
||||
'from' => $expense_transaction->account->name,
|
||||
'to' => $income_transaction->account->name,
|
||||
'amount' => money($expense_transaction->amount, $expense_transaction->currency_code, true)
|
||||
]);
|
||||
|
||||
$data[] = (object) [
|
||||
'id' => $item->id,
|
||||
'name' => $name,
|
||||
'from_account' => $expense_transaction->account->name,
|
||||
'to_account' => $income_transaction->account->name,
|
||||
'amount' => $expense_transaction->amount,
|
||||
'currency_code' => $expense_transaction->currency_code,
|
||||
'paid_at' => $expense_transaction->paid_at,
|
||||
];
|
||||
}
|
||||
|
||||
$special_key = [
|
||||
'expense_transaction.name' => 'from_account',
|
||||
'income_transaction.name' => 'to_account',
|
||||
];
|
||||
|
||||
$request = request();
|
||||
|
||||
if (isset($request['sort']) && array_key_exists($request['sort'], $special_key)) {
|
||||
$sort_order = [];
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
$sort = $request['sort'];
|
||||
|
||||
if (array_key_exists($request['sort'], $special_key)) {
|
||||
$sort = $special_key[$request['sort']];
|
||||
}
|
||||
|
||||
$sort_order[$key] = $value->{$sort};
|
||||
}
|
||||
|
||||
$sort_type = (isset($request['order']) && $request['order'] == 'asc') ? SORT_ASC : SORT_DESC;
|
||||
|
||||
array_multisort($sort_order, $sort_type, $data);
|
||||
}
|
||||
|
||||
$transfers = $request->expectsJson() ? $data : $this->paginate($data);
|
||||
|
||||
$accounts = collect(Account::enabled()->orderBy('name')->pluck('name', 'id'))
|
||||
->prepend(trans('general.all_type', ['type' => trans_choice('general.accounts', 2)]), '');
|
||||
|
||||
return $this->response('banking.transfers.index', compact('transfers', 'accounts'));
|
||||
return $this->response('banking.transfers.index', compact('transfers'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -133,7 +80,7 @@ class Transfers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -148,15 +95,23 @@ class Transfers extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'banking/transfers')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transfers.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['banking', 'transfers']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.transfers', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('transfers.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -210,7 +165,7 @@ class Transfers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -236,7 +191,7 @@ class Transfers extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -42,7 +42,7 @@ class BulkActions extends Controller
|
||||
}
|
||||
|
||||
if (isset($bulk_actions->actions[$request->get('handle')]['permission']) && !user()->can($bulk_actions->actions[$request->get('handle')]['permission'])) {
|
||||
flash(trans('errors.message.403'))->error();
|
||||
flash(trans('errors.message.403'))->error()->important();
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
|
@ -75,7 +75,7 @@ class Companies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
session(['company_id' => $company_id]);
|
||||
@ -128,7 +128,7 @@ class Companies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
session(['company_id' => $company_id]);
|
||||
@ -194,7 +194,7 @@ class Companies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -110,7 +110,7 @@ class Dashboards extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -156,7 +156,7 @@ class Dashboards extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -220,7 +220,7 @@ class Dashboards extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -78,7 +78,7 @@ class Items extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -111,15 +111,23 @@ class Items extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'common/items')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('items.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['common', 'items']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('items.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -164,7 +172,7 @@ class Items extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -226,7 +234,7 @@ class Items extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -13,6 +13,17 @@ use Illuminate\Support\Facades\Cache;
|
||||
|
||||
class Reports extends Controller
|
||||
{
|
||||
/**
|
||||
* Instantiate a new controller instance.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Add CRUD permission check
|
||||
$this->middleware('permission:create-common-reports')->only('create', 'store', 'duplicate', 'import');
|
||||
$this->middleware('permission:read-common-reports')->only('index', 'show', 'export');
|
||||
$this->middleware('permission:update-common-reports')->only('edit', 'update', 'enable', 'disable');
|
||||
$this->middleware('permission:delete-common-reports')->only('destroy');
|
||||
}
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
@ -101,7 +112,7 @@ class Reports extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -163,7 +174,7 @@ class Reports extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -189,7 +200,7 @@ class Reports extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -142,7 +142,7 @@ class Uploads extends Controller
|
||||
if (!$path = $this->getPath($media)) {
|
||||
$message = trans('messages.warning.deleted', ['name' => $media->basename, 'text' => $media->basename]);
|
||||
|
||||
flash($message)->warning();
|
||||
flash($message)->warning()->important();
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
@ -259,7 +259,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
$json = [
|
||||
'success' => false,
|
||||
@ -285,7 +285,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
@ -304,7 +304,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
@ -323,7 +323,7 @@ class Item extends Controller
|
||||
} catch (\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->route('apps.app.show', $alias)->send();
|
||||
|
@ -95,7 +95,7 @@ class Bills extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -128,15 +128,23 @@ class Bills extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/bills')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('bills.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'bills']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.bills', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('bills.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -174,7 +182,7 @@ class Bills extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -200,7 +208,7 @@ class Bills extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -310,7 +318,7 @@ class Bills extends Controller
|
||||
} catch(\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
|
@ -66,7 +66,17 @@ class Payments extends Controller
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
return view('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods'));
|
||||
$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('purchases.payments.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'vendors', 'categories', 'payment_methods', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +101,7 @@ class Payments extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -124,15 +134,23 @@ class Payments extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/payments')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('payments.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'payments']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.payments', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('payments.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,7 +184,17 @@ class Payments extends Controller
|
||||
|
||||
$date_format = $this->getCompanyDateFormat();
|
||||
|
||||
return view('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format'));
|
||||
$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('purchases.payments.edit', compact('payment', 'accounts', 'currencies', 'currency', 'vendors', 'categories', 'payment_methods', 'date_format', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -192,7 +220,7 @@ class Payments extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -218,7 +246,7 @@ class Payments extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -128,7 +128,7 @@ class Vendors extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -161,15 +161,23 @@ class Vendors extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'purchases/vendors')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('vendors.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['purchases', 'vendors']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.vendors', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('vendors.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -209,7 +217,7 @@ class Vendors extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -271,7 +279,7 @@ class Vendors extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -126,7 +126,7 @@ class Customers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -159,15 +159,23 @@ class Customers extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/customers')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('customers.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'customers']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.customers', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('customers.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +215,7 @@ class Customers extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -269,7 +277,7 @@ class Customers extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -94,7 +94,7 @@ class Invoices extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -127,15 +127,23 @@ class Invoices extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/invoices')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('invoices.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'invoices']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.invoices', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('invoices.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -173,7 +181,7 @@ class Invoices extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -199,7 +207,7 @@ class Invoices extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -359,7 +367,7 @@ class Invoices extends Controller
|
||||
} catch(\Exception $e) {
|
||||
$message = $e->getMessage();
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return redirect()->back();
|
||||
|
@ -66,7 +66,17 @@ class Revenues extends Controller
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
return view('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods'));
|
||||
$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('sales.revenues.create', compact('accounts', 'currencies', 'account_currency_code', 'currency', 'customers', 'categories', 'payment_methods', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +101,7 @@ class Revenues extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -124,15 +134,23 @@ class Revenues extends Controller
|
||||
*/
|
||||
public function import(ImportRequest $request)
|
||||
{
|
||||
if (true !== $result = $this->importExcel(new Import, $request, 'sales/revenues')) {
|
||||
return $result;
|
||||
$response = $this->importExcel(new Import, $request);
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('revenues.index');
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('import.create', ['sales', 'revenues']);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => trans_choice('general.revenues', 2)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('revenues.index');
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,7 +184,17 @@ class Revenues extends Controller
|
||||
|
||||
$date_format = $this->getCompanyDateFormat();
|
||||
|
||||
return view('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format'));
|
||||
$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('sales.revenues.edit', compact('revenue', 'accounts', 'currencies', 'currency', 'customers', 'categories', 'payment_methods', 'date_format', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -192,7 +220,7 @@ class Revenues extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -218,7 +246,7 @@ class Revenues extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -82,7 +82,7 @@ class Categories extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -132,7 +132,7 @@ class Categories extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -194,7 +194,7 @@ class Categories extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -90,7 +90,7 @@ class Currencies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -158,7 +158,7 @@ class Currencies extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -220,7 +220,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -41,12 +41,18 @@ class Localisation extends Controller
|
||||
'both' => trans('settings.localisation.discount_location.both'),
|
||||
];
|
||||
|
||||
$financial_denote_options = [
|
||||
'begins' => trans('settings.localisation.financial_denote.begins'),
|
||||
'ends' => trans('settings.localisation.financial_denote.ends'),
|
||||
];
|
||||
|
||||
return view('settings.localisation.edit', compact(
|
||||
'timezones',
|
||||
'date_formats',
|
||||
'date_separators',
|
||||
'percent_positions',
|
||||
'discount_locations'
|
||||
'discount_locations',
|
||||
'financial_denote_options'
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ class Taxes extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -143,7 +143,7 @@ class Taxes extends Controller
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -205,7 +205,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -68,7 +68,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -95,7 +95,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -121,7 +121,7 @@ class Currencies extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -55,7 +55,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -82,7 +82,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
@ -108,7 +108,7 @@ class Taxes extends Controller
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
|
@ -148,6 +148,7 @@ class Kernel extends HttpKernel
|
||||
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
||||
'company.settings' => \App\Http\Middleware\LoadSettings::class,
|
||||
'company.signed' => \App\Http\Middleware\SignedCompany::class,
|
||||
'dropzone' => \App\Http\Middleware\Dropzone::class,
|
||||
'header.x' => \App\Http\Middleware\AddXHeader::class,
|
||||
'menu.admin' => \App\Http\Middleware\AdminMenu::class,
|
||||
'menu.portal' => \App\Http\Middleware\PortalMenu::class,
|
||||
|
65
app/Http/Middleware/Dropzone.php
Normal file
65
app/Http/Middleware/Dropzone.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class Dropzone
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if (!in_array($request->method(), ['POST', 'PATCH'])) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$multiple = false;
|
||||
|
||||
foreach ($request->all() as $key => $value) {
|
||||
if (!is_array($value)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$files = [];
|
||||
$uploaded = [];
|
||||
|
||||
foreach ($value as $index => $parameter) {
|
||||
// single file uploaded..
|
||||
if (!is_array($parameter) && !$multiple) {
|
||||
if (!Arr::has($value, 'dropzone')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$request->request->set('uploaded_' . $key, $value);
|
||||
|
||||
unset($request[$key]);
|
||||
break;
|
||||
}
|
||||
|
||||
// multiple file uploaded..
|
||||
if (!Arr::has($parameter, 'dropzone')) {
|
||||
$files[] = $parameter;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$multiple = true;
|
||||
$uploaded[] = $parameter;
|
||||
}
|
||||
|
||||
if ($multiple && $uploaded) {
|
||||
$request->request->set('uploaded_' . $key, $uploaded);
|
||||
$request->request->set($key, $files);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@ -19,95 +19,65 @@ class Money
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if ($request->method() == 'POST' || $request->method() == 'PATCH') {
|
||||
$amount = $request->get('amount');
|
||||
$document_number = $request->get('document_number');
|
||||
$sale_price = $request->get('sale_price');
|
||||
$purchase_price = $request->get('purchase_price');
|
||||
$opening_balance = $request->get('opening_balance');
|
||||
$items = $request->get('items');
|
||||
if (($request->method() != 'POST') && ($request->method() != 'PATCH')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
if (!empty($amount)) {
|
||||
try {
|
||||
$amount = money($amount)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
$parameters = [
|
||||
'amount',
|
||||
'sale_price',
|
||||
'purchase_price',
|
||||
'opening_balance',
|
||||
];
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$request->request->set('amount', $amount);
|
||||
foreach ($parameters as $parameter) {
|
||||
if (!$request->has($parameter)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (isset($document_number) || !empty($items)) {
|
||||
if (!empty($items)) {
|
||||
foreach ($items as $key => $item) {
|
||||
if (!isset($item['price'])) {
|
||||
continue;
|
||||
}
|
||||
$money_format = $request->get($parameter);
|
||||
|
||||
try {
|
||||
$amount = money($item['price'])->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
if ($parameter == 'sale_price' || $parameter == 'purchase_price') {
|
||||
$money_format = Str::replaceFirst(',', '.', $money_format);
|
||||
}
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
$amount = $this->getAmount($money_format);
|
||||
|
||||
$items[$key]['price'] = $amount;
|
||||
$request->request->set($parameter, $amount);
|
||||
}
|
||||
|
||||
$document_number = $request->get('document_number');
|
||||
$items = $request->get('items');
|
||||
|
||||
if (isset($document_number) || !empty($items)) {
|
||||
if (!empty($items)) {
|
||||
foreach ($items as $key => $item) {
|
||||
if (!isset($item['price'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$request->request->set('items', $items);
|
||||
}
|
||||
}
|
||||
$amount = $this->getAmount($item['price']);
|
||||
|
||||
if (isset($opening_balance)) {
|
||||
try {
|
||||
$amount = money($opening_balance)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
$items[$key]['price'] = $amount;
|
||||
}
|
||||
|
||||
$opening_balance = $amount;
|
||||
|
||||
$request->request->set('opening_balance', $opening_balance);
|
||||
}
|
||||
|
||||
if (isset($sale_price)) {
|
||||
$sale_price = Str::replaceFirst(',', '.', $sale_price);
|
||||
|
||||
try {
|
||||
$amount = money($sale_price)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$sale_price = $amount;
|
||||
|
||||
$request->request->set('sale_price', $sale_price);
|
||||
}
|
||||
|
||||
if (isset($purchase_price)) {
|
||||
$purchase_price = Str::replaceFirst(',', '.', $purchase_price);
|
||||
|
||||
try {
|
||||
$amount = money($purchase_price)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
$purchase_price = $amount;
|
||||
|
||||
$request->request->set('purchase_price', $purchase_price);
|
||||
$request->request->set('items', $items);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
protected function getAmount($money_format)
|
||||
{
|
||||
try {
|
||||
$amount = money($money_format)->getAmount();
|
||||
} catch (InvalidArgumentException | OutOfBoundsException | UnexpectedValueException $e) {
|
||||
logger($e->getMessage());
|
||||
|
||||
$amount = 0;
|
||||
}
|
||||
|
||||
return $amount;
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ class Transaction extends FormRequest
|
||||
'contact_id' => 'nullable|integer',
|
||||
'category_id' => 'required|integer',
|
||||
'payment_method' => 'required|string',
|
||||
'attachment' => $attachment,
|
||||
'attachment.*' => $attachment,
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,6 @@ use App\Models\Banking\Transfer as Model;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Traits\Currencies;
|
||||
use App\Utilities\Date;
|
||||
use PhpOffice\PhpSpreadsheet\Shared\Date as ExcelDate;
|
||||
|
||||
class Transfers extends Import
|
||||
{
|
||||
@ -23,7 +22,7 @@ class Transfers extends Import
|
||||
{
|
||||
$row = parent::map($row);
|
||||
|
||||
$row['transferred_at'] = Date::parse(ExcelDate::excelToDateTimeObject($row['transferred_at']))->format('Y-m-d');
|
||||
$row['transferred_at'] = Date::parse($row['transferred_at'])->format('Y-m-d');
|
||||
$row['from_account_id'] = $this->getFromAccountId($row);
|
||||
$row['to_account_id'] = $this->getToAccountId($row);
|
||||
$row['expense_transaction_id'] = $this->getExpenseTransactionId($row);
|
||||
|
@ -37,9 +37,11 @@ class CreateTransaction extends Job
|
||||
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$media = $this->getMedia($this->request->file('attachment'), 'transactions');
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transactions');
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
}
|
||||
}
|
||||
|
||||
// Recurring
|
||||
|
@ -37,9 +37,15 @@ class UpdateTransaction extends Job
|
||||
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$media = $this->getMedia($this->request->file('attachment'), 'transactions');
|
||||
$this->deleteMediaModel($this->transaction, 'attachment', $this->request);
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transactions');
|
||||
|
||||
$this->transaction->attachMedia($media, 'attachment');
|
||||
}
|
||||
} elseif (!$this->request->file('attachment') && $this->transaction->attachment) {
|
||||
$this->deleteMediaModel($this->transaction, 'attachment', $this->request);
|
||||
}
|
||||
|
||||
// Recurring
|
||||
|
@ -46,13 +46,15 @@ class UpdateDocument extends Job
|
||||
\DB::transaction(function () {
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$this->document->delete_attachment();
|
||||
$this->deleteMediaModel($this->document, 'attachment', $this->request);
|
||||
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, Str::plural($this->document->type));
|
||||
|
||||
$this->document->attachMedia($media, 'attachment');
|
||||
}
|
||||
} elseif (!$this->request->file('attachment') && $this->document->attachment) {
|
||||
$this->deleteMediaModel($this->document, 'attachment', $this->request);
|
||||
}
|
||||
|
||||
$this->deleteRelationships($this->document, ['items', 'item_taxes', 'totals']);
|
||||
|
@ -22,7 +22,7 @@ class Login
|
||||
if (!$company) {
|
||||
app('App\Http\Controllers\Auth\Login')->logout();
|
||||
|
||||
flash(trans('auth.error.no_company'))->error();
|
||||
flash(trans('auth.error.no_company'))->error()->important();
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -32,13 +32,13 @@ class CreateDocumentTransaction
|
||||
$type = Str::plural($event->document->type);
|
||||
|
||||
if (empty($user)) {
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
redirect()->route("signed.$type.show", $document->id)->send();
|
||||
}
|
||||
|
||||
if ($user->can('read-client-portal')) {
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
redirect()->route("portal.$type.show", $document->id)->send();
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Models\Banking;
|
||||
|
||||
use App\Abstracts\Model;
|
||||
use App\Models\Common\Media as MediaModel;
|
||||
use App\Models\Setting\Category;
|
||||
use App\Scopes\Transaction as Scope;
|
||||
use App\Traits\Currencies;
|
||||
@ -320,7 +321,16 @@ class Transaction extends Model
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->getMedia('attachment')->last();
|
||||
return $this->getMedia('attachment')->all();
|
||||
}
|
||||
|
||||
public function delete_attachment()
|
||||
{
|
||||
if ($attachments = $this->attachment) {
|
||||
foreach ($attachments as $file) {
|
||||
MediaModel::where('id', $file->id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,10 +5,11 @@ namespace App\Models\Banking;
|
||||
use App\Abstracts\Model;
|
||||
use App\Traits\Currencies;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Znck\Eloquent\Traits\BelongsToThrough;
|
||||
|
||||
class Transfer extends Model
|
||||
{
|
||||
use HasFactory, Currencies;
|
||||
use BelongsToThrough, Currencies, HasFactory;
|
||||
|
||||
protected $table = 'transfers';
|
||||
|
||||
@ -33,7 +34,13 @@ class Transfer extends Model
|
||||
|
||||
public function expense_account()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Account', 'expense_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'expense_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
public function income_transaction()
|
||||
@ -43,7 +50,13 @@ class Transfer extends Model
|
||||
|
||||
public function income_account()
|
||||
{
|
||||
return $this->belongsTo('App\Models\Banking\Account', 'income_transaction.account_id', 'id')->withDefault(['name' => trans('general.na')]);
|
||||
return $this->belongsToThrough(
|
||||
'App\Models\Banking\Account',
|
||||
'App\Models\Banking\Transaction',
|
||||
null,
|
||||
'',
|
||||
['App\Models\Banking\Transaction' => 'income_transaction_id']
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Traits;
|
||||
|
||||
use App\Traits\SearchString;
|
||||
use Carbon\CarbonPeriod;
|
||||
use Date;
|
||||
|
||||
trait DateTime
|
||||
@ -109,14 +110,32 @@ trait DateTime
|
||||
|
||||
$financial_start = Date::create($year, $month, $day);
|
||||
|
||||
// Check if FS is in last calendar year
|
||||
if ($now->diffInDays($financial_start, false) > 0) {
|
||||
if ((setting('localisation.financial_denote') == 'ends') && ($financial_start->dayOfYear != 1)) {
|
||||
$financial_start->subYear();
|
||||
}
|
||||
|
||||
return $financial_start;
|
||||
}
|
||||
|
||||
public function getFinancialYear($year = null)
|
||||
{
|
||||
$start = $this->getFinancialStart($year);
|
||||
|
||||
return CarbonPeriod::create($start, $start->copy()->addYear()->subDay());
|
||||
}
|
||||
|
||||
public function getFinancialQuarters($year = null)
|
||||
{
|
||||
$quarters = [];
|
||||
$start = $this->getFinancialStart($year);
|
||||
|
||||
for ($i = 0; $i < 4; $i++) {
|
||||
$quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay());
|
||||
}
|
||||
|
||||
return $quarters;
|
||||
}
|
||||
|
||||
public function getMonthlyDateFormat($year = null)
|
||||
{
|
||||
$format = 'M';
|
||||
|
@ -145,7 +145,7 @@ trait Omnipay
|
||||
|
||||
$invoice_url = $this->getInvoiceUrl($invoice);
|
||||
|
||||
flash($message)->error();
|
||||
flash($message)->error()->important();
|
||||
|
||||
if ($force_redirect) {
|
||||
return redirect($invoice_url);
|
||||
|
@ -3,10 +3,10 @@
|
||||
namespace App\Traits;
|
||||
|
||||
use MediaUploader;
|
||||
use App\Models\Common\Media as MediaModel;
|
||||
|
||||
trait Uploads
|
||||
{
|
||||
|
||||
public function getUploadedFilePath($file, $folder = 'settings', $company_id = null)
|
||||
{
|
||||
$path = '';
|
||||
@ -63,4 +63,35 @@ trait Uploads
|
||||
|
||||
return MediaUploader::importPath($disk, $path);
|
||||
}
|
||||
|
||||
public function deleteMediaModel($model, $parameter, $request = null)
|
||||
{
|
||||
$medias = $model->$parameter;
|
||||
|
||||
if (!$medias) {
|
||||
return;
|
||||
}
|
||||
|
||||
$already_uploaded = [];
|
||||
|
||||
if ($request && isset($request['uploaded_' . $parameter])) {
|
||||
$uploaded = $request['uploaded_' . $parameter];
|
||||
|
||||
if (count($medias) == count($uploaded)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($uploaded as $old_media) {
|
||||
$already_uploaded[] = $old_media['id'];
|
||||
}
|
||||
}
|
||||
|
||||
foreach ((array)$medias as $media) {
|
||||
if (in_array($media->id, $already_uploaded)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
MediaModel::where('id', $media->id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\View\Components\Documents\Form;
|
||||
|
||||
use App\Abstracts\View\Components\DocumentForm as Component;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Models\Common\Company as Model;
|
||||
|
||||
class Company extends Component
|
||||
{
|
||||
@ -14,7 +14,7 @@ class Company extends Component
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$company = user()->companies()->first();
|
||||
$company = Model::find(session('company_id'));
|
||||
|
||||
$inputNameType = config('type.' . $this->type . '.route.parameter');
|
||||
|
||||
|
146
app/View/Components/EmptyPage.php
Normal file
146
app/View/Components/EmptyPage.php
Normal file
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components;
|
||||
|
||||
use Illuminate\View\Component;
|
||||
use Illuminate\Support\Str;
|
||||
use Symfony\Component\Routing\Exception\RouteNotFoundException;
|
||||
|
||||
class EmptyPage extends Component
|
||||
{
|
||||
/** @var string */
|
||||
public $page;
|
||||
|
||||
/** @var string */
|
||||
public $group;
|
||||
|
||||
/** @var string */
|
||||
public $imageEmptyPage;
|
||||
|
||||
/** @var string */
|
||||
public $textEmptyPage;
|
||||
|
||||
/** @var string */
|
||||
public $textPage;
|
||||
|
||||
/** @var string */
|
||||
public $urlDocsPath;
|
||||
|
||||
/** @var bool */
|
||||
public $checkPermissionCreate;
|
||||
|
||||
/** @var string */
|
||||
public $permissionCreate;
|
||||
|
||||
/** @var string */
|
||||
public $routeCreate;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
string $page, string $group = '', string $imageEmptyPage = '', string $textEmptyPage = '', string $textPage = '',
|
||||
string $urlDocsPath = '', bool $checkPermissionCreate = true, string $permissionCreate = '', string $routeCreate = ''
|
||||
) {
|
||||
$this->page = $page;
|
||||
$this->group = $group;
|
||||
$this->imageEmptyPage = $this->getImageEmptyPage($page, $imageEmptyPage);
|
||||
$this->textEmptyPage = $this->getTextEmptyPage($page, $textEmptyPage);
|
||||
$this->textPage = $this->getTextPage($page, $textPage);
|
||||
$this->urlDocsPath = $this->getUrlDocsPath($page, $group, $urlDocsPath);
|
||||
$this->checkPermissionCreate = $checkPermissionCreate;
|
||||
$this->permissionCreate = $this->getPermissionCreate($page, $group, $permissionCreate);
|
||||
$this->routeCreate = $this->getRouteCreate($page, $routeCreate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.empty-page');
|
||||
}
|
||||
|
||||
protected function getImageEmptyPage($page, $imageEmptyPage)
|
||||
{
|
||||
if ($imageEmptyPage) {
|
||||
return $imageEmptyPage;
|
||||
}
|
||||
|
||||
return 'public/img/empty_pages/' . $page . '.png';
|
||||
}
|
||||
|
||||
protected function getTextEmptyPage($page, $textEmptyPage)
|
||||
{
|
||||
if ($textEmptyPage) {
|
||||
return $textEmptyPage;
|
||||
}
|
||||
|
||||
return 'general.empty.' . $page;
|
||||
}
|
||||
|
||||
protected function getTextPage($page, $textPage)
|
||||
{
|
||||
if ($textPage) {
|
||||
return $textPage;
|
||||
}
|
||||
|
||||
return 'general.' . $page;
|
||||
}
|
||||
|
||||
protected function getUrlDocsPath($page, $group, $urlDocsPath)
|
||||
{
|
||||
if ($urlDocsPath) {
|
||||
return $urlDocsPath;
|
||||
}
|
||||
|
||||
$docs_path = $page;
|
||||
|
||||
if (!empty($group)) {
|
||||
$docs_path = $group . '/' . $page;
|
||||
}
|
||||
|
||||
return 'https://akaunting.com/docs/user-manual/' . $page;
|
||||
}
|
||||
|
||||
protected function getPermissionCreate($page, $group, $permissionCreate)
|
||||
{
|
||||
if ($permissionCreate) {
|
||||
return $permissionCreate;
|
||||
}
|
||||
|
||||
$pages = [
|
||||
'reconciliations' => 'create-banking-reconciliations',
|
||||
'transfers' => 'create-banking-transfers',
|
||||
'payments' => 'create-purchases-payments',
|
||||
'vendors' => 'create-purchases-vendors',
|
||||
'customers' => 'create-sales-customers',
|
||||
'revenues' => 'create-sales-revenues',
|
||||
'taxes' => 'create-settings-taxes',
|
||||
'items' => 'create-common-items',
|
||||
];
|
||||
|
||||
if (array_key_exists($page, $pages)) {
|
||||
$permissionCreate = $pages[$page];
|
||||
}
|
||||
|
||||
if (empty($permissionCreate) && !empty($group)) {
|
||||
$permissionCreate = 'create-' . $group . '-' . $page;
|
||||
}
|
||||
|
||||
return $permissionCreate;
|
||||
}
|
||||
|
||||
protected function getRouteCreate($page, $routeCreate)
|
||||
{
|
||||
if ($routeCreate) {
|
||||
return $routeCreate;
|
||||
}
|
||||
|
||||
return $page . '.create';
|
||||
}
|
||||
}
|
@ -33,26 +33,26 @@ class SearchString extends Component
|
||||
{
|
||||
if (empty($this->filters)) {
|
||||
$search_string = config('search-string');
|
||||
|
||||
|
||||
$this->filters = [];
|
||||
|
||||
|
||||
if (!empty($search_string[$this->model])) {
|
||||
$columns = $search_string[$this->model]['columns'];
|
||||
|
||||
|
||||
foreach ($columns as $column => $options) {
|
||||
// This column skip for filter
|
||||
if (!empty($options['searchable'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (!is_array($options)) {
|
||||
$column = $options;
|
||||
}
|
||||
|
||||
|
||||
if (!$this->isFilter($column, $options)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
$this->filters[] = [
|
||||
'key' => $this->getFilterKey($column, $options),
|
||||
'value' => $this->getFilterName($column, $options),
|
||||
@ -80,6 +80,10 @@ class SearchString extends Component
|
||||
|
||||
protected function getFilterKey($column, $options)
|
||||
{
|
||||
if (isset($options['key'])) {
|
||||
$column = $options['key'];
|
||||
}
|
||||
|
||||
if (isset($options['relationship'])) {
|
||||
$column .= '.id';
|
||||
}
|
||||
@ -101,19 +105,29 @@ class SearchString extends Component
|
||||
|
||||
$plural = Str::plural($column, 2);
|
||||
|
||||
if (trans_choice('general.' . $plural, 1) !== 'general.' . $plural) {
|
||||
return trans_choice('general.' . $plural, 1);
|
||||
} elseif (trans_choice('search_string.columns.' . $plural, 1) !== 'search_string.columns.' . $plural) {
|
||||
return trans_choice('search_string.columns.' . $plural, 1);
|
||||
if (strpos($this->model, 'Modules') !== false) {
|
||||
$module_class = explode('\\', $this->model);
|
||||
|
||||
$prefix = Str::kebab($module_class[1]) . '::';
|
||||
|
||||
$translation_keys[] = $prefix . 'general.';
|
||||
$translation_keys[] = $prefix . 'search_string.columns.';
|
||||
}
|
||||
|
||||
$name = trans('general.' . $column);
|
||||
$translation_keys[] = 'general.';
|
||||
$translation_keys[] = 'search_string.columns.';
|
||||
|
||||
if ($name == 'general.' . $column) {
|
||||
$name = trans('search_string.columns.' . $column);
|
||||
foreach ($translation_keys as $translation_key) {
|
||||
if (trans_choice($translation_key . $plural, 1) !== $translation_key . $plural) {
|
||||
return trans_choice($translation_key . $plural, 1);
|
||||
}
|
||||
|
||||
if (trans($translation_key . $column) !== $translation_key . $column) {
|
||||
return trans($translation_key . $column);
|
||||
}
|
||||
}
|
||||
|
||||
return $name;
|
||||
return $column;
|
||||
}
|
||||
|
||||
protected function getFilterType($options)
|
||||
|
@ -36,7 +36,7 @@ class SelectItemButton extends Component
|
||||
public function render()
|
||||
{
|
||||
$items = Item::enabled()->orderBy('name')->take(setting('default.select_limit'))->get();
|
||||
$price_type= $this->getPriceType($this->type, $this->isSale, $this->isPurchase);
|
||||
$price_type = $this->getPriceType($this->type, $this->isSale, $this->isPurchase);
|
||||
|
||||
foreach ($items as $item) {
|
||||
$price = $item->{$price_type . '_price'};
|
||||
@ -44,7 +44,7 @@ class SelectItemButton extends Component
|
||||
$item->price = $price;
|
||||
}
|
||||
|
||||
$price = ($this->isPurchase) ? 'purchase_price' : 'sale_price';
|
||||
$price = $price_type . '_price';
|
||||
|
||||
return view('components.select-item-button', compact('items', 'price'));
|
||||
}
|
||||
@ -55,7 +55,7 @@ class SelectItemButton extends Component
|
||||
return 'sale';
|
||||
}
|
||||
|
||||
if (!empty($is_sale)) {
|
||||
if (!empty($is_purchase)) {
|
||||
return 'purchase';
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user