mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
build version 400
This commit is contained in:
52
app/Http/Controllers/V1/General/BootstrapController.php
Normal file
52
app/Http/Controllers/V1/General/BootstrapController.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Crater\Models\Currency;
|
||||
use Crater\Models\Country;
|
||||
use Auth;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\CustomField;
|
||||
|
||||
class BootstrapController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
$default_language = $user->getSettings(['language'])['language'];
|
||||
|
||||
$settings = [
|
||||
'moment_date_format',
|
||||
'carbon_date_format',
|
||||
'fiscal_year',
|
||||
'time_zone',
|
||||
'currency'
|
||||
];
|
||||
|
||||
$settings = CompanySetting::getSettings($settings, $user->company_id);
|
||||
|
||||
$default_currency = Currency::findOrFail($settings['currency']);
|
||||
|
||||
return response()->json([
|
||||
'user' => $user,
|
||||
'company' => $user->company,
|
||||
'currencies' => Currency::all(),
|
||||
'countries' => Country::all(),
|
||||
'default_currency' => $default_currency,
|
||||
'default_language' => $default_language,
|
||||
'moment_date_format' => $settings['moment_date_format'],
|
||||
'carbon_date_format' => $settings['carbon_date_format'],
|
||||
'fiscal_year' => $settings['fiscal_year'],
|
||||
'time_zone' => $settings['time_zone']
|
||||
]);
|
||||
}
|
||||
}
|
||||
23
app/Http/Controllers/V1/General/CountriesController.php
Normal file
23
app/Http/Controllers/V1/General/CountriesController.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Models\Country;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CountriesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'countries' => Country::all()
|
||||
]);
|
||||
}
|
||||
}
|
||||
25
app/Http/Controllers/V1/General/CurrenciesController.php
Normal file
25
app/Http/Controllers/V1/General/CurrenciesController.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Models\Currency;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CurrenciesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$currencies = Currency::latest()->get();
|
||||
|
||||
return response()->json([
|
||||
'currencies' => $currencies
|
||||
]);
|
||||
}
|
||||
}
|
||||
23
app/Http/Controllers/V1/General/DateFormatsController.php
Normal file
23
app/Http/Controllers/V1/General/DateFormatsController.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Space\DateFormatter;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DateFormatsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'date_formats' => DateFormatter::get_list()
|
||||
]);
|
||||
}
|
||||
}
|
||||
22
app/Http/Controllers/V1/General/FiscalYearsController.php
Normal file
22
app/Http/Controllers/V1/General/FiscalYearsController.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class FiscalYearsController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'fiscal_years' => config('crater.fiscal_years')
|
||||
]);
|
||||
}
|
||||
}
|
||||
22
app/Http/Controllers/V1/General/LanguagesController.php
Normal file
22
app/Http/Controllers/V1/General/LanguagesController.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LanguagesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'languages' => config('crater.languages')
|
||||
]);
|
||||
}
|
||||
}
|
||||
55
app/Http/Controllers/V1/General/NextNumberController.php
Normal file
55
app/Http/Controllers/V1/General/NextNumberController.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Models\Invoice;
|
||||
use Crater\Models\Estimate;
|
||||
use Crater\Models\Payment;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class NextNumberController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$key = $request->key;
|
||||
|
||||
$val = $key . '_prefix';
|
||||
|
||||
$prefix = CompanySetting::getSetting(
|
||||
$val,
|
||||
$request->header('company')
|
||||
);
|
||||
|
||||
$nextNumber = null;
|
||||
|
||||
switch ($key) {
|
||||
case 'invoice':
|
||||
$nextNumber = Invoice::getNextInvoiceNumber($prefix);
|
||||
break;
|
||||
|
||||
case 'estimate':
|
||||
$nextNumber = Estimate::getNextEstimateNumber($prefix);
|
||||
break;
|
||||
|
||||
case 'payment':
|
||||
$nextNumber = Payment::getNextPaymentNumber($prefix);
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'nextNumber' => $nextNumber,
|
||||
'prefix' => $prefix
|
||||
]);
|
||||
}
|
||||
}
|
||||
88
app/Http/Controllers/V1/General/NotesController.php
Normal file
88
app/Http/Controllers/V1/General/NotesController.php
Normal file
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Http\Requests\NotesRequest;
|
||||
use Crater\Models\Note;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class NotesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$limit = $request->limit ?? 10;
|
||||
|
||||
$notes = Note::latest()
|
||||
->applyFilters($request->only(['type', 'search']))
|
||||
->paginate($limit);
|
||||
|
||||
return response()->json([
|
||||
'notes' => $notes
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(NotesRequest $request)
|
||||
{
|
||||
$note = Note::create($request->validated());
|
||||
|
||||
return response()->json([
|
||||
'note' => $note
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*
|
||||
* @param \Crater\Models\Note $note
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function show(Note $note)
|
||||
{
|
||||
return response()->json([
|
||||
'note' => $note
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Crater\Models\Note $note
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(NotesRequest $request, Note $note)
|
||||
{
|
||||
$note->update($request->validated());
|
||||
|
||||
return response()->json([
|
||||
'note' => $note
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param \Crater\Models\Note $note
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy(Note $note)
|
||||
{
|
||||
$note->delete();
|
||||
|
||||
return response()->json([
|
||||
'success' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
37
app/Http/Controllers/V1/General/SearchController.php
Normal file
37
app/Http/Controllers/V1/General/SearchController.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class SearchController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$customers = User::where('role', 'customer')
|
||||
->applyFilters($request->only(['search']))
|
||||
->latest()
|
||||
->paginate(10);
|
||||
|
||||
if (Auth::user()->role == 'super admin') {
|
||||
$users = User::where('role', 'admin')
|
||||
->applyFilters($request->only(['search']))
|
||||
->latest()
|
||||
->paginate(10);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'customers' => $customers,
|
||||
'users' => $users ?? []
|
||||
]);
|
||||
}
|
||||
}
|
||||
23
app/Http/Controllers/V1/General/TimezonesController.php
Normal file
23
app/Http/Controllers/V1/General/TimezonesController.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Crater\Http\Controllers\V1\General;
|
||||
|
||||
use Crater\Http\Controllers\Controller;
|
||||
use Crater\Space\TimeZones;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TimezonesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
return response()->json([
|
||||
'time_zones' => TimeZones::get_list()
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user