Updates for validation for verifactu documents
This commit is contained in:
parent
345e8fa2ce
commit
f98411f81b
|
|
@ -101,6 +101,20 @@ class UpdateClientRequest extends Request
|
|||
return $rules;
|
||||
}
|
||||
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
|
||||
$user = auth()->user();
|
||||
$company = $user->company();
|
||||
|
||||
if(isset($this->settings['lock_invoices']) && $company->verifactuEnabled() && $this->settings['lock_invoices'] != 'when_sent'){
|
||||
$validator->errors()->add('settings.lock_invoices', 'Locked Invoices Cannot Be Disabled');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public function messages()
|
||||
{
|
||||
return [
|
||||
|
|
|
|||
|
|
@ -47,6 +47,20 @@ class StoreGroupSettingRequest extends Request
|
|||
return $rules;
|
||||
}
|
||||
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
|
||||
$user = auth()->user();
|
||||
$company = $user->company();
|
||||
|
||||
if(isset($this->settings['lock_invoices']) && $company->verifactuEnabled() && $this->settings['lock_invoices'] != 'when_sent'){
|
||||
$validator->errors()->add('settings.lock_invoices', 'Locked Invoices Cannot Be Disabled');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
$input = $this->all();
|
||||
|
|
|
|||
|
|
@ -41,6 +41,22 @@ class UpdateGroupSettingRequest extends Request
|
|||
|
||||
}
|
||||
|
||||
|
||||
public function withValidator($validator)
|
||||
{
|
||||
$validator->after(function ($validator) {
|
||||
|
||||
$user = auth()->user();
|
||||
$company = $user->company();
|
||||
|
||||
if(isset($this->settings['lock_invoices']) && $company->verifactuEnabled() && $this->settings['lock_invoices'] != 'when_sent'){
|
||||
$validator->errors()->add('settings.lock_invoices', 'Locked Invoices Cannot Be Disabled');
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public function prepareForValidation()
|
||||
{
|
||||
$input = $this->all();
|
||||
|
|
|
|||
|
|
@ -11,14 +11,16 @@
|
|||
|
||||
namespace Tests\Feature\EInvoice\Verifactu;
|
||||
|
||||
use App\DataMapper\InvoiceItem;
|
||||
use Tests\TestCase;
|
||||
use App\Models\Client;
|
||||
use App\Models\Invoice;
|
||||
use App\Models\Project;
|
||||
use Tests\MockAccountData;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Models\GroupSetting;
|
||||
use App\Models\Subscription;
|
||||
use App\Models\ClientContact;
|
||||
use App\DataMapper\InvoiceItem;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
use App\Models\RecurringInvoice;
|
||||
use App\Factory\InvoiceItemFactory;
|
||||
|
|
@ -27,7 +29,6 @@ use Illuminate\Support\Facades\Config;
|
|||
use App\Repositories\InvoiceRepository;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
||||
class VerifactuApiTest extends TestCase
|
||||
|
|
@ -95,6 +96,69 @@ class VerifactuApiTest extends TestCase
|
|||
}
|
||||
|
||||
|
||||
|
||||
public function test_update_group_settings_with_locked_invoices()
|
||||
{
|
||||
$settings = $this->company->settings;
|
||||
$settings->e_invoice_type = 'VERIFACTU';
|
||||
$settings->lock_invoices = 'when_sent';
|
||||
|
||||
$this->company->settings = $settings;
|
||||
$this->company->save();
|
||||
|
||||
$gs = new GroupSetting();
|
||||
$gs->name = 'Test';
|
||||
$gs->company_id = $this->company->id;
|
||||
|
||||
$settings = new \stdClass();
|
||||
$settings->lock_invoices = 'when_sent';
|
||||
$gs->settings = $settings;
|
||||
$gs->save();
|
||||
|
||||
$settings = new \stdClass();
|
||||
$settings->lock_invoices = 'off';
|
||||
|
||||
$data = [
|
||||
'name' => 'testX',
|
||||
'settings' => (array)$settings,
|
||||
];
|
||||
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->putJson('/api/v1/group_settings/'.$gs->hashed_id, $data);
|
||||
|
||||
nlog($response->json());
|
||||
$response->assertStatus(422);
|
||||
|
||||
}
|
||||
|
||||
public function test_store_group_settings_with_locked_invoices()
|
||||
{
|
||||
$settings = $this->company->settings;
|
||||
$settings->e_invoice_type = 'VERIFACTU';
|
||||
$settings->lock_invoices = 'when_sent';
|
||||
|
||||
$this->company->settings = $settings;
|
||||
$this->company->save();
|
||||
|
||||
$settings = new \stdClass();
|
||||
$settings->lock_invoices = 'off';
|
||||
|
||||
$data = [
|
||||
'name' => 'testX',
|
||||
'settings' => $settings,
|
||||
];
|
||||
|
||||
$response = $this->withHeaders([
|
||||
'X-API-SECRET' => config('ninja.api_secret'),
|
||||
'X-API-TOKEN' => $this->token,
|
||||
])->postJson('/api/v1/group_settings', $data);
|
||||
|
||||
$response->assertStatus(422);
|
||||
|
||||
}
|
||||
|
||||
public function test_update_company_settings_with_locked_invoices()
|
||||
{
|
||||
$settings = $this->company->settings;
|
||||
|
|
|
|||
Loading…
Reference in New Issue