1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 05:02:36 +01:00

Merge pull request #9591 from turbo124/v5-develop

v5.9.2
This commit is contained in:
David Bomba 2024-06-04 22:41:07 +10:00 committed by GitHub
commit db9f3eb0c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
20 changed files with 320 additions and 223 deletions

View File

@ -1 +1 @@
5.9.1
5.9.2

View File

@ -105,17 +105,34 @@ class PayPalBalanceAffecting
public $discount;
public $creditTransactionalFee;
public $originalInvoiceId;
public function __construct(private array $import_row){}
public function run(): self
{
$this->cleanUp();
foreach($this->import_row as $key => $value) {
$prop = $this->key_map[$key] ?? false;
if($prop)
if($prop){
echo "Setting {$prop} to {$value}".PHP_EOL;
$this->{$prop} = $value;
}
}
return $this;
}
private function cleanUp(): self
{
foreach($this->key_map as $value){
echo "Setting {$value} to null".PHP_EOL;
$this->{$value} = null;
}
return $this;
@ -149,6 +166,7 @@ class PayPalBalanceAffecting
'line_items' => [$item],
'name' => $this->name ?? '',
'email' => $this->fromEmailAddress ?? '',
'transaction_reference' => $this->transactionId ?? '',
];
}

View File

@ -44,6 +44,9 @@ class ExpenseFilters extends QueryFilters
})
->orWhereHas('vendor', function ($q) use ($filter) {
$q->where('name', 'like', '%'.$filter.'%');
})
->orWhereHas('client', function ($q) use ($filter) {
$q->where('name', 'like', '%'.$filter.'%');
});
});
}

View File

@ -26,7 +26,6 @@ class TaskFilters extends QueryFilters
*
* @param string $filter
* @return Builder
* @deprecated
*/
public function filter(string $filter = ''): Builder
{

View File

@ -11,33 +11,35 @@
namespace App\Http\Controllers;
use App\Utils\Ninja;
use App\Models\Client;
use App\Models\Invoice;
use App\Utils\HtmlEngine;
use Illuminate\Support\Str;
use Twig\Error\SyntaxError;
use App\Jobs\Util\PreviewPdf;
use App\Models\ClientContact;
use App\Services\Pdf\PdfMock;
use App\Utils\Traits\MakesHash;
use App\Services\Pdf\PdfService;
use App\Utils\PhantomJS\Phantom;
use App\Models\InvoiceInvitation;
use App\Services\PdfMaker\Design;
use App\Utils\HostedPDF\NinjaPdf;
use Illuminate\Support\Facades\DB;
use App\Services\PdfMaker\PdfMaker;
use Illuminate\Support\Facades\App;
use App\Utils\Traits\GeneratesCounter;
use App\Utils\Traits\MakesInvoiceHtml;
use Turbo124\Beacon\Facades\LightLogs;
use App\Utils\Traits\Pdf\PageNumbering;
use Illuminate\Support\Facades\Response;
use App\DataMapper\Analytics\LivePreview;
use App\Services\Template\TemplateService;
use App\Http\Requests\Preview\ShowPreviewRequest;
use App\Http\Requests\Preview\DesignPreviewRequest;
use App\Http\Requests\Preview\PreviewInvoiceRequest;
use App\Http\Requests\Preview\ShowPreviewRequest;
use App\Jobs\Util\PreviewPdf;
use App\Models\Client;
use App\Models\ClientContact;
use App\Models\Invoice;
use App\Models\InvoiceInvitation;
use App\Services\Pdf\PdfMock;
use App\Services\Pdf\PdfService;
use App\Services\PdfMaker\Design;
use App\Services\PdfMaker\PdfMaker;
use App\Services\Template\TemplateService;
use App\Utils\HostedPDF\NinjaPdf;
use App\Utils\HtmlEngine;
use App\Utils\Ninja;
use App\Utils\PhantomJS\Phantom;
use App\Utils\Traits\GeneratesCounter;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\MakesInvoiceHtml;
use App\Utils\Traits\Pdf\PageNumbering;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Response;
use Turbo124\Beacon\Facades\LightLogs;
use Twig\Error\SyntaxError;
use App\Utils\VendorHtmlEngine;
class PreviewController extends BaseController
{
@ -136,6 +138,7 @@ class PreviewController extends BaseController
*/
public function show(ShowPreviewRequest $request)
{
if($request->input('design.is_template')) {
return $this->template();
}
@ -143,8 +146,8 @@ class PreviewController extends BaseController
if (request()->has('entity') &&
request()->has('entity_id') &&
! empty(request()->input('entity')) &&
! empty(request()->input('entity_id')) &&
request()->has('body')) {
! empty(request()->input('entity_id')))
{
$design_object = json_decode(json_encode(request()->input('design')));
@ -152,7 +155,8 @@ class PreviewController extends BaseController
return response()->json(['message' => ctrans('texts.invalid_design_object')], 400);
}
$entity = ucfirst(request()->input('entity'));
// $entity = ucfirst(request()->input('entity'));
$entity = Str::camel(request()->input('entity'));
$class = "App\Models\\$entity";
@ -166,17 +170,20 @@ class PreviewController extends BaseController
App::forgetInstance('translator');
$t = app('translator');
App::setLocale($entity_obj->client->primary_contact()->preferredLocale());
App::setLocale($entity_obj->client->preferredLocale());
$t->replace(Ninja::transformTranslations($entity_obj->client->getMergedSettings()));
$html = new HtmlEngine($entity_obj->invitations()->first());
if($entity_obj->client){
$html = new HtmlEngine($entity_obj->invitations()->first());
}
else {
$html = new VendorHtmlEngine($entity_obj->invitations()->first());
}
$design_namespace = 'App\Services\PdfMaker\Designs\\'.request()->design['name'];
$design_class = new $design_namespace();
$design = new Design(Design::CUSTOM, ['custom_partials' => request()->design['design']]);
$state = [
'template' => $design_class->elements([
'template' => $design->elements([
'client' => $entity_obj->client,
'entity' => $entity_obj,
'pdf_variables' => (array) $entity_obj->company->settings->pdf_variables,
@ -191,7 +198,6 @@ class PreviewController extends BaseController
]
];
$design = new Design(request()->design['name']);
$maker = new PdfMaker($state);
$maker

View File

@ -38,7 +38,7 @@ class StoreVendorRequest extends Request
$user = auth()->user();
$rules = [];
$rules['name'] = 'bail|required|string';
$rules['contacts'] = 'bail|array';
$rules['contacts.*.email'] = 'bail|nullable|distinct|sometimes|email';
$rules['contacts.*.password'] = [

View File

@ -81,7 +81,7 @@ class SubscriptionCron
$company = Company::find($company_id);
$timezone_now = now()->setTimezone($company->timezone()->name);
$timezone_now = now()->setTimezone($company->timezone()->name ?? 'Pacific/Midway');
//Capture companies within the window of 00:00 and 00:30
if($timezone_now->gt($timezone_now->copy()->startOfDay()) && $timezone_now->lt($timezone_now->copy()->startOfDay()->addMinutes(30))) {

View File

@ -378,15 +378,16 @@ class Client extends BaseModel implements HasLocalePreference
public function language()
{
$languages = Cache::get('languages');
$languages = app('languages');
// $languages = Cache::get('languages');
if (! $languages) {
$this->buildCache(true);
}
// if (! $languages) {
// $this->buildCache(true);
// }
return $languages->filter(function ($item) {
return $languages->first(function ($item) {
return $item->id == $this->getSetting('language_id');
})->first();
});
}
public function industry(): BelongsTo
@ -410,28 +411,30 @@ class Client extends BaseModel implements HasLocalePreference
public function date_format()
{
$date_formats = Cache::get('date_formats');
$date_formats = app('date_formats');
// $date_formats = Cache::get('date_formats');
if (! $date_formats) {
$this->buildCache(true);
}
// if (! $date_formats) {
// $this->buildCache(true);
// }
return $date_formats->filter(function ($item) {
return $date_formats->first(function ($item) {
return $item->id == $this->getSetting('date_format_id');
})->first()->format;
})->format;
}
public function currency()
{
$currencies = Cache::get('currencies');
$currencies = app('currencies');
// $currencies = Cache::get('currencies');
if (! $currencies) {
$this->buildCache(true);
}
// if (! $currencies) {
// $this->buildCache(true);
// }
return $currencies->filter(function ($item) {
return $currencies->first(function ($item) {
return $item->id == $this->getSetting('currency_id');
})->first();
});
}
public function service(): ClientService
@ -739,15 +742,17 @@ class Client extends BaseModel implements HasLocalePreference
public function preferredLocale()
{
$languages = Cache::get('languages');
$this->language()->locale ?? 'en';
// $languages = app('languages');
// $languages = Cache::get('languages');
if (! $languages) {
$this->buildCache(true);
}
// if (! $languages) {
// $this->buildCache(true);
// }
return $languages->filter(function ($item) {
return $item->id == $this->getSetting('language_id');
})->first()->locale;
// return $languages->first(function ($item) {
// return $item->id == $this->getSetting('language_id');
// })->locale;
}
public function backup_path(): string

View File

@ -12,10 +12,14 @@
namespace App\Providers;
use App\Models\Bank;
use App\Models\Size;
use App\Models\Country;
use App\Models\Gateway;
use App\Models\Currency;
use App\Models\Industry;
use App\Models\Language;
use App\Models\Timezone;
use App\Models\DateFormat;
use App\Models\PaymentTerm;
use Illuminate\Support\ServiceProvider;
use App\DataMapper\EmailTemplateDefaults;
@ -30,6 +34,7 @@ class StaticServiceProvider extends ServiceProvider
public function register()
{
app()->singleton('currencies', function ($app) {
return Currency::query()->orderBy('name')->get();
});
@ -37,7 +42,7 @@ class StaticServiceProvider extends ServiceProvider
app()->singleton('languages', function ($app) {
return Language::query()->orderBy('name')->get();
});
app()->singleton('countries', function ($app) {
return Country::query()->orderBy('name')->get();
});
@ -50,11 +55,36 @@ class StaticServiceProvider extends ServiceProvider
return Industry::query()->orderBy('name')->get();
});
app()->singleton('banks', function ($app){
app()->singleton('banks', function ($app) {
return Bank::query()->orderBy('name')->get();
});
app()->singleton('templates', function ($app){
app()->singleton('date_formats', function ($app) {
return DateFormat::query()->orderBy('id')->get();
});
app()->singleton('timezones', function ($app) {
return Timezone::query()->orderBy('id')->get();
});
app()->singleton('gateways', function ($app) {
return Gateway::query()->orderBy('id')->get();
});
app()->singleton('industries', function ($app) {
return Industry::query()->orderBy('id')->get();
});
app()->singleton('sizes', function ($app) {
return Size::query()->orderBy('id')->get();
});
/** @deprecated */
app()->singleton('banks', function ($app) {
return Bank::query()->orderBy('id')->get();
});
app()->singleton('templates', function ($app) {
return [
'invoice' => [
'subject' => EmailTemplateDefaults::emailInvoiceSubject(),
@ -91,6 +121,7 @@ class StaticServiceProvider extends ServiceProvider
];
});
}
public function boot()

View File

@ -570,7 +570,7 @@ class InvoiceService
$this->invoice->exchange_rate = $this->invoice->client->setExchangeRate();
}
if ($is_recurring && $this->invoice->client->getSetting('auto_bill_standard_invoices')) {
if (!$is_recurring && $this->invoice->client->getSetting('auto_bill_standard_invoices')) {
$this->invoice->auto_bill_enabled = true;
}

View File

@ -660,10 +660,12 @@ class HtmlEngine
if ($this->settings->signature_on_pdf) {
$data['$contact.signature'] = ['value' => $this->invitation->signature_base64, 'label' => ctrans('texts.signature')];
$data['$contact.signature_date'] = ['value' => $this->translateDate($this->invitation->signature_date, $this->client->date_format(), $this->client->locale()), 'label' => ctrans('texts.date')];
$data['$contact.signature_ip'] = ['value' => $this->invitation->signature_ip ?? '', 'label' => ctrans('texts.address')];
} else {
$data['$contact.signature'] = ['value' => '', 'label' => ''];
$data['$contact.signature_date'] = ['value' => '', 'label' => ctrans('texts.date')];
$data['$contact.signature_ip'] = ['value' => '', 'label' => ctrans('texts.address')];
}
$data['$thanks'] = ['value' => '', 'label' => ctrans('texts.thanks')];

View File

@ -44,7 +44,6 @@
"braintree/braintree_php": "^6.0",
"btcpayserver/btcpayserver-greenfield-php": "^2.6",
"checkout/checkout-sdk-php": "^3.0",
"invoiceninja/ubl_invoice": "^2",
"doctrine/dbal": "^3.0",
"eway/eway-rapid-php": "^1.3",
"fakerphp/faker": "^1.14",
@ -55,10 +54,14 @@
"halaxa/json-machine": "^0.7.0",
"hashids/hashids": "^4.0",
"hedii/laravel-gelf-logger": "^8",
"horstoeko/orderx": "dev-master",
"horstoeko/zugferd": "^1",
"hyvor/php-json-exporter": "^0.0.3",
"imdhemy/laravel-purchases": "^1.7",
"intervention/image": "^2.5",
"invoiceninja/einvoice": "dev-main",
"invoiceninja/inspector": "^2.0",
"invoiceninja/ubl_invoice": "^2",
"josemmo/facturae-php": "^1.7",
"laracasts/presenter": "^0.2.1",
"laravel/framework": "^10",
@ -88,7 +91,7 @@
"setasign/fpdi": "^2.3",
"socialiteproviders/apple": "dev-master",
"socialiteproviders/microsoft": "^4.1",
"spatie/laravel-data": "^3.5",
"spatie/laravel-data": "^3.6",
"sprain/swiss-qr-bill": "^4.3",
"square/square": "30.0.0.*",
"stripe/stripe-php": "^12",
@ -101,10 +104,7 @@
"twig/twig": "^3",
"twilio/sdk": "^6.40",
"webpatser/laravel-countries": "dev-master#75992ad",
"wildbit/postmark-php": "^4.0",
"hyvor/php-json-exporter": "^0.0.3",
"invoiceninja/einvoice": "dev-main",
"horstoeko/orderx": "dev-master"
"wildbit/postmark-php": "^4.0"
},
"require-dev": {
"php": "^8.2",

276
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "4a46c646e01374b4a5aaff1875fa9975",
"content-hash": "a1bbd8c63e7c792674843dc50a435d86",
"packages": [
{
"name": "adrienrn/php-mimetyper",
@ -321,16 +321,16 @@
},
{
"name": "amphp/dns",
"version": "v2.1.2",
"version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/amphp/dns.git",
"reference": "04c88e67bef804203df934703bd422ea72f46b0e"
"reference": "758266b0ea7470e2e42cd098493bc6d6c7100cf7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/amphp/dns/zipball/04c88e67bef804203df934703bd422ea72f46b0e",
"reference": "04c88e67bef804203df934703bd422ea72f46b0e",
"url": "https://api.github.com/repos/amphp/dns/zipball/758266b0ea7470e2e42cd098493bc6d6c7100cf7",
"reference": "758266b0ea7470e2e42cd098493bc6d6c7100cf7",
"shasum": ""
},
"require": {
@ -397,7 +397,7 @@
],
"support": {
"issues": "https://github.com/amphp/dns/issues",
"source": "https://github.com/amphp/dns/tree/v2.1.2"
"source": "https://github.com/amphp/dns/tree/v2.2.0"
},
"funding": [
{
@ -405,7 +405,7 @@
"type": "github"
}
],
"time": "2024-04-19T03:49:29+00:00"
"time": "2024-06-02T19:54:12+00:00"
},
{
"name": "amphp/parallel",
@ -1385,16 +1385,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.308.7",
"version": "3.309.0",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "97074bd8cdd9fe498570821cefa4868fa3353cf3"
"reference": "9213b2101afa17fe8ea99b8ea2dad85c1b1166a8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/97074bd8cdd9fe498570821cefa4868fa3353cf3",
"reference": "97074bd8cdd9fe498570821cefa4868fa3353cf3",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9213b2101afa17fe8ea99b8ea2dad85c1b1166a8",
"reference": "9213b2101afa17fe8ea99b8ea2dad85c1b1166a8",
"shasum": ""
},
"require": {
@ -1474,9 +1474,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.308.7"
"source": "https://github.com/aws/aws-sdk-php/tree/3.309.0"
},
"time": "2024-05-31T18:17:12+00:00"
"time": "2024-06-03T18:10:07+00:00"
},
{
"name": "bacon/bacon-qr-code",
@ -3602,16 +3602,16 @@
},
{
"name": "google/apiclient-services",
"version": "v0.357.0",
"version": "v0.358.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "c84b0ac2191d56d40d43bc18e62b37a2781040a9"
"reference": "a6daf60ee25cb45b6e3dbd04b62d1df39a609fbd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/c84b0ac2191d56d40d43bc18e62b37a2781040a9",
"reference": "c84b0ac2191d56d40d43bc18e62b37a2781040a9",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/a6daf60ee25cb45b6e3dbd04b62d1df39a609fbd",
"reference": "a6daf60ee25cb45b6e3dbd04b62d1df39a609fbd",
"shasum": ""
},
"require": {
@ -3640,9 +3640,9 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.357.0"
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.358.0"
},
"time": "2024-05-27T01:02:20+00:00"
"time": "2024-06-03T01:02:16+00:00"
},
{
"name": "google/auth",
@ -5076,12 +5076,12 @@
"source": {
"type": "git",
"url": "https://github.com/invoiceninja/einvoice.git",
"reference": "6bc18a07aa1792277950388422550e1d4ddf042b"
"reference": "228560c6eea03d9ae10a174a0d9f1456efc5eabd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/6bc18a07aa1792277950388422550e1d4ddf042b",
"reference": "6bc18a07aa1792277950388422550e1d4ddf042b",
"url": "https://api.github.com/repos/invoiceninja/einvoice/zipball/228560c6eea03d9ae10a174a0d9f1456efc5eabd",
"reference": "228560c6eea03d9ae10a174a0d9f1456efc5eabd",
"shasum": ""
},
"require": {
@ -5121,7 +5121,7 @@
"source": "https://github.com/invoiceninja/einvoice/tree/main",
"issues": "https://github.com/invoiceninja/einvoice/issues"
},
"time": "2024-05-31T02:34:14+00:00"
"time": "2024-06-03T07:03:23+00:00"
},
{
"name": "invoiceninja/inspector",
@ -8047,16 +8047,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.72.3",
"version": "2.72.5",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83"
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83",
"reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
"reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
"shasum": ""
},
"require": {
@ -8090,8 +8090,8 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-3.x": "3.x-dev",
"dev-master": "2.x-dev"
"dev-master": "3.x-dev",
"dev-2.x": "2.x-dev"
},
"laravel": {
"providers": [
@ -8150,7 +8150,7 @@
"type": "tidelift"
}
],
"time": "2024-01-25T10:35:09+00:00"
"time": "2024-06-03T19:18:41+00:00"
},
{
"name": "nette/schema",
@ -12423,16 +12423,16 @@
},
{
"name": "symfony/console",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f"
"reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/a170e64ae10d00ba89e2acbb590dc2e54da8ad8f",
"reference": "a170e64ae10d00ba89e2acbb590dc2e54da8ad8f",
"url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91",
"reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91",
"shasum": ""
},
"require": {
@ -12497,7 +12497,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v6.4.7"
"source": "https://github.com/symfony/console/tree/v6.4.8"
},
"funding": [
{
@ -12513,7 +12513,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/css-selector",
@ -12649,16 +12649,16 @@
},
{
"name": "symfony/error-handler",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "667a072466c6a53827ed7b119af93806b884cbb3"
"reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/667a072466c6a53827ed7b119af93806b884cbb3",
"reference": "667a072466c6a53827ed7b119af93806b884cbb3",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc",
"reference": "ef836152bf13472dc5fb5b08b0c0c4cfeddc0fcc",
"shasum": ""
},
"require": {
@ -12704,7 +12704,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v6.4.7"
"source": "https://github.com/symfony/error-handler/tree/v6.4.8"
},
"funding": [
{
@ -12720,7 +12720,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -12880,23 +12880,25 @@
},
{
"name": "symfony/filesystem",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
"reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4"
"reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/78dde75f8f6dbbca4ec436a4b0087f7af02076d4",
"reference": "78dde75f8f6dbbca4ec436a4b0087f7af02076d4",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/4d37529150e7081c51b3c5d5718c55a04a9503f3",
"reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3",
"shasum": ""
},
"require": {
"php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8",
"symfony/process": "^5.4|^6.4"
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
"symfony/process": "^5.4|^6.4|^7.0"
},
"type": "library",
"autoload": {
@ -12924,7 +12926,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/filesystem/tree/v6.4.7"
"source": "https://github.com/symfony/filesystem/tree/v6.4.8"
},
"funding": [
{
@ -12940,20 +12942,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/finder",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "511c48990be17358c23bf45c5d71ab85d40fb764"
"reference": "3ef977a43883215d560a2cecb82ec8e62131471c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/511c48990be17358c23bf45c5d71ab85d40fb764",
"reference": "511c48990be17358c23bf45c5d71ab85d40fb764",
"url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c",
"reference": "3ef977a43883215d560a2cecb82ec8e62131471c",
"shasum": ""
},
"require": {
@ -12988,7 +12990,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v6.4.7"
"source": "https://github.com/symfony/finder/tree/v6.4.8"
},
"funding": [
{
@ -13004,20 +13006,20 @@
"type": "tidelift"
}
],
"time": "2024-04-23T10:36:43+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/http-client",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "3683d8107cf1efdd24795cc5f7482be1eded34ac"
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/3683d8107cf1efdd24795cc5f7482be1eded34ac",
"reference": "3683d8107cf1efdd24795cc5f7482be1eded34ac",
"url": "https://api.github.com/repos/symfony/http-client/zipball/61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
"reference": "61faba993e620fc22d4f0ab3b6bcf8fbb0d44b05",
"shasum": ""
},
"require": {
@ -13081,7 +13083,7 @@
"http"
],
"support": {
"source": "https://github.com/symfony/http-client/tree/v6.4.7"
"source": "https://github.com/symfony/http-client/tree/v6.4.8"
},
"funding": [
{
@ -13097,7 +13099,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/http-client-contracts",
@ -13179,16 +13181,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759"
"reference": "27de8cc95e11db7a50b027e71caaab9024545947"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759",
"reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947",
"reference": "27de8cc95e11db7a50b027e71caaab9024545947",
"shasum": ""
},
"require": {
@ -13236,7 +13238,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v6.4.7"
"source": "https://github.com/symfony/http-foundation/tree/v6.4.8"
},
"funding": [
{
@ -13252,20 +13254,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98"
"reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/b7b5e6cdef670a0c82d015a966ffc7e855861a98",
"reference": "b7b5e6cdef670a0c82d015a966ffc7e855861a98",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1",
"reference": "6c519aa3f32adcfd1d1f18d923f6b227d9acf3c1",
"shasum": ""
},
"require": {
@ -13350,7 +13352,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v6.4.7"
"source": "https://github.com/symfony/http-kernel/tree/v6.4.8"
},
"funding": [
{
@ -13366,7 +13368,7 @@
"type": "tidelift"
}
],
"time": "2024-04-29T11:24:44+00:00"
"time": "2024-06-02T16:06:25+00:00"
},
{
"name": "symfony/intl",
@ -13456,16 +13458,16 @@
},
{
"name": "symfony/mailer",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
"reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd"
"reference": "76326421d44c07f7824b19487cfbf87870b37efc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/2c446d4e446995bed983c0b5bb9ff837e8de7dbd",
"reference": "2c446d4e446995bed983c0b5bb9ff837e8de7dbd",
"url": "https://api.github.com/repos/symfony/mailer/zipball/76326421d44c07f7824b19487cfbf87870b37efc",
"reference": "76326421d44c07f7824b19487cfbf87870b37efc",
"shasum": ""
},
"require": {
@ -13516,7 +13518,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailer/tree/v6.4.7"
"source": "https://github.com/symfony/mailer/tree/v6.4.8"
},
"funding": [
{
@ -13532,20 +13534,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/mailgun-mailer",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailgun-mailer.git",
"reference": "044eede71c3eb5fbe7192042b8c0d04987b5653d"
"reference": "748e534d760f9a9318319cbd2adec7c05055ee3c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/044eede71c3eb5fbe7192042b8c0d04987b5653d",
"reference": "044eede71c3eb5fbe7192042b8c0d04987b5653d",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/748e534d760f9a9318319cbd2adec7c05055ee3c",
"reference": "748e534d760f9a9318319cbd2adec7c05055ee3c",
"shasum": ""
},
"require": {
@ -13585,7 +13587,7 @@
"description": "Symfony Mailgun Mailer Bridge",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.7"
"source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.8"
},
"funding": [
{
@ -13601,20 +13603,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/mime",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
"reference": "decadcf3865918ecfcbfa90968553994ce935a5e"
"reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mime/zipball/decadcf3865918ecfcbfa90968553994ce935a5e",
"reference": "decadcf3865918ecfcbfa90968553994ce935a5e",
"url": "https://api.github.com/repos/symfony/mime/zipball/618597ab8b78ac86d1c75a9d0b35540cda074f33",
"reference": "618597ab8b78ac86d1c75a9d0b35540cda074f33",
"shasum": ""
},
"require": {
@ -13670,7 +13672,7 @@
"mime-type"
],
"support": {
"source": "https://github.com/symfony/mime/tree/v6.4.7"
"source": "https://github.com/symfony/mime/tree/v6.4.8"
},
"funding": [
{
@ -13686,7 +13688,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-06-01T07:50:16+00:00"
},
{
"name": "symfony/options-resolver",
@ -14552,16 +14554,16 @@
},
{
"name": "symfony/postmark-mailer",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/postmark-mailer.git",
"reference": "44576c54722d608f37a2dc7884a01e52a524d19b"
"reference": "b649835bb8213e41358e6990de72de20161c625f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/postmark-mailer/zipball/44576c54722d608f37a2dc7884a01e52a524d19b",
"reference": "44576c54722d608f37a2dc7884a01e52a524d19b",
"url": "https://api.github.com/repos/symfony/postmark-mailer/zipball/b649835bb8213e41358e6990de72de20161c625f",
"reference": "b649835bb8213e41358e6990de72de20161c625f",
"shasum": ""
},
"require": {
@ -14602,7 +14604,7 @@
"description": "Symfony Postmark Mailer Bridge",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/postmark-mailer/tree/v6.4.7"
"source": "https://github.com/symfony/postmark-mailer/tree/v6.4.8"
},
"funding": [
{
@ -14618,20 +14620,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/process",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "cdb1c81c145fd5aa9b0038bab694035020943381"
"reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/cdb1c81c145fd5aa9b0038bab694035020943381",
"reference": "cdb1c81c145fd5aa9b0038bab694035020943381",
"url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5",
"reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5",
"shasum": ""
},
"require": {
@ -14663,7 +14665,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v6.4.7"
"source": "https://github.com/symfony/process/tree/v6.4.8"
},
"funding": [
{
@ -14679,7 +14681,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/property-access",
@ -14932,16 +14934,16 @@
},
{
"name": "symfony/routing",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
"reference": "276e06398f71fa2a973264d94f28150f93cfb907"
"reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/routing/zipball/276e06398f71fa2a973264d94f28150f93cfb907",
"reference": "276e06398f71fa2a973264d94f28150f93cfb907",
"url": "https://api.github.com/repos/symfony/routing/zipball/8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58",
"reference": "8a40d0f9b01f0fbb80885d3ce0ad6714fb603a58",
"shasum": ""
},
"require": {
@ -14995,7 +14997,7 @@
"url"
],
"support": {
"source": "https://github.com/symfony/routing/tree/v6.4.7"
"source": "https://github.com/symfony/routing/tree/v6.4.8"
},
"funding": [
{
@ -15011,7 +15013,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/serializer",
@ -15282,16 +15284,16 @@
},
{
"name": "symfony/translation",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "7495687c58bfd88b7883823747b0656d90679123"
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/7495687c58bfd88b7883823747b0656d90679123",
"reference": "7495687c58bfd88b7883823747b0656d90679123",
"url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a",
"reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a",
"shasum": ""
},
"require": {
@ -15357,7 +15359,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v6.4.7"
"source": "https://github.com/symfony/translation/tree/v6.4.8"
},
"funding": [
{
@ -15373,7 +15375,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/translation-contracts",
@ -15537,16 +15539,16 @@
},
{
"name": "symfony/uid",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
"reference": "a66efcb71d8bc3a207d9d78e0bd67f3321510355"
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/uid/zipball/a66efcb71d8bc3a207d9d78e0bd67f3321510355",
"reference": "a66efcb71d8bc3a207d9d78e0bd67f3321510355",
"url": "https://api.github.com/repos/symfony/uid/zipball/35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
"reference": "35904eca37a84bb764c560cbfcac9f0ac2bcdbdf",
"shasum": ""
},
"require": {
@ -15591,7 +15593,7 @@
"uuid"
],
"support": {
"source": "https://github.com/symfony/uid/tree/v6.4.7"
"source": "https://github.com/symfony/uid/tree/v6.4.8"
},
"funding": [
{
@ -15607,7 +15609,7 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/validator",
@ -15707,16 +15709,16 @@
},
{
"name": "symfony/var-dumper",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "7a9cd977cd1c5fed3694bee52990866432af07d7"
"reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/7a9cd977cd1c5fed3694bee52990866432af07d7",
"reference": "7a9cd977cd1c5fed3694bee52990866432af07d7",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/ad23ca4312395f0a8a8633c831ef4c4ee542ed25",
"reference": "ad23ca4312395f0a8a8633c831ef4c4ee542ed25",
"shasum": ""
},
"require": {
@ -15772,7 +15774,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v6.4.7"
"source": "https://github.com/symfony/var-dumper/tree/v6.4.8"
},
"funding": [
{
@ -15788,20 +15790,20 @@
"type": "tidelift"
}
],
"time": "2024-04-18T09:22:46+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "symfony/yaml",
"version": "v6.4.7",
"version": "v6.4.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0"
"reference": "52903de178d542850f6f341ba92995d3d63e60c9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0",
"reference": "53e8b1ef30a65f78eac60fddc5ee7ebbbdb1dee0",
"url": "https://api.github.com/repos/symfony/yaml/zipball/52903de178d542850f6f341ba92995d3d63e60c9",
"reference": "52903de178d542850f6f341ba92995d3d63e60c9",
"shasum": ""
},
"require": {
@ -15844,7 +15846,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/yaml/tree/v6.4.7"
"source": "https://github.com/symfony/yaml/tree/v6.4.8"
},
"funding": [
{
@ -15860,7 +15862,7 @@
"type": "tidelift"
}
],
"time": "2024-04-28T10:28:08+00:00"
"time": "2024-05-31T14:49:08+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@ -20725,10 +20727,10 @@
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"socialiteproviders/apple": 20,
"webpatser/laravel-countries": 20,
"horstoeko/orderx": 20,
"invoiceninja/einvoice": 20,
"horstoeko/orderx": 20
"socialiteproviders/apple": 20,
"webpatser/laravel-countries": 20
},
"prefer-stable": true,
"prefer-lowest": false,

View File

@ -201,7 +201,7 @@ return [
App\Providers\MultiDBProvider::class,
App\Providers\ClientPortalServiceProvider::class,
App\Providers\NinjaTranslationServiceProvider::class,
// App\Providers\StaticServiceProvider::class,
App\Providers\StaticServiceProvider::class,
],
/*
@ -216,8 +216,8 @@ return [
*/
'aliases' => Facade::defaultAliases()->merge([
'Collector' => Turbo124\Collector\CollectorFacade::class,
'Countries' => 'Webpatser\Countries\CountriesFacade',
'Collector' => Turbo124\Beacon\CollectorFacade::class,
// 'Countries' => 'Webpatser\Countries\CountriesFacade',
'CustomMessage' => App\Utils\ClientPortal\CustomMessage\CustomMessageFacade::class,
'Redis' => Illuminate\Support\Facades\Redis::class,
])->toArray(),

View File

@ -17,8 +17,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
'app_version' => env('APP_VERSION', '5.9.1'),
'app_tag' => env('APP_TAG', '5.9.1'),
'app_version' => env('APP_VERSION', '5.9.2'),
'app_tag' => env('APP_TAG', '5.9.2'),
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', false),

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
if($g = \App\Models\Gateway::find(62))
{
$g->fields = '{"btcpayUrl":"", "apiKey":"", "storeId":"", "webhookSecret":""}';
$g->save();
}
}
/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
};

View File

@ -87,7 +87,7 @@ class PaymentLibrariesSeeder extends Seeder
['id' => 59, 'name' => 'Forte', 'provider' => 'Forte', 'is_offsite' => false, 'sort_order' => 21, 'key' => 'kivcvjexxvdiyqtj3mju5d6yhpeht2xs', 'fields' => '{"testMode":false,"apiLoginId":"","apiAccessId":"","secureKey":"","authOrganizationId":"","organizationId":"","locationId":""}'],
['id' => 60, 'name' => 'PayPal REST', 'provider' => 'PayPal_Rest', 'key' => '80af24a6a691230bbec33e930ab40665', 'fields' => '{"clientId":"","secret":"","signature":"","testMode":false}'],
['id' => 61, 'name' => 'PayPal Platform', 'provider' => 'PayPal_PPCP', 'key' => '80af24a6a691230bbec33e930ab40666', 'fields' => '{"testMode":false}'],
['id' => 62, 'name' => 'BTCPay', 'provider' => 'BTCPay', 'key' => 'vpyfbmdrkqcicpkjqdusgjfluebftuva', 'fields' => '{"btcpayUrl":"", "apiKey:"", "storeId":"", "webhookSecret":""}'],
['id' => 62, 'name' => 'BTCPay', 'provider' => 'BTCPay', 'key' => 'vpyfbmdrkqcicpkjqdusgjfluebftuva', 'fields' => '{"btcpayUrl":"", "apiKey":"", "storeId":"", "webhookSecret":""}'],
];
foreach ($gateways as $gateway) {

View File

@ -252,7 +252,7 @@ class RandomDataSeeder extends Seeder
$invoice->service()->createInvitations()->markSent()->save();
$invoice->ledger()->update_invoiceBalance($invoice->balance);
$invoice->ledger()->updateInvoiceBalance($invoice->balance);
if (rand(0, 1)) {
$payment = Payment::create([

View File

@ -25,7 +25,7 @@
@foreach($multiple_contacts as $contact)
<a data-turbolinks="false"
href="{{ route('client.switch_company', $contact->hashed_id) }}"
class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900">{{ $contact->client->present()->name()}}
class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900">{{ $contact->client->present()->name()}} - ({{$contact->company->present()->name()}})
</a>
@endforeach
</div>

View File

@ -42,7 +42,7 @@ class FatturaPATest extends TestCase
$this->makeTestData();
$this->markTestSkipped('prevent running in CI');
// $this->markTestSkipped('prevent running in CI');
$this->withoutMiddleware(
ThrottleRequests::class
@ -56,9 +56,9 @@ class FatturaPATest extends TestCase
$settings->address1 = 'Via Silvio Spaventa 108';
$settings->city = 'Calcinelli';
$settings->state = 'PA';
$settings->state = 'PA';
// $settings->state = 'Perugia';
// $settings->state = 'Perugia';
$settings->postal_code = '61030';
$settings->country_id = '380';
$settings->currency_id = '3';
@ -129,6 +129,9 @@ $settings->state = 'PA';
$encoder = new Encode($fe);
$xml = $encoder->toXml();
nlog($xml);
$this->assertNotNull($xml);