Minor fixes

This commit is contained in:
harshjagad20
2022-03-03 13:25:12 +05:30
parent ea9748ca68
commit 69d8c95557
6 changed files with 36 additions and 15 deletions

View File

@ -8,7 +8,7 @@ use Crater\Models\CompanySetting;
use Crater\Models\Currency; use Crater\Models\Currency;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class CompanyCurrencyTransactionController extends Controller class CompanyCurrencyCheckTransactionsController extends Controller
{ {
/** /**
* Handle the incoming request. * Handle the incoming request.
@ -24,15 +24,7 @@ class CompanyCurrencyTransactionController extends Controller
$currency = Currency::find((int)$companyCurrency); $currency = Currency::find((int)$companyCurrency);
if ( if ($currency->checkTransactions()) {
$currency->customers()->exists() ||
$currency->items()->exists() ||
$currency->invoices()->exists() ||
$currency->estimates()->exists() ||
$currency->expenses()->exists() ||
$currency->payments()->exists() ||
$currency->recurringInvoices()->exists()
) {
return response()->json([ return response()->json([
'success' => false, 'success' => false,
]); ]);

View File

@ -6,6 +6,7 @@ use Crater\Http\Controllers\Controller;
use Crater\Http\Requests\UpdateSettingsRequest; use Crater\Http\Requests\UpdateSettingsRequest;
use Crater\Models\Company; use Crater\Models\Company;
use Crater\Models\CompanySetting; use Crater\Models\CompanySetting;
use Crater\Models\Currency;
class UpdateCompanySettingsController extends Controller class UpdateCompanySettingsController extends Controller
{ {
@ -19,7 +20,19 @@ class UpdateCompanySettingsController extends Controller
{ {
$this->authorize('manage company', Company::find($request->header('company'))); $this->authorize('manage company', Company::find($request->header('company')));
CompanySetting::setSettings($request->settings, $request->header('company')); $companyCurrency = CompanySetting::getSetting('currency', $request->header('company'));
$data = $request->settings;
$currency = Currency::find((int)$companyCurrency);
if ($companyCurrency !== $data['currency'] && $currency->checkTransactions()) {
return response()->json([
'success' => false,
'message' => 'You cannot change currency once transaction is created.'
]);
}
CompanySetting::setSettings($data, $request->header('company'));
return response()->json([ return response()->json([
'success' => true, 'success' => true,

View File

@ -47,4 +47,21 @@ class Currency extends Model
{ {
return $this->hasMany(RecurringInvoice::class); return $this->hasMany(RecurringInvoice::class);
} }
public function checkTransactions()
{
if (
$this->customers()->exists() ||
$this->items()->exists() ||
$this->invoices()->exists() ||
$this->estimates()->exists() ||
$this->expenses()->exists() ||
$this->payments()->exists() ||
$this->recurringInvoices()->exists()
) {
return true;
}
return false;
}
} }

View File

@ -27,7 +27,6 @@ class Invoice extends Model implements HasMedia
public const STATUS_DRAFT = 'DRAFT'; public const STATUS_DRAFT = 'DRAFT';
public const STATUS_SENT = 'SENT'; public const STATUS_SENT = 'SENT';
public const STATUS_OVERDUE = 'OVERDUE';
public const STATUS_VIEWED = 'VIEWED'; public const STATUS_VIEWED = 'VIEWED';
public const STATUS_COMPLETED = 'COMPLETED'; public const STATUS_COMPLETED = 'COMPLETED';

View File

@ -12,7 +12,7 @@ class ChangeOverDueStatusToSent extends Migration
*/ */
public function up() public function up()
{ {
$overdueInvoices = Invoice::where('status', Invoice::STATUS_OVERDUE)->get(); $overdueInvoices = Invoice::where('status', 'OVERDUE')->get();
if ($overdueInvoices) { if ($overdueInvoices) {
$overdueInvoices->map(function ($overdueInvoice) { $overdueInvoices->map(function ($overdueInvoice) {

View File

@ -67,7 +67,7 @@ use Crater\Http\Controllers\V1\Admin\RecurringInvoice\RecurringInvoiceFrequencyC
use Crater\Http\Controllers\V1\Admin\Role\AbilitiesController; use Crater\Http\Controllers\V1\Admin\Role\AbilitiesController;
use Crater\Http\Controllers\V1\Admin\Role\RolesController; use Crater\Http\Controllers\V1\Admin\Role\RolesController;
use Crater\Http\Controllers\V1\Admin\Settings\CompanyController; use Crater\Http\Controllers\V1\Admin\Settings\CompanyController;
use Crater\Http\Controllers\V1\Admin\Settings\CompanyCurrencyTransactionController; use Crater\Http\Controllers\V1\Admin\Settings\CompanyCurrencyCheckTransactionsController;
use Crater\Http\Controllers\V1\Admin\Settings\DiskController; use Crater\Http\Controllers\V1\Admin\Settings\DiskController;
use Crater\Http\Controllers\V1\Admin\Settings\GetCompanyMailConfigurationController; use Crater\Http\Controllers\V1\Admin\Settings\GetCompanyMailConfigurationController;
use Crater\Http\Controllers\V1\Admin\Settings\GetCompanySettingsController; use Crater\Http\Controllers\V1\Admin\Settings\GetCompanySettingsController;
@ -395,7 +395,7 @@ Route::prefix('/v1')->group(function () {
Route::post('/settings', UpdateSettingsController::class); Route::post('/settings', UpdateSettingsController::class);
Route::get('/company-currency-transaction', CompanyCurrencyTransactionController::class); Route::get('/company/has-transactions', CompanyCurrencyCheckTransactionsController::class);
// Mails // Mails