diff --git a/VERSION.txt b/VERSION.txt
index 01f861555b22..807e025600b9 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-5.3.96
\ No newline at end of file
+5.3.97
\ No newline at end of file
diff --git a/app/Console/Commands/CreateSingleAccount.php b/app/Console/Commands/CreateSingleAccount.php
index edcbcb1a2b18..b51415233ce8 100644
--- a/app/Console/Commands/CreateSingleAccount.php
+++ b/app/Console/Commands/CreateSingleAccount.php
@@ -108,6 +108,7 @@ class CreateSingleAccount extends Command
'default_password_timeout' => 30*60000,
'portal_mode' => 'domain',
'portal_domain' => 'http://ninja.test:8000',
+ 'track_inventory' => true
]);
$settings = $company->settings;
diff --git a/app/DataMapper/EmailTemplateDefaults.php b/app/DataMapper/EmailTemplateDefaults.php
index 507d36561358..03e212557147 100644
--- a/app/DataMapper/EmailTemplateDefaults.php
+++ b/app/DataMapper/EmailTemplateDefaults.php
@@ -61,10 +61,13 @@ class EmailTemplateDefaults
break;
case 'email_template_custom3':
return self::emailInvoiceTemplate();
+ case 'email_template_purchase_order':
+ return self::emailPurchaseOrderSubject();
break;
/* Subject */
-
+ case 'email_subject_purchase_order':
+ return self::emailPurchaseOrderSubject();
case 'email_subject_invoice':
return self::emailInvoiceSubject();
break;
@@ -152,6 +155,20 @@ class EmailTemplateDefaults
return ctrans('texts.payment_subject');
}
+ public static function emailPurchaseOrderSubject()
+ {
+ return ctrans('texts.purchase_order_subject', ['number' => '$number']);
+ }
+
+ public static function emailPurchaseOrderTemplate()
+ {
+
+ $purchase_order_message = '
$vendor
'.self::transformText('purchase_order_message').'
$view_button
';
+
+ return $purchase_order_message;
+
+ }
+
public static function emailPaymentTemplate()
{
$payment_message = '$client
'.self::transformText('payment_message').'
$invoices
$view_button
';
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasArchived.php b/app/Events/PurchaseOrder/PurchaseOrderWasArchived.php
new file mode 100644
index 000000000000..cb6a29d1dc79
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasArchived.php
@@ -0,0 +1,47 @@
+purchase_order = $purchase_order;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasCreated.php b/app/Events/PurchaseOrder/PurchaseOrderWasCreated.php
new file mode 100644
index 000000000000..e27497efd9e9
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasCreated.php
@@ -0,0 +1,47 @@
+purchase_order = $purchase_order;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasDeleted.php b/app/Events/PurchaseOrder/PurchaseOrderWasDeleted.php
new file mode 100644
index 000000000000..0061f8759817
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasDeleted.php
@@ -0,0 +1,47 @@
+purchase_order = $purchase_order;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasEmailed.php b/app/Events/PurchaseOrder/PurchaseOrderWasEmailed.php
new file mode 100644
index 000000000000..7836a8442636
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasEmailed.php
@@ -0,0 +1,47 @@
+purchase_order = $purchase_order;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasRestored.php b/app/Events/PurchaseOrder/PurchaseOrderWasRestored.php
new file mode 100644
index 000000000000..c957c52a75b9
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasRestored.php
@@ -0,0 +1,49 @@
+purchase_order = $purchase_order;
+ $this->fromDeleted = $fromDeleted;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasUpdated.php b/app/Events/PurchaseOrder/PurchaseOrderWasUpdated.php
new file mode 100644
index 000000000000..bf241d002b92
--- /dev/null
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasUpdated.php
@@ -0,0 +1,47 @@
+purchase_order = $purchase_order;
+ $this->company = $company;
+ $this->event_vars = $event_vars;
+ }
+}
diff --git a/app/Events/PurchaseOrder/PurchaseOrderWasMarkedSent.php b/app/Events/PurchaseOrder/PurchaseOrderWasViewed.php
similarity index 64%
rename from app/Events/PurchaseOrder/PurchaseOrderWasMarkedSent.php
rename to app/Events/PurchaseOrder/PurchaseOrderWasViewed.php
index 3b17142b9aab..7a0d67b56615 100644
--- a/app/Events/PurchaseOrder/PurchaseOrderWasMarkedSent.php
+++ b/app/Events/PurchaseOrder/PurchaseOrderWasViewed.php
@@ -1,5 +1,13 @@
service()
->fillDefaults()
->triggeredActions($request)
+ ->adjustInventory()
->save();
event(new InvoiceWasCreated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
@@ -414,9 +415,14 @@ class InvoiceController extends BaseController
return response()->json(['message' => ctrans('texts.locked_invoice')], 403);
}
+ $old_invoice = $invoice->line_items;
+
$invoice = $this->invoice_repo->save($request->all(), $invoice);
-
- $invoice->service()->triggeredActions($request)->touchPdf();
+
+ $invoice->service()
+ ->triggeredActions($request)
+ ->touchPdf()
+ ->adjustInventory($old_invoice);
event(new InvoiceWasUpdated($invoice, $invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
diff --git a/app/Http/Controllers/PurchaseOrderController.php b/app/Http/Controllers/PurchaseOrderController.php
index 60c8a33138c0..61877a56d6d7 100644
--- a/app/Http/Controllers/PurchaseOrderController.php
+++ b/app/Http/Controllers/PurchaseOrderController.php
@@ -12,6 +12,8 @@
namespace App\Http\Controllers;
+use App\Events\PurchaseOrder\PurchaseOrderWasCreated;
+use App\Events\PurchaseOrder\PurchaseOrderWasUpdated;
use App\Factory\PurchaseOrderFactory;
use App\Filters\PurchaseOrderFilters;
use App\Http\Requests\PurchaseOrder\ActionPurchaseOrderRequest;
@@ -26,6 +28,7 @@ use App\Models\Client;
use App\Models\PurchaseOrder;
use App\Repositories\PurchaseOrderRepository;
use App\Transformers\PurchaseOrderTransformer;
+use App\Utils\Ninja;
use App\Utils\Traits\MakesHash;
use Illuminate\Http\Response;
@@ -182,6 +185,8 @@ class PurchaseOrderController extends BaseController
->fillDefaults()
->save();
+ event(new PurchaseOrderWasCreated($purchase_order, $purchase_order->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
+
return $this->itemResponse($purchase_order);
}
/**
@@ -352,6 +357,8 @@ class PurchaseOrderController extends BaseController
$purchase_order = $this->purchase_order_repository->save($request->all(), $purchase_order);
+ event(new PurchaseOrderWasUpdated($purchase_order, $purchase_order->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
+
return $this->itemResponse($purchase_order);
}
/**
@@ -470,7 +477,7 @@ class PurchaseOrderController extends BaseController
$purchase_orders = PurchaseOrder::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()->get();
- if (! $invoices) {
+ if (! $purchase_orders) {
return response()->json(['message' => 'No Purchase Orders Found']);
}
diff --git a/app/Http/Livewire/BillingPortalPurchase.php b/app/Http/Livewire/BillingPortalPurchase.php
index 4a5fd2f714ad..d383ee55220d 100644
--- a/app/Http/Livewire/BillingPortalPurchase.php
+++ b/app/Http/Livewire/BillingPortalPurchase.php
@@ -362,6 +362,7 @@ class BillingPortalPurchase extends Component
->service()
->markSent()
->fillDefaults()
+ ->adjustInventory()
->save();
Cache::put($this->hash, [
diff --git a/app/Http/Requests/Product/StoreProductRequest.php b/app/Http/Requests/Product/StoreProductRequest.php
index e5ad0d9029bf..89c476e346ee 100644
--- a/app/Http/Requests/Product/StoreProductRequest.php
+++ b/app/Http/Requests/Product/StoreProductRequest.php
@@ -38,10 +38,13 @@ class StoreProductRequest extends Request
$rules['documents'] = 'file|mimes:png,ai,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx|max:20000';
}
- $rules['cost'] = 'numeric';
- $rules['price'] = 'numeric';
- $rules['quantity'] = 'numeric';
-
+ $rules['cost'] = 'sometimes|numeric';
+ $rules['price'] = 'sometimes|numeric';
+ $rules['quantity'] = 'sometimes|numeric';
+ $rules['in_stock_quantity'] = 'sometimes|numeric';
+ $rules['stock_notification_threshold'] = 'sometimes|numeric';
+ $rules['stock_notification'] = 'sometimes|bool';
+
return $rules;
}
diff --git a/app/Http/Requests/Product/UpdateProductRequest.php b/app/Http/Requests/Product/UpdateProductRequest.php
index ffb4009ef58c..f122686c293c 100644
--- a/app/Http/Requests/Product/UpdateProductRequest.php
+++ b/app/Http/Requests/Product/UpdateProductRequest.php
@@ -44,6 +44,9 @@ class UpdateProductRequest extends Request
$rules['cost'] = 'numeric';
$rules['price'] = 'numeric';
$rules['quantity'] = 'numeric';
+ $rules['in_stock_quantity'] = 'sometimes|numeric';
+ $rules['stock_notification_threshold'] = 'sometimes|numeric';
+ $rules['stock_notification'] = 'sometimes|bool';
return $rules;
}
@@ -60,6 +63,13 @@ class UpdateProductRequest extends Request
$input['assigned_user_id'] = $this->decodePrimaryKey($input['assigned_user_id']);
}
+ if(array_key_exists('in_stock_quantity', $input) && request()->has('update_in_stock_quantity') && request()->input('update_in_stock_quantity') == 'true'){
+
+ }
+ elseif(array_key_exists('in_stock_quantity', $input)){
+ unset($input['in_stock_quantity']);
+ }
+
$this->replace($input);
}
}
diff --git a/app/Import/Transformer/BaseTransformer.php b/app/Import/Transformer/BaseTransformer.php
index 6c6dbce3ff4a..652aee4d9c07 100644
--- a/app/Import/Transformer/BaseTransformer.php
+++ b/app/Import/Transformer/BaseTransformer.php
@@ -71,6 +71,7 @@ class BaseTransformer
$client_id_search = $this->company
->clients()
+ ->where('is_deleted', false)
->where('id_number', $client_name);
if ($client_id_search->count() >= 1) {
@@ -79,6 +80,7 @@ class BaseTransformer
$client_name_search = $this->company
->clients()
+ ->where('is_deleted', false)
->where('name', $client_name);
if ($client_name_search->count() >= 1) {
@@ -86,10 +88,11 @@ class BaseTransformer
}
}
if (!empty($client_email)) {
- $contacts = ClientContact::where(
- 'company_id',
- $this->company->id
- )->where('email', $client_email);
+ $contacts = ClientContact::whereHas('client', function($query){
+ $query->where('is_deleted', false);
+ })
+ ->where('company_id', $this->company->id)
+ ->where('email', $client_email);
if ($contacts->count() >= 1) {
return $contacts->first()->client_id;
@@ -109,6 +112,7 @@ class BaseTransformer
{
return $this->company
->clients()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -124,6 +128,7 @@ class BaseTransformer
{
return $this->company
->vendors()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -139,6 +144,7 @@ class BaseTransformer
{
return $this->company
->projects()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -154,6 +160,7 @@ class BaseTransformer
{
return $this->company
->products()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`product_key`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $key)),
])
@@ -186,6 +193,7 @@ class BaseTransformer
{
$client = $this->company
->clients()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -203,6 +211,7 @@ class BaseTransformer
{
$product = $this->company
->products()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`product_key`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $key)),
])
@@ -273,6 +282,7 @@ class BaseTransformer
$tax_rate = $this->company
->tax_rates()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -292,6 +302,7 @@ class BaseTransformer
$tax_rate = $this->company
->tax_rates()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -341,6 +352,7 @@ class BaseTransformer
{
$invoice = $this->company
->invoices()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`number`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $invoice_number)),
])
@@ -358,6 +370,7 @@ class BaseTransformer
{
return $this->company
->invoices()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`number`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $invoice_number)),
])
@@ -371,6 +384,7 @@ class BaseTransformer
{
return $this->company
->expenses()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`number`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $expense_number)),
])
@@ -386,6 +400,7 @@ class BaseTransformer
{
return $this->company
->quotes()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`number`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $quote_number)),
])
@@ -401,6 +416,7 @@ class BaseTransformer
{
$invoice = $this->company
->invoices()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`number`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $invoice_number)),
])
@@ -418,6 +434,7 @@ class BaseTransformer
{
$vendor = $this->company
->vendors()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -452,6 +469,7 @@ class BaseTransformer
{
$ec = $this->company
->expense_categories()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
@@ -486,6 +504,7 @@ class BaseTransformer
{
$project = $this->company
->projects()
+ ->where('is_deleted', false)
->whereRaw("LOWER(REPLACE(`name`, ' ' ,'')) = ?", [
strtolower(str_replace(' ', '', $name)),
])
diff --git a/app/Jobs/Inventory/AdjustProductInventory.php b/app/Jobs/Inventory/AdjustProductInventory.php
index 60ebdf121538..0ba808079998 100644
--- a/app/Jobs/Inventory/AdjustProductInventory.php
+++ b/app/Jobs/Inventory/AdjustProductInventory.php
@@ -11,7 +11,11 @@
namespace App\Jobs\Inventory;
+use App\Jobs\Mail\NinjaMailer;
+use App\Jobs\Mail\NinjaMailerJob;
+use App\Jobs\Mail\NinjaMailerObject;
use App\Libraries\MultiDB;
+use App\Mail\Admin\InventoryNotificationObject;
use App\Models\Company;
use App\Models\Invoice;
use App\Models\Product;
@@ -20,10 +24,9 @@ use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Queue\Middleware\WithoutOverlapping;
use Illuminate\Queue\SerializesModels;
-//todo - ensure we are MultiDB Aware in dispatched jobs
-
class AdjustProductInventory implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
@@ -34,9 +37,8 @@ class AdjustProductInventory implements ShouldQueue
public array $old_invoice;
- public function __construct(Company $company, Invoice $invoice, array $old_invoice = [])
+ public function __construct(Company $company, Invoice $invoice, ?array $old_invoice = [])
{
-
$this->company = $company;
$this->invoice = $invoice;
$this->old_invoice = $old_invoice;
@@ -53,12 +55,18 @@ class AdjustProductInventory implements ShouldQueue
MultiDB::setDb($this->company->db);
if(count($this->old_invoice) > 0)
- return $this->existingInventoryAdjustment();
+ $this->existingInventoryAdjustment();
return $this->newInventoryAdjustment();
}
+
+ public function middleware()
+ {
+ return [new WithoutOverlapping($this->company->company_key)];
+ }
+
private function newInventoryAdjustment()
{
@@ -68,16 +76,18 @@ class AdjustProductInventory implements ShouldQueue
{
$p = Product::where('product_key', $item->product_key)->where('company_id', $this->company->id)->where('in_stock_quantity', '>', 0)->first();
- $p->in_stock_quantity -= $item->quantity;
- $p->save();
- //check threshols and notify user
+ if(!$p)
+ continue;
+
+ $p->in_stock_quantity -= $item->quantity;
+ $p->saveQuietly();
if($p->stock_notification_threshold && $p->in_stock_quantity <= $p->stock_notification_threshold)
$this->notifyStockLevels($p, 'product');
- elseif($this->company->stock_notification_threshold && $p->in_stock_quantity <= $this->company->stock_notification_threshold){
+ elseif($this->company->stock_notification_threshold && $p->in_stock_quantity <= $this->company->stock_notification_threshold)
$this->notifyStocklevels($p, 'company');
- }
+
}
}
@@ -85,11 +95,31 @@ class AdjustProductInventory implements ShouldQueue
private function existingInventoryAdjustment()
{
+ foreach($this->old_invoice as $item)
+ {
+ $p = Product::where('product_key', $item->product_key)->where('company_id', $this->company->id)->first();
+
+ if(!$p)
+ continue;
+
+ $p->in_stock_quantity += $item->quantity;
+ $p->saveQuietly();
+
+ }
+
}
private function notifyStocklevels(Product $product, string $notification_level)
{
+ $nmo = new NinjaMailerObject;
+ $nmo->mailable = new NinjaMailer( (new InventoryNotificationObject($product, $notification_level))->build() );
+ $nmo->company = $this->company;
+ $nmo->settings = $this->company->settings;
+ $nmo->to_user = $this->company->owner();
+
+ NinjaMailerJob::dispatch($nmo);
+
}
}
diff --git a/app/Jobs/RecurringInvoice/SendRecurring.php b/app/Jobs/RecurringInvoice/SendRecurring.php
index b5ef1d7d20bf..b3bf0a53ddb3 100644
--- a/app/Jobs/RecurringInvoice/SendRecurring.php
+++ b/app/Jobs/RecurringInvoice/SendRecurring.php
@@ -87,6 +87,7 @@ class SendRecurring implements ShouldQueue
->applyNumber()
//->createInvitations() //need to only link invitations to those in the recurring invoice
->fillDefaults()
+ ->adjustInventory()
->save();
}
diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php
index ca9fefb2d823..995dbb646117 100644
--- a/app/Jobs/Util/Import.php
+++ b/app/Jobs/Util/Import.php
@@ -89,6 +89,7 @@ use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Http\UploadedFile;
use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Queue\Middleware\WithoutOverlapping;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\App;
@@ -187,6 +188,11 @@ class Import implements ShouldQueue
$this->resources = $resources;
}
+ public function middleware()
+ {
+ return [new WithoutOverlapping($this->company->account->key)];
+ }
+
/**
* Execute the job.
*
diff --git a/app/Listeners/Payment/PaymentNotification.php b/app/Listeners/Payment/PaymentNotification.php
index 652106158926..ac9d509f1a60 100644
--- a/app/Listeners/Payment/PaymentNotification.php
+++ b/app/Listeners/Payment/PaymentNotification.php
@@ -127,8 +127,7 @@ class PaymentNotification implements ShouldQueue
*/
private function sendAnalytics($data)
{
- nlog($data);
-
+
$data = utf8_encode($data);
$curl = curl_init();
diff --git a/app/Listeners/PurchaseOrder/CreatePurchaseOrderActivity.php b/app/Listeners/PurchaseOrder/CreatePurchaseOrderActivity.php
new file mode 100644
index 000000000000..f743c5fee57d
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/CreatePurchaseOrderActivity.php
@@ -0,0 +1,58 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+ $fields->purchase_order_id = $event->purchase_order->id;
+ $fields->vendor_id = $event->purchase_order->vendor_id;
+ $fields->company_id = $event->purchase_order->company_id;
+ $fields->activity_type_id = Activity::CREATE_PURCHASE_ORDER;
+
+ $this->activity_repo->save($fields, $event->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderArchivedActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderArchivedActivity.php
new file mode 100644
index 000000000000..09c8eb679726
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/PurchaseOrderArchivedActivity.php
@@ -0,0 +1,59 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+
+ $fields->purchase_order_id = $event->purchase_order->id;
+ $fields->vendor_id = $event->purchase_order->vendor_id;
+ $fields->company_id = $event->purchase_order->company_id;
+ $fields->activity_type_id = Activity::ARCHIVE_PURCHASE_ORDER;
+
+ $this->activity_repo->save($fields, $event->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderDeletedActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderDeletedActivity.php
new file mode 100644
index 000000000000..8cfeda8a5ef8
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/PurchaseOrderDeletedActivity.php
@@ -0,0 +1,58 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+ $fields->purchase_order_id = $event->purchase_order->id;
+ $fields->vendor_id = $event->purchase_order->vendor_id;
+ $fields->company_id = $event->purchase_order->company_id;
+ $fields->activity_type_id = Activity::DELETE_PURCHASE_ORDER;
+
+ $this->activity_repo->save($fields, $event->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php
new file mode 100644
index 000000000000..099ec3bad33e
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php
@@ -0,0 +1,59 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->invitation->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+ $fields->purchase_order_id = $event->invitation->purchase_order->id;
+ $fields->company_id = $event->invitation->purchase_order->company_id;
+ $fields->vendor_contact_id = $event->invitation->purchase_order->vendor_contact_id;
+ $fields->vendor_id = $event->invitation->purchase_order->vendor_id;
+ $fields->activity_type_id = Activity::EMAIL_PURCHASE_ORDER;
+
+ $this->activity_repo->save($fields, $event->invitation->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderRestoredActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderRestoredActivity.php
new file mode 100644
index 000000000000..367bf7874da4
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/PurchaseOrderRestoredActivity.php
@@ -0,0 +1,58 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+ $fields->purchase_order_id = $event->purchase_order->id;
+ $fields->vendor_id = $event->purchase_order->vendor_id;
+ $fields->company_id = $event->purchase_order->company_id;
+ $fields->activity_type_id = Activity::RESTORE_PURCHASE_ORDER;
+
+ $this->activity_repo->save($fields, $event->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderViewedActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderViewedActivity.php
new file mode 100644
index 000000000000..ea9a6a60b67a
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/PurchaseOrderViewedActivity.php
@@ -0,0 +1,62 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDb($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->invitation->purchase_order->user_id;
+
+ $event->invitation->purchase_order->service()->markSent()->save();
+
+ $fields->user_id = $user_id;
+ $fields->company_id = $event->invitation->company_id;
+ $fields->activity_type_id = Activity::VIEW_PURCHASE_ORDER;
+ $fields->vendor_id = $event->invitation->purchase_order->vendor_id;
+ $fields->vendor_contact_id = $event->invitation->vendor_contact_id;
+ $fields->invitation_id = $event->invitation->id;
+ $fields->purchase_order_id = $event->invitation->purchase_order_id;
+
+ $this->activity_repo->save($fields, $event->invitation->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Listeners/PurchaseOrder/UpdatePurchaseOrderActivity.php b/app/Listeners/PurchaseOrder/UpdatePurchaseOrderActivity.php
new file mode 100644
index 000000000000..2b4b1039e7a7
--- /dev/null
+++ b/app/Listeners/PurchaseOrder/UpdatePurchaseOrderActivity.php
@@ -0,0 +1,58 @@
+activity_repo = $activity_repo;
+ }
+
+ /**
+ * Handle the event.
+ *
+ * @param object $event
+ * @return void
+ */
+ public function handle($event)
+ {
+ MultiDB::setDB($event->company->db);
+
+ $fields = new stdClass;
+
+ $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->purchase_order->user_id;
+
+ $fields->user_id = $user_id;
+ $fields->vendor_id = $event->purchase_order->vendor_id;
+ $fields->company_id = $event->purchase_order->company_id;
+ $fields->activity_type_id = Activity::UPDATE_PURCHASE_ORDER;
+ $fields->purchase_order_id = $event->purchase_order->id;
+
+ $this->activity_repo->save($fields, $event->purchase_order, $event->event_vars);
+ }
+}
diff --git a/app/Mail/Admin/InventoryNotificationObject.php b/app/Mail/Admin/InventoryNotificationObject.php
new file mode 100644
index 000000000000..e752c5acf909
--- /dev/null
+++ b/app/Mail/Admin/InventoryNotificationObject.php
@@ -0,0 +1,99 @@
+product = $product;
+ $this->company = $product->company;
+ $this->settings = $this->company->settings;
+ }
+
+ public function build()
+ {
+
+ App::forgetInstance('translator');
+ /* Init a new copy of the translator*/
+ $t = app('translator');
+ /* Set the locale*/
+ App::setLocale($this->company->getLocale());
+ /* Set customized translations _NOW_ */
+ $t->replace(Ninja::transformTranslations($this->company->settings));
+
+ $mail_obj = new stdClass;
+ $mail_obj->amount = $this->getAmount();
+ $mail_obj->subject = $this->getSubject();
+ $mail_obj->data = $this->getData();
+ $mail_obj->markdown = 'email.admin.generic';
+ $mail_obj->tag = $this->company->company_key;
+
+ return $mail_obj;
+ }
+
+ private function getAmount()
+ {
+ return $this->product->in_stock_quantity;
+ }
+
+ private function getSubject()
+ {
+ return
+ ctrans(
+ 'texts.inventory_notification_subject',
+ ['product' => $this->product->product_key . ": " . $this->product->notes]
+ );
+ }
+
+ private function getData()
+ {
+
+ $data = [
+ 'title' => $this->getSubject(),
+ 'content' => ctrans(
+ 'texts.inventory_notification_body',
+ ['amount' => $this->getAmount(),
+ 'product' => $this->product->product_key . ": " . $this->product->notes,
+ ]
+ ),
+ 'url' => config('ninja.app_url'),
+ 'button' => ctrans('texts.login'),
+ 'signature' => $this->settings->email_signature,
+ 'logo' => $this->company->present()->logo(),
+ 'settings' => $this->settings,
+ 'whitelabel' => $this->company->account->isPaid() ? true : false,
+ ];
+
+ return $data;
+ }
+
+
+}
diff --git a/app/Models/Activity.php b/app/Models/Activity.php
index f00042dc8d74..f5a8ce9eb297 100644
--- a/app/Models/Activity.php
+++ b/app/Models/Activity.php
@@ -109,6 +109,14 @@ class Activity extends StaticModel
const DELETE_RECURRING_EXPENSE = 123;
const RESTORE_RECURRING_EXPENSE = 124;
+ const CREATE_PURCHASE_ORDER = 130;
+ const UPDATE_PURCHASE_ORDER = 131;
+ const ARCHIVE_PURCHASE_ORDER = 132;
+ const DELETE_PURCHASE_ORDER = 133;
+ const RESTORE_PURCHASE_ORDER = 134;
+ const EMAIL_PURCHASE_ORDER = 135;
+ const VIEW_PURCHASE_ORDER = 136;
+
protected $casts = [
'is_system' => 'boolean',
'updated_at' => 'timestamp',
diff --git a/app/PaymentDrivers/GoCardless/ACH.php b/app/PaymentDrivers/GoCardless/ACH.php
index 9c71d41f3f42..174fa0ce81ca 100644
--- a/app/PaymentDrivers/GoCardless/ACH.php
+++ b/app/PaymentDrivers/GoCardless/ACH.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\GoCardless;
diff --git a/app/PaymentDrivers/GoCardless/DirectDebit.php b/app/PaymentDrivers/GoCardless/DirectDebit.php
index bcdbf50ceb82..70f86708a29f 100644
--- a/app/PaymentDrivers/GoCardless/DirectDebit.php
+++ b/app/PaymentDrivers/GoCardless/DirectDebit.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\GoCardless;
diff --git a/app/PaymentDrivers/GoCardless/SEPA.php b/app/PaymentDrivers/GoCardless/SEPA.php
index 46b1a65f86f1..3771d25bdb95 100644
--- a/app/PaymentDrivers/GoCardless/SEPA.php
+++ b/app/PaymentDrivers/GoCardless/SEPA.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\GoCardless;
diff --git a/app/PaymentDrivers/GoCardlessPaymentDriver.php b/app/PaymentDrivers/GoCardlessPaymentDriver.php
index 59de714057ba..c438924e7d90 100644
--- a/app/PaymentDrivers/GoCardlessPaymentDriver.php
+++ b/app/PaymentDrivers/GoCardlessPaymentDriver.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers;
diff --git a/app/PaymentDrivers/Mollie/IDEAL.php b/app/PaymentDrivers/Mollie/IDEAL.php
index 69f6bb812a39..1dcb8687c473 100644
--- a/app/PaymentDrivers/Mollie/IDEAL.php
+++ b/app/PaymentDrivers/Mollie/IDEAL.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\Mollie;
diff --git a/app/PaymentDrivers/Razorpay/Hosted.php b/app/PaymentDrivers/Razorpay/Hosted.php
index 9476009bcdc8..ac4a01217885 100644
--- a/app/PaymentDrivers/Razorpay/Hosted.php
+++ b/app/PaymentDrivers/Razorpay/Hosted.php
@@ -8,7 +8,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\Razorpay;
diff --git a/app/PaymentDrivers/RazorpayPaymentDriver.php b/app/PaymentDrivers/RazorpayPaymentDriver.php
index df5694b41156..f835512a85dd 100644
--- a/app/PaymentDrivers/RazorpayPaymentDriver.php
+++ b/app/PaymentDrivers/RazorpayPaymentDriver.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers;
diff --git a/app/PaymentDrivers/Stripe/BrowserPay.php b/app/PaymentDrivers/Stripe/BrowserPay.php
index c74261b9cdf8..1bbb8d45bb95 100644
--- a/app/PaymentDrivers/Stripe/BrowserPay.php
+++ b/app/PaymentDrivers/Stripe/BrowserPay.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2022. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\PaymentDrivers\Stripe;
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index d2b7e232acfa..b84ab256dfb9 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -61,6 +61,13 @@ use App\Events\Payment\PaymentWasRestored;
use App\Events\Payment\PaymentWasUpdated;
use App\Events\Payment\PaymentWasVoided;
use App\Events\PurchaseOrder\PurchaseOrderWasMarkedSent;
+use App\Events\PurchaseOrder\PurchaseOrderWasArchived;
+use App\Events\PurchaseOrder\PurchaseOrderWasCreated;
+use App\Events\PurchaseOrder\PurchaseOrderWasDeleted;
+use App\Events\PurchaseOrder\PurchaseOrderWasEmailed;
+use App\Events\PurchaseOrder\PurchaseOrderWasRestored;
+use App\Events\PurchaseOrder\PurchaseOrderWasUpdated;
+use App\Events\PurchaseOrder\PurchaseOrderWasViewed;
use App\Events\Quote\QuoteWasApproved;
use App\Events\Quote\QuoteWasArchived;
use App\Events\Quote\QuoteWasCreated;
@@ -171,6 +178,13 @@ use App\Listeners\Payment\PaymentEmailFailureActivity;
use App\Listeners\Payment\PaymentEmailedActivity;
use App\Listeners\Payment\PaymentNotification;
use App\Listeners\Payment\PaymentRestoredActivity;
+use App\Listeners\PurchaseOrder\CreatePurchaseOrderActivity;
+use App\Listeners\PurchaseOrder\PurchaseOrderArchivedActivity;
+use App\Listeners\PurchaseOrder\PurchaseOrderDeletedActivity;
+use App\Listeners\PurchaseOrder\PurchaseOrderEmailActivity;
+use App\Listeners\PurchaseOrder\PurchaseOrderRestoredActivity;
+use App\Listeners\PurchaseOrder\PurchaseOrderViewedActivity;
+use App\Listeners\PurchaseOrder\UpdatePurchaseOrderActivity;
use App\Listeners\Quote\QuoteApprovedActivity;
use App\Listeners\Quote\QuoteApprovedNotification;
use App\Listeners\Quote\QuoteApprovedWebhook;
@@ -436,6 +450,27 @@ class EventServiceProvider extends ServiceProvider
PaymentWasEmailedAndFailed::class => [
PaymentEmailFailureActivity::class,
],
+ PurchaseOrderWasArchived::class => [
+ PurchaseOrderArchivedActivity::class,
+ ],
+ PurchaseOrderWasCreated::class => [
+ CreatePurchaseOrderActivity::class,
+ ],
+ PurchaseOrderWasDeleted::class => [
+ PurchaseOrderDeletedActivity::class,
+ ],
+ PurchaseOrderWasEmailed::class => [
+ PurchaseOrderEmailActivity::class,
+ ],
+ PurchaseOrderWasRestored::class => [
+ PurchaseOrderRestoredActivity::class,
+ ],
+ PurchaseOrderWasUpdated::class => [
+ UpdatePurchaseOrderActivity::class,
+ ],
+ PurchaseOrderWasViewed::class => [
+ PurchaseOrderViewedActivity::class,
+ ],
CompanyDocumentsDeleted::class => [
DeleteCompanyDocuments::class,
],
@@ -558,9 +593,7 @@ class EventServiceProvider extends ServiceProvider
],
VendorWasUpdated::class => [
VendorUpdatedActivity::class,
- ],
- PurchaseOrderWasMarkedSent::class => [
- ],
+ ]
];
diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php
index 0eae2bc67984..a0a90deb0363 100644
--- a/app/Services/Invoice/InvoiceService.php
+++ b/app/Services/Invoice/InvoiceService.php
@@ -565,10 +565,11 @@ class InvoiceService
return $this;
}
- public function adjustInventory()
+ public function adjustInventory($old_invoice = [])
{
+
if($this->invoice->company->track_inventory)
- AdjustProductInventory::dispatch($this->invoice->company, $this->invoice, null);
+ AdjustProductInventory::dispatchNow($this->invoice->company, $this->invoice, $old_invoice);
return $this;
}
diff --git a/app/Services/Invoice/UpdateReminder.php b/app/Services/Invoice/UpdateReminder.php
index f27e7abe512d..50148c23670c 100644
--- a/app/Services/Invoice/UpdateReminder.php
+++ b/app/Services/Invoice/UpdateReminder.php
@@ -50,8 +50,7 @@ class UpdateReminder extends AbstractService
$date_collection = collect();
if (is_null($this->invoice->reminder1_sent) &&
- $this->settings->schedule_reminder1 == 'after_invoice_date' &&
- $this->settings->enable_reminder1) {
+ $this->settings->schedule_reminder1 == 'after_invoice_date') {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -59,8 +58,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder1_sent) &&
- $this->settings->schedule_reminder1 == 'before_due_date' &&
- $this->settings->enable_reminder1) {
+ $this->settings->schedule_reminder1 == 'before_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -68,8 +66,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder1_sent) &&
- $this->settings->schedule_reminder1 == 'after_due_date' &&
- $this->settings->enable_reminder1) {
+ $this->settings->schedule_reminder1 == 'after_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -77,8 +74,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder2_sent) &&
- $this->settings->schedule_reminder2 == 'after_invoice_date' &&
- $this->settings->enable_reminder2) {
+ $this->settings->schedule_reminder2 == 'after_invoice_date') {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -86,8 +82,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder2_sent) &&
- $this->settings->schedule_reminder2 == 'before_due_date' &&
- $this->settings->enable_reminder2) {
+ $this->settings->schedule_reminder2 == 'before_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -95,8 +90,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder2_sent) &&
- $this->settings->schedule_reminder2 == 'after_due_date' &&
- $this->settings->enable_reminder2) {
+ $this->settings->schedule_reminder2 == 'after_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -104,8 +98,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder3_sent) &&
- $this->settings->schedule_reminder3 == 'after_invoice_date' &&
- $this->settings->enable_reminder3) {
+ $this->settings->schedule_reminder3 == 'after_invoice_date') {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -113,8 +106,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder3_sent) &&
- $this->settings->schedule_reminder3 == 'before_due_date' &&
- $this->settings->enable_reminder3) {
+ $this->settings->schedule_reminder3 == 'before_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
@@ -122,8 +114,7 @@ class UpdateReminder extends AbstractService
}
if (is_null($this->invoice->reminder3_sent) &&
- $this->settings->schedule_reminder3 == 'after_due_date' &&
- $this->settings->enable_reminder3) {
+ $this->settings->schedule_reminder3 == 'after_due_date') {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
diff --git a/app/Services/PurchaseOrder/MarkSent.php b/app/Services/PurchaseOrder/MarkSent.php
index c3b1df47b0d7..1450eefc1e41 100644
--- a/app/Services/PurchaseOrder/MarkSent.php
+++ b/app/Services/PurchaseOrder/MarkSent.php
@@ -11,8 +11,6 @@
namespace App\Services\PurchaseOrder;
-
-use App\Events\PurchaseOrder\PurchaseOrderWasMarkedSent;
use App\Models\PurchaseOrder;
use App\Utils\Ninja;
@@ -46,8 +44,6 @@ class MarkSent
// ->touchPdf()
->save();
- event(new PurchaseOrderWasMarkedSent($this->purchase_order, $this->purchase_order->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
-
return $this->purchase_order;
}
}
diff --git a/app/Services/Quote/ConvertQuote.php b/app/Services/Quote/ConvertQuote.php
index 5f9d6fccac6f..eedb94bc7184 100644
--- a/app/Services/Quote/ConvertQuote.php
+++ b/app/Services/Quote/ConvertQuote.php
@@ -70,6 +70,7 @@ class ConvertQuote
$invoice->service()
->fillDefaults()
+ ->adjustInventory()
->save();
$quote->invoice_id = $invoice->id;
diff --git a/app/Transformers/PurchaseOrderTransformer.php b/app/Transformers/PurchaseOrderTransformer.php
index 332879037ab2..7982fff5a6bd 100644
--- a/app/Transformers/PurchaseOrderTransformer.php
+++ b/app/Transformers/PurchaseOrderTransformer.php
@@ -89,7 +89,7 @@ class PurchaseOrderTransformer extends EntityTransformer
'custom_surcharge_tax3' => (bool)$purchase_order->custom_surcharge_tax3,
'custom_surcharge_tax4' => (bool)$purchase_order->custom_surcharge_tax4,
'line_items' => $purchase_order->line_items ?: (array)[],
- 'entity_type' => 'credit',
+ 'entity_type' => 'purchase_order',
'exchange_rate' => (float)$purchase_order->exchange_rate,
'paid_to_date' => (float)$purchase_order->paid_to_date,
'subscription_id' => $this->encodePrimaryKey($purchase_order->subscription_id),
diff --git a/config/ninja.php b/config/ninja.php
index 4605e82a3e2c..fb213685ab5e 100644
--- a/config/ninja.php
+++ b/config/ninja.php
@@ -14,8 +14,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
- 'app_version' => '5.3.96',
- 'app_tag' => '5.3.96',
+ 'app_version' => '5.3.97',
+ 'app_tag' => '5.3.97',
'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', ''),
diff --git a/database/factories/AccountFactory.php b/database/factories/AccountFactory.php
index 3d5315b4f8b3..bad595bf6c4c 100644
--- a/database/factories/AccountFactory.php
+++ b/database/factories/AccountFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ClientContactFactory.php b/database/factories/ClientContactFactory.php
index 9c647cc25c89..a8e75ad8f997 100644
--- a/database/factories/ClientContactFactory.php
+++ b/database/factories/ClientContactFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ClientFactory.php b/database/factories/ClientFactory.php
index 198247e28958..7e579ff5120a 100644
--- a/database/factories/ClientFactory.php
+++ b/database/factories/ClientFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/CompanyFactory.php b/database/factories/CompanyFactory.php
index c2298fd718c5..3072b3b57566 100644
--- a/database/factories/CompanyFactory.php
+++ b/database/factories/CompanyFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/CreditFactory.php b/database/factories/CreditFactory.php
index 95373bed1bd6..3836b27e5f86 100644
--- a/database/factories/CreditFactory.php
+++ b/database/factories/CreditFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/CreditInvitationFactory.php b/database/factories/CreditInvitationFactory.php
index 8998a6ef30e7..da807def8454 100644
--- a/database/factories/CreditInvitationFactory.php
+++ b/database/factories/CreditInvitationFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/DocumentFactory.php b/database/factories/DocumentFactory.php
index 60acb09af250..f80cd4bebd45 100644
--- a/database/factories/DocumentFactory.php
+++ b/database/factories/DocumentFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ExpenseCategoryFactory.php b/database/factories/ExpenseCategoryFactory.php
index ab4f204b6418..beb8488a1b58 100644
--- a/database/factories/ExpenseCategoryFactory.php
+++ b/database/factories/ExpenseCategoryFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ExpenseFactory.php b/database/factories/ExpenseFactory.php
index b9b7fc3a3134..fd340d5bba0f 100644
--- a/database/factories/ExpenseFactory.php
+++ b/database/factories/ExpenseFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/GatewayFactory.php b/database/factories/GatewayFactory.php
index 36cf02f9b011..ff294987ef85 100644
--- a/database/factories/GatewayFactory.php
+++ b/database/factories/GatewayFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/InvoiceFactory.php b/database/factories/InvoiceFactory.php
index 13f5ed689a6f..4ba4c874a056 100644
--- a/database/factories/InvoiceFactory.php
+++ b/database/factories/InvoiceFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/InvoiceInvitationFactory.php b/database/factories/InvoiceInvitationFactory.php
index 07d5562cd652..1ce6f3d3253e 100644
--- a/database/factories/InvoiceInvitationFactory.php
+++ b/database/factories/InvoiceInvitationFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php
index 89ef8f8f182a..eac54419c062 100644
--- a/database/factories/PaymentFactory.php
+++ b/database/factories/PaymentFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ProductFactory.php b/database/factories/ProductFactory.php
index 3ef22ae4bade..59ada342dafa 100644
--- a/database/factories/ProductFactory.php
+++ b/database/factories/ProductFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/ProjectFactory.php b/database/factories/ProjectFactory.php
index 45629674bb4d..4bc918eef471 100644
--- a/database/factories/ProjectFactory.php
+++ b/database/factories/ProjectFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/QuoteFactory.php b/database/factories/QuoteFactory.php
index 056bcc07afe4..62d580c46f3d 100644
--- a/database/factories/QuoteFactory.php
+++ b/database/factories/QuoteFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/QuoteInvitationFactory.php b/database/factories/QuoteInvitationFactory.php
index efdd6b5436fa..17310d17bed3 100644
--- a/database/factories/QuoteInvitationFactory.php
+++ b/database/factories/QuoteInvitationFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/RecurringExpenseFactory.php b/database/factories/RecurringExpenseFactory.php
index b90ed0ebdb31..af85d7090fa9 100644
--- a/database/factories/RecurringExpenseFactory.php
+++ b/database/factories/RecurringExpenseFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/RecurringInvoiceFactory.php b/database/factories/RecurringInvoiceFactory.php
index 20383cc259e9..28e218ab1fea 100644
--- a/database/factories/RecurringInvoiceFactory.php
+++ b/database/factories/RecurringInvoiceFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/RecurringQuoteFactory.php b/database/factories/RecurringQuoteFactory.php
index b40e43d416a0..4b76a128e954 100644
--- a/database/factories/RecurringQuoteFactory.php
+++ b/database/factories/RecurringQuoteFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/SubscriptionFactory.php b/database/factories/SubscriptionFactory.php
index db73008bb34a..9052dccc44a9 100644
--- a/database/factories/SubscriptionFactory.php
+++ b/database/factories/SubscriptionFactory.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/TaskFactory.php b/database/factories/TaskFactory.php
index 167d355f8f7d..7f26e25073c6 100644
--- a/database/factories/TaskFactory.php
+++ b/database/factories/TaskFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/TaskStatusFactory.php b/database/factories/TaskStatusFactory.php
index babef656a9b0..24dc5b8bd32f 100644
--- a/database/factories/TaskStatusFactory.php
+++ b/database/factories/TaskStatusFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/TaxRateFactory.php b/database/factories/TaxRateFactory.php
index a4230bce1246..6aa7a5f57468 100644
--- a/database/factories/TaxRateFactory.php
+++ b/database/factories/TaxRateFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index 2f79366abee3..5f7b5f7e6350 100644
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/VendorContactFactory.php b/database/factories/VendorContactFactory.php
index de8e0841bf8c..ab39860b83bf 100644
--- a/database/factories/VendorContactFactory.php
+++ b/database/factories/VendorContactFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/factories/VendorFactory.php b/database/factories/VendorFactory.php
index 152848e545ba..9be8f88d2b5b 100644
--- a/database/factories/VendorFactory.php
+++ b/database/factories/VendorFactory.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Factories;
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
index e56273ab6d09..bbdfbb7b8580 100644
--- a/database/migrations/2014_10_12_100000_create_password_resets_table.php
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2014_10_13_000000_create_users_table.php b/database/migrations/2014_10_13_000000_create_users_table.php
index 9736fc0f0b21..ec1a40d22054 100644
--- a/database/migrations/2014_10_13_000000_create_users_table.php
+++ b/database/migrations/2014_10_13_000000_create_users_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2019_11_10_115926_create_failed_jobs_table.php b/database/migrations/2019_11_10_115926_create_failed_jobs_table.php
index 191131a1f11d..4f54c1e7707e 100644
--- a/database/migrations/2019_11_10_115926_create_failed_jobs_table.php
+++ b/database/migrations/2019_11_10_115926_create_failed_jobs_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_03_05_123315_create_jobs_table.php b/database/migrations/2020_03_05_123315_create_jobs_table.php
index 7eb23e35f4d8..f8667c0d1580 100644
--- a/database/migrations/2020_03_05_123315_create_jobs_table.php
+++ b/database/migrations/2020_03_05_123315_create_jobs_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_04_08_234530_add_is_deleted_column_to_company_tokens_table.php b/database/migrations/2020_04_08_234530_add_is_deleted_column_to_company_tokens_table.php
index b27e525e4ead..ca996d2e4082 100644
--- a/database/migrations/2020_04_08_234530_add_is_deleted_column_to_company_tokens_table.php
+++ b/database/migrations/2020_04_08_234530_add_is_deleted_column_to_company_tokens_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_05_13_035355_add_google_refresh_token_to_users_table.php b/database/migrations/2020_05_13_035355_add_google_refresh_token_to_users_table.php
index 08e0a76a0745..d1f912e7e67c 100644
--- a/database/migrations/2020_05_13_035355_add_google_refresh_token_to_users_table.php
+++ b/database/migrations/2020_05_13_035355_add_google_refresh_token_to_users_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_07_05_084934_company_too_large_attribute.php b/database/migrations/2020_07_05_084934_company_too_large_attribute.php
index b72d05a33caf..98c49efc798c 100644
--- a/database/migrations/2020_07_05_084934_company_too_large_attribute.php
+++ b/database/migrations/2020_07_05_084934_company_too_large_attribute.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_07_08_065301_add_token_id_to_activity_table.php b/database/migrations/2020_07_08_065301_add_token_id_to_activity_table.php
index 8959333e94e2..14d96c2eaacb 100644
--- a/database/migrations/2020_07_08_065301_add_token_id_to_activity_table.php
+++ b/database/migrations/2020_07_08_065301_add_token_id_to_activity_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_07_21_112424_update_enabled_modules_value.php b/database/migrations/2020_07_21_112424_update_enabled_modules_value.php
index 75a1b608733b..4158a742342f 100644
--- a/database/migrations/2020_07_21_112424_update_enabled_modules_value.php
+++ b/database/migrations/2020_07_21_112424_update_enabled_modules_value.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_07_28_104218_shop_token.php b/database/migrations/2020_07_28_104218_shop_token.php
index fe81db0be2e4..685578c53449 100644
--- a/database/migrations/2020_07_28_104218_shop_token.php
+++ b/database/migrations/2020_07_28_104218_shop_token.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_08_04_080851_add_is_deleted_to_group_settings.php b/database/migrations/2020_08_04_080851_add_is_deleted_to_group_settings.php
index 539c7ba31417..8f2a30b6b0a1 100644
--- a/database/migrations/2020_08_04_080851_add_is_deleted_to_group_settings.php
+++ b/database/migrations/2020_08_04_080851_add_is_deleted_to_group_settings.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table.php b/database/migrations/2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table.php
index df80d4ff5271..d0e267864ff1 100644
--- a/database/migrations/2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table.php
+++ b/database/migrations/2020_08_11_221627_add_is_deleted_flag_to_client_gateway_token_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_08_13_095946_remove_photo_design.php b/database/migrations/2020_08_13_095946_remove_photo_design.php
index 62a6a82ef2d3..1898f1929bc4 100644
--- a/database/migrations/2020_08_13_095946_remove_photo_design.php
+++ b/database/migrations/2020_08_13_095946_remove_photo_design.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_08_13_212702_add_reminder_sent_fields_to_entity_tables.php b/database/migrations/2020_08_13_212702_add_reminder_sent_fields_to_entity_tables.php
index fbee14a90ace..2f6a47375dd1 100644
--- a/database/migrations/2020_08_13_212702_add_reminder_sent_fields_to_entity_tables.php
+++ b/database/migrations/2020_08_13_212702_add_reminder_sent_fields_to_entity_tables.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php b/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php
index 3f0a162b7e56..12c921c27f0f 100644
--- a/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php
+++ b/database/migrations/2020_08_18_140557_add_is_public_to_documents_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_09_22_205113_id_number_fields_for_missing_entities.php b/database/migrations/2020_09_22_205113_id_number_fields_for_missing_entities.php
index b7f7de23ae13..5d48e75e7560 100644
--- a/database/migrations/2020_09_22_205113_id_number_fields_for_missing_entities.php
+++ b/database/migrations/2020_09_22_205113_id_number_fields_for_missing_entities.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_09_27_215800_update_gateway_table_visible_column.php b/database/migrations/2020_09_27_215800_update_gateway_table_visible_column.php
index eae432afe14d..433d85c22f58 100644
--- a/database/migrations/2020_09_27_215800_update_gateway_table_visible_column.php
+++ b/database/migrations/2020_09_27_215800_update_gateway_table_visible_column.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_10_11_211122_vendor_schema_update.php b/database/migrations/2020_10_11_211122_vendor_schema_update.php
index dfe08788dea1..9eeb53026110 100644
--- a/database/migrations/2020_10_11_211122_vendor_schema_update.php
+++ b/database/migrations/2020_10_11_211122_vendor_schema_update.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_10_12_204517_project_number_column.php b/database/migrations/2020_10_12_204517_project_number_column.php
index 8ec1672df99e..8eb2f2ce9e91 100644
--- a/database/migrations/2020_10_12_204517_project_number_column.php
+++ b/database/migrations/2020_10_12_204517_project_number_column.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_10_14_201320_project_ids_to_entities.php b/database/migrations/2020_10_14_201320_project_ids_to_entities.php
index 85e7f76a3a20..10f562691c5f 100644
--- a/database/migrations/2020_10_14_201320_project_ids_to_entities.php
+++ b/database/migrations/2020_10_14_201320_project_ids_to_entities.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_10_19_101823_project_name_unique_removal.php b/database/migrations/2020_10_19_101823_project_name_unique_removal.php
index 0e720ed458dc..f7b79c965ce4 100644
--- a/database/migrations/2020_10_19_101823_project_name_unique_removal.php
+++ b/database/migrations/2020_10_19_101823_project_name_unique_removal.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2020_10_21_222738_expenses_nullable_assigned_user.php b/database/migrations/2020_10_21_222738_expenses_nullable_assigned_user.php
index f1ee06b48cd4..1118424f0c8d 100644
--- a/database/migrations/2020_10_21_222738_expenses_nullable_assigned_user.php
+++ b/database/migrations/2020_10_21_222738_expenses_nullable_assigned_user.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/database/migrations/2021_09_28_154647_activate_gocardless_payment_driver.php b/database/migrations/2021_09_28_154647_activate_gocardless_payment_driver.php
index ace55614bdb8..25f7c1bb14c6 100644
--- a/database/migrations/2021_09_28_154647_activate_gocardless_payment_driver.php
+++ b/database/migrations/2021_09_28_154647_activate_gocardless_payment_driver.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
use App\Models\Gateway;
diff --git a/database/migrations/2022_05_18_162443_create_schedulers_table.php b/database/migrations/2022_05_18_162443_create_schedulers_table.php
index 72e3fe743a0c..61c8311b667b 100644
--- a/database/migrations/2022_05_18_162443_create_schedulers_table.php
+++ b/database/migrations/2022_05_18_162443_create_schedulers_table.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
use Illuminate\Database\Migrations\Migration;
diff --git a/database/migrations/2022_05_30_181109_drop_scheduled_jobs_table.php b/database/migrations/2022_05_30_181109_drop_scheduled_jobs_table.php
index 303620aee7a1..6e29ed1759a0 100644
--- a/database/migrations/2022_05_30_181109_drop_scheduled_jobs_table.php
+++ b/database/migrations/2022_05_30_181109_drop_scheduled_jobs_table.php
@@ -1,5 +1,13 @@
datetime('next_send_date_client')->nullable();
});
@@ -24,7 +36,7 @@ class SetRecurringClientTimestamp extends Migration
});
- RecurringInvoice::whereNotNull('next_send_date')->cursor()->each(function ($recurring_invoice){
+ RecurringInvoice::withTrashed()->whereNotNull('next_send_date')->cursor()->each(function ($recurring_invoice){
// $offset = $recurring_invoice->client->timezone_offset();
// $re = Carbon::parse($recurring_invoice->next_send_date)->subSeconds($offset)->format('Y-m-d');
@@ -34,7 +46,7 @@ class SetRecurringClientTimestamp extends Migration
});
- RecurringExpense::whereNotNull('next_send_date')->cursor()->each(function ($recurring_expense){
+ RecurringExpense::withTrashed()->whereNotNull('next_send_date')->cursor()->each(function ($recurring_expense){
$recurring_expense->next_send_date_client = $recurring_expense->next_send_date;
$recurring_expense->saveQuietly();
});
diff --git a/database/migrations/2022_06_01_224339_create_purchase_order_invitations_table.php b/database/migrations/2022_06_01_224339_create_purchase_order_invitations_table.php
index fc01d62b5a28..e914fefa7fb4 100644
--- a/database/migrations/2022_06_01_224339_create_purchase_order_invitations_table.php
+++ b/database/migrations/2022_06_01_224339_create_purchase_order_invitations_table.php
@@ -1,5 +1,13 @@
id();
$table->unsignedInteger('company_id');
@@ -47,6 +57,10 @@ class CreatePurchaseOrderInvitationsTable extends Migration
$table->unsignedInteger('client_id')->nullable()->change();
});
+ Schema::table('activities', function (Blueprint $table) {
+ $table->unsignedInteger('purchase_order_id')->nullable();
+ $table->unsignedInteger('vendor_contact_id')->nullable();
+ });
Company::cursor()->each(function ($company){
@@ -60,6 +74,8 @@ class CreatePurchaseOrderInvitationsTable extends Migration
$settings->purchase_order_number_counter = 1; //@implemented
$settings->email_subject_purchase_order = '';
$settings->email_template_purchase_order = '';
+ $settings->require_purchase_order_signature = false;
+
$company->settings = $settings;
$company->save();
});
@@ -74,4 +90,5 @@ class CreatePurchaseOrderInvitationsTable extends Migration
public function down()
{
}
-}
+
+}
\ No newline at end of file
diff --git a/database/seeders/BanksSeeder.php b/database/seeders/BanksSeeder.php
index ada1ff357a42..039a7ad9b008 100644
--- a/database/seeders/BanksSeeder.php
+++ b/database/seeders/BanksSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/ConstantsSeeder.php b/database/seeders/ConstantsSeeder.php
index cb07fbe71abb..fd5edd4b740a 100644
--- a/database/seeders/ConstantsSeeder.php
+++ b/database/seeders/ConstantsSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/CountriesSeeder.php b/database/seeders/CountriesSeeder.php
index fbb80dac1dc5..47fb3202fd72 100644
--- a/database/seeders/CountriesSeeder.php
+++ b/database/seeders/CountriesSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/CurrenciesSeeder.php b/database/seeders/CurrenciesSeeder.php
index 76815dfb9524..45495f210d50 100644
--- a/database/seeders/CurrenciesSeeder.php
+++ b/database/seeders/CurrenciesSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index a6c343124487..6065ff29f4e1 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/DateFormatsSeeder.php b/database/seeders/DateFormatsSeeder.php
index 775743cd2112..6acd1b365e37 100644
--- a/database/seeders/DateFormatsSeeder.php
+++ b/database/seeders/DateFormatsSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/DesignSeeder.php b/database/seeders/DesignSeeder.php
index 7c19d45644b6..67909bae7037 100644
--- a/database/seeders/DesignSeeder.php
+++ b/database/seeders/DesignSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/GatewayTypesSeeder.php b/database/seeders/GatewayTypesSeeder.php
index 96b3eac23b7f..f65cef95d16b 100644
--- a/database/seeders/GatewayTypesSeeder.php
+++ b/database/seeders/GatewayTypesSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/IndustrySeeder.php b/database/seeders/IndustrySeeder.php
index 40426b6bb7c7..ed448f34c916 100644
--- a/database/seeders/IndustrySeeder.php
+++ b/database/seeders/IndustrySeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/LanguageSeeder.php b/database/seeders/LanguageSeeder.php
index 5eba75d77fb0..6e2541ffbf79 100644
--- a/database/seeders/LanguageSeeder.php
+++ b/database/seeders/LanguageSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/PaymentLibrariesSeeder.php b/database/seeders/PaymentLibrariesSeeder.php
index e602fab0f08f..219665df6991 100644
--- a/database/seeders/PaymentLibrariesSeeder.php
+++ b/database/seeders/PaymentLibrariesSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/PaymentTermsSeeder.php b/database/seeders/PaymentTermsSeeder.php
index d55bca39b576..e0fdf0060e01 100644
--- a/database/seeders/PaymentTermsSeeder.php
+++ b/database/seeders/PaymentTermsSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/PaymentTypesSeeder.php b/database/seeders/PaymentTypesSeeder.php
index 8967bb2c7653..8c8df0c6a93a 100644
--- a/database/seeders/PaymentTypesSeeder.php
+++ b/database/seeders/PaymentTypesSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/RandomDataSeeder.php b/database/seeders/RandomDataSeeder.php
index 167f1b0ee4e4..849189e5b010 100644
--- a/database/seeders/RandomDataSeeder.php
+++ b/database/seeders/RandomDataSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/database/seeders/UsersTableSeeder.php b/database/seeders/UsersTableSeeder.php
index 86a64090c956..dc8d9e43b04f 100644
--- a/database/seeders/UsersTableSeeder.php
+++ b/database/seeders/UsersTableSeeder.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Database\Seeders;
diff --git a/public/css/app.css b/public/css/app.css
index e0409259cabd..2a862a3a0e54 100755
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -1,3 +1,3 @@
/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com*/
-/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}hr{color:inherit;height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=submit],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Open Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border:0 solid;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9fa6b2;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9fa6b2;opacity:1}input::placeholder,textarea::placeholder{color:#9fa6b2;opacity:1}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m7 7 3-3 3 3m0 6-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-select::-ms-expand{border:none;color:#9fa6b2}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;border-color:#d2d6dc;border-radius:.375rem;color-adjust:exact;font-size:1rem;font-size:[object Object];line-height:1.5;padding:.5rem 2.5rem .5rem .75rem}.form-select:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-checkbox:checked{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media not print{.form-checkbox::-ms-check{background:inherit;border-color:inherit;border-radius:inherit;color:transparent}}.form-checkbox{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#d2d6dc;color:#3f83f8;color-adjust:exact;display:inline-block;flex-shrink:0;height:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;width:1rem}.form-checkbox:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}@media not print{.form-radio::-ms-check{background:inherit;border-color:inherit;border-radius:inherit;color:transparent}}.form-radio{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#d2d6dc;border-radius:100%;color:#3f83f8;color-adjust:exact;display:inline-block;flex-shrink:0;height:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;width:1rem}.form-radio:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-radio:checked:focus{border-color:transparent}.button{border-radius:.25rem;font-size:.875rem;line-height:1.25rem;line-height:1rem;padding:.75rem 1rem;transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}button:disabled{cursor:not-allowed;opacity:.5}.button-primary{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.button-primary:hover{font-weight:600}.button-block{display:block;width:100%}.button-danger{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(240,82,82,var(--tw-bg-opacity));color:rgba(255,255,255,var(--tw-text-opacity))}.button-danger:hover{--tw-bg-opacity:1;background-color:rgba(224,36,36,var(--tw-bg-opacity))}.button-secondary{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.button-secondary:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.button-link{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.button-link:hover{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity));text-decoration:underline}.button-link:focus{outline:2px solid transparent;outline-offset:2px;text-decoration:underline}.validation{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity));border-left-width:2px;margin-bottom:.25rem;margin-top:.5rem;padding:.25rem .75rem}.validation-fail{border-color:rgba(240,82,82,var(--tw-border-opacity))}.validation-fail,.validation-pass{--tw-border-opacity:1;--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem}.validation-pass{border-color:rgba(14,159,110,var(--tw-border-opacity))}.input{--tw-border-opacity:1;align-items:center;border-color:rgba(210,214,220,var(--tw-border-opacity));border-radius:.25rem;border-width:1px;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;padding:.5rem 1rem}.input:focus{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px}.input-label{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem}.input-slim{padding-bottom:.5rem;padding-top:.5rem}.form-checkbox{border-radius:.25rem;cursor:pointer}.form-checkbox,.form-select{--tw-border-opacity:1;border-color:rgba(210,214,220,var(--tw-border-opacity));border-width:1px}.alert{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity));border-color:rgba(159,166,178,var(--tw-border-opacity));border-left-width:2px;font-size:.875rem;line-height:1.25rem;margin-bottom:.25rem;margin-top:1rem;padding:.75rem 1rem}.alert-success{--tw-border-opacity:1;border-color:rgba(14,159,110,var(--tw-border-opacity))}.alert-failure{--tw-border-opacity:1;border-color:rgba(240,82,82,var(--tw-border-opacity))}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:500;line-height:1rem;padding:.125rem .625rem}.badge-light{background-color:rgba(244,245,247,var(--tw-bg-opacity));color:rgba(37,47,63,var(--tw-text-opacity))}.badge-light,.badge-primary{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-primary{background-color:rgba(195,221,253,var(--tw-bg-opacity));color:rgba(63,131,248,var(--tw-text-opacity))}.badge-danger{background-color:rgba(253,232,232,var(--tw-bg-opacity));color:rgba(240,82,82,var(--tw-text-opacity))}.badge-danger,.badge-success{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-success{background-color:rgba(222,247,236,var(--tw-bg-opacity));color:rgba(14,159,110,var(--tw-text-opacity))}.badge-secondary{background-color:rgba(37,47,63,var(--tw-bg-opacity));color:rgba(229,231,235,var(--tw-text-opacity))}.badge-secondary,.badge-warning{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-warning{background-color:rgba(254,236,220,var(--tw-bg-opacity));color:rgba(255,90,31,var(--tw-text-opacity))}.badge-info{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(225,239,254,var(--tw-bg-opacity));color:rgba(63,131,248,var(--tw-text-opacity))}@media (min-width:640px){.dataTables_length{margin-bottom:1.25rem!important;margin-top:1.25rem!important}}@media (min-width:1024px){.dataTables_length{margin-bottom:1rem!important;margin-top:1rem!important}}.dataTables_length select{--tw-border-opacity:1;align-items:center;border-color:rgba(210,214,220,var(--tw-border-opacity));border-radius:.25rem;border-width:1px;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;padding:.5rem 1rem}.dataTables_length select:focus{--tw-bg-opacity:1!important;background-color:rgba(249,250,251,var(--tw-bg-opacity))!important;outline:2px solid transparent!important;outline-offset:2px!important}.dataTables_length select{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;margin-left:.5rem!important;margin-right:.5rem!important;padding:.5rem!important}.dataTables_filter{margin-bottom:1rem}.dataTables_filter input{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;background-color:#fff!important;border-color:#d2d6dc!important;border-radius:.375rem!important;font-size:1rem!important;font-size:[object Object]!important;line-height:1.5!important;padding:.5rem .75rem!important}.dataTables_filter input::-moz-placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input:-ms-input-placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input::placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input:focus{border-color:#a4cafe!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;outline:none!important}.dataTables_filter input{--tw-border-opacity:1!important;align-items:center!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;border-radius:.25rem!important;border-width:1px!important;font-size:.875rem!important;line-height:1.25rem!important;margin-top:.5rem!important;padding:.5rem 1rem!important}.dataTables_filter input:focus{--tw-bg-opacity:1!important;background-color:rgba(249,250,251,var(--tw-bg-opacity))!important;outline:2px solid transparent!important;outline-offset:2px!important}@media (min-width:1024px){.dataTables_filter{margin-top:-3rem!important}}.dataTables_paginate{padding-bottom:1.5rem!important;padding-top:.5rem!important}.dataTables_paginate .paginate_button{--tw-border-opacity:1!important;--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;border-radius:.25rem;border-radius:.25rem!important;border-width:1px!important;color:rgba(55,65,81,var(--tw-text-opacity))!important;cursor:pointer!important;font-size:.875rem;font-size:.875rem!important;font-weight:500!important;line-height:1.25rem;line-height:1rem;line-height:1.25rem!important;line-height:1rem!important;margin-right:.25rem!important;padding:.75rem 1rem;padding-bottom:.5rem!important;padding-top:.5rem!important;transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dataTables_paginate .current{--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(28,100,242,var(--tw-bg-opacity))!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.dataTables_info{font-size:.875rem!important;line-height:1.25rem!important}.dataTables_empty{padding-bottom:1rem!important;padding-top:1rem!important}.pagination{align-items:center!important;display:flex!important}.pagination .page-link{--tw-text-opacity:1!important;align-items:center!important;border-color:transparent!important;border-top-width:2px!important;color:rgba(107,114,128,var(--tw-text-opacity))!important;cursor:pointer!important;display:inline-flex!important;font-size:.875rem!important;font-weight:500!important;line-height:1.25rem!important;margin-top:-1px!important;padding-left:1rem!important;padding-right:1rem!important;padding-top:1rem!important;transition-duration:.15s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.pagination .page-link:hover{--tw-border-opacity:1!important;--tw-text-opacity:1!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.pagination .page-link:focus{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(159,166,178,var(--tw-border-opacity));color:rgba(55,65,81,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}.pagination .active>span{--tw-border-opacity:1!important;--tw-text-opacity:1!important;border-color:rgba(28,100,242,var(--tw-border-opacity))!important;color:rgba(28,100,242,var(--tw-text-opacity))!important}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{bottom:0;top:0}.inset-0,.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.top-1{top:.25rem}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.left-1{left:.25rem}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-12{grid-column:span 12/span 12}.float-right{float:right}.m-0{margin:0}.m-auto{margin:auto}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-20{margin-left:5rem;margin-right:5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.-mr-1{margin-right:-.25rem}.-mr-14{margin-right:-3.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.-ml-4{margin-left:-1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0{height:0}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-32{height:8rem}.h-64{height:16rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.w-auto{width:auto}.w-1\/2{width:50%}.w-4\/5{width:80%}.w-5\/6{width:83.333333%}.w-full{width:100%}.w-screen{width:100vw}.min-w-full{min-width:100%}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.origin-top-right{transform-origin:top right}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0}.-translate-x-full{--tw-translate-x:-100%}.translate-y-0{--tw-translate-y:0}.translate-y-4{--tw-translate-y:1rem}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100{--tw-scale-x:1;--tw-scale-y:1}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-4{border-width:4px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(244,245,247,var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(210,214,220,var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.border-red-300{--tw-border-opacity:1;border-color:rgba(248,180,180,var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgba(249,128,128,var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgba(14,159,110,var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgba(63,131,248,var(--tw-border-opacity))}.group:hover .group-hover\:border-transparent,.hover\:border-transparent:hover{border-color:transparent}.hover\:border-gray-600:hover{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.hover\:border-gray-800:hover{--tw-border-opacity:1;border-color:rgba(37,47,63,var(--tw-border-opacity))}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgba(28,100,242,var(--tw-border-opacity))}.focus\:border-blue-300:focus{--tw-border-opacity:1;border-color:rgba(164,202,254,var(--tw-border-opacity))}.focus\:border-blue-600:focus{--tw-border-opacity:1;border-color:rgba(28,100,242,var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(104,117,245,var(--tw-border-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107,114,128,var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75,85,99,var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgba(253,232,232,var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(235,245,255,var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgba(63,131,248,var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgba(28,100,242,var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgba(26,86,219,var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgba(88,80,236,var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.hover\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgba(63,131,248,var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(81,69,205,var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.focus\:bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.focus\:bg-gray-600:focus{--tw-bg-opacity:1;background-color:rgba(75,85,99,var(--tw-bg-opacity))}.active\:bg-gray-50:active{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-clip-padding{background-clip:padding-box}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-10{padding-right:2.5rem}.pb-4{padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.pb-20{padding-bottom:5rem}.pl-0{padding-left:0}.pl-3{padding-left:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-9{line-height:2.25rem}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(210,214,220,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(159,166,178,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(249,128,128,var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(240,82,82,var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(224,36,36,var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(5,122,85,var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(63,131,248,var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgba(28,100,242,var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity:1;color:rgba(26,86,219,var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity:1;color:rgba(88,80,236,var(--tw-text-opacity))}.group:hover .group-hover\:text-white,.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(210,214,220,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgba(28,100,242,var(--tw-text-opacity))}.hover\:text-indigo-900:hover{--tw-text-opacity:1;color:rgba(54,47,120,var(--tw-text-opacity))}.focus\:text-gray-500:focus{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.focus\:text-gray-600:focus{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.focus\:text-gray-700:focus{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.focus\:text-gray-900:focus{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.active\:text-gray-800:active{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.focus\:underline:focus,.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-100{opacity:1}*,:after,:before{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)}.shadow-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)}.hover\:shadow-2xl:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,0.25)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(63,131,248,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring:focus,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(0,0,0,var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(104,117,245,var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:640px){.sm\:inset-0{bottom:0;left:0;right:0;top:0}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:my-8{margin-bottom:2rem;margin-top:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:mt-6{margin-top:1.5rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:ml-6{margin-left:1.5rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-screen{height:100vh}.sm\:w-10{width:2.5rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-lg{max-width:32rem}.sm\:flex-shrink-0{flex-shrink:0}.sm\:translate-y-0{--tw-translate-y:0}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:768px){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-start-2{grid-column-start:2}.md\:col-start-4{grid-column-start:4}.md\:mx-0{margin-left:0;margin-right:0}.md\:mt-0{margin-top:0}.md\:mt-5{margin-top:1.25rem}.md\:mt-10{margin-top:2.5rem}.md\:mr-2{margin-right:.5rem}.md\:-mr-1{margin-right:-.25rem}.md\:ml-2{margin-left:.5rem}.md\:ml-6{margin-left:1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:max-w-3xl{max-width:48rem}.md\:flex-shrink-0{flex-shrink:0}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-6{gap:1.5rem}.md\:p-24{padding:6rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:mt-0{margin-top:0}.lg\:mt-24{margin-top:6rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:h-screen{height:100vh}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:flex-shrink-0{flex-shrink:0}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:gap-4{gap:1rem}.lg\:rounded-lg{border-radius:.5rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}}@media (min-width:1280px){.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-start-4{grid-column-start:4}.xl\:mt-32{margin-top:8rem}.xl\:flex{display:flex}.xl\:justify-center{justify-content:center}.xl\:px-16{padding-left:4rem;padding-right:4rem}}
+/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-webkit-text-size-adjust:100%;line-height:1.15;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;margin:0}hr{color:inherit;height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:Open Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{border:0 solid;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9fa6b2;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9fa6b2;opacity:1}input::placeholder,textarea::placeholder{color:#9fa6b2;opacity:1}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m7 7 3-3 3 3m0 6-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form-select::-ms-expand{border:none;color:#9fa6b2}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;border-color:#d2d6dc;border-radius:.375rem;color-adjust:exact;font-size:1rem;font-size:[object Object];line-height:1.5;padding:.5rem 2.5rem .5rem .75rem}.form-select:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-checkbox:checked{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 0 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 0 0-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media not print{.form-checkbox::-ms-check{background:inherit;border-color:inherit;border-radius:inherit;color:transparent}}.form-checkbox{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#d2d6dc;color:#3f83f8;color-adjust:exact;display:inline-block;flex-shrink:0;height:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;width:1rem}.form-checkbox:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}@media not print{.form-radio::-ms-check{background:inherit;border-color:inherit;border-radius:inherit;color:transparent}}.form-radio{-webkit-print-color-adjust:exact;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#d2d6dc;border-radius:100%;color:#3f83f8;color-adjust:exact;display:inline-block;flex-shrink:0;height:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;width:1rem}.form-radio:focus{border-color:#a4cafe;box-shadow:0 0 0 3px rgba(164,202,254,.45);outline:none}.form-radio:checked:focus{border-color:transparent}.button{border-radius:.25rem;font-size:.875rem;line-height:1.25rem;line-height:1rem;padding:.75rem 1rem;transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}button:disabled{cursor:not-allowed;opacity:.5}.button-primary{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.button-primary:hover{font-weight:600}.button-block{display:block;width:100%}.button-danger{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(240,82,82,var(--tw-bg-opacity));color:rgba(255,255,255,var(--tw-text-opacity))}.button-danger:hover{--tw-bg-opacity:1;background-color:rgba(224,36,36,var(--tw-bg-opacity))}.button-secondary{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.button-secondary:hover{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.button-link{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.button-link:hover{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity));text-decoration:underline}.button-link:focus{outline:2px solid transparent;outline-offset:2px;text-decoration:underline}.validation{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity));border-left-width:2px;margin-bottom:.25rem;margin-top:.5rem;padding:.25rem .75rem}.validation-fail{border-color:rgba(240,82,82,var(--tw-border-opacity))}.validation-fail,.validation-pass{--tw-border-opacity:1;--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem}.validation-pass{border-color:rgba(14,159,110,var(--tw-border-opacity))}.input{--tw-border-opacity:1;align-items:center;border-color:rgba(210,214,220,var(--tw-border-opacity));border-radius:.25rem;border-width:1px;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;padding:.5rem 1rem}.input:focus{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity));outline:2px solid transparent;outline-offset:2px}.input-label{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem}.input-slim{padding-bottom:.5rem;padding-top:.5rem}.form-checkbox{border-radius:.25rem;cursor:pointer}.form-checkbox,.form-select{--tw-border-opacity:1;border-color:rgba(210,214,220,var(--tw-border-opacity));border-width:1px}.alert{--tw-border-opacity:1;--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity));border-color:rgba(159,166,178,var(--tw-border-opacity));border-left-width:2px;font-size:.875rem;line-height:1.25rem;margin-bottom:.25rem;margin-top:1rem;padding:.75rem 1rem}.alert-success{--tw-border-opacity:1;border-color:rgba(14,159,110,var(--tw-border-opacity))}.alert-failure{--tw-border-opacity:1;border-color:rgba(240,82,82,var(--tw-border-opacity))}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:500;line-height:1rem;padding:.125rem .625rem}.badge-light{background-color:rgba(244,245,247,var(--tw-bg-opacity));color:rgba(37,47,63,var(--tw-text-opacity))}.badge-light,.badge-primary{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-primary{background-color:rgba(195,221,253,var(--tw-bg-opacity));color:rgba(63,131,248,var(--tw-text-opacity))}.badge-danger{background-color:rgba(253,232,232,var(--tw-bg-opacity));color:rgba(240,82,82,var(--tw-text-opacity))}.badge-danger,.badge-success{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-success{background-color:rgba(222,247,236,var(--tw-bg-opacity));color:rgba(14,159,110,var(--tw-text-opacity))}.badge-secondary{background-color:rgba(37,47,63,var(--tw-bg-opacity));color:rgba(229,231,235,var(--tw-text-opacity))}.badge-secondary,.badge-warning{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-warning{background-color:rgba(254,236,220,var(--tw-bg-opacity));color:rgba(255,90,31,var(--tw-text-opacity))}.badge-info{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgba(225,239,254,var(--tw-bg-opacity));color:rgba(63,131,248,var(--tw-text-opacity))}@media (min-width:640px){.dataTables_length{margin-bottom:1.25rem!important;margin-top:1.25rem!important}}@media (min-width:1024px){.dataTables_length{margin-bottom:1rem!important;margin-top:1rem!important}}.dataTables_length select{--tw-border-opacity:1;align-items:center;border-color:rgba(210,214,220,var(--tw-border-opacity));border-radius:.25rem;border-width:1px;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;padding:.5rem 1rem}.dataTables_length select:focus{--tw-bg-opacity:1!important;background-color:rgba(249,250,251,var(--tw-bg-opacity))!important;outline:2px solid transparent!important;outline-offset:2px!important}.dataTables_length select{--tw-bg-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;margin-left:.5rem!important;margin-right:.5rem!important;padding:.5rem!important}.dataTables_filter{margin-bottom:1rem}.dataTables_filter input{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;background-color:#fff!important;border-color:#d2d6dc!important;border-radius:.375rem!important;font-size:1rem!important;font-size:[object Object]!important;line-height:1.5!important;padding:.5rem .75rem!important}.dataTables_filter input::-moz-placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input:-ms-input-placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input::placeholder{color:#9fa6b2!important;opacity:1!important}.dataTables_filter input:focus{border-color:#a4cafe!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;outline:none!important}.dataTables_filter input{--tw-border-opacity:1!important;align-items:center!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;border-radius:.25rem!important;border-width:1px!important;font-size:.875rem!important;line-height:1.25rem!important;margin-top:.5rem!important;padding:.5rem 1rem!important}.dataTables_filter input:focus{--tw-bg-opacity:1!important;background-color:rgba(249,250,251,var(--tw-bg-opacity))!important;outline:2px solid transparent!important;outline-offset:2px!important}@media (min-width:1024px){.dataTables_filter{margin-top:-3rem!important}}.dataTables_paginate{padding-bottom:1.5rem!important;padding-top:.5rem!important}.dataTables_paginate .paginate_button{--tw-border-opacity:1!important;--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(255,255,255,var(--tw-bg-opacity))!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;border-radius:.25rem;border-radius:.25rem!important;border-width:1px!important;color:rgba(55,65,81,var(--tw-text-opacity))!important;cursor:pointer!important;font-size:.875rem;font-size:.875rem!important;font-weight:500!important;line-height:1.25rem;line-height:1rem;line-height:1.25rem!important;line-height:1rem!important;margin-right:.25rem!important;padding:.75rem 1rem;padding-bottom:.5rem!important;padding-top:.5rem!important;transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dataTables_paginate .current{--tw-bg-opacity:1!important;--tw-text-opacity:1!important;background-color:rgba(28,100,242,var(--tw-bg-opacity))!important;color:rgba(255,255,255,var(--tw-text-opacity))!important}.dataTables_info{font-size:.875rem!important;line-height:1.25rem!important}.dataTables_empty{padding-bottom:1rem!important;padding-top:1rem!important}.pagination{align-items:center!important;display:flex!important}.pagination .page-link{--tw-text-opacity:1!important;align-items:center!important;border-color:transparent!important;border-top-width:2px!important;color:rgba(107,114,128,var(--tw-text-opacity))!important;cursor:pointer!important;display:inline-flex!important;font-size:.875rem!important;font-weight:500!important;line-height:1.25rem!important;margin-top:-1px!important;padding-left:1rem!important;padding-right:1rem!important;padding-top:1rem!important;transition-duration:.15s!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.pagination .page-link:hover{--tw-border-opacity:1!important;--tw-text-opacity:1!important;border-color:rgba(210,214,220,var(--tw-border-opacity))!important;color:rgba(55,65,81,var(--tw-text-opacity))!important}.pagination .page-link:focus{--tw-border-opacity:1;--tw-text-opacity:1;border-color:rgba(159,166,178,var(--tw-border-opacity));color:rgba(55,65,81,var(--tw-text-opacity));outline:2px solid transparent;outline-offset:2px}.pagination .active>span{--tw-border-opacity:1!important;--tw-text-opacity:1!important;border-color:rgba(28,100,242,var(--tw-border-opacity))!important;color:rgba(28,100,242,var(--tw-text-opacity))!important}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{bottom:0;top:0}.inset-0,.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.top-0{top:0}.top-1{top:.25rem}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.left-1{left:.25rem}.z-0{z-index:0}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-6{grid-column:span 6/span 6}.col-span-8{grid-column:span 8/span 8}.col-span-12{grid-column:span 12/span 12}.float-right{float:right}.m-0{margin:0}.m-auto{margin:auto}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-6{margin-left:1.5rem;margin-right:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-4{margin-bottom:1rem;margin-top:1rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.-mr-1{margin-right:-.25rem}.-mr-14{margin-right:-3.5rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.-ml-1{margin-left:-.25rem}.-ml-4{margin-left:-1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-0{height:0}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-32{height:8rem}.h-64{height:16rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-48{width:12rem}.w-56{width:14rem}.w-64{width:16rem}.w-auto{width:auto}.w-1\/2{width:50%}.w-4\/5{width:80%}.w-5\/6{width:83.333333%}.w-full{width:100%}.w-screen{width:100vw}.min-w-full{min-width:100%}.max-w-xs{max-width:20rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.origin-top-right{transform-origin:top right}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0}.-translate-x-full{--tw-translate-x:-100%}.translate-y-0{--tw-translate-y:0}.translate-y-4{--tw-translate-y:1rem}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-100{--tw-scale-x:1;--tw-scale-y:1}@-webkit-keyframes spin{to{transform:rotate(1turn)}}@keyframes spin{to{transform:rotate(1turn)}}@-webkit-keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes bounce{0%,to{-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded-sm{border-radius:.125rem}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.border-0{border-width:0}.border-4{border-width:4px}.border{border-width:1px}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(244,245,247,var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(210,214,220,var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.border-red-300{--tw-border-opacity:1;border-color:rgba(248,180,180,var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgba(249,128,128,var(--tw-border-opacity))}.border-green-500{--tw-border-opacity:1;border-color:rgba(14,159,110,var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity:1;border-color:rgba(63,131,248,var(--tw-border-opacity))}.group:hover .group-hover\:border-transparent,.hover\:border-transparent:hover{border-color:transparent}.hover\:border-gray-600:hover{--tw-border-opacity:1;border-color:rgba(75,85,99,var(--tw-border-opacity))}.hover\:border-gray-800:hover{--tw-border-opacity:1;border-color:rgba(37,47,63,var(--tw-border-opacity))}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgba(28,100,242,var(--tw-border-opacity))}.focus\:border-blue-300:focus{--tw-border-opacity:1;border-color:rgba(164,202,254,var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(104,117,245,var(--tw-border-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229,231,235,var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107,114,128,var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75,85,99,var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgba(253,232,232,var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(235,245,255,var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgba(63,131,248,var(--tw-bg-opacity))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgba(28,100,242,var(--tw-bg-opacity))}.bg-blue-700{--tw-bg-opacity:1;background-color:rgba(26,86,219,var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgba(88,80,236,var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.hover\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgba(63,131,248,var(--tw-bg-opacity))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgba(28,100,242,var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(81,69,205,var(--tw-bg-opacity))}.focus\:bg-gray-100:focus{--tw-bg-opacity:1;background-color:rgba(244,245,247,var(--tw-bg-opacity))}.focus\:bg-gray-600:focus{--tw-bg-opacity:1;background-color:rgba(75,85,99,var(--tw-bg-opacity))}.active\:bg-gray-50:active{--tw-bg-opacity:1;background-color:rgba(249,250,251,var(--tw-bg-opacity))}.bg-clip-padding{background-clip:padding-box}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-8{padding:2rem}.p-10{padding:2.5rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-0{padding-bottom:0;padding-top:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-10{padding-right:2.5rem}.pb-4{padding-bottom:1rem}.pb-10{padding-bottom:2.5rem}.pb-20{padding-bottom:5rem}.pl-0{padding-left:0}.pl-3{padding-left:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-9{line-height:2.25rem}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgba(210,214,220,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(159,166,178,var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(249,128,128,var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(240,82,82,var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgba(224,36,36,var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgba(5,122,85,var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(63,131,248,var(--tw-text-opacity))}.text-blue-600{--tw-text-opacity:1;color:rgba(28,100,242,var(--tw-text-opacity))}.text-blue-700{--tw-text-opacity:1;color:rgba(26,86,219,var(--tw-text-opacity))}.text-indigo-600{--tw-text-opacity:1;color:rgba(88,80,236,var(--tw-text-opacity))}.group:hover .group-hover\:text-white,.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgba(210,214,220,var(--tw-text-opacity))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgba(55,65,81,var(--tw-text-opacity))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgba(28,100,242,var(--tw-text-opacity))}.hover\:text-indigo-900:hover{--tw-text-opacity:1;color:rgba(54,47,120,var(--tw-text-opacity))}.focus\:text-gray-500:focus{--tw-text-opacity:1;color:rgba(107,114,128,var(--tw-text-opacity))}.focus\:text-gray-600:focus{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.focus\:text-gray-900:focus{--tw-text-opacity:1;color:rgba(22,30,46,var(--tw-text-opacity))}.active\:text-gray-800:active{--tw-text-opacity:1;color:rgba(37,47,63,var(--tw-text-opacity))}.underline{text-decoration:underline}.line-through{text-decoration:line-through}.focus\:underline:focus,.hover\:underline:hover{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.opacity-100{opacity:1}.hover\:opacity-80:hover{opacity:.8}*,:after,:before{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,0.05)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)}.shadow-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05)}.hover\:shadow-2xl:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,0.25)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,:after,:before{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(63,131,248,0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring:focus,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgba(0,0,0,var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(104,117,245,var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.filter{--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition{transition-duration:.15s;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-linear{transition-timing-function:linear}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (min-width:640px){.sm\:inset-0{bottom:0;left:0;right:0;top:0}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}.sm\:col-span-4{grid-column:span 4/span 4}.sm\:col-span-6{grid-column:span 6/span 6}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:my-8{margin-bottom:2rem;margin-top:2rem}.sm\:mt-0{margin-top:0}.sm\:mt-4{margin-top:1rem}.sm\:mt-6{margin-top:1.5rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:ml-6{margin-left:1.5rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-screen{height:100vh}.sm\:w-10{width:2.5rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-lg{max-width:32rem}.sm\:flex-shrink-0{flex-shrink:0}.sm\:translate-y-0{--tw-translate-y:0}.sm\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sm\:scale-100{--tw-scale-x:1;--tw-scale-y:1}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:rounded-lg{border-radius:.5rem}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:768px){.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-6{grid-column:span 6/span 6}.md\:col-start-2{grid-column-start:2}.md\:col-start-4{grid-column-start:4}.md\:mx-0{margin-left:0;margin-right:0}.md\:mt-0{margin-top:0}.md\:mt-5{margin-top:1.25rem}.md\:mt-10{margin-top:2.5rem}.md\:mr-2{margin-right:.5rem}.md\:-mr-1{margin-right:-.25rem}.md\:ml-2{margin-left:.5rem}.md\:ml-6{margin-left:1.5rem}.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:max-w-3xl{max-width:48rem}.md\:flex-shrink-0{flex-shrink:0}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-6{gap:1.5rem}.md\:p-24{padding:6rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-start-3{grid-column-start:3}.lg\:col-start-4{grid-column-start:4}.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:mt-0{margin-top:0}.lg\:mt-24{margin-top:6rem}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:h-screen{height:100vh}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:w-1\/5{width:20%}.lg\:flex-shrink-0{flex-shrink:0}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:gap-4{gap:1rem}.lg\:rounded-lg{border-radius:.5rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}}@media (min-width:1280px){.xl\:col-span-4{grid-column:span 4/span 4}.xl\:col-span-6{grid-column:span 6/span 6}.xl\:col-span-8{grid-column:span 8/span 8}.xl\:col-span-9{grid-column:span 9/span 9}.xl\:col-start-4{grid-column-start:4}.xl\:mt-32{margin-top:8rem}.xl\:flex{display:flex}.xl\:justify-center{justify-content:center}.xl\:px-16{padding-left:4rem;padding-right:4rem}}
diff --git a/public/js/clients/invoices/action-selectors.js.LICENSE.txt b/public/js/clients/invoices/action-selectors.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/invoices/action-selectors.js.LICENSE.txt
+++ b/public/js/clients/invoices/action-selectors.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/invoices/payment.js.LICENSE.txt b/public/js/clients/invoices/payment.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/invoices/payment.js.LICENSE.txt
+++ b/public/js/clients/invoices/payment.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/linkify-urls.js.LICENSE.txt b/public/js/clients/linkify-urls.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/linkify-urls.js.LICENSE.txt
+++ b/public/js/clients/linkify-urls.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payment_methods/authorize-ach.js.LICENSE.txt b/public/js/clients/payment_methods/authorize-ach.js.LICENSE.txt
index e3350dd9a69d..7b26f6ecde51 100755
--- a/public/js/clients/payment_methods/authorize-ach.js.LICENSE.txt
+++ b/public/js/clients/payment_methods/authorize-ach.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payment_methods/authorize-authorize-card.js.LICENSE.txt b/public/js/clients/payment_methods/authorize-authorize-card.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payment_methods/authorize-authorize-card.js.LICENSE.txt
+++ b/public/js/clients/payment_methods/authorize-authorize-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payment_methods/authorize-checkout-card.js.LICENSE.txt b/public/js/clients/payment_methods/authorize-checkout-card.js.LICENSE.txt
index c357ff50e6ab..c80eb7b2cc5b 100644
--- a/public/js/clients/payment_methods/authorize-checkout-card.js.LICENSE.txt
+++ b/public/js/clients/payment_methods/authorize-checkout-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payment_methods/authorize-stripe-card.js b/public/js/clients/payment_methods/authorize-stripe-card.js
index a763cd44096a..bf0daacb0e7c 100755
--- a/public/js/clients/payment_methods/authorize-stripe-card.js
+++ b/public/js/clients/payment_methods/authorize-stripe-card.js
@@ -106,7 +106,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
var AuthorizeStripeCard = /*#__PURE__*/function () {
function AuthorizeStripeCard(key) {
diff --git a/public/js/clients/payment_methods/authorize-stripe-card.js.LICENSE.txt b/public/js/clients/payment_methods/authorize-stripe-card.js.LICENSE.txt
index e3350dd9a69d..7b26f6ecde51 100755
--- a/public/js/clients/payment_methods/authorize-stripe-card.js.LICENSE.txt
+++ b/public/js/clients/payment_methods/authorize-stripe-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/alipay.js.LICENSE.txt b/public/js/clients/payments/alipay.js.LICENSE.txt
index e3350dd9a69d..7b26f6ecde51 100755
--- a/public/js/clients/payments/alipay.js.LICENSE.txt
+++ b/public/js/clients/payments/alipay.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/authorize-credit-card-payment.js.LICENSE.txt b/public/js/clients/payments/authorize-credit-card-payment.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payments/authorize-credit-card-payment.js.LICENSE.txt
+++ b/public/js/clients/payments/authorize-credit-card-payment.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/braintree-credit-card.js.LICENSE.txt b/public/js/clients/payments/braintree-credit-card.js.LICENSE.txt
index c357ff50e6ab..c80eb7b2cc5b 100644
--- a/public/js/clients/payments/braintree-credit-card.js.LICENSE.txt
+++ b/public/js/clients/payments/braintree-credit-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/braintree-paypal.js.LICENSE.txt b/public/js/clients/payments/braintree-paypal.js.LICENSE.txt
index c357ff50e6ab..c80eb7b2cc5b 100644
--- a/public/js/clients/payments/braintree-paypal.js.LICENSE.txt
+++ b/public/js/clients/payments/braintree-paypal.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/checkout-credit-card.js.LICENSE.txt b/public/js/clients/payments/checkout-credit-card.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/checkout-credit-card.js.LICENSE.txt
+++ b/public/js/clients/payments/checkout-credit-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/process.js.LICENSE.txt b/public/js/clients/payments/process.js.LICENSE.txt
index e3350dd9a69d..7b26f6ecde51 100755
--- a/public/js/clients/payments/process.js.LICENSE.txt
+++ b/public/js/clients/payments/process.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/razorpay-aio.js.LICENSE.txt b/public/js/clients/payments/razorpay-aio.js.LICENSE.txt
index c357ff50e6ab..c80eb7b2cc5b 100644
--- a/public/js/clients/payments/razorpay-aio.js.LICENSE.txt
+++ b/public/js/clients/payments/razorpay-aio.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/sofort.js.LICENSE.txt b/public/js/clients/payments/sofort.js.LICENSE.txt
index e3350dd9a69d..7b26f6ecde51 100755
--- a/public/js/clients/payments/sofort.js.LICENSE.txt
+++ b/public/js/clients/payments/sofort.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-ach.js.LICENSE.txt b/public/js/clients/payments/stripe-ach.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payments/stripe-ach.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-ach.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-acss.js.LICENSE.txt b/public/js/clients/payments/stripe-acss.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-acss.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-acss.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-alipay.js.LICENSE.txt b/public/js/clients/payments/stripe-alipay.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payments/stripe-alipay.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-alipay.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-bancontact.js.LICENSE.txt b/public/js/clients/payments/stripe-bancontact.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-bancontact.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-bancontact.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-becs.js.LICENSE.txt b/public/js/clients/payments/stripe-becs.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-becs.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-becs.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-browserpay.js.LICENSE.txt b/public/js/clients/payments/stripe-browserpay.js.LICENSE.txt
index c357ff50e6ab..c80eb7b2cc5b 100644
--- a/public/js/clients/payments/stripe-browserpay.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-browserpay.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-credit-card.js.LICENSE.txt b/public/js/clients/payments/stripe-credit-card.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payments/stripe-credit-card.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-credit-card.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-eps.js.LICENSE.txt b/public/js/clients/payments/stripe-eps.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-eps.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-eps.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-fpx.js.LICENSE.txt b/public/js/clients/payments/stripe-fpx.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-fpx.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-fpx.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-giropay.js.LICENSE.txt b/public/js/clients/payments/stripe-giropay.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-giropay.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-giropay.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-ideal.js.LICENSE.txt b/public/js/clients/payments/stripe-ideal.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-ideal.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-ideal.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-przelewy24.js.LICENSE.txt b/public/js/clients/payments/stripe-przelewy24.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-przelewy24.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-przelewy24.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-sepa.js.LICENSE.txt b/public/js/clients/payments/stripe-sepa.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100644
--- a/public/js/clients/payments/stripe-sepa.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-sepa.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/payments/stripe-sofort.js.LICENSE.txt b/public/js/clients/payments/stripe-sofort.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/payments/stripe-sofort.js.LICENSE.txt
+++ b/public/js/clients/payments/stripe-sofort.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/quotes/action-selectors.js.LICENSE.txt b/public/js/clients/quotes/action-selectors.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/quotes/action-selectors.js.LICENSE.txt
+++ b/public/js/clients/quotes/action-selectors.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/quotes/approve.js.LICENSE.txt b/public/js/clients/quotes/approve.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/quotes/approve.js.LICENSE.txt
+++ b/public/js/clients/quotes/approve.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/clients/shared/pdf.js.LICENSE.txt b/public/js/clients/shared/pdf.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/clients/shared/pdf.js.LICENSE.txt
+++ b/public/js/clients/shared/pdf.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/js/setup/setup.js.LICENSE.txt b/public/js/setup/setup.js.LICENSE.txt
index 585c6ab0e4fc..82efe1d67ef8 100755
--- a/public/js/setup/setup.js.LICENSE.txt
+++ b/public/js/setup/setup.js.LICENSE.txt
@@ -5,5 +5,5 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 9068d75070a0..a018d8546477 100755
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -38,7 +38,7 @@
"/js/clients/payments/stripe-przelewy24.js": "/js/clients/payments/stripe-przelewy24.js?id=e240b907ad163cac04c0",
"/js/clients/payments/stripe-browserpay.js": "/js/clients/payments/stripe-browserpay.js?id=1e6e12709a43473e4406",
"/js/clients/payments/stripe-fpx.js": "/js/clients/payments/stripe-fpx.js?id=765874308d4374726b25",
- "/css/app.css": "/css/app.css?id=1347051cc03a8dd2a17c",
+ "/css/app.css": "/css/app.css?id=37cad71ea0dc60b1a735",
"/css/card-js.min.css": "/css/card-js.min.css?id=62afeb675235451543ad",
"/vendor/clipboard.min.js": "/vendor/clipboard.min.js?id=ad98572d415d2f245284"
}
diff --git a/resources/js/clients/invoices/action-selectors.js b/resources/js/clients/invoices/action-selectors.js
index 3b8963761988..1b422f676fb7 100644
--- a/resources/js/clients/invoices/action-selectors.js
+++ b/resources/js/clients/invoices/action-selectors.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ActionSelectors {
diff --git a/resources/js/clients/invoices/payment.js b/resources/js/clients/invoices/payment.js
index 1dac5611c504..91a350015e07 100644
--- a/resources/js/clients/invoices/payment.js
+++ b/resources/js/clients/invoices/payment.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class Payment {
diff --git a/resources/js/clients/linkify-urls.js b/resources/js/clients/linkify-urls.js
index 5622fc7d199f..f90f35a38a98 100644
--- a/resources/js/clients/linkify-urls.js
+++ b/resources/js/clients/linkify-urls.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
const linkifyUrls = require('linkify-urls');
diff --git a/resources/js/clients/payment_methods/authorize-authorize-card.js b/resources/js/clients/payment_methods/authorize-authorize-card.js
index d82e2fd74c7b..415b1d5d79b8 100644
--- a/resources/js/clients/payment_methods/authorize-authorize-card.js
+++ b/resources/js/clients/payment_methods/authorize-authorize-card.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class AuthorizeAuthorizeCard {
diff --git a/resources/js/clients/payment_methods/authorize-checkout-card.js b/resources/js/clients/payment_methods/authorize-checkout-card.js
index 4fdcc926cd50..1a6af00dcc95 100644
--- a/resources/js/clients/payment_methods/authorize-checkout-card.js
+++ b/resources/js/clients/payment_methods/authorize-checkout-card.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class CheckoutCreditCardAuthorization {
diff --git a/resources/js/clients/payments/authorize-credit-card-payment.js b/resources/js/clients/payments/authorize-credit-card-payment.js
index ec35fd1b68e4..13524efb3fdb 100644
--- a/resources/js/clients/payments/authorize-credit-card-payment.js
+++ b/resources/js/clients/payments/authorize-credit-card-payment.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class AuthorizeAuthorizeCard {
diff --git a/resources/js/clients/payments/braintree-credit-card.js b/resources/js/clients/payments/braintree-credit-card.js
index 1baa72d1e8dc..2a553c4deb93 100644
--- a/resources/js/clients/payments/braintree-credit-card.js
+++ b/resources/js/clients/payments/braintree-credit-card.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
diff --git a/resources/js/clients/payments/braintree-paypal.js b/resources/js/clients/payments/braintree-paypal.js
index ff096640c2e6..affaf1cb26b2 100644
--- a/resources/js/clients/payments/braintree-paypal.js
+++ b/resources/js/clients/payments/braintree-paypal.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class BraintreePayPal {
diff --git a/resources/js/clients/payments/checkout-credit-card.js b/resources/js/clients/payments/checkout-credit-card.js
index 6eff4fdfc6aa..13327e62fc2e 100644
--- a/resources/js/clients/payments/checkout-credit-card.js
+++ b/resources/js/clients/payments/checkout-credit-card.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class CheckoutCreditCard {
diff --git a/resources/js/clients/payments/checkout.com.js b/resources/js/clients/payments/checkout.com.js
index 721e8a30c650..ccaab7542695 100644
--- a/resources/js/clients/payments/checkout.com.js
+++ b/resources/js/clients/payments/checkout.com.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
const paymentWithToken = document.getElementById('toggle-payment-with-token');
diff --git a/resources/js/clients/payments/razorpay-aio.js b/resources/js/clients/payments/razorpay-aio.js
index e29e314e6e20..4097b07fcbf9 100644
--- a/resources/js/clients/payments/razorpay-aio.js
+++ b/resources/js/clients/payments/razorpay-aio.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
let options = JSON.parse(
diff --git a/resources/js/clients/payments/stripe-ach.js b/resources/js/clients/payments/stripe-ach.js
index 7002c83fecdb..a98ea86ae6f0 100644
--- a/resources/js/clients/payments/stripe-ach.js
+++ b/resources/js/clients/payments/stripe-ach.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class AuthorizeACH {
diff --git a/resources/js/clients/payments/stripe-acss.js b/resources/js/clients/payments/stripe-acss.js
index 9d09e9a9ed0c..0af5545765f4 100644
--- a/resources/js/clients/payments/stripe-acss.js
+++ b/resources/js/clients/payments/stripe-acss.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessACSS {
diff --git a/resources/js/clients/payments/stripe-alipay.js b/resources/js/clients/payments/stripe-alipay.js
index 2ab214165e53..0a6c7da8d7c1 100644
--- a/resources/js/clients/payments/stripe-alipay.js
+++ b/resources/js/clients/payments/stripe-alipay.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessAlipay {
diff --git a/resources/js/clients/payments/stripe-bancontact.js b/resources/js/clients/payments/stripe-bancontact.js
index 793a2278c96b..35860607b775 100644
--- a/resources/js/clients/payments/stripe-bancontact.js
+++ b/resources/js/clients/payments/stripe-bancontact.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessBANCONTACTPay {
diff --git a/resources/js/clients/payments/stripe-becs.js b/resources/js/clients/payments/stripe-becs.js
index 774d67882099..61544ccf53c7 100644
--- a/resources/js/clients/payments/stripe-becs.js
+++ b/resources/js/clients/payments/stripe-becs.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessBECS {
diff --git a/resources/js/clients/payments/stripe-browserpay.js b/resources/js/clients/payments/stripe-browserpay.js
index 309820c37a14..dff741ddc63a 100644
--- a/resources/js/clients/payments/stripe-browserpay.js
+++ b/resources/js/clients/payments/stripe-browserpay.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class StripeBrowserPay {
diff --git a/resources/js/clients/payments/stripe-credit-card.js b/resources/js/clients/payments/stripe-credit-card.js
index 96ec2c1a8128..2ffb32799b7d 100644
--- a/resources/js/clients/payments/stripe-credit-card.js
+++ b/resources/js/clients/payments/stripe-credit-card.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class StripeCreditCard {
diff --git a/resources/js/clients/payments/stripe-eps.js b/resources/js/clients/payments/stripe-eps.js
index 55157796f420..1966262c9509 100644
--- a/resources/js/clients/payments/stripe-eps.js
+++ b/resources/js/clients/payments/stripe-eps.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessEPSPay {
diff --git a/resources/js/clients/payments/stripe-fpx.js b/resources/js/clients/payments/stripe-fpx.js
index e7733be82b4f..45db81feea30 100644
--- a/resources/js/clients/payments/stripe-fpx.js
+++ b/resources/js/clients/payments/stripe-fpx.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessFPXPay {
diff --git a/resources/js/clients/payments/stripe-giropay.js b/resources/js/clients/payments/stripe-giropay.js
index d0443b44d3c9..1a3903e9570f 100644
--- a/resources/js/clients/payments/stripe-giropay.js
+++ b/resources/js/clients/payments/stripe-giropay.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessGiroPay {
diff --git a/resources/js/clients/payments/stripe-ideal.js b/resources/js/clients/payments/stripe-ideal.js
index 7159e29301e8..db397cb1e178 100644
--- a/resources/js/clients/payments/stripe-ideal.js
+++ b/resources/js/clients/payments/stripe-ideal.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessIDEALPay {
diff --git a/resources/js/clients/payments/stripe-przelewy24.js b/resources/js/clients/payments/stripe-przelewy24.js
index 15b8fb396d87..4cd36a508aff 100644
--- a/resources/js/clients/payments/stripe-przelewy24.js
+++ b/resources/js/clients/payments/stripe-przelewy24.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessPRZELEWY24 {
diff --git a/resources/js/clients/payments/stripe-sepa.js b/resources/js/clients/payments/stripe-sepa.js
index cea9e96e9c7c..8e9a74536187 100644
--- a/resources/js/clients/payments/stripe-sepa.js
+++ b/resources/js/clients/payments/stripe-sepa.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessSEPA {
diff --git a/resources/js/clients/payments/stripe-sofort.js b/resources/js/clients/payments/stripe-sofort.js
index 8fb9c2883e56..394849697df4 100644
--- a/resources/js/clients/payments/stripe-sofort.js
+++ b/resources/js/clients/payments/stripe-sofort.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ProcessSOFORT {
diff --git a/resources/js/clients/quotes/action-selectors.js b/resources/js/clients/quotes/action-selectors.js
index f45041778ea6..b03131b81ec4 100644
--- a/resources/js/clients/quotes/action-selectors.js
+++ b/resources/js/clients/quotes/action-selectors.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class ActionSelectors {
diff --git a/resources/js/clients/quotes/approve.js b/resources/js/clients/quotes/approve.js
index b4d7e18eb32e..6817d640f507 100644
--- a/resources/js/clients/quotes/approve.js
+++ b/resources/js/clients/quotes/approve.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class Approve {
diff --git a/resources/js/clients/shared/multiple-downloads.js b/resources/js/clients/shared/multiple-downloads.js
index 7dd69e860d64..2bff353fd153 100644
--- a/resources/js/clients/shared/multiple-downloads.js
+++ b/resources/js/clients/shared/multiple-downloads.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
const appendToElement = (parent, value) => {
diff --git a/resources/js/clients/shared/pdf.js b/resources/js/clients/shared/pdf.js
index 245789b0b45c..a3b2ed4e9bea 100644
--- a/resources/js/clients/shared/pdf.js
+++ b/resources/js/clients/shared/pdf.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
class PDF {
diff --git a/resources/js/setup/setup.js b/resources/js/setup/setup.js
index 1c154fba1bf6..ae4de35f835f 100644
--- a/resources/js/setup/setup.js
+++ b/resources/js/setup/setup.js
@@ -5,7 +5,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
import Axios from 'axios';
diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php
index f999624d2027..59a028251576 100644
--- a/resources/lang/en/texts.php
+++ b/resources/lang/en/texts.php
@@ -4610,6 +4610,17 @@ $LANG = array(
'purchase_order' => 'Purchase Order',
'purchase_order_number' => 'Purchase Order Number',
'purchase_order_number_short' => 'Purchase Order #',
+ 'inventory_notification_subject' => 'Inventory threshold notification for product: :product',
+ 'inventory_notification_body' => 'Threshold of :amount has been reach for product: :product',
+ 'activity_130' => ':user created purchase order :purchase_order',
+ 'activity_131' => ':user updated purchase order :purchase_order',
+ 'activity_132' => ':user archived purchase order :purchase_order',
+ 'activity_133' => ':user deleted purchase order :purchase_order',
+ 'activity_134' => ':user restored purchase order :purchase_order',
+ 'activity_135' => ':user emailed purchase order :purchase_order',
+ 'activity_136' => ':contact viewed purchase order :purchase_order',
+ 'purchase_order_subject' => '',
+ 'purchase_order_message' => '',
);
return $LANG;
diff --git a/tests/Browser/ClientPortal/Gateways/Stripe/SEPATest.php b/tests/Browser/ClientPortal/Gateways/Stripe/SEPATest.php
index 44c8f505d4e8..3bc617bc7eba 100644
--- a/tests/Browser/ClientPortal/Gateways/Stripe/SEPATest.php
+++ b/tests/Browser/ClientPortal/Gateways/Stripe/SEPATest.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Browser\ClientPortal\Gateways\Stripe;
diff --git a/tests/Feature/ActivityApiTest.php b/tests/Feature/ActivityApiTest.php
index cd6f344e773c..fcc47f0b48cf 100644
--- a/tests/Feature/ActivityApiTest.php
+++ b/tests/Feature/ActivityApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ApplePayDomainMerchantUrlTest.php b/tests/Feature/ApplePayDomainMerchantUrlTest.php
index a2387f5f3536..78959d964f31 100644
--- a/tests/Feature/ApplePayDomainMerchantUrlTest.php
+++ b/tests/Feature/ApplePayDomainMerchantUrlTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CancelInvoiceTest.php b/tests/Feature/CancelInvoiceTest.php
index 5bdaf24e6b2b..44a6eef682ef 100644
--- a/tests/Feature/CancelInvoiceTest.php
+++ b/tests/Feature/CancelInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientApiTest.php b/tests/Feature/ClientApiTest.php
index de2b642f960c..aad629878fd5 100644
--- a/tests/Feature/ClientApiTest.php
+++ b/tests/Feature/ClientApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientDeletedInvoiceCreationTest.php b/tests/Feature/ClientDeletedInvoiceCreationTest.php
index 3ec20cb30f10..ee6fa3865812 100644
--- a/tests/Feature/ClientDeletedInvoiceCreationTest.php
+++ b/tests/Feature/ClientDeletedInvoiceCreationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientGatewayTokenApiTest.php b/tests/Feature/ClientGatewayTokenApiTest.php
index 4751b9c8f4bb..4d396a370321 100644
--- a/tests/Feature/ClientGatewayTokenApiTest.php
+++ b/tests/Feature/ClientGatewayTokenApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientModelTest.php b/tests/Feature/ClientModelTest.php
index 7fe728ae69f7..4566c8959ad9 100644
--- a/tests/Feature/ClientModelTest.php
+++ b/tests/Feature/ClientModelTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientPresenterTest.php b/tests/Feature/ClientPresenterTest.php
index e1e24f354e97..5b340de61c5f 100644
--- a/tests/Feature/ClientPresenterTest.php
+++ b/tests/Feature/ClientPresenterTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ClientTest.php b/tests/Feature/ClientTest.php
index 9c25aa97b1a2..f93bb3bf3c25 100644
--- a/tests/Feature/ClientTest.php
+++ b/tests/Feature/ClientTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanyGatewayApiTest.php b/tests/Feature/CompanyGatewayApiTest.php
index b290aecdf7bf..e2f9e40a48da 100644
--- a/tests/Feature/CompanyGatewayApiTest.php
+++ b/tests/Feature/CompanyGatewayApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanyGatewayResolutionTest.php b/tests/Feature/CompanyGatewayResolutionTest.php
index a01cfde54e5f..7b9d3872fb3b 100644
--- a/tests/Feature/CompanyGatewayResolutionTest.php
+++ b/tests/Feature/CompanyGatewayResolutionTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanyGatewayTest.php b/tests/Feature/CompanyGatewayTest.php
index bff96fbf9b55..379d7b10fa7a 100644
--- a/tests/Feature/CompanyGatewayTest.php
+++ b/tests/Feature/CompanyGatewayTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanySettingsTest.php b/tests/Feature/CompanySettingsTest.php
index 3c9a854329c0..80c753bb72db 100644
--- a/tests/Feature/CompanySettingsTest.php
+++ b/tests/Feature/CompanySettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanyTest.php b/tests/Feature/CompanyTest.php
index ed3e3f7cc6b9..ecf2c61fbba4 100644
--- a/tests/Feature/CompanyTest.php
+++ b/tests/Feature/CompanyTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CompanyTokenApiTest.php b/tests/Feature/CompanyTokenApiTest.php
index f6d7cf12fc5c..fd96fb833d95 100644
--- a/tests/Feature/CompanyTokenApiTest.php
+++ b/tests/Feature/CompanyTokenApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/CreditTest.php b/tests/Feature/CreditTest.php
index 372602ec8669..789ecd3f3bb7 100644
--- a/tests/Feature/CreditTest.php
+++ b/tests/Feature/CreditTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/DeleteInvoiceTest.php b/tests/Feature/DeleteInvoiceTest.php
index 8e9e5a2495b0..7318899ef60a 100644
--- a/tests/Feature/DeleteInvoiceTest.php
+++ b/tests/Feature/DeleteInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/DesignApiTest.php b/tests/Feature/DesignApiTest.php
index 8821da953204..3dc630f33e02 100644
--- a/tests/Feature/DesignApiTest.php
+++ b/tests/Feature/DesignApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/DocumentsApiTest.php b/tests/Feature/DocumentsApiTest.php
index a60c5cb80acf..2686d715185a 100644
--- a/tests/Feature/DocumentsApiTest.php
+++ b/tests/Feature/DocumentsApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/EntityPaidToDateTest.php b/tests/Feature/EntityPaidToDateTest.php
index 830cb9bc5e5d..0e9bb2f760f5 100644
--- a/tests/Feature/EntityPaidToDateTest.php
+++ b/tests/Feature/EntityPaidToDateTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ExpenseApiTest.php b/tests/Feature/ExpenseApiTest.php
index a315f1dfb3b1..45825b6e154c 100644
--- a/tests/Feature/ExpenseApiTest.php
+++ b/tests/Feature/ExpenseApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ExpenseCategoryApiTest.php b/tests/Feature/ExpenseCategoryApiTest.php
index d07ff2fc0f3f..d7eac1aef330 100644
--- a/tests/Feature/ExpenseCategoryApiTest.php
+++ b/tests/Feature/ExpenseCategoryApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/Export/ClientCsvTest.php b/tests/Feature/Export/ClientCsvTest.php
index 3002facc8095..0b0828c8eca5 100644
--- a/tests/Feature/Export/ClientCsvTest.php
+++ b/tests/Feature/Export/ClientCsvTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Export;
diff --git a/tests/Feature/Export/ExportCompanyTest.php b/tests/Feature/Export/ExportCompanyTest.php
index feacc7b955bf..2d022e081668 100644
--- a/tests/Feature/Export/ExportCompanyTest.php
+++ b/tests/Feature/Export/ExportCompanyTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Export;
diff --git a/tests/Feature/Export/ExportCsvTest.php b/tests/Feature/Export/ExportCsvTest.php
index 8d50478c7e7d..a9f629305555 100644
--- a/tests/Feature/Export/ExportCsvTest.php
+++ b/tests/Feature/Export/ExportCsvTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Export;
diff --git a/tests/Feature/Export/ProfitAndLossReportTest.php b/tests/Feature/Export/ProfitAndLossReportTest.php
index c7b9636cb910..36f16fea7f85 100644
--- a/tests/Feature/Export/ProfitAndLossReportTest.php
+++ b/tests/Feature/Export/ProfitAndLossReportTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Export;
diff --git a/tests/Feature/FilterApiTest.php b/tests/Feature/FilterApiTest.php
index 2b18c9c57f4f..ab5bf7d81eae 100644
--- a/tests/Feature/FilterApiTest.php
+++ b/tests/Feature/FilterApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/GroupSettingTest.php b/tests/Feature/GroupSettingTest.php
index 12560b30d6ee..f2c3d7de4ca1 100644
--- a/tests/Feature/GroupSettingTest.php
+++ b/tests/Feature/GroupSettingTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/Import/CSV/BaseTransformerTest.php b/tests/Feature/Import/CSV/BaseTransformerTest.php
index f00cdf8382cd..dcc4822eb7f2 100644
--- a/tests/Feature/Import/CSV/BaseTransformerTest.php
+++ b/tests/Feature/Import/CSV/BaseTransformerTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\CSV;
diff --git a/tests/Feature/Import/CSV/CsvImportTest.php b/tests/Feature/Import/CSV/CsvImportTest.php
index 78b521e84083..68feae91773e 100644
--- a/tests/Feature/Import/CSV/CsvImportTest.php
+++ b/tests/Feature/Import/CSV/CsvImportTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\CSV;
diff --git a/tests/Feature/Import/Freshbooks/FreshbooksTest.php b/tests/Feature/Import/Freshbooks/FreshbooksTest.php
index 3244ef264abf..7313c98d89ca 100644
--- a/tests/Feature/Import/Freshbooks/FreshbooksTest.php
+++ b/tests/Feature/Import/Freshbooks/FreshbooksTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\Freshbooks;
diff --git a/tests/Feature/Import/ImportCompanyTest.php b/tests/Feature/Import/ImportCompanyTest.php
index 2bb6ad463d45..1cf92665e555 100644
--- a/tests/Feature/Import/ImportCompanyTest.php
+++ b/tests/Feature/Import/ImportCompanyTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import;
diff --git a/tests/Feature/Import/ImportCsvTest.php b/tests/Feature/Import/ImportCsvTest.php
index 32600fad6924..9517a7d1a5e5 100644
--- a/tests/Feature/Import/ImportCsvTest.php
+++ b/tests/Feature/Import/ImportCsvTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import;
diff --git a/tests/Feature/Import/Invoice2Go/Invoice2GoTest.php b/tests/Feature/Import/Invoice2Go/Invoice2GoTest.php
index 50b3db147d7a..b851474ecfb3 100644
--- a/tests/Feature/Import/Invoice2Go/Invoice2GoTest.php
+++ b/tests/Feature/Import/Invoice2Go/Invoice2GoTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\Invoice2Go;
diff --git a/tests/Feature/Import/Invoicely/InvoicelyTest.php b/tests/Feature/Import/Invoicely/InvoicelyTest.php
index 50c0f428e801..2af75f1b3aa1 100644
--- a/tests/Feature/Import/Invoicely/InvoicelyTest.php
+++ b/tests/Feature/Import/Invoicely/InvoicelyTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\Invoicely;
diff --git a/tests/Feature/Import/Wave/WaveTest.php b/tests/Feature/Import/Wave/WaveTest.php
index 8951ae25c28e..3dbab9388a90 100644
--- a/tests/Feature/Import/Wave/WaveTest.php
+++ b/tests/Feature/Import/Wave/WaveTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\Wave;
diff --git a/tests/Feature/Import/Zoho/ZohoTest.php b/tests/Feature/Import/Zoho/ZohoTest.php
index 7d70890125cc..de9ff8814c17 100644
--- a/tests/Feature/Import/Zoho/ZohoTest.php
+++ b/tests/Feature/Import/Zoho/ZohoTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Import\Zoho;
diff --git a/tests/Feature/Inventory/InventoryManagementTest.php b/tests/Feature/Inventory/InventoryManagementTest.php
new file mode 100644
index 000000000000..8415e6cdc29a
--- /dev/null
+++ b/tests/Feature/Inventory/InventoryManagementTest.php
@@ -0,0 +1,111 @@
+makeTestData();
+
+ $this->withoutMiddleware(
+ ThrottleRequests::class
+ );
+ }
+
+ public function testInventoryMovements()
+ {
+
+ $product = Product::factory()->create([
+ 'user_id' => $this->user->id,
+ 'company_id' => $this->company->id,
+ 'in_stock_quantity' => 100,
+ 'stock_notification' => true,
+ 'stock_notification_threshold' => 99
+ ]);
+
+ $invoice = Invoice::factory()->create([
+ 'user_id' => $this->user->id,
+ 'company_id' => $this->company->id,
+ 'client_id' => $this->client->id
+ ]);
+
+ $invoice->company->track_inventory = true;
+ $invoice->push();
+
+
+ $invoice_item = new InvoiceItem;
+ $invoice_item->type_id = 1;
+ $invoice_item->product_key = $product->product_key;
+ $invoice_item->notes = $product->notes;
+ $invoice_item->quantity = 10;
+ $invoice_item->cost = 100;
+
+ $line_items[] = $invoice_item;
+ $invoice->line_items = $line_items;
+ $invoice->number = Str::random(16);
+
+ $invoice->client_id = $this->client->hashed_id;
+
+ $invoice_array = $invoice->toArray();
+ $invoice_array['client_id'] = $this->client->hashed_id;
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/invoices/', $invoice_array)
+ ->assertStatus(200);
+
+ $product = $product->refresh();
+
+ $this->assertEquals(90, $product->in_stock_quantity);
+
+
+ $arr = $response->json();
+ $invoice_hashed_id = $arr['data']['id'];
+
+ $invoice_item = new InvoiceItem;
+ $invoice_item->type_id = 1;
+ $invoice_item->product_key = $product->product_key;
+ $invoice_item->notes = $product->notes;
+ $invoice_item->quantity = 5;
+ $invoice_item->cost = 100;
+
+ $line_items2[] = $invoice_item;
+ $invoice->line_items = $line_items2;
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->put('/api/v1/invoices/'.$invoice_hashed_id, $invoice->toArray())
+ ->assertStatus(200);
+
+ $product = $product->refresh();
+
+ $this->assertEquals(95, $product->in_stock_quantity);
+ }
+}
diff --git a/tests/Feature/InvitationTest.php b/tests/Feature/InvitationTest.php
index 12dc8ff9d806..f46edcf0a1db 100644
--- a/tests/Feature/InvitationTest.php
+++ b/tests/Feature/InvitationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/InvoiceAmountPaymentTest.php b/tests/Feature/InvoiceAmountPaymentTest.php
index 675c6615082b..e971f23e3803 100644
--- a/tests/Feature/InvoiceAmountPaymentTest.php
+++ b/tests/Feature/InvoiceAmountPaymentTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/InvoiceEmailTest.php b/tests/Feature/InvoiceEmailTest.php
index 04399b726e49..69a80930d66d 100644
--- a/tests/Feature/InvoiceEmailTest.php
+++ b/tests/Feature/InvoiceEmailTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/InvoiceLinkTasksTest.php b/tests/Feature/InvoiceLinkTasksTest.php
index cf3da98d4c8a..31b7985249ab 100644
--- a/tests/Feature/InvoiceLinkTasksTest.php
+++ b/tests/Feature/InvoiceLinkTasksTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/InvoiceTest.php b/tests/Feature/InvoiceTest.php
index d57f588ac8e6..3cea664ea69a 100644
--- a/tests/Feature/InvoiceTest.php
+++ b/tests/Feature/InvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/LoadTest.php b/tests/Feature/LoadTest.php
index fb6a7b09240d..b5545f610ef4 100644
--- a/tests/Feature/LoadTest.php
+++ b/tests/Feature/LoadTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/LoginTest.php b/tests/Feature/LoginTest.php
index 9aafba414489..077cfa50655b 100644
--- a/tests/Feature/LoginTest.php
+++ b/tests/Feature/LoginTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/MigrationTest.php b/tests/Feature/MigrationTest.php
index d4c7edf6e53b..070f67966d6e 100644
--- a/tests/Feature/MigrationTest.php
+++ b/tests/Feature/MigrationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/MultiPaymentDeleteTest.php b/tests/Feature/MultiPaymentDeleteTest.php
index f9d682668e28..6d914a80c2a6 100644
--- a/tests/Feature/MultiPaymentDeleteTest.php
+++ b/tests/Feature/MultiPaymentDeleteTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/Ninja/PlanTest.php b/tests/Feature/Ninja/PlanTest.php
index a80d7f1567f3..85d9fa4be6a3 100644
--- a/tests/Feature/Ninja/PlanTest.php
+++ b/tests/Feature/Ninja/PlanTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Ninja;
diff --git a/tests/Feature/PaymentTermsApiTest.php b/tests/Feature/PaymentTermsApiTest.php
index 1db9ece13650..5dc53f0e0401 100644
--- a/tests/Feature/PaymentTermsApiTest.php
+++ b/tests/Feature/PaymentTermsApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/PaymentTest.php b/tests/Feature/PaymentTest.php
index 7c4be819c05a..3b5c1eee1e53 100644
--- a/tests/Feature/PaymentTest.php
+++ b/tests/Feature/PaymentTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/Payments/CreditPaymentTest.php b/tests/Feature/Payments/CreditPaymentTest.php
index 6f87ce2069ea..3bacfdce0faf 100644
--- a/tests/Feature/Payments/CreditPaymentTest.php
+++ b/tests/Feature/Payments/CreditPaymentTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Payments;
diff --git a/tests/Feature/Payments/StorePaymentValidationTest.php b/tests/Feature/Payments/StorePaymentValidationTest.php
index 7a4d11a44d58..08e713da470e 100644
--- a/tests/Feature/Payments/StorePaymentValidationTest.php
+++ b/tests/Feature/Payments/StorePaymentValidationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Payments;
diff --git a/tests/Feature/Payments/UnappliedPaymentDeleteTest.php b/tests/Feature/Payments/UnappliedPaymentDeleteTest.php
index 06bcbed4634e..4a8788d14d56 100644
--- a/tests/Feature/Payments/UnappliedPaymentDeleteTest.php
+++ b/tests/Feature/Payments/UnappliedPaymentDeleteTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Payments;
diff --git a/tests/Feature/Payments/UnappliedPaymentRefundTest.php b/tests/Feature/Payments/UnappliedPaymentRefundTest.php
index bd4cceb96e5b..fe4e69448fe4 100644
--- a/tests/Feature/Payments/UnappliedPaymentRefundTest.php
+++ b/tests/Feature/Payments/UnappliedPaymentRefundTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Payments;
diff --git a/tests/Feature/PdfCreatorTest.php b/tests/Feature/PdfCreatorTest.php
index 1660270abd83..ec665199b047 100644
--- a/tests/Feature/PdfCreatorTest.php
+++ b/tests/Feature/PdfCreatorTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/PdfMaker/ExampleDesign.php b/tests/Feature/PdfMaker/ExampleDesign.php
index d1a9176325ff..30cd3e430a11 100644
--- a/tests/Feature/PdfMaker/ExampleDesign.php
+++ b/tests/Feature/PdfMaker/ExampleDesign.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\PdfMaker;
diff --git a/tests/Feature/PdfMaker/PdfMakerTest.php b/tests/Feature/PdfMaker/PdfMakerTest.php
index 8c843860b462..61cc19b1f65c 100644
--- a/tests/Feature/PdfMaker/PdfMakerTest.php
+++ b/tests/Feature/PdfMaker/PdfMakerTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\PdfMaker;
diff --git a/tests/Feature/PingTest.php b/tests/Feature/PingTest.php
index ca2bc5ab937c..2c6241c8887c 100644
--- a/tests/Feature/PingTest.php
+++ b/tests/Feature/PingTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/PreviewTest.php b/tests/Feature/PreviewTest.php
index 661a6878778e..4c7279ced804 100644
--- a/tests/Feature/PreviewTest.php
+++ b/tests/Feature/PreviewTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ProductTest.php b/tests/Feature/ProductTest.php
index 16501aa25ecb..a957bfd96b52 100644
--- a/tests/Feature/ProductTest.php
+++ b/tests/Feature/ProductTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ProjectApiTest.php b/tests/Feature/ProjectApiTest.php
index 8d8ae594462e..39d3c533de17 100644
--- a/tests/Feature/ProjectApiTest.php
+++ b/tests/Feature/ProjectApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/QuoteTest.php b/tests/Feature/QuoteTest.php
index c452c57b19a2..90dfbe27b390 100644
--- a/tests/Feature/QuoteTest.php
+++ b/tests/Feature/QuoteTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RecurringExpenseApiTest.php b/tests/Feature/RecurringExpenseApiTest.php
index 5782e226e386..c19f7135e543 100644
--- a/tests/Feature/RecurringExpenseApiTest.php
+++ b/tests/Feature/RecurringExpenseApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RecurringInvoiceTest.php b/tests/Feature/RecurringInvoiceTest.php
index c989415b515e..a552dab0745c 100644
--- a/tests/Feature/RecurringInvoiceTest.php
+++ b/tests/Feature/RecurringInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RecurringInvoicesCronTest.php b/tests/Feature/RecurringInvoicesCronTest.php
index 1037e56d4de7..b8902e49c59d 100644
--- a/tests/Feature/RecurringInvoicesCronTest.php
+++ b/tests/Feature/RecurringInvoicesCronTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RecurringQuoteTest.php b/tests/Feature/RecurringQuoteTest.php
index fe3ac36bf2f5..dff6525cd6ab 100644
--- a/tests/Feature/RecurringQuoteTest.php
+++ b/tests/Feature/RecurringQuoteTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RecurringQuotesTest.php b/tests/Feature/RecurringQuotesTest.php
index 78da5112771c..5ae07a7f616e 100644
--- a/tests/Feature/RecurringQuotesTest.php
+++ b/tests/Feature/RecurringQuotesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/RefundTest.php b/tests/Feature/RefundTest.php
index 8c33246569bf..a4d4f4e0579f 100644
--- a/tests/Feature/RefundTest.php
+++ b/tests/Feature/RefundTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ReminderTest.php b/tests/Feature/ReminderTest.php
index 1a2577ac92b8..be4292249f7b 100644
--- a/tests/Feature/ReminderTest.php
+++ b/tests/Feature/ReminderTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/ReverseInvoiceTest.php b/tests/Feature/ReverseInvoiceTest.php
index cfc9b58b0305..84ccdbefcb80 100644
--- a/tests/Feature/ReverseInvoiceTest.php
+++ b/tests/Feature/ReverseInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/Shop/ShopInvoiceTest.php b/tests/Feature/Shop/ShopInvoiceTest.php
index ec14f66e2675..b6b0e8aef28d 100644
--- a/tests/Feature/Shop/ShopInvoiceTest.php
+++ b/tests/Feature/Shop/ShopInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature\Shop;
diff --git a/tests/Feature/SubscriptionApiTest.php b/tests/Feature/SubscriptionApiTest.php
index cff411c33c4f..229c0493de11 100644
--- a/tests/Feature/SubscriptionApiTest.php
+++ b/tests/Feature/SubscriptionApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/SystemLogApiTest.php b/tests/Feature/SystemLogApiTest.php
index 676a43d4251f..647bb5c2e58c 100644
--- a/tests/Feature/SystemLogApiTest.php
+++ b/tests/Feature/SystemLogApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/TaskApiTest.php b/tests/Feature/TaskApiTest.php
index 643fb7ed6f32..3b6febab8763 100644
--- a/tests/Feature/TaskApiTest.php
+++ b/tests/Feature/TaskApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/TaskStatusApiTest.php b/tests/Feature/TaskStatusApiTest.php
index 6a691c4a847b..0e8a37904783 100644
--- a/tests/Feature/TaskStatusApiTest.php
+++ b/tests/Feature/TaskStatusApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/TaskStatusSortOnUpdateTest.php b/tests/Feature/TaskStatusSortOnUpdateTest.php
index 2416b9f9229f..e40295f99723 100644
--- a/tests/Feature/TaskStatusSortOnUpdateTest.php
+++ b/tests/Feature/TaskStatusSortOnUpdateTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/TaxRateApiTest.php b/tests/Feature/TaxRateApiTest.php
index a0acc34f4db7..6aafb46014e7 100644
--- a/tests/Feature/TaxRateApiTest.php
+++ b/tests/Feature/TaxRateApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/UpdateExchangeRatesTest.php b/tests/Feature/UpdateExchangeRatesTest.php
index ece0c26e2774..10cc061464a5 100644
--- a/tests/Feature/UpdateExchangeRatesTest.php
+++ b/tests/Feature/UpdateExchangeRatesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/UpdatePaymentTest.php b/tests/Feature/UpdatePaymentTest.php
index 95e5ffb58bf6..ceccd857d1be 100644
--- a/tests/Feature/UpdatePaymentTest.php
+++ b/tests/Feature/UpdatePaymentTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php
index 90d2840dbcf9..7dea80314b73 100644
--- a/tests/Feature/UserTest.php
+++ b/tests/Feature/UserTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/VendorApiTest.php b/tests/Feature/VendorApiTest.php
index 259f82a8a680..ee0691504a25 100644
--- a/tests/Feature/VendorApiTest.php
+++ b/tests/Feature/VendorApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Feature/WebhookAPITest.php b/tests/Feature/WebhookAPITest.php
index e67cfffd522e..719e71303ecf 100644
--- a/tests/Feature/WebhookAPITest.php
+++ b/tests/Feature/WebhookAPITest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Feature;
diff --git a/tests/Integration/CheckCacheTest.php b/tests/Integration/CheckCacheTest.php
index 36c4ef56dd10..39c3c3a5a2e2 100644
--- a/tests/Integration/CheckCacheTest.php
+++ b/tests/Integration/CheckCacheTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/CheckLockedInvoiceValidationTest.php b/tests/Integration/CheckLockedInvoiceValidationTest.php
index bf96e5db7d12..69d805250848 100644
--- a/tests/Integration/CheckLockedInvoiceValidationTest.php
+++ b/tests/Integration/CheckLockedInvoiceValidationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/CheckRemindersTest.php b/tests/Integration/CheckRemindersTest.php
index 31d1dd7f217d..a166ac1ad383 100644
--- a/tests/Integration/CheckRemindersTest.php
+++ b/tests/Integration/CheckRemindersTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
@@ -130,13 +130,13 @@ class CheckRemindersTest extends TestCase
$settings = $this->company->settings;
$settings->enable_reminder1 = false;
- $settings->schedule_reminder1 = 'after_invoice_date';
+ $settings->schedule_reminder1 = '';
$settings->num_days_reminder1 = 0;
$settings->enable_reminder2 = false;
- $settings->schedule_reminder2 = 'before_due_date';
+ $settings->schedule_reminder2 = '';
$settings->num_days_reminder2 = 0;
$settings->enable_reminder3 = false;
- $settings->schedule_reminder3 = 'after_due_date';
+ $settings->schedule_reminder3 = '';
$settings->num_days_reminder3 = 0;
$this->company->settings = $settings;
@@ -153,13 +153,13 @@ class CheckRemindersTest extends TestCase
$settings = $this->company->settings;
$settings->enable_reminder1 = false;
- $settings->schedule_reminder1 = 'after_invoice_date';
+ $settings->schedule_reminder1 = '';
$settings->num_days_reminder1 = 0;
$settings->enable_reminder2 = false;
- $settings->schedule_reminder2 = 'before_due_date';
+ $settings->schedule_reminder2 = '';
$settings->num_days_reminder2 = 0;
$settings->enable_reminder3 = false;
- $settings->schedule_reminder3 = 'after_due_date';
+ $settings->schedule_reminder3 = '';
$settings->num_days_reminder3 = 0;
$this->company->settings = $settings;
diff --git a/tests/Integration/CompanyLedgerTest.php b/tests/Integration/CompanyLedgerTest.php
index 14d8eb0fdc6f..0cb1c2e26f49 100644
--- a/tests/Integration/CompanyLedgerTest.php
+++ b/tests/Integration/CompanyLedgerTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/ContainerTest.php b/tests/Integration/ContainerTest.php
index 78f37f11bcb5..ef40879bd555 100644
--- a/tests/Integration/ContainerTest.php
+++ b/tests/Integration/ContainerTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/DownloadHistoricalInvoiceTest.php b/tests/Integration/DownloadHistoricalInvoiceTest.php
index f9d0d22e6ef8..05d23744bdfa 100644
--- a/tests/Integration/DownloadHistoricalInvoiceTest.php
+++ b/tests/Integration/DownloadHistoricalInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/EventTest.php b/tests/Integration/EventTest.php
index 9127ff54c8d7..d13e61f1d632 100644
--- a/tests/Integration/EventTest.php
+++ b/tests/Integration/EventTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
@@ -31,6 +31,11 @@ use App\Events\Invoice\InvoiceWasDeleted;
use App\Events\Invoice\InvoiceWasRestored;
use App\Events\Invoice\InvoiceWasUpdated;
use App\Events\Payment\PaymentWasArchived;
+use App\Events\PurchaseOrder\PurchaseOrderWasCreated;
+use App\Events\PurchaseOrder\PurchaseOrderWasUpdated;
+use App\Events\PurchaseOrder\PurchaseOrderWasArchived;
+use App\Events\PurchaseOrder\PurchaseOrderWasRestored;
+use App\Events\PurchaseOrder\PurchaseOrderWasDeleted;
use App\Events\Payment\PaymentWasCreated;
use App\Events\Payment\PaymentWasDeleted;
use App\Events\Payment\PaymentWasRestored;
@@ -807,4 +812,77 @@ class EventTest extends TestCase
->assertStatus(200);
}
+
+public function PurchaseOrderEvents()
+ {
+
+ /* Test fire new invoice */
+ $data = [
+ 'client_id' => $this->vendor->hashed_id,
+ 'number' => 'dude',
+ ];
+
+ $this->expectsEvents([
+ PurchaseOrderWasCreated::class,
+ PurchaseOrderWasUpdated::class,
+ PurchaseOrderWasArchived::class,
+ PurchaseOrderWasRestored::class,
+ PurchaseOrderWasDeleted::class,
+ ]);
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/purchase_orders/', $data)
+ ->assertStatus(200);
+
+
+ $arr = $response->json();
+
+ $data = [
+ 'client_id' => $this->vendor->hashed_id,
+ 'number' => 'dude2',
+ ];
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->put('/api/v1/purchase_orders/' . $arr['data']['id'], $data)
+ ->assertStatus(200);
+
+
+ $data = [
+ 'ids' => [$arr['data']['id']],
+ ];
+
+ $quote = PurchaseOrder::find($this->decodePrimaryKey($arr['data']['id']));
+ $quote->status_id = PurchaseOrder::STATUS_SENT;
+ $quote->save();
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/purchase_orders/bulk?action=archive', $data)
+ ->assertStatus(200);
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/purchase_orders/bulk?action=restore', $data)
+ ->assertStatus(200);
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/purchase_orders/bulk?action=approve', $data)
+ ->assertStatus(200);
+
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->post('/api/v1/purchase_orders/bulk?action=delete', $data)
+ ->assertStatus(200);
+ }
+
+
}
diff --git a/tests/Integration/HtmlGenerationTest.php b/tests/Integration/HtmlGenerationTest.php
index c977ade9820e..e769802df98c 100644
--- a/tests/Integration/HtmlGenerationTest.php
+++ b/tests/Integration/HtmlGenerationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/InvoiceUploadTest.php b/tests/Integration/InvoiceUploadTest.php
index 76b7fdd85027..dee30be8e873 100644
--- a/tests/Integration/InvoiceUploadTest.php
+++ b/tests/Integration/InvoiceUploadTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/MarkInvoicePaidTest.php b/tests/Integration/MarkInvoicePaidTest.php
index 216b2f0e591d..9d500cb5db7d 100644
--- a/tests/Integration/MarkInvoicePaidTest.php
+++ b/tests/Integration/MarkInvoicePaidTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/MultiDBUserTest.php b/tests/Integration/MultiDBUserTest.php
index 8f3abf239a0e..3fd5e263ce9e 100644
--- a/tests/Integration/MultiDBUserTest.php
+++ b/tests/Integration/MultiDBUserTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/PaymentDrivers/AuthorizeTest.php b/tests/Integration/PaymentDrivers/AuthorizeTest.php
index ed1415196206..88c6f5f82706 100644
--- a/tests/Integration/PaymentDrivers/AuthorizeTest.php
+++ b/tests/Integration/PaymentDrivers/AuthorizeTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration\PaymentDrivers;
diff --git a/tests/Integration/PostmarkWebhookTest.php b/tests/Integration/PostmarkWebhookTest.php
index 0dbd89d6513c..49aee28cae24 100644
--- a/tests/Integration/PostmarkWebhookTest.php
+++ b/tests/Integration/PostmarkWebhookTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/SendFailedEmailsTest.php b/tests/Integration/SendFailedEmailsTest.php
index 0e998e3f5d50..f9f0050fec07 100644
--- a/tests/Integration/SendFailedEmailsTest.php
+++ b/tests/Integration/SendFailedEmailsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/SystemHealthTest.php b/tests/Integration/SystemHealthTest.php
index 933791f7b78a..4a2535f9af31 100644
--- a/tests/Integration/SystemHealthTest.php
+++ b/tests/Integration/SystemHealthTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/UniqueEmailTest.php b/tests/Integration/UniqueEmailTest.php
index d17ca5e5d5e5..094b5dad5757 100644
--- a/tests/Integration/UniqueEmailTest.php
+++ b/tests/Integration/UniqueEmailTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/UpdateCompanyLedgerTest.php b/tests/Integration/UpdateCompanyLedgerTest.php
index 7bb68684cef2..e680c1fff144 100644
--- a/tests/Integration/UpdateCompanyLedgerTest.php
+++ b/tests/Integration/UpdateCompanyLedgerTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/UpdateCompanyUserTest.php b/tests/Integration/UpdateCompanyUserTest.php
index de8808955d5b..a948215d2d3a 100644
--- a/tests/Integration/UpdateCompanyUserTest.php
+++ b/tests/Integration/UpdateCompanyUserTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/UploadFileTest.php b/tests/Integration/UploadFileTest.php
index f179bc9d79d8..19ddb3ec8080 100644
--- a/tests/Integration/UploadFileTest.php
+++ b/tests/Integration/UploadFileTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/UploadLogoTest.php b/tests/Integration/UploadLogoTest.php
index 0d15326eda5a..28865ae25d82 100644
--- a/tests/Integration/UploadLogoTest.php
+++ b/tests/Integration/UploadLogoTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration;
diff --git a/tests/Integration/Validation/AmountValidationRuleTest.php b/tests/Integration/Validation/AmountValidationRuleTest.php
index 82a9b06c0a69..1dc8d04444fc 100644
--- a/tests/Integration/Validation/AmountValidationRuleTest.php
+++ b/tests/Integration/Validation/AmountValidationRuleTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Integration\Validation;
diff --git a/tests/MockAccountData.php b/tests/MockAccountData.php
index 93f22890117c..1cb37e72733a 100644
--- a/tests/MockAccountData.php
+++ b/tests/MockAccountData.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests;
@@ -217,6 +217,7 @@ trait MockAccountData
$settings->timezone_id = '1';
$settings->entity_send_time = 0;
+ $this->company->track_inventory = true;
$this->company->settings = $settings;
$this->company->save();
diff --git a/tests/MockUnitData.php b/tests/MockUnitData.php
index cb00239f3c78..411065293c71 100644
--- a/tests/MockUnitData.php
+++ b/tests/MockUnitData.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests;
diff --git a/tests/Pdf/PdfGenerationTest.php b/tests/Pdf/PdfGenerationTest.php
index 41d9f0a64503..c2f6a7f788e2 100644
--- a/tests/Pdf/PdfGenerationTest.php
+++ b/tests/Pdf/PdfGenerationTest.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Pdf;
diff --git a/tests/Unit/AutoBillInvoiceTest.php b/tests/Unit/AutoBillInvoiceTest.php
index dade531875fc..667e7503bbd1 100644
--- a/tests/Unit/AutoBillInvoiceTest.php
+++ b/tests/Unit/AutoBillInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/Base64Test.php b/tests/Unit/Base64Test.php
index 7aed2415f033..1224f9385a8b 100644
--- a/tests/Unit/Base64Test.php
+++ b/tests/Unit/Base64Test.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/BaseSettingsTest.php b/tests/Unit/BaseSettingsTest.php
index 64feb263ee9f..ebe04698c356 100644
--- a/tests/Unit/BaseSettingsTest.php
+++ b/tests/Unit/BaseSettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CentConversionTest.php b/tests/Unit/CentConversionTest.php
index 4823f6c788a1..de1be1ef598a 100644
--- a/tests/Unit/CentConversionTest.php
+++ b/tests/Unit/CentConversionTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/Chart/ChartCurrencyTest.php b/tests/Unit/Chart/ChartCurrencyTest.php
index c664839cd67e..4578d9eba650 100644
--- a/tests/Unit/Chart/ChartCurrencyTest.php
+++ b/tests/Unit/Chart/ChartCurrencyTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\Chart;
diff --git a/tests/Unit/ClientSettingsTest.php b/tests/Unit/ClientSettingsTest.php
index ea224af9d914..79fef36b7b36 100644
--- a/tests/Unit/ClientSettingsTest.php
+++ b/tests/Unit/ClientSettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CloneQuoteToInvoiceFactoryTest.php b/tests/Unit/CloneQuoteToInvoiceFactoryTest.php
index d179a3afec56..6b489a219a73 100644
--- a/tests/Unit/CloneQuoteToInvoiceFactoryTest.php
+++ b/tests/Unit/CloneQuoteToInvoiceFactoryTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CollectionMergingTest.php b/tests/Unit/CollectionMergingTest.php
index 57ab951ad9d0..46abe5461e06 100644
--- a/tests/Unit/CollectionMergingTest.php
+++ b/tests/Unit/CollectionMergingTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CompanyDocumentsTest.php b/tests/Unit/CompanyDocumentsTest.php
index bbd006d3551a..bd5cfa3e1d72 100644
--- a/tests/Unit/CompanyDocumentsTest.php
+++ b/tests/Unit/CompanyDocumentsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CompanySettingsSaveableTest.php b/tests/Unit/CompanySettingsSaveableTest.php
index e33493acafba..507151000fa3 100644
--- a/tests/Unit/CompanySettingsSaveableTest.php
+++ b/tests/Unit/CompanySettingsSaveableTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CompanySettingsTest.php b/tests/Unit/CompanySettingsTest.php
index de748e2f2839..4201ae1fb3f7 100644
--- a/tests/Unit/CompanySettingsTest.php
+++ b/tests/Unit/CompanySettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CompareCollectionTest.php b/tests/Unit/CompareCollectionTest.php
index a38391004939..9c99d2d6de5d 100644
--- a/tests/Unit/CompareCollectionTest.php
+++ b/tests/Unit/CompareCollectionTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CompareObjectTest.php b/tests/Unit/CompareObjectTest.php
index 1c08a8c49a31..9e83972cadbd 100644
--- a/tests/Unit/CompareObjectTest.php
+++ b/tests/Unit/CompareObjectTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CreditBalanceTest.php b/tests/Unit/CreditBalanceTest.php
index 84c941c75742..3d1292844b17 100644
--- a/tests/Unit/CreditBalanceTest.php
+++ b/tests/Unit/CreditBalanceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/CurrencyApiTest.php b/tests/Unit/CurrencyApiTest.php
index 24b14688b714..b7f607729e17 100644
--- a/tests/Unit/CurrencyApiTest.php
+++ b/tests/Unit/CurrencyApiTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/DatesTest.php b/tests/Unit/DatesTest.php
index b0326c3e85e6..417f39fa941e 100644
--- a/tests/Unit/DatesTest.php
+++ b/tests/Unit/DatesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/EncryptionSettingsTest.php b/tests/Unit/EncryptionSettingsTest.php
index c2d151ffb02e..668cb8f39aa5 100644
--- a/tests/Unit/EncryptionSettingsTest.php
+++ b/tests/Unit/EncryptionSettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/EntityTest.php b/tests/Unit/EntityTest.php
index 3e5c4edf3ada..c5221d08e8aa 100644
--- a/tests/Unit/EntityTest.php
+++ b/tests/Unit/EntityTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/EntityTranslationTest.php b/tests/Unit/EntityTranslationTest.php
index 9eaec378a5ea..54ad6619a599 100644
--- a/tests/Unit/EntityTranslationTest.php
+++ b/tests/Unit/EntityTranslationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/EvaluateStringTest.php b/tests/Unit/EvaluateStringTest.php
index 3da45572d978..23c16be810ff 100644
--- a/tests/Unit/EvaluateStringTest.php
+++ b/tests/Unit/EvaluateStringTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/FactoryCreationTest.php b/tests/Unit/FactoryCreationTest.php
index 7bdd0ceda9f1..acbad3e99d55 100644
--- a/tests/Unit/FactoryCreationTest.php
+++ b/tests/Unit/FactoryCreationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/GeneratesConvertedQuoteCounterTest.php b/tests/Unit/GeneratesConvertedQuoteCounterTest.php
index a66e390ff8c1..c10827f94dc9 100644
--- a/tests/Unit/GeneratesConvertedQuoteCounterTest.php
+++ b/tests/Unit/GeneratesConvertedQuoteCounterTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/GeneratesCounterTest.php b/tests/Unit/GeneratesCounterTest.php
index 34205857bdcf..b988de84647a 100644
--- a/tests/Unit/GeneratesCounterTest.php
+++ b/tests/Unit/GeneratesCounterTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/GoogleAnalyticsTest.php b/tests/Unit/GoogleAnalyticsTest.php
index 9a8e85b7214b..6c9f8a4ea7e7 100644
--- a/tests/Unit/GoogleAnalyticsTest.php
+++ b/tests/Unit/GoogleAnalyticsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/GroupSettingsTest.php b/tests/Unit/GroupSettingsTest.php
index 457415720c60..05ffa3a4b063 100644
--- a/tests/Unit/GroupSettingsTest.php
+++ b/tests/Unit/GroupSettingsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/GroupTest.php b/tests/Unit/GroupTest.php
index 85ed23743390..e7b9f7d23a5a 100644
--- a/tests/Unit/GroupTest.php
+++ b/tests/Unit/GroupTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php
index 1516ef513adb..99107d0b3220 100644
--- a/tests/Unit/HelpersTest.php
+++ b/tests/Unit/HelpersTest.php
@@ -7,7 +7,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvitationTest.php b/tests/Unit/InvitationTest.php
index e8dcdb96f34e..7cc7297d2f4a 100644
--- a/tests/Unit/InvitationTest.php
+++ b/tests/Unit/InvitationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceActionsTest.php b/tests/Unit/InvoiceActionsTest.php
index 66a4eef47f3e..351392d05032 100644
--- a/tests/Unit/InvoiceActionsTest.php
+++ b/tests/Unit/InvoiceActionsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceInclusiveTest.php b/tests/Unit/InvoiceInclusiveTest.php
index 01048d069b72..27c2b9157e7f 100644
--- a/tests/Unit/InvoiceInclusiveTest.php
+++ b/tests/Unit/InvoiceInclusiveTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceItemInclusiveTest.php b/tests/Unit/InvoiceItemInclusiveTest.php
index d4764b4e4d89..e0e85d53d3e9 100644
--- a/tests/Unit/InvoiceItemInclusiveTest.php
+++ b/tests/Unit/InvoiceItemInclusiveTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceItemTest.php b/tests/Unit/InvoiceItemTest.php
index e5af07f11dc9..8261b30525e4 100644
--- a/tests/Unit/InvoiceItemTest.php
+++ b/tests/Unit/InvoiceItemTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceItemV2Test.php b/tests/Unit/InvoiceItemV2Test.php
index 28b0cd2f5e4f..28cd71e4add3 100644
--- a/tests/Unit/InvoiceItemV2Test.php
+++ b/tests/Unit/InvoiceItemV2Test.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceStatusTest.php b/tests/Unit/InvoiceStatusTest.php
index fb58f5f74d85..1ea941f0c7d2 100644
--- a/tests/Unit/InvoiceStatusTest.php
+++ b/tests/Unit/InvoiceStatusTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/InvoiceTest.php b/tests/Unit/InvoiceTest.php
index 1b857be6f6c9..7be9776c6cf0 100644
--- a/tests/Unit/InvoiceTest.php
+++ b/tests/Unit/InvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/MakesDatesTest.php b/tests/Unit/MakesDatesTest.php
index f21a6fae4c71..1823bff1e2d2 100644
--- a/tests/Unit/MakesDatesTest.php
+++ b/tests/Unit/MakesDatesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/MakesInvoiceValuesTest.php b/tests/Unit/MakesInvoiceValuesTest.php
index 9d7bd043054c..1d4499f1d337 100644
--- a/tests/Unit/MakesInvoiceValuesTest.php
+++ b/tests/Unit/MakesInvoiceValuesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/Migration/FeesAndLimitsTest.php b/tests/Unit/Migration/FeesAndLimitsTest.php
index fe9a353077b4..94b8733943d1 100644
--- a/tests/Unit/Migration/FeesAndLimitsTest.php
+++ b/tests/Unit/Migration/FeesAndLimitsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\Migration;
diff --git a/tests/Unit/Migration/ImportTest.php b/tests/Unit/Migration/ImportTest.php
index 00adcc8315b9..3be2eceb0512 100644
--- a/tests/Unit/Migration/ImportTest.php
+++ b/tests/Unit/Migration/ImportTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\Migration;
diff --git a/tests/Unit/NestedCollectionTest.php b/tests/Unit/NestedCollectionTest.php
index 4ca9a4c59f05..41cc04580123 100644
--- a/tests/Unit/NestedCollectionTest.php
+++ b/tests/Unit/NestedCollectionTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/NumberTest.php b/tests/Unit/NumberTest.php
index 2f177f27f8c6..4be5e1d19451 100644
--- a/tests/Unit/NumberTest.php
+++ b/tests/Unit/NumberTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/PdfVariablesTest.php b/tests/Unit/PdfVariablesTest.php
index a2f01c9a14c4..609d7c6043e2 100644
--- a/tests/Unit/PdfVariablesTest.php
+++ b/tests/Unit/PdfVariablesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/Phantom/PhantomJsTest.php b/tests/Unit/Phantom/PhantomJsTest.php
index afb13d771dbf..bc0e668a1953 100644
--- a/tests/Unit/Phantom/PhantomJsTest.php
+++ b/tests/Unit/Phantom/PhantomJsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\Phantom;
diff --git a/tests/Unit/PrimaryKeyTransformationTest.php b/tests/Unit/PrimaryKeyTransformationTest.php
index 2766e2c9e48d..4b39cfebe604 100644
--- a/tests/Unit/PrimaryKeyTransformationTest.php
+++ b/tests/Unit/PrimaryKeyTransformationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RangeDetectionTest.php b/tests/Unit/RangeDetectionTest.php
index 1d8540502fc7..b0a6979f0905 100644
--- a/tests/Unit/RangeDetectionTest.php
+++ b/tests/Unit/RangeDetectionTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RecurringDateTest.php b/tests/Unit/RecurringDateTest.php
index db393f928bd3..e2aab295e041 100644
--- a/tests/Unit/RecurringDateTest.php
+++ b/tests/Unit/RecurringDateTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RecurringDatesTest.php b/tests/Unit/RecurringDatesTest.php
index 2299a1051acc..3e744f00180d 100644
--- a/tests/Unit/RecurringDatesTest.php
+++ b/tests/Unit/RecurringDatesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RecurringDueDatesTest.php b/tests/Unit/RecurringDueDatesTest.php
index f4b37e472393..8f56a4abdbe7 100644
--- a/tests/Unit/RecurringDueDatesTest.php
+++ b/tests/Unit/RecurringDueDatesTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RecurringExpenseCloneTest.php b/tests/Unit/RecurringExpenseCloneTest.php
index 6dee502b112c..94648c35a6c6 100644
--- a/tests/Unit/RecurringExpenseCloneTest.php
+++ b/tests/Unit/RecurringExpenseCloneTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RedisVsDatabaseTest.php b/tests/Unit/RedisVsDatabaseTest.php
index 8a67f10fd6f9..c10ddde44c23 100644
--- a/tests/Unit/RedisVsDatabaseTest.php
+++ b/tests/Unit/RedisVsDatabaseTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RefundUnitTest.php b/tests/Unit/RefundUnitTest.php
index 1dcc54ae0412..b9ee3f7e7823 100644
--- a/tests/Unit/RefundUnitTest.php
+++ b/tests/Unit/RefundUnitTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/RelationExistsTest.php b/tests/Unit/RelationExistsTest.php
index 0ce61b8801bb..0494fec8e384 100644
--- a/tests/Unit/RelationExistsTest.php
+++ b/tests/Unit/RelationExistsTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/S3CleanupTest.php b/tests/Unit/S3CleanupTest.php
index b4056ff4f5e0..61c87d3c3b81 100644
--- a/tests/Unit/S3CleanupTest.php
+++ b/tests/Unit/S3CleanupTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/SentryTest.php b/tests/Unit/SentryTest.php
index 01a73db2c0ec..d3dc02c259ca 100644
--- a/tests/Unit/SentryTest.php
+++ b/tests/Unit/SentryTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/SettingsSaverTest.php b/tests/Unit/SettingsSaverTest.php
index 3f473efcb4fe..7162961bbf43 100644
--- a/tests/Unit/SettingsSaverTest.php
+++ b/tests/Unit/SettingsSaverTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/Shop/ShopProfileTest.php b/tests/Unit/Shop/ShopProfileTest.php
index 7ee576987c66..d7c8afad0f28 100644
--- a/tests/Unit/Shop/ShopProfileTest.php
+++ b/tests/Unit/Shop/ShopProfileTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\Shop;
diff --git a/tests/Unit/SystemHealthTest.php b/tests/Unit/SystemHealthTest.php
index 9df0bcefba0d..a6a1fee08d52 100644
--- a/tests/Unit/SystemHealthTest.php
+++ b/tests/Unit/SystemHealthTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/TaskSortingTest.php b/tests/Unit/TaskSortingTest.php
index 65d2b5245285..edeb59a27542 100644
--- a/tests/Unit/TaskSortingTest.php
+++ b/tests/Unit/TaskSortingTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/TranslationTest.php b/tests/Unit/TranslationTest.php
index 6042f9d50a54..9a23d5476097 100644
--- a/tests/Unit/TranslationTest.php
+++ b/tests/Unit/TranslationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/UBLInvoiceTest.php b/tests/Unit/UBLInvoiceTest.php
index 87be6991a0a2..125e6c609dd6 100644
--- a/tests/Unit/UBLInvoiceTest.php
+++ b/tests/Unit/UBLInvoiceTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/UrlTest.php b/tests/Unit/UrlTest.php
index e3a4f64050b2..b0a4c8a652dc 100644
--- a/tests/Unit/UrlTest.php
+++ b/tests/Unit/UrlTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;
diff --git a/tests/Unit/ValidationRules/BlacklistValidationTest.php b/tests/Unit/ValidationRules/BlacklistValidationTest.php
index a814082add12..a06adfa91429 100644
--- a/tests/Unit/ValidationRules/BlacklistValidationTest.php
+++ b/tests/Unit/ValidationRules/BlacklistValidationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\ValidationRules;
diff --git a/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php b/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php
index 28527283741e..a833c1d21834 100644
--- a/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php
+++ b/tests/Unit/ValidationRules/EmailBlacklistValidationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\ValidationRules;
diff --git a/tests/Unit/ValidationRules/UniqueInvoiceNumberValidationTest.php b/tests/Unit/ValidationRules/UniqueInvoiceNumberValidationTest.php
index c443fd6604cd..fbf37216cc0b 100644
--- a/tests/Unit/ValidationRules/UniqueInvoiceNumberValidationTest.php
+++ b/tests/Unit/ValidationRules/UniqueInvoiceNumberValidationTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit\ValidationRules;
diff --git a/tests/Unit/ZeroDecimalTest.php b/tests/Unit/ZeroDecimalTest.php
index 4bd94103d1b7..2c9260e27483 100644
--- a/tests/Unit/ZeroDecimalTest.php
+++ b/tests/Unit/ZeroDecimalTest.php
@@ -6,7 +6,7 @@
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
- * @license https://opensource.org/licenses/AAL
+ * @license https://www.elastic.co/licensing/elastic-license
*/
namespace Tests\Unit;