mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 02:44:29 -04:00
Updates
This commit is contained in:
parent
46a2cbc7b4
commit
7d74bd3e29
120
config/data.php
120
config/data.php
@ -1,7 +1,9 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Enumerable;
|
||||
|
||||
return [
|
||||
/*
|
||||
/**
|
||||
* The package will use this format when working with dates. If this option
|
||||
* is an array, it will try to convert from the first format that works,
|
||||
* and will serialize dates using the first format from the array.
|
||||
@ -10,27 +12,43 @@ return [
|
||||
'Y-m-d',
|
||||
'Y-m-d\TH:i:s.uP',
|
||||
],
|
||||
/**
|
||||
* It is possible to enable certain features of the package, these would otherwise
|
||||
* be breaking changes, and thus they are disabled by default. In the next major
|
||||
* version of the package, these features will be enabled by default.
|
||||
*/
|
||||
'features' => [
|
||||
'cast_and_transform_iterables' => true,
|
||||
|
||||
/*
|
||||
/**
|
||||
* When trying to set a computed property value, the package will throw an exception.
|
||||
* You can disable this behaviour by setting this option to true, which will then just
|
||||
* ignore the value being passed into the computed property and recalculate it.
|
||||
*/
|
||||
'ignore_exception_when_trying_to_set_computed_property_value' => false,
|
||||
],
|
||||
|
||||
/**
|
||||
* Global transformers will take complex types and transform them into simple
|
||||
* types.
|
||||
*/
|
||||
'transformers' => [
|
||||
DateTimeInterface::class => \Spatie\LaravelData\Transformers\DateTimeInterfaceTransformer::class,
|
||||
\Illuminate\Contracts\Support\Arrayable::class => \Spatie\LaravelData\Transformers\ArrayableTransformer::class,
|
||||
BackedEnum::class => Spatie\LaravelData\Transformers\EnumTransformer::class
|
||||
BackedEnum::class => Spatie\LaravelData\Transformers\EnumTransformer::class,
|
||||
],
|
||||
|
||||
/*
|
||||
/**
|
||||
* Global casts will cast values into complex types when creating a data
|
||||
* object from simple types.
|
||||
*/
|
||||
'casts' => [
|
||||
DateTimeInterface::class => Spatie\LaravelData\Casts\DateTimeInterfaceCast::class,
|
||||
BackedEnum::class => Spatie\LaravelData\Casts\EnumCast::class,
|
||||
// Enumerable::class => Spatie\LaravelData\Casts\EnumerableCast::class,
|
||||
],
|
||||
|
||||
/*
|
||||
/**
|
||||
* Rule inferrers can be configured here. They will automatically add
|
||||
* validation rules to properties of a data object based upon
|
||||
* the type of the property.
|
||||
@ -57,7 +75,7 @@ return [
|
||||
Spatie\LaravelData\Normalizers\JsonNormalizer::class,
|
||||
],
|
||||
|
||||
/*
|
||||
/**
|
||||
* Data objects can be wrapped into a key like 'data' when used as a resource,
|
||||
* this key can be set globally here for all data objects. You can pass in
|
||||
* `null` if you want to disable wrapping.
|
||||
@ -71,4 +89,94 @@ return [
|
||||
* which will only enable the caster locally.
|
||||
*/
|
||||
'var_dumper_caster_mode' => 'development',
|
||||
|
||||
/**
|
||||
* It is possible to skip the PHP reflection analysis of data objects
|
||||
* when running in production. This will speed up the package. You
|
||||
* can configure where data objects are stored and which cache
|
||||
* store should be used.
|
||||
*
|
||||
* Structures are cached forever as they'll become stale when your
|
||||
* application is deployed with changes. You can set a duration
|
||||
* in seconds if you want the cache to clear after a certain
|
||||
* timeframe.
|
||||
*/
|
||||
'structure_caching' => [
|
||||
'enabled' => true,
|
||||
'directories' => [app_path('Data')],
|
||||
'cache' => [
|
||||
'store' => env('CACHE_STORE', env('CACHE_DRIVER', 'file')),
|
||||
'prefix' => 'laravel-data',
|
||||
'duration' => null,
|
||||
],
|
||||
'reflection_discovery' => [
|
||||
'enabled' => true,
|
||||
'base_path' => base_path(),
|
||||
'root_namespace' => null,
|
||||
],
|
||||
],
|
||||
|
||||
/**
|
||||
* A data object can be validated when created using a factory or when calling the from
|
||||
* method. By default, only when a request is passed the data is being validated. This
|
||||
* behaviour can be changed to always validate or to completely disable validation.
|
||||
*/
|
||||
'validation_strategy' => \Spatie\LaravelData\Support\Creation\ValidationStrategy::OnlyRequests->value,
|
||||
|
||||
/**
|
||||
* When using an invalid include, exclude, only or except partial, the package will
|
||||
* throw an exception. You can disable this behaviour by setting this option to true.
|
||||
*/
|
||||
'ignore_invalid_partials' => false,
|
||||
|
||||
/**
|
||||
* When transforming a nested chain of data objects, the package can end up in an infinite
|
||||
* loop when including a recursive relationship. The max transformation depth can be
|
||||
* set as a safety measure to prevent this from happening. When set to null, the
|
||||
* package will not enforce a maximum depth.
|
||||
*/
|
||||
'max_transformation_depth' => null,
|
||||
|
||||
/**
|
||||
* When the maximum transformation depth is reached, the package will throw an exception.
|
||||
* You can disable this behaviour by setting this option to true which will return an
|
||||
* empty array.
|
||||
*/
|
||||
'throw_when_max_transformation_depth_reached' => true,
|
||||
|
||||
/**
|
||||
* When using the `make:data` command, the package will use these settings to generate
|
||||
* the data classes. You can override these settings by passing options to the command.
|
||||
*/
|
||||
'commands' => [
|
||||
/**
|
||||
* Provides default configuration for the `make:data` command. These settings can be overridden with options
|
||||
* passed directly to the `make:data` command for generating single Data classes, or if not set they will
|
||||
* automatically fall back to these defaults. See `php artisan make:data --help` for more information
|
||||
*/
|
||||
'make' => [
|
||||
/**
|
||||
* The default namespace for generated Data classes. This exists under the application's root namespace,
|
||||
* so the default 'Data` will end up as '\App\Data', and generated Data classes will be placed in the
|
||||
* app/Data/ folder. Data classes can live anywhere, but this is where `make:data` will put them.
|
||||
*/
|
||||
'namespace' => 'Data',
|
||||
|
||||
/**
|
||||
* This suffix will be appended to all data classes generated by make:data, so that they are less likely
|
||||
* to conflict with other related classes, controllers or models with a similar name without resorting
|
||||
* to adding an alias for the Data object. Set to a blank string (not null) to disable.
|
||||
*/
|
||||
'suffix' => 'Data',
|
||||
],
|
||||
],
|
||||
|
||||
/**
|
||||
* When using Livewire, the package allows you to enable or disable the synths
|
||||
* these synths will automatically handle the data objects and their
|
||||
* properties when used in a Livewire component.
|
||||
*/
|
||||
'livewire' => [
|
||||
'enable_synths' => false,
|
||||
],
|
||||
];
|
||||
|
@ -315,6 +315,51 @@ class FatturaPATest extends TestCase
|
||||
|
||||
|
||||
// }
|
||||
public function testBulkValidationX()
|
||||
{
|
||||
|
||||
$files = [
|
||||
'tests/Integration/Einvoice/samples/fatturapa0.xml',
|
||||
];
|
||||
|
||||
foreach($files as $f) {
|
||||
|
||||
$xmlstring = file_get_contents($f);
|
||||
|
||||
$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);
|
||||
$json = json_encode($xml);
|
||||
$payload = json_decode($json, true);
|
||||
|
||||
nlog($payload);
|
||||
|
||||
$validation_array = false;
|
||||
|
||||
nlog($f);
|
||||
|
||||
$rules = FatturaElettronica::getValidationRules($this->payload);
|
||||
nlog($rules);
|
||||
|
||||
$this->assertIsArray($rules);
|
||||
|
||||
$payload = FatturaElettronica::from($payload)->toArray();
|
||||
// nlog($payload);
|
||||
|
||||
$this->assertIsArray($payload);
|
||||
|
||||
$validation_array = FatturaElettronica::validate($payload);
|
||||
|
||||
$this->assertIsArray($validation_array);
|
||||
|
||||
// } catch(\Illuminate\Validation\ValidationException $e) {
|
||||
|
||||
// nlog($e->errors());
|
||||
// }
|
||||
|
||||
$this->assertIsArray($validation_array);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function testBulkValidation()
|
||||
{
|
||||
@ -345,7 +390,7 @@ class FatturaPATest extends TestCase
|
||||
nlog($f);
|
||||
|
||||
$rules = FatturaElettronica::getValidationRules($this->payload);
|
||||
// nlog($rules);
|
||||
nlog($rules);
|
||||
|
||||
$this->assertIsArray($rules);
|
||||
|
||||
|
@ -105,12 +105,6 @@
|
||||
<Imposta>5.95</Imposta>
|
||||
<EsigibilitaIVA>I</EsigibilitaIVA>
|
||||
</DatiRiepilogo>
|
||||
<DatiRiepilogo>
|
||||
<AliquotaIVA>22.00</AliquotaIVA>
|
||||
<ImponibileImporto>27.00</ImponibileImporto>
|
||||
<Imposta>5.95</Imposta>
|
||||
<EsigibilitaIVA>I</EsigibilitaIVA>
|
||||
</DatiRiepilogo>
|
||||
</DatiBeniServizi>
|
||||
<DatiPagamento>
|
||||
<CondizioniPagamento>TP01</CondizioniPagamento>
|
||||
|
Loading…
x
Reference in New Issue
Block a user