mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-27 11:41:09 -04:00
Merge branch 'master'
This commit is contained in:
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Crater\Console;
|
||||
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\RecurringInvoice;
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
@ -37,9 +38,11 @@ class Kernel extends ConsoleKernel
|
||||
|
||||
$recurringInvoices = RecurringInvoice::where('status', 'ACTIVE')->get();
|
||||
foreach ($recurringInvoices as $recurringInvoice) {
|
||||
$timeZone = CompanySetting::getSetting('time_zone', $recurringInvoice->company_id);
|
||||
|
||||
$schedule->call(function () use ($recurringInvoice) {
|
||||
$recurringInvoice->generateInvoice();
|
||||
})->cron($recurringInvoice->frequency);
|
||||
})->cron($recurringInvoice->frequency)->timezone($timeZone);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
namespace Crater\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Crater\Models\CompanySetting;
|
||||
use Crater\Models\FileDisk;
|
||||
|
||||
class ConfigMiddleware
|
||||
@ -18,15 +17,6 @@ class ConfigMiddleware
|
||||
public function handle($request, Closure $next)
|
||||
{
|
||||
if (\Storage::disk('local')->has('database_created')) {
|
||||
$setting = CompanySetting::getSetting('time_zone', $request->header('company'));
|
||||
|
||||
$timezone = config('app.timezone');
|
||||
|
||||
if ($setting && $setting != null && $setting != $timezone) {
|
||||
config(['app.timezone' => $setting]);
|
||||
date_default_timezone_set($setting);
|
||||
}
|
||||
|
||||
if ($request->has('file_disk_id')) {
|
||||
$file_disk = FileDisk::find($request->file_disk_id);
|
||||
} else {
|
||||
|
||||
@ -1,96 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Models\Company;
|
||||
use Crater\Models\User;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
use function Pest\Laravel\getJson;
|
||||
|
||||
beforeEach(function () {
|
||||
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
|
||||
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
|
||||
|
||||
$user = User::find(1);
|
||||
$this->withHeaders([
|
||||
'company' => $user->companies()->first()->id,
|
||||
]);
|
||||
Sanctum::actingAs(
|
||||
$user,
|
||||
['*']
|
||||
);
|
||||
});
|
||||
|
||||
test('get customer sales report', function () {
|
||||
$filters = [
|
||||
'page' => 1,
|
||||
'limit' => 15,
|
||||
'from_date' => '2020-07-18',
|
||||
'to_date' => '2020-07-20',
|
||||
];
|
||||
$queryString = http_build_query($filters, '', '&');
|
||||
$queryString = Company::find(1)->unique_hash.'?'.$queryString;
|
||||
|
||||
$response = getJson('reports/sales/customers/'.$queryString);
|
||||
|
||||
$response->assertOk();
|
||||
});
|
||||
|
||||
test('get item sales report', function () {
|
||||
$filters = [
|
||||
'page' => 1,
|
||||
'limit' => 15,
|
||||
'from_date' => '2020-07-18',
|
||||
'to_date' => '2020-07-20',
|
||||
];
|
||||
$queryString = http_build_query($filters, '', '&');
|
||||
$queryString = Company::find(1)->unique_hash.'?'.$queryString;
|
||||
|
||||
$response = getJson('reports/sales/items/'.$queryString);
|
||||
|
||||
$response->assertOk();
|
||||
});
|
||||
|
||||
test('get expenses report', function () {
|
||||
$filters = [
|
||||
'page' => 1,
|
||||
'limit' => 15,
|
||||
'from_date' => '2020-07-18',
|
||||
'to_date' => '2020-07-20',
|
||||
];
|
||||
$queryString = http_build_query($filters, '', '&');
|
||||
$queryString = Company::find(1)->unique_hash.'?'.$queryString;
|
||||
|
||||
$response = getJson('reports/expenses/'.$queryString);
|
||||
|
||||
$response->assertOk();
|
||||
});
|
||||
|
||||
test('get tax summary', function () {
|
||||
$filters = [
|
||||
'page' => 1,
|
||||
'limit' => 15,
|
||||
'from_date' => '2020-07-18',
|
||||
'to_date' => '2020-07-20',
|
||||
];
|
||||
$queryString = http_build_query($filters, '', '&');
|
||||
$queryString = Company::find(1)->unique_hash.'?'.$queryString;
|
||||
|
||||
$response = getJson('reports/tax-summary/'.$queryString);
|
||||
|
||||
$response->assertOk();
|
||||
});
|
||||
|
||||
test('get profit loss', function () {
|
||||
$filters = [
|
||||
'page' => 1,
|
||||
'limit' => 15,
|
||||
'from_date' => '2020-07-18',
|
||||
'to_date' => '2020-07-20',
|
||||
];
|
||||
$queryString = http_build_query($filters, '', '&');
|
||||
$queryString = Company::find(1)->unique_hash.'?'.$queryString;
|
||||
|
||||
$response = getJson('reports/profit-loss/'.$queryString);
|
||||
|
||||
$response->assertOk();
|
||||
});
|
||||
@ -1,29 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\BulkExchangeRateRequest;
|
||||
|
||||
test('bulk exchange rate request validation rules', function () {
|
||||
$request = new BulkExchangeRateRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'currencies' => [
|
||||
'required'
|
||||
],
|
||||
'currencies.*.id' => [
|
||||
'required',
|
||||
'numeric'
|
||||
],
|
||||
'currencies.*.exchange_rate' => [
|
||||
'required'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('bulk exchange rate request authorize', function () {
|
||||
$request = new BulkExchangeRateRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,55 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\CompaniesRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('companies request validation rules', function () {
|
||||
$request = new CompaniesRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('companies'),
|
||||
'string'
|
||||
],
|
||||
'currency' => [
|
||||
'required'
|
||||
],
|
||||
'address.name' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.address_street_1' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.address_street_2' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.city' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.state' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.country_id' => [
|
||||
'required',
|
||||
],
|
||||
'address.zip' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'address.fax' => [
|
||||
'nullable',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('companies request authorize', function () {
|
||||
$request = new CompaniesRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,30 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\CompanyRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('company request validation rules', function () {
|
||||
$request = new CompanyRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('companies')->ignore($request->header('company'), 'id'),
|
||||
],
|
||||
'slug' => [
|
||||
'nullable'
|
||||
],
|
||||
'address.country_id' => [
|
||||
'required',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('company request authorize', function () {
|
||||
$request = new CompanyRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\CustomFieldRequest;
|
||||
|
||||
test('custom field request validation rules', function () {
|
||||
$request = new CustomFieldRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => 'required',
|
||||
'label' => 'required',
|
||||
'model_type' => 'required',
|
||||
'type' => 'required',
|
||||
'is_required' => 'required|boolean',
|
||||
'options' => 'array',
|
||||
'placeholder' => 'string|nullable',
|
||||
'order' => 'required',
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('custom field request authorize', function () {
|
||||
$request = new CustomFieldRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\Customer\CustomerLoginRequest;
|
||||
|
||||
test('customer login request validation rules', function () {
|
||||
$request = new CustomerLoginRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'email' => [
|
||||
'required',
|
||||
'string'
|
||||
],
|
||||
'password' => [
|
||||
'required',
|
||||
'string'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('customer login request authorize', function () {
|
||||
$request = new CustomerLoginRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,92 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\Customer\CustomerProfileRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('customer profile request validation rules', function () {
|
||||
$request = new CustomerProfileRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'nullable',
|
||||
],
|
||||
'password' => [
|
||||
'nullable',
|
||||
'min:8',
|
||||
],
|
||||
'email' => [
|
||||
'nullable',
|
||||
'email',
|
||||
Rule::unique('customers')->where('company_id', $request->header('company'))->ignore(Auth::id(), 'id')
|
||||
],
|
||||
'billing.name' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.address_street_1' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.address_street_2' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.city' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.state' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.country_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.zip' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.fax' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.name' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.address_street_1' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.address_street_2' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.city' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.state' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.country_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.zip' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.fax' => [
|
||||
'nullable',
|
||||
],
|
||||
'customer_avatar' => [
|
||||
'nullable',
|
||||
'file',
|
||||
'mimes:gif,jpg,png',
|
||||
'max:20000'
|
||||
]
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('customer profile request authorize', function () {
|
||||
$request = new CustomerProfileRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,106 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\CustomerRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('customer request validation rules', function () {
|
||||
$request = new CustomerRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
'email' => [
|
||||
'email',
|
||||
'nullable',
|
||||
Rule::unique('customers')->where('company_id', $request->header('company'))
|
||||
],
|
||||
'password' => [
|
||||
'nullable',
|
||||
],
|
||||
'phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'company_name' => [
|
||||
'nullable',
|
||||
],
|
||||
'contact_name' => [
|
||||
'nullable',
|
||||
],
|
||||
'website' => [
|
||||
'nullable',
|
||||
],
|
||||
'prefix' => [
|
||||
'nullable',
|
||||
],
|
||||
'enable_portal' => [
|
||||
'boolean',
|
||||
],
|
||||
'currency_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.name' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.address_street_1' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.address_street_2' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.city' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.state' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.country_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.zip' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'billing.fax' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.name' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.address_street_1' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.address_street_2' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.city' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.state' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.country_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.zip' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'shipping.fax' => [
|
||||
'nullable',
|
||||
]
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('customer request authorize', function () {
|
||||
$request = new CustomerRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,74 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\EstimatesRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('estimate request validation rules', function () {
|
||||
$request = new EstimatesRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'estimate_date' => [
|
||||
'required',
|
||||
],
|
||||
'expiry_date' => [
|
||||
'nullable',
|
||||
],
|
||||
'customer_id' => [
|
||||
'required',
|
||||
],
|
||||
'estimate_number' => [
|
||||
'required',
|
||||
Rule::unique('estimates')->where('company_id', $request->header('company'))
|
||||
],
|
||||
'exchange_rate' => [
|
||||
'nullable'
|
||||
],
|
||||
'discount' => [
|
||||
'required',
|
||||
],
|
||||
'discount_val' => [
|
||||
'required',
|
||||
],
|
||||
'sub_total' => [
|
||||
'required',
|
||||
],
|
||||
'total' => [
|
||||
'required',
|
||||
],
|
||||
'tax' => [
|
||||
'required',
|
||||
],
|
||||
'template_name' => [
|
||||
'required'
|
||||
],
|
||||
'items' => [
|
||||
'required',
|
||||
'array',
|
||||
],
|
||||
'items.*.description' => [
|
||||
'nullable',
|
||||
],
|
||||
'items.*' => [
|
||||
'required',
|
||||
'max:255',
|
||||
],
|
||||
'items.*.name' => [
|
||||
'required',
|
||||
],
|
||||
'items.*.quantity' => [
|
||||
'required',
|
||||
],
|
||||
'items.*.price' => [
|
||||
'required',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('estimate request authorize', function () {
|
||||
$request = new EstimatesRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ExchangeRateLogRequest;
|
||||
|
||||
test('exchange rate log request validation rules', function () {
|
||||
$request = new ExchangeRateLogRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'exchange_rate' => [
|
||||
'required',
|
||||
],
|
||||
'currency_id' => [
|
||||
'required'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('exchange rate log request authorize', function () {
|
||||
$request = new ExchangeRateLogRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,38 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ExchangeRateProviderRequest;
|
||||
|
||||
test('exchange rate provider request validation rules', function () {
|
||||
$request = new ExchangeRateProviderRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'driver' => [
|
||||
'required'
|
||||
],
|
||||
'key' => [
|
||||
'required',
|
||||
],
|
||||
'currencies' => [
|
||||
'nullable',
|
||||
],
|
||||
'currencies.*' => [
|
||||
'nullable',
|
||||
],
|
||||
'driver_config' => [
|
||||
'nullable'
|
||||
],
|
||||
'active' => [
|
||||
'nullable',
|
||||
'boolean'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('exchange rate provider request authorize', function () {
|
||||
$request = new ExchangeRateProviderRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ExpenseCategoryRequest;
|
||||
|
||||
test('expense category request validation rules', function () {
|
||||
$request = new ExpenseCategoryRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
'description' => [
|
||||
'nullable',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('expense category request authorize', function () {
|
||||
$request = new ExpenseCategoryRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,49 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ExpenseRequest;
|
||||
|
||||
test('expense request validation rules', function () {
|
||||
$request = new ExpenseRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'expense_date' => [
|
||||
'required',
|
||||
],
|
||||
'expense_category_id' => [
|
||||
'required',
|
||||
],
|
||||
'exchange_rate' => [
|
||||
'nullable'
|
||||
],
|
||||
'payment_method_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'amount' => [
|
||||
'required',
|
||||
],
|
||||
'customer_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'notes' => [
|
||||
'nullable',
|
||||
],
|
||||
'currency_id' => [
|
||||
'required'
|
||||
],
|
||||
'attachment_receipt' => [
|
||||
'nullable',
|
||||
'file',
|
||||
'mimes:jpg,png,pdf,doc,docx,xls,xlsx,ppt,pptx',
|
||||
'max:20000'
|
||||
]
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('expense request authorize', function () {
|
||||
$request = new ExpenseRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\GetSettingsRequest;
|
||||
|
||||
test('get settings request rules', function () {
|
||||
$request = new GetSettingsRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'settings' => [
|
||||
'required',
|
||||
],
|
||||
'settings.*' => [
|
||||
'required',
|
||||
'string',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
test('get settings request authorize', function () {
|
||||
$request = new GetSettingsRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,74 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\InvoicesRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('invoice request validation rules', function () {
|
||||
$request = new InvoicesRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'invoice_date' => [
|
||||
'required',
|
||||
],
|
||||
'due_date' => [
|
||||
'nullable',
|
||||
],
|
||||
'customer_id' => [
|
||||
'required',
|
||||
],
|
||||
'invoice_number' => [
|
||||
'required',
|
||||
Rule::unique('invoices')->where('company_id', $request->header('company'))
|
||||
],
|
||||
'exchange_rate' => [
|
||||
'nullable'
|
||||
],
|
||||
'discount' => [
|
||||
'required',
|
||||
],
|
||||
'discount_val' => [
|
||||
'required',
|
||||
],
|
||||
'sub_total' => [
|
||||
'required',
|
||||
],
|
||||
'total' => [
|
||||
'required',
|
||||
],
|
||||
'tax' => [
|
||||
'required',
|
||||
],
|
||||
'template_name' => [
|
||||
'required'
|
||||
],
|
||||
'items' => [
|
||||
'required',
|
||||
'array',
|
||||
],
|
||||
'items.*' => [
|
||||
'required',
|
||||
'max:255',
|
||||
],
|
||||
'items.*.description' => [
|
||||
'nullable',
|
||||
],
|
||||
'items.*.name' => [
|
||||
'required',
|
||||
],
|
||||
'items.*.quantity' => [
|
||||
'required',
|
||||
],
|
||||
'items.*.price' => [
|
||||
'required',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('invoices request authorize', function () {
|
||||
$request = new InvoicesRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ItemsRequest;
|
||||
|
||||
test('items request validation rules', function () {
|
||||
$request = new ItemsRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
'price' => [
|
||||
'required',
|
||||
],
|
||||
'unit_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'description' => [
|
||||
'nullable',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('item request authorize', function () {
|
||||
$request = new ItemsRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\LoginRequest;
|
||||
|
||||
test('login request validation rules', function () {
|
||||
$request = new LoginRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'username' => [
|
||||
'required',
|
||||
],
|
||||
'password' => [
|
||||
'required',
|
||||
],
|
||||
'device_name' => [
|
||||
'required'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('login request authorize', function () {
|
||||
$request = new LoginRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\NotesRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('note request validation rules', function () {
|
||||
$request = new NotesRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'type' => [
|
||||
'required'
|
||||
],
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('notes')
|
||||
->where('company_id', $request->header('company'))
|
||||
->where('type', $request->type)
|
||||
],
|
||||
'notes' => [
|
||||
'required'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('note request authorize', function () {
|
||||
$request = new NotesRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\PaymentMethodRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('payment method request validation rules', function () {
|
||||
$request = new PaymentMethodRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('payment_methods')
|
||||
->where('company_id', $request->header('company')),
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('payment method request authorize', function () {
|
||||
$request = new PaymentMethodRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,45 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\PaymentRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('payment request validation rules', function () {
|
||||
$request = new PaymentRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'payment_date' => [
|
||||
'required',
|
||||
],
|
||||
'customer_id' => [
|
||||
'required',
|
||||
],
|
||||
'exchange_rate' => [
|
||||
'nullable'
|
||||
],
|
||||
'amount' => [
|
||||
'required',
|
||||
],
|
||||
'payment_number' => [
|
||||
'required',
|
||||
Rule::unique('payments')->where('company_id', $request->header('company'))
|
||||
],
|
||||
'invoice_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'payment_method_id' => [
|
||||
'nullable',
|
||||
],
|
||||
'notes' => [
|
||||
'nullable',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('payment request authorize', function () {
|
||||
$request = new PaymentRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,32 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\ProfileRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('profile request validation rules', function () {
|
||||
$request = new ProfileRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
'password' => [
|
||||
'nullable',
|
||||
'min:8',
|
||||
],
|
||||
'email' => [
|
||||
'required',
|
||||
'email',
|
||||
Rule::unique('users')->ignore(Auth::id(), 'id'),
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('profile request authorize', function () {
|
||||
$request = new ProfileRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,68 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\RecurringInvoiceRequest;
|
||||
|
||||
test('recurring invoice request validation rules', function () {
|
||||
$request = new RecurringInvoiceRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'starts_at' => [
|
||||
'required'
|
||||
],
|
||||
'send_automatically' => [
|
||||
'required',
|
||||
'boolean'
|
||||
],
|
||||
'customer_id' => [
|
||||
'required'
|
||||
],
|
||||
'discount' => [
|
||||
'required',
|
||||
],
|
||||
'discount_val' => [
|
||||
'required',
|
||||
],
|
||||
'sub_total' => [
|
||||
'required',
|
||||
],
|
||||
'total' => [
|
||||
'required',
|
||||
],
|
||||
'tax' => [
|
||||
'required',
|
||||
],
|
||||
'status' => [
|
||||
'required'
|
||||
],
|
||||
'exchange_rate' => [
|
||||
'nullable'
|
||||
],
|
||||
'frequency' => [
|
||||
'required'
|
||||
],
|
||||
'limit_by' => [
|
||||
'required'
|
||||
],
|
||||
'limit_count' => [
|
||||
'required_if:limit_by,COUNT',
|
||||
],
|
||||
'limit_date' => [
|
||||
'required_if:limit_by,DATE',
|
||||
],
|
||||
'items' => [
|
||||
'required'
|
||||
],
|
||||
'items.*' => [
|
||||
'required'
|
||||
]
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('recurring invoice request authorize', function () {
|
||||
$request = new RecurringInvoiceRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\RoleRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('role request validation rules', function () {
|
||||
$request = new RoleRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
'string',
|
||||
Rule::unique('roles')->where('scope', $request->header('company'))
|
||||
],
|
||||
'abilities' => [
|
||||
'required'
|
||||
],
|
||||
'abilities.*' => [
|
||||
'required'
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('role request authorize', function () {
|
||||
$request = new RoleRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,40 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\TaxTypeRequest;
|
||||
use Crater\Models\TaxType;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('tax type request validation rules', function () {
|
||||
$request = new TaxTypeRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('tax_types')
|
||||
->where('type', TaxType::TYPE_GENERAL)
|
||||
->where('company_id', $request->header('company'))
|
||||
],
|
||||
'percent' => [
|
||||
'required',
|
||||
],
|
||||
'description' => [
|
||||
'nullable',
|
||||
],
|
||||
'compound_tax' => [
|
||||
'nullable',
|
||||
],
|
||||
'collective_tax' => [
|
||||
'nullable',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
test('tax type request authorize', function () {
|
||||
$request = new TaxTypeRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\UnitRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('unit request validation rules', function () {
|
||||
$request = new UnitRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
Rule::unique('units')
|
||||
->where('company_id', $request->header('company')),
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('unit request authorize', function () {
|
||||
$request = new UnitRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\UpdateSettingsRequest;
|
||||
|
||||
test('update settings request rules', function () {
|
||||
$request = new UpdateSettingsRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'settings' => [
|
||||
'required',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
test('update settings request authorize', function () {
|
||||
$request = new UpdateSettingsRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
@ -1,44 +0,0 @@
|
||||
<?php
|
||||
|
||||
use Crater\Http\Requests\UserRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
test('user request validation rules', function () {
|
||||
$request = new UserRequest();
|
||||
|
||||
$this->assertEquals(
|
||||
[
|
||||
'name' => [
|
||||
'required',
|
||||
],
|
||||
'email' => [
|
||||
'required',
|
||||
'email',
|
||||
Rule::unique('users'),
|
||||
],
|
||||
'phone' => [
|
||||
'nullable',
|
||||
],
|
||||
'password' => [
|
||||
'required',
|
||||
'min:8',
|
||||
],
|
||||
'companies' => [
|
||||
'required',
|
||||
],
|
||||
'companies.*.id' => [
|
||||
'required',
|
||||
],
|
||||
'companies.*.role' => [
|
||||
'required',
|
||||
],
|
||||
],
|
||||
$request->rules()
|
||||
);
|
||||
});
|
||||
|
||||
test('user request authorize', function () {
|
||||
$request = new UserRequest();
|
||||
|
||||
$this->assertTrue($request->authorize());
|
||||
});
|
||||
Reference in New Issue
Block a user