diff --git a/app/Factory/CloneQuoteToInvoiceFactory.php b/app/Factory/CloneQuoteToInvoiceFactory.php
index 4b0eb4f91e62..936ca18c5706 100644
--- a/app/Factory/CloneQuoteToInvoiceFactory.php
+++ b/app/Factory/CloneQuoteToInvoiceFactory.php
@@ -46,7 +46,14 @@ class CloneQuoteToInvoiceFactory
$invoice->date = now()->format('Y-m-d');
$invoice->balance = 0;
$invoice->deleted_at = null;
-
+ $invoice->next_send_date = null;
+ $invoice->reminder1_sent = null;
+ $invoice->reminder2_sent = null;
+ $invoice->reminder3_sent = null;
+ $invoice->reminder_last_sent = null;
+ $invoice->last_sent_date = null;
+ $invoice->last_viewed = null;
+
return $invoice;
}
}
diff --git a/app/Filters/ExpenseFilters.php b/app/Filters/ExpenseFilters.php
index 11d4ee46ae26..d5cea4581ee6 100644
--- a/app/Filters/ExpenseFilters.php
+++ b/app/Filters/ExpenseFilters.php
@@ -36,7 +36,7 @@ class ExpenseFilters extends QueryFilters
}
return $this->builder->where(function ($query) use ($filter) {
- $query->where('expenses.name', 'like', '%'.$filter.'%')
+ $query->where('expenses.public_notes', 'like', '%'.$filter.'%')
->orWhere('expenses.id_number', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value1', 'like', '%'.$filter.'%')
->orWhere('expenses.custom_value2', 'like', '%'.$filter.'%')
@@ -94,7 +94,10 @@ class ExpenseFilters extends QueryFilters
{
$sort_col = explode('|', $sort);
- return $this->builder->orderBy($sort_col[0], $sort_col[1]);
+ if(is_array($sort_col) && in_array($sort_col[1], ['asc', 'desc']) && in_array($sort_col[0], ['public_notes', 'date', 'id_number', 'custom_value1', 'custom_value2', 'custom_value3', 'custom_value4']))
+ return $this->builder->orderBy($sort_col[0], $sort_col[1]);
+
+ return $this->builder;
}
/**
diff --git a/app/Http/Controllers/Auth/ContactForgotPasswordController.php b/app/Http/Controllers/Auth/ContactForgotPasswordController.php
index 184d09475c2b..9481a7d9d277 100644
--- a/app/Http/Controllers/Auth/ContactForgotPasswordController.php
+++ b/app/Http/Controllers/Auth/ContactForgotPasswordController.php
@@ -60,8 +60,15 @@ class ContactForgotPasswordController extends Controller
{
$account_id = $request->has('account_id') ? $request->get('account_id') : 1;
$account = Account::find($account_id);
- $company = $account->companies->first();
+ if($request->has('company_key'))
+ $company = Company::where('company_key', $request->input('company_key'))->first();
+ else
+ $company = $account->companies->first();
+
+ if(!$account)
+ $account = Account::first();
+
return $this->render('auth.passwords.request', [
'title' => 'Client Password Reset',
'passwordEmailRoute' => 'client.password.email',
@@ -90,7 +97,9 @@ class ContactForgotPasswordController extends Controller
// $user = MultiDB::hasContact($request->input('email'));
$company = Company::where('company_key', $request->input('company_key'))->first();
- $contact = MultiDB::findContact(['company_id' => $company->id, 'email' => $request->input('email')]);
+ //$contact = MultiDB::findContact(['company_id' => $company->id, 'email' => $request->input('email')]);
+ nlog(['company_id' => $company->id, 'email' => $request->input('email')]);
+ $contact = ClientContact::where(['company_id' => $company->id, 'email' => $request->input('email')])->first();
$response = false;
diff --git a/app/Http/Controllers/BaseController.php b/app/Http/Controllers/BaseController.php
index 938b69ed3fb3..716d0deb2c59 100644
--- a/app/Http/Controllers/BaseController.php
+++ b/app/Http/Controllers/BaseController.php
@@ -255,7 +255,7 @@ class BaseController extends Controller
$query->where('expenses.user_id', $user->id)->orWhere('expenses.assigned_user_id', $user->id);
},
'company.groups' => function ($query) use ($updated_at, $user) {
- $query->where('updated_at', '>=', $updated_at)->with('documents');
+ $query->whereNotNull('updated_at')->with('documents');
// if(!$user->isAdmin())
// $query->where('group_settings.user_id', $user->id);
@@ -275,7 +275,7 @@ class BaseController extends Controller
},
'company.payment_terms'=> function ($query) use ($updated_at, $user) {
- $query->where('updated_at', '>=', $updated_at);
+ $query->whereNotNull('updated_at');
if(!$user->isAdmin())
$query->where('payment_terms.user_id', $user->id);
@@ -346,7 +346,6 @@ class BaseController extends Controller
},
'company.subscriptions'=> function ($query) use($updated_at, $user) {
- // $query->where('updated_at', '>=', $updated_at);
$query->whereNotNull('updated_at');
if(!$user->isAdmin())
diff --git a/app/Http/Controllers/ClientPortal/DocumentController.php b/app/Http/Controllers/ClientPortal/DocumentController.php
index 54d25ea99d90..fe48891b05bf 100644
--- a/app/Http/Controllers/ClientPortal/DocumentController.php
+++ b/app/Http/Controllers/ClientPortal/DocumentController.php
@@ -15,6 +15,7 @@ namespace App\Http\Controllers\ClientPortal;
use App\Http\Controllers\Controller;
use App\Http\Requests\ClientPortal\Documents\ShowDocumentRequest;
use App\Http\Requests\Document\DownloadMultipleDocumentsRequest;
+use App\Libraries\MultiDB;
use App\Models\Document;
use App\Utils\TempFile;
use App\Utils\Traits\MakesHash;
@@ -55,6 +56,8 @@ class DocumentController extends Controller
public function publicDownload(string $document_hash)
{
+ MultiDB::documentFindAndSetDb($document_hash);
+
$document = Document::where('hash', $document_hash)->firstOrFail();
$headers = [];
diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php
index 750af7ee433a..335a31f2b413 100644
--- a/app/Http/Controllers/ClientPortal/InvitationController.php
+++ b/app/Http/Controllers/ClientPortal/InvitationController.php
@@ -71,6 +71,8 @@ class InvitationController extends Controller
if(!in_array($entity, ['invoice', 'credit', 'quote', 'recurring_invoice']))
return response()->json(['message' => 'Invalid resource request']);
+ $is_silent = 'false';
+
$key = $entity.'_id';
$entity_obj = 'App\Models\\'.ucfirst(Str::camel($entity)).'Invitation';
@@ -111,8 +113,16 @@ class InvitationController extends Controller
$this->fireEntityViewedEvent($invitation, $entity);
}
+ else{
+ $is_silent = 'true';
+
+ return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent]);
+
+ }
return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key})]);
+
+
}
private function fireEntityViewedEvent($invitation, $entity_string)
diff --git a/app/Http/Controllers/ClientPortal/NinjaPlanController.php b/app/Http/Controllers/ClientPortal/NinjaPlanController.php
index c9047f7ba68b..ba817d4b5720 100644
--- a/app/Http/Controllers/ClientPortal/NinjaPlanController.php
+++ b/app/Http/Controllers/ClientPortal/NinjaPlanController.php
@@ -71,7 +71,8 @@ class NinjaPlanController extends Controller
{
//harvest the current plan
$data = [];
-
+ $data['late_invoice'] = false;
+
if(MultiDB::findAndSetDbByAccountKey(Auth::guard('contact')->user()->client->custom_value2))
{
$account = Account::where('key', Auth::guard('contact')->user()->client->custom_value2)->first();
diff --git a/app/Http/Livewire/DocumentsTable.php b/app/Http/Livewire/DocumentsTable.php
index 73fee5be016e..6fb8bd644e87 100644
--- a/app/Http/Livewire/DocumentsTable.php
+++ b/app/Http/Livewire/DocumentsTable.php
@@ -74,7 +74,7 @@ class DocumentsTable extends Component
break;
case 'expenses':
- $this->query = $this->expenses();
+ // $this->query = $this->expenses();
break;
case 'invoices':
diff --git a/app/Http/Livewire/RequiredClientInfo.php b/app/Http/Livewire/RequiredClientInfo.php
index 71f0ac4f5733..06d3915fc8c8 100644
--- a/app/Http/Livewire/RequiredClientInfo.php
+++ b/app/Http/Livewire/RequiredClientInfo.php
@@ -60,7 +60,7 @@ class RequiredClientInfo extends Component
'contact_first_name' => 'first_name',
'contact_last_name' => 'last_name',
- // 'contact_email' => 'email',
+ 'contact_email' => 'email',
// 'contact_phone' => 'phone',
];
diff --git a/app/Http/Middleware/SetDomainNameDb.php b/app/Http/Middleware/SetDomainNameDb.php
index ab49e9ef15dd..8d035f04af9a 100644
--- a/app/Http/Middleware/SetDomainNameDb.php
+++ b/app/Http/Middleware/SetDomainNameDb.php
@@ -49,7 +49,7 @@ class SetDomainNameDb
];
if($company = MultiDB::findAndSetDbByDomain($query)){
- $request->request->add(['account_id' => $company->account_id]);
+ $request->request->add(['account_id' => $company->account_id, 'company_key' => $company->company_key]);
}
else
{
@@ -71,7 +71,7 @@ class SetDomainNameDb
];
if($company = MultiDB::findAndSetDbByDomain($query)){
- $request->request->add(['account_id' => $company->account_id]);
+ $request->request->add(['account_id' => $company->account_id, 'company_key' => $company->company_key]);
}
else
{
diff --git a/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php b/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php
index 4c05a0fbab6f..0764ad47eeac 100644
--- a/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php
+++ b/app/Http/Requests/ClientPortal/Subscriptions/ShowPlanSwitchRequest.php
@@ -17,6 +17,7 @@ class ShowPlanSwitchRequest extends FormRequest
*/
public function authorize()
{
+
return (bool)$this->recurring_invoice->subscription->allow_plan_changes;
}
diff --git a/app/Http/Requests/Company/StoreCompanyRequest.php b/app/Http/Requests/Company/StoreCompanyRequest.php
index 1c8fa3b3d82c..fbb254e1ac0c 100644
--- a/app/Http/Requests/Company/StoreCompanyRequest.php
+++ b/app/Http/Requests/Company/StoreCompanyRequest.php
@@ -81,6 +81,9 @@ class StoreCompanyRequest extends Request
}
}
+ if(array_key_exists('portal_domain', $input))
+ $input['portal_domain'] = strtolower($input['portal_domain']);
+
$this->replace($input);
}
}
diff --git a/app/Http/Requests/Company/UpdateCompanyRequest.php b/app/Http/Requests/Company/UpdateCompanyRequest.php
index d89561baeef6..59f64e06946b 100644
--- a/app/Http/Requests/Company/UpdateCompanyRequest.php
+++ b/app/Http/Requests/Company/UpdateCompanyRequest.php
@@ -68,8 +68,10 @@ class UpdateCompanyRequest extends Request
{
$input = $this->all();
- if(Ninja::isHosted() && array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1)
+ if(Ninja::isHosted() && array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1){
$input['portal_domain'] = $this->addScheme($input['portal_domain']);
+ $input['portal_domain'] = strtolower($input['portal_domain']);
+ }
if (array_key_exists('settings', $input)) {
$input['settings'] = $this->filterSaveableSettings($input['settings']);
diff --git a/app/Import/Transformers/BaseTransformer.php b/app/Import/Transformers/BaseTransformer.php
index f2bdb227d05e..1e0a5c7ff0a2 100644
--- a/app/Import/Transformers/BaseTransformer.php
+++ b/app/Import/Transformers/BaseTransformer.php
@@ -62,20 +62,30 @@ class BaseTransformer
public function getClient($client_name, $client_email) {
$clients = $this->maps['company']->clients;
- $clients = $clients->where( 'id_number', $client_name );
+ $client_id_search = $clients->where( 'id_number', $client_name );
- if ( $clients->count() >= 1 ) {
- return $clients->first()->id;
+ if ( $client_id_search->count() >= 1 ) {
+ return $client_id_search->first()->id;
+ nlog("found via id number");
}
+ $client_name_search = $clients->where( 'name', $client_name );
+
+ if ( $client_name_search->count() >= 1 ) {
+ return $client_name_search->first()->id;
+ nlog("found via name");
+ }
+
if ( ! empty( $client_email ) ) {
$contacts = ClientContact::where( 'company_id', $this->maps['company']->id )
->where( 'email', $client_email );
if ( $contacts->count() >= 1 ) {
return $contacts->first()->client_id;
+nlog("found via contact");
}
}
+nlog("did not find client");
return null;
}
diff --git a/app/Import/Transformers/Csv/InvoiceTransformer.php b/app/Import/Transformers/Csv/InvoiceTransformer.php
index 9e3db2db90e6..2e4ed09841a1 100644
--- a/app/Import/Transformers/Csv/InvoiceTransformer.php
+++ b/app/Import/Transformers/Csv/InvoiceTransformer.php
@@ -92,7 +92,7 @@ class InvoiceTransformer extends BaseTransformer {
'amount' => $this->getFloat( $invoice_data, 'invoice.amount' ),
],
];
- } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) ) {
+ } elseif ( isset( $transformed['amount'] ) && isset( $transformed['balance'] ) && ($transformed['amount'] != $transformed['balance'])) {
$transformed['payments'] = [
[
'date' => isset( $invoice_data['payment.date'] ) ? date( 'Y-m-d', strtotime( $invoice_data['payment.date'] ) ) : date( 'y-m-d' ),
@@ -126,6 +126,8 @@ class InvoiceTransformer extends BaseTransformer {
}
$transformed['line_items'] = $line_items;
+nlog($transformed);
+
return $transformed;
}
}
diff --git a/app/Jobs/Cron/AutoBill.php b/app/Jobs/Cron/AutoBill.php
index cb3492c03f0d..22398f69748c 100644
--- a/app/Jobs/Cron/AutoBill.php
+++ b/app/Jobs/Cron/AutoBill.php
@@ -53,7 +53,7 @@ class AutoBill
nlog("autobill {$this->invoice->id}");
- $this->invoice->service()->autoBill()->save();
+ $this->invoice->service()->autoBill();
}
catch(\Exception $e) {
diff --git a/app/Jobs/Entity/CreateEntityPdf.php b/app/Jobs/Entity/CreateEntityPdf.php
index b7660e7bcb99..41f788111f03 100644
--- a/app/Jobs/Entity/CreateEntityPdf.php
+++ b/app/Jobs/Entity/CreateEntityPdf.php
@@ -115,9 +115,6 @@ class CreateEntityPdf implements ShouldQueue
/* Set customized translations _NOW_ */
$t->replace(Ninja::transformTranslations($this->client->getMergedSettings()));
- $translate = microtime(true);
- // nlog("Translate ". $translate - $start);
-
if (config('ninja.phantomjs_pdf_generation') || config('ninja.pdf_generator') == 'phantom') {
return (new Phantom)->generate($this->invitation);
}
@@ -142,9 +139,6 @@ class CreateEntityPdf implements ShouldQueue
$entity_design_id = $this->entity->design_id ? $this->entity->design_id : $this->decodePrimaryKey($this->client->getSetting($entity_design_id));
- // if(!$this->company->account->hasFeature(Account::FEATURE_DIFFERENT_DESIGNS))
- // $entity_design_id = 2;
-
$design = Design::find($entity_design_id);
/* Catch all in case migration doesn't pass back a valid design */
@@ -153,9 +147,6 @@ class CreateEntityPdf implements ShouldQueue
$html = new HtmlEngine($this->invitation);
- $design_time = microtime(true);
- // nlog("Design ". $design_time - $translate);
-
if ($design->is_custom) {
$options = [
'custom_partials' => json_decode(json_encode($design->design), true)
@@ -167,9 +158,6 @@ class CreateEntityPdf implements ShouldQueue
$variables = $html->generateLabelsAndValues();
- $labels_time = microtime(true);
- // nlog("Labels ". $labels_time - $design_time);
-
$state = [
'template' => $template->elements([
'client' => $this->client,
@@ -192,10 +180,6 @@ class CreateEntityPdf implements ShouldQueue
->design($template)
->build();
-
- $template_time = microtime(true);
- // nlog("Template Build ". $template_time - $labels_time);
-
$pdf = null;
try {
@@ -215,10 +199,6 @@ class CreateEntityPdf implements ShouldQueue
info($maker->getCompiledHTML());
}
-
- $pdf_time = microtime(true);
- // nlog("PDF time " . $pdf_time - $template_time);
-
if ($pdf) {
try{
diff --git a/app/Jobs/Entity/CreateRawPdf.php b/app/Jobs/Entity/CreateRawPdf.php
index c2c28b0c23f1..585deb9dbe35 100644
--- a/app/Jobs/Entity/CreateRawPdf.php
+++ b/app/Jobs/Entity/CreateRawPdf.php
@@ -188,9 +188,9 @@ class CreateRawPdf implements ShouldQueue
nlog(print_r($e->getMessage(), 1));
}
- // if (config('ninja.log_pdf_html')) {
+ if (config('ninja.log_pdf_html')) {
info($maker->getCompiledHTML());
- // }
+ }
if ($pdf)
return $pdf;
diff --git a/app/Jobs/Entity/EmailEntity.php b/app/Jobs/Entity/EmailEntity.php
index e2683196f57e..53d4dfbd9e3c 100644
--- a/app/Jobs/Entity/EmailEntity.php
+++ b/app/Jobs/Entity/EmailEntity.php
@@ -112,6 +112,9 @@ class EmailEntity implements ShouldQueue
App::setLocale($this->invitation->contact->preferredLocale());
$t->replace(Ninja::transformTranslations($this->settings));
+ /* Mark entity sent */
+ $this->entity->service()->markSent()->save();
+
$nmo = new NinjaMailerObject;
$nmo->mailable = new TemplateEmail($this->email_entity_builder, $this->invitation->contact, $this->invitation);
$nmo->company = $this->company;
@@ -124,8 +127,7 @@ class EmailEntity implements ShouldQueue
NinjaMailerJob::dispatchNow($nmo);
- /* Mark entity sent */
- $this->entity->service()->markSent()->save();
+
}
private function resolveEntityString() :string
diff --git a/app/Jobs/Import/CSVImport.php b/app/Jobs/Import/CSVImport.php
index d4e0dcf56c0e..27626ad9f484 100644
--- a/app/Jobs/Import/CSVImport.php
+++ b/app/Jobs/Import/CSVImport.php
@@ -332,18 +332,21 @@ class CSVImport implements ShouldQueue {
$invoice = $invoice->service()->markViewed()->save();
}
- if ( $invoice->status_id === Invoice::STATUS_SENT ) {
+ if( $invoice->status_id === Invoice::STATUS_DRAFT ){
+
+ }
+ elseif ( $invoice->status_id === Invoice::STATUS_SENT ) {
$invoice = $invoice->service()->markSent()->save();
}
-
- if ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) {
- if ( $invoice->balance < $invoice->amount ) {
- $invoice->status_id = Invoice::STATUS_PARTIAL;
- $invoice->save();
- } elseif ( $invoice->balance <= 0 ) {
+ elseif ( $invoice->status_id <= Invoice::STATUS_SENT && $invoice->amount > 0 ) {
+ if ( $invoice->balance <= 0 ) {
$invoice->status_id = Invoice::STATUS_PAID;
$invoice->save();
}
+ elseif ( $invoice->balance != $invoice->amount ) {
+ $invoice->status_id = Invoice::STATUS_PARTIAL;
+ $invoice->save();
+ }
}
diff --git a/app/Jobs/Mail/PaymentFailedMailer.php b/app/Jobs/Mail/PaymentFailedMailer.php
index da316645ae98..9bdeafd63816 100644
--- a/app/Jobs/Mail/PaymentFailedMailer.php
+++ b/app/Jobs/Mail/PaymentFailedMailer.php
@@ -23,6 +23,7 @@ use App\Models\Company;
use App\Models\Invoice;
use App\Models\PaymentHash;
use App\Models\User;
+use App\Utils\Traits\MakesHash;
use App\Utils\Traits\Notifications\UserNotifies;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
@@ -35,7 +36,7 @@ use Illuminate\Support\Facades\Mail;
class PaymentFailedMailer implements ShouldQueue
{
- use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, UserNotifies;
+ use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, UserNotifies, MakesHash;
public ?PaymentHash $payment_hash;
@@ -80,7 +81,7 @@ class PaymentFailedMailer implements ShouldQueue
if($this->payment_hash){
$amount = array_sum(array_column($this->payment_hash->invoices(), 'amount')) + $this->payment_hash->fee_total;
- $invoice = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id')))->withTrashed()->first();
+ $invoice = Invoice::whereIn('id', $this->transformKeys(array_column($this->payment_hash->invoices(), 'invoice_id')))->withTrashed()->first();
}
//iterate through company_users
diff --git a/app/Jobs/RecurringInvoice/SendRecurring.php b/app/Jobs/RecurringInvoice/SendRecurring.php
index b5cd123ce6ba..46ba3400fc3e 100644
--- a/app/Jobs/RecurringInvoice/SendRecurring.php
+++ b/app/Jobs/RecurringInvoice/SendRecurring.php
@@ -145,7 +145,7 @@ class SendRecurring implements ShouldQueue
if ($invoice->client->getSetting('auto_bill_date') == 'on_send_date' && $invoice->auto_bill_enabled) {
nlog("attempting to autobill {$invoice->number}");
- $invoice->service()->autoBill()->save();
+ $invoice->service()->autoBill();
}
elseif($invoice->client->getSetting('auto_bill_date') == 'on_due_date' && $invoice->auto_bill_enabled) {
@@ -153,7 +153,7 @@ class SendRecurring implements ShouldQueue
if($invoice->due_date && Carbon::parse($invoice->due_date)->startOfDay()->lte(now()->startOfDay())) {
nlog("attempting to autobill {$invoice->number}");
- $invoice->service()->autoBill()->save();
+ $invoice->service()->autoBill();
}
diff --git a/app/Mail/Engine/CreditEmailEngine.php b/app/Mail/Engine/CreditEmailEngine.php
index 68bd72ebbc22..ad9645b6c8f7 100644
--- a/app/Mail/Engine/CreditEmailEngine.php
+++ b/app/Mail/Engine/CreditEmailEngine.php
@@ -69,6 +69,9 @@ class CreditEmailEngine extends BaseEmailEngine
null,
$this->client->locale()
);
+
+ $body_template .= '
$view_button
';
+
}
if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) {
diff --git a/app/Mail/Engine/InvoiceEmailEngine.php b/app/Mail/Engine/InvoiceEmailEngine.php
index afe907d348b6..dad4b78f0f02 100644
--- a/app/Mail/Engine/InvoiceEmailEngine.php
+++ b/app/Mail/Engine/InvoiceEmailEngine.php
@@ -74,6 +74,9 @@ class InvoiceEmailEngine extends BaseEmailEngine
null,
$this->client->locale()
);
+
+ $body_template .= '$view_button
';
+
}
if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) {
diff --git a/app/Mail/Engine/QuoteEmailEngine.php b/app/Mail/Engine/QuoteEmailEngine.php
index 2d33077210b0..98c4b394c400 100644
--- a/app/Mail/Engine/QuoteEmailEngine.php
+++ b/app/Mail/Engine/QuoteEmailEngine.php
@@ -44,6 +44,7 @@ class QuoteEmailEngine extends BaseEmailEngine
public function build()
{
+
App::forgetInstance('translator');
$t = app('translator');
$t->replace(Ninja::transformTranslations($this->client->getMergedSettings()));
@@ -56,21 +57,25 @@ class QuoteEmailEngine extends BaseEmailEngine
} else {
$body_template = $this->client->getSetting('email_template_'.$this->reminder_template);
}
-
+
/* Use default translations if a custom message has not been set*/
if (iconv_strlen($body_template) == 0) {
+
$body_template = trans(
'texts.quote_message',
[
'quote' => $this->quote->number,
'company' => $this->quote->company->present()->name(),
- 'amount' => Number::formatMoney($this->quote->balance, $this->client),
+ 'amount' => Number::formatMoney($this->quote->amount, $this->client),
],
null,
$this->client->locale()
);
+
+ $body_template .= '$view_button
';
}
+
if (is_array($this->template_data) && array_key_exists('subject', $this->template_data) && strlen($this->template_data['subject']) > 0) {
$subject_template = $this->template_data['subject'];
} else {
@@ -99,7 +104,6 @@ class QuoteEmailEngine extends BaseEmailEngine
->setViewText(ctrans('texts.view_quote'))
->setInvitation($this->invitation);
-
if ($this->client->getSetting('pdf_email_attachment') !== false && $this->quote->company->account->hasFeature(Account::FEATURE_PDF_ATTACHMENT)) {
if(Ninja::isHosted())
diff --git a/app/Mail/TemplateEmail.php b/app/Mail/TemplateEmail.php
index 4f8e221b0634..2e7e589e9325 100644
--- a/app/Mail/TemplateEmail.php
+++ b/app/Mail/TemplateEmail.php
@@ -52,7 +52,8 @@ class TemplateEmail extends Mailable
public function build()
{
- $template_name = 'email.template.'.$this->build_email->getTemplate();
+
+ $template_name = 'email.template.'.$this->build_email->getTemplate();
if ($this->build_email->getTemplate() == 'light' || $this->build_email->getTemplate() == 'dark') {
$template_name = 'email.template.client';
diff --git a/app/Models/Quote.php b/app/Models/Quote.php
index b028e3e3e39d..b5d105313913 100644
--- a/app/Models/Quote.php
+++ b/app/Models/Quote.php
@@ -75,6 +75,7 @@ class Quote extends BaseModel
'assigned_user_id',
'exchange_rate',
'subscription_id',
+ 'uses_inclusive_taxes',
];
protected $casts = [
diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php
index bd29febe3044..0a52575631f0 100644
--- a/app/PaymentDrivers/BaseDriver.php
+++ b/app/PaymentDrivers/BaseDriver.php
@@ -30,6 +30,7 @@ use App\Models\GatewayType;
use App\Models\Invoice;
use App\Models\Payment;
use App\Models\PaymentHash;
+use App\Models\PaymentType;
use App\Models\SystemLog;
use App\Services\Subscription\SubscriptionService;
use App\Utils\Ninja;
@@ -226,7 +227,7 @@ class BaseDriver extends AbstractPaymentDriver
$_payment = Payment::where('transaction_reference', $data['transaction_reference'])
->where('client_id', $this->client->id)
- ->exists();
+ ->first();
if($_payment)
return $_payment;
@@ -262,12 +263,18 @@ class BaseDriver extends AbstractPaymentDriver
event('eloquent.created: App\Models\Payment', $payment);
- if ($this->client->getSetting('client_online_payment_notification'))
+ if ($this->client->getSetting('client_online_payment_notification') && in_array($status, [Payment::STATUS_COMPLETED, Payment::STATUS_PENDING
+ ]))
$payment->service()->sendEmail();
+ //todo
+ //catch any payment failures here also and fire a subsequent failure email if necessary? note only need for delayed payment forms
+ //perhaps this type of functionality should be handled higher up to provide better context?
+
+
event(new PaymentWasCreated($payment, $payment->company, Ninja::eventVars()));
- if (property_exists($this->payment_hash->data, 'billing_context')) {
+ if (property_exists($this->payment_hash->data, 'billing_context') && $status == Payment::STATUS_COMPLETED) {
$billing_subscription = \App\Models\Subscription::find($this->payment_hash->data->billing_context->subscription_id);
// To access campaign hash => $this->payment_hash->data->billing_context->campaign;
diff --git a/app/PaymentDrivers/Braintree/PayPal.php b/app/PaymentDrivers/Braintree/PayPal.php
index 6849ebf2f9b8..a58736571ba6 100644
--- a/app/PaymentDrivers/Braintree/PayPal.php
+++ b/app/PaymentDrivers/Braintree/PayPal.php
@@ -161,7 +161,8 @@ class PayPal
SystemLog::CATEGORY_GATEWAY_RESPONSE,
SystemLog::EVENT_GATEWAY_FAILURE,
SystemLog::TYPE_BRAINTREE,
- $this->braintree->client
+ $this->braintree->client,
+ $this->braintree->client->company
);
throw new PaymentFailed($response->message, 0);
diff --git a/app/PaymentDrivers/Mollie/Bancontact.php b/app/PaymentDrivers/Mollie/Bancontact.php
index 0a9e26e6be2e..fa87eba8d9b1 100644
--- a/app/PaymentDrivers/Mollie/Bancontact.php
+++ b/app/PaymentDrivers/Mollie/Bancontact.php
@@ -86,7 +86,9 @@ class Bancontact implements MethodInterface
'webhookUrl' => $this->mollie->company_gateway->webhookUrl(),
'metadata' => [
'client_id' => $this->mollie->client->hashed_id,
- 'hash' => $this->mollie->payment_hash->hash
+ 'hash' => $this->mollie->payment_hash->hash,
+ 'gateway_type_id' => GatewayType::BANCONTACT,
+ 'payment_type_id' => PaymentType::BANCONTACT,
],
]);
diff --git a/app/PaymentDrivers/Mollie/BankTransfer.php b/app/PaymentDrivers/Mollie/BankTransfer.php
index 41ccb4b5eb58..42cbf8719b3b 100644
--- a/app/PaymentDrivers/Mollie/BankTransfer.php
+++ b/app/PaymentDrivers/Mollie/BankTransfer.php
@@ -89,7 +89,9 @@ class BankTransfer implements MethodInterface
'webhookUrl' => $this->mollie->company_gateway->webhookUrl(),
'metadata' => [
'client_id' => $this->mollie->client->hashed_id,
- 'hash' => $this->mollie->payment_hash->hash
+ 'hash' => $this->mollie->payment_hash->hash,
+ 'gateway_type_id' => GatewayType::BANK_TRANSFER,
+ 'payment_type_id' => PaymentType::MOLLIE_BANK_TRANSFER,
],
]);
diff --git a/app/PaymentDrivers/Mollie/CreditCard.php b/app/PaymentDrivers/Mollie/CreditCard.php
index 7efbd17c915c..8a6af3dd2daf 100644
--- a/app/PaymentDrivers/Mollie/CreditCard.php
+++ b/app/PaymentDrivers/Mollie/CreditCard.php
@@ -114,7 +114,7 @@ class CreditCard
'name' => $this->mollie->client->name,
'email' => $this->mollie->client->present()->email(),
'metadata' => [
- 'id' => $this->mollie->client->hashed_id,
+ 'id' => $this->mollie->client->hashed_id
],
]);
diff --git a/app/PaymentDrivers/Mollie/IDEAL.php b/app/PaymentDrivers/Mollie/IDEAL.php
index b3a4ccfa8747..1274087eb532 100644
--- a/app/PaymentDrivers/Mollie/IDEAL.php
+++ b/app/PaymentDrivers/Mollie/IDEAL.php
@@ -86,7 +86,9 @@ class IDEAL implements MethodInterface
'webhookUrl' => $this->mollie->company_gateway->webhookUrl(),
'metadata' => [
'client_id' => $this->mollie->client->hashed_id,
- 'hash' => $this->mollie->payment_hash->hash
+ 'hash' => $this->mollie->payment_hash->hash,
+ 'gateway_type_id' => GatewayType::IDEAL,
+ 'payment_type_id' => PaymentType::IDEAL,
],
]);
diff --git a/app/PaymentDrivers/Mollie/KBC.php b/app/PaymentDrivers/Mollie/KBC.php
index 3dbc53772b29..c5a63c275924 100644
--- a/app/PaymentDrivers/Mollie/KBC.php
+++ b/app/PaymentDrivers/Mollie/KBC.php
@@ -86,7 +86,9 @@ class KBC implements MethodInterface
'webhookUrl' => $this->mollie->company_gateway->webhookUrl(),
'metadata' => [
'client_id' => $this->mollie->client->hashed_id,
- 'hash' => $this->mollie->payment_hash->hash
+ 'hash' => $this->mollie->payment_hash->hash,
+ 'gateway_type_id' => GatewayType::KBC,
+ 'payment_type_id' => PaymentType::KBC,
],
]);
diff --git a/app/PaymentDrivers/MolliePaymentDriver.php b/app/PaymentDrivers/MolliePaymentDriver.php
index be77b8bef2b5..8f4c72b39832 100644
--- a/app/PaymentDrivers/MolliePaymentDriver.php
+++ b/app/PaymentDrivers/MolliePaymentDriver.php
@@ -312,14 +312,31 @@ class MolliePaymentDriver extends BaseDriver
$client = $record->client;
}
else{
- nlog("mollie webhook");
- nlog($payment);
$client = Client::withTrashed()->find($this->decodePrimaryKey($payment->metadata->client_id));
// sometimes if the user is not returned to the site with a response from Mollie
// we may not have a payment record - in these cases we need to re-construct the payment
// record from the meta data in the payment hash.
+
+ if($payment && $payment->metadata->payment_hash){
+
+ /* Harvest Payment Hash*/
+ $payment_hash = PaymentHash::where('hash', $payment->metadata->hash)->first();
+
+ $data = [
+ 'gateway_type_id' => $payment->metadata->gateway_type_id,
+ 'amount' => $amount = array_sum(array_column($payment_hash->invoices(), 'amount')) + $payment_hash->fee_total,
+ 'payment_type' => $payment->metadata->payment_type_id,
+ 'transaction_reference' => $payment->id,
+ ];
+
+ $record = $this->createPayment(
+ $data,
+ $codes[$payment->status]
+ );
+
+ }
}
$message = [
diff --git a/app/PaymentDrivers/Stripe/Charge.php b/app/PaymentDrivers/Stripe/Charge.php
index 5984a5c80d6d..351399841c4e 100644
--- a/app/PaymentDrivers/Stripe/Charge.php
+++ b/app/PaymentDrivers/Stripe/Charge.php
@@ -56,7 +56,6 @@ class Charge
if($cgt->gateway_type_id == GatewayType::BANK_TRANSFER)
return (new ACH($this->stripe))->tokenBilling($cgt, $payment_hash);
- nlog(" DB = ".$this->stripe->client->company->db);
$amount = array_sum(array_column($payment_hash->invoices(), 'amount')) + $payment_hash->fee_total;
$invoice = Invoice::whereIn('id', $this->transformKeys(array_column($payment_hash->invoices(), 'invoice_id')))->withTrashed()->first();
@@ -119,7 +118,6 @@ class Charge
$data['message'] = $e->getMessage();
break;
}
-
$this->stripe->processInternallyFailedPayment($this->stripe, $e);
diff --git a/app/PaymentDrivers/Stripe/CreditCard.php b/app/PaymentDrivers/Stripe/CreditCard.php
index f89e52688961..1959cc7a05b1 100644
--- a/app/PaymentDrivers/Stripe/CreditCard.php
+++ b/app/PaymentDrivers/Stripe/CreditCard.php
@@ -123,7 +123,7 @@ class CreditCard
$data = [
'payment_method' => $this->stripe->payment_hash->data->server_response->payment_method,
- 'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)),
+ 'payment_type' => PaymentType::parseCardType(strtolower($stripe_method->card->brand)) ?: PaymentType::CREDIT_CARD_OTHER,
'amount' => $this->stripe->convertFromStripeAmount($this->stripe->payment_hash->data->server_response->amount, $this->stripe->client->currency()->precision, $this->stripe->client->currency()),
'transaction_reference' => optional($this->stripe->payment_hash->data->payment_intent->charges->data[0])->id,
'gateway_type_id' => GatewayType::CREDIT_CARD,
diff --git a/app/Repositories/TaskRepository.php b/app/Repositories/TaskRepository.php
index 9ef63b735b6d..2717f11dc9d5 100644
--- a/app/Repositories/TaskRepository.php
+++ b/app/Repositories/TaskRepository.php
@@ -54,6 +54,37 @@ class TaskRepository extends BaseRepository
$task->status_order = $data['status_order'];
}
+ /*V4 override*/
+ if (! empty($data['time_details'])) {
+ $timeLog = [];
+ foreach ($data['time_details'] as $detail) {
+ $startTime = strtotime($detail['start_datetime']);
+ $endTime = false;
+ if (! empty($detail['end_datetime'])) {
+ $endTime = strtotime($detail['end_datetime']);
+ } else {
+ $duration = 0;
+ if (! empty($detail['duration_seconds'])) {
+ $duration += $detail['duration_seconds'];
+ }
+ if (! empty($detail['duration_minutes'])) {
+ $duration += $detail['duration_minutes'] * 60;
+ }
+ if (! empty($detail['duration_hours'])) {
+ $duration += $detail['duration_hours'] * 60 * 60;
+ }
+ if ($duration) {
+ $endTime = $startTime + $duration;
+ }
+ }
+ $timeLog[] = [$startTime, $endTime];
+ if (! $endTime) {
+ $data['is_running'] = true;
+ }
+ }
+ $data['time_log'] = json_encode($timeLog);
+ }
+
if (isset($data['time_log'])) {
$time_log = json_decode($data['time_log']);
} elseif ($task->time_log) {
diff --git a/app/Services/Credit/TriggeredActions.php b/app/Services/Credit/TriggeredActions.php
index bf7ef3c05484..28134972af8d 100644
--- a/app/Services/Credit/TriggeredActions.php
+++ b/app/Services/Credit/TriggeredActions.php
@@ -36,17 +36,6 @@ class TriggeredActions extends AbstractService
public function run()
{
- // if ($this->request->has('auto_bill') && $this->request->input('auto_bill') == 'true') {
- // $this->credit = $this->credit->service()->autoBill()->save();
- // }
-
- // if ($this->request->has('paid') && $this->request->input('paid') == 'true') {
- // $this->credit = $this->credit->service()->markPaid()->save();
- // }
-
- // if ($this->request->has('amount_paid') && is_numeric($this->request->input('amount_paid')) ) {
- // $this->credit = $this->credit->service()->applyPaymentAmount($this->request->input('amount_paid'))->save();
- // }
if ($this->request->has('send_email') && $this->request->input('send_email') == 'true') {
$this->sendEmail();
diff --git a/app/Services/Invoice/AddGatewayFee.php b/app/Services/Invoice/AddGatewayFee.php
index a0e169a9f2b6..438fb6f85e03 100644
--- a/app/Services/Invoice/AddGatewayFee.php
+++ b/app/Services/Invoice/AddGatewayFee.php
@@ -105,7 +105,7 @@ class AddGatewayFee extends AbstractService
$invoice_item->quantity = 1;
$invoice_item->cost = $gateway_fee;
- if ($fees_and_limits = $this->company_gateway->getFeesAndLimits()) {
+ if ($fees_and_limits = $this->company_gateway->getFeesAndLimits($this->gateway_type_id)) {
$invoice_item->tax_rate1 = $fees_and_limits->fee_tax_rate1;
$invoice_item->tax_rate2 = $fees_and_limits->fee_tax_rate2;
$invoice_item->tax_rate3 = $fees_and_limits->fee_tax_rate3;
diff --git a/app/Services/Invoice/AutoBillInvoice.php b/app/Services/Invoice/AutoBillInvoice.php
index f1ea59aefc8d..646bbad5a12d 100644
--- a/app/Services/Invoice/AutoBillInvoice.php
+++ b/app/Services/Invoice/AutoBillInvoice.php
@@ -130,7 +130,7 @@ class AutoBillInvoice extends AbstractService
info("Auto Bill payment captured for ".$this->invoice->number);
}
- return $this->invoice->fresh();
+ // return $this->invoice->fresh();
}
/**
diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php
index 153e5fd0bf1a..2057b46c5166 100644
--- a/app/Services/Invoice/InvoiceService.php
+++ b/app/Services/Invoice/InvoiceService.php
@@ -139,6 +139,7 @@ class InvoiceService
// $this->invoice = (new UpdateBalance($this->invoice, $balance_adjustment, $is_draft))->run();
if ((bool)$this->invoice->is_deleted !== false) {
+ nlog($this->invoice->number . " is deleted returning");
return $this;
}
@@ -245,7 +246,7 @@ class InvoiceService
public function autoBill()
{
- $this->invoice = (new AutoBillInvoice($this->invoice, $this->invoice->company->db))->run();
+ (new AutoBillInvoice($this->invoice, $this->invoice->company->db))->run();
return $this;
}
@@ -483,6 +484,10 @@ class InvoiceService
if(!isset($this->invoice->exchange_rate) && $this->invoice->client->currency()->id != (int) $this->invoice->company->settings->currency_id)
$this->invoice->exchange_rate = $this->invoice->client->currency()->exchange_rate;
+ if($settings->counter_number_applied == 'when_saved'){
+ $this->invoice->service()->applyNumber()->save();
+ }
+
return $this;
}
diff --git a/app/Services/Invoice/TriggeredActions.php b/app/Services/Invoice/TriggeredActions.php
index d439b0c9b149..cc7de3dc3b4e 100644
--- a/app/Services/Invoice/TriggeredActions.php
+++ b/app/Services/Invoice/TriggeredActions.php
@@ -37,7 +37,7 @@ class TriggeredActions extends AbstractService
public function run()
{
if ($this->request->has('auto_bill') && $this->request->input('auto_bill') == 'true') {
- $this->invoice = $this->invoice->service()->autoBill()->save();
+ $this->invoice = $this->invoice->service()->autoBill();
}
if ($this->request->has('paid') && $this->request->input('paid') == 'true') {
diff --git a/app/Services/Quote/QuoteService.php b/app/Services/Quote/QuoteService.php
index a16210bf5be1..dcc4016e802b 100644
--- a/app/Services/Quote/QuoteService.php
+++ b/app/Services/Quote/QuoteService.php
@@ -124,10 +124,10 @@ class QuoteService
}
- if ($this->quote->client->getSetting('auto_archive_quote')) {
- $quote_repo = new QuoteRepository();
- $quote_repo->archive($this->quote);
- }
+ // if ($this->quote->client->getSetting('auto_archive_quote')) {
+ // $quote_repo = new QuoteRepository();
+ // $quote_repo->archive($this->quote);
+ // }
return $this;
}
diff --git a/app/Services/Quote/TriggeredActions.php b/app/Services/Quote/TriggeredActions.php
index e1ec9a37a00f..fa630d753fe6 100644
--- a/app/Services/Quote/TriggeredActions.php
+++ b/app/Services/Quote/TriggeredActions.php
@@ -57,7 +57,7 @@ class TriggeredActions extends AbstractService
{
$reminder_template = $this->quote->calculateTemplate('quote');
- //$reminder_template = 'payment';
+ // $reminder_template = 'email_template_quote';
$this->quote->invitations->load('contact.client.country', 'quote.client.country', 'quote.company')->each(function ($invitation) use ($reminder_template) {
EmailEntity::dispatch($invitation, $this->quote->company, $reminder_template);
diff --git a/app/Services/Subscription/SubscriptionService.php b/app/Services/Subscription/SubscriptionService.php
index dad9c094b8c2..5b6e010d73c1 100644
--- a/app/Services/Subscription/SubscriptionService.php
+++ b/app/Services/Subscription/SubscriptionService.php
@@ -77,8 +77,6 @@ class SubscriptionService
$recurring_invoice_repo = new RecurringInvoiceRepository();
$recurring_invoice = $recurring_invoice_repo->save([], $recurring_invoice);
- // $recurring_invoice->next_send_date = now()->format('Y-m-d');
- // $recurring_invoice->next_send_date = $recurring_invoice->nextSendDate();
$recurring_invoice->auto_bill = $this->subscription->auto_bill;
/* Start the recurring service */
@@ -87,7 +85,6 @@ class SubscriptionService
->save();
//execute any webhooks
-
$context = [
'context' => 'recurring_purchase',
'recurring_invoice' => $recurring_invoice->hashed_id,
@@ -95,6 +92,7 @@ class SubscriptionService
'client' => $recurring_invoice->client->hashed_id,
'subscription' => $this->subscription->hashed_id,
'contact' => auth('contact')->user()->hashed_id,
+ 'account_key' => $recurring_invoice->client->custom_value2,
];
$response = $this->triggerWebhook($context);
@@ -111,6 +109,7 @@ class SubscriptionService
'invoice' => $this->encodePrimaryKey($payment_hash->fee_invoice_id),
'client' => $invoice->client->hashed_id,
'subscription' => $this->subscription->hashed_id,
+ 'account_key' => $invoice->client->custom_value2,
];
//execute any webhooks
@@ -130,6 +129,7 @@ class SubscriptionService
'contact' => $contact->hashed_id,
'contact_email' => $contact->email,
'client' => $contact->client->hashed_id,
+ 'account_key' => $contact->client->custom_value2,
];
$response = $this->triggerWebhook($context);
@@ -180,6 +180,7 @@ class SubscriptionService
'recurring_invoice' => $recurring_invoice->hashed_id,
'client' => $recurring_invoice->client->hashed_id,
'subscription' => $this->subscription->hashed_id,
+ 'account_key' => $recurring_invoice->client->custom_value2,
];
//execute any webhooks
@@ -452,6 +453,7 @@ class SubscriptionService
'client' => $new_recurring_invoice->client->hashed_id,
'subscription' => $target_subscription->hashed_id,
'contact' => auth('contact')->user()->hashed_id,
+ 'account_key' => $new_recurring_invoice->client->custom_value2,
];
$response = $this->triggerWebhook($context);
@@ -572,6 +574,7 @@ class SubscriptionService
'client' => $recurring_invoice->client->hashed_id,
'subscription' => $this->subscription->hashed_id,
'contact' => auth('contact')->user()->hashed_id,
+ 'account_key' => $recurring_invoice->client->custom_value2,
];
@@ -768,8 +771,6 @@ class SubscriptionService
$response = false;
$body = array_merge($context, [
- 'company_key' => $this->subscription->company->company_key,
- 'account_key' => $this->subscription->company->account->key,
'db' => $this->subscription->company->db,
]);
@@ -921,6 +922,7 @@ class SubscriptionService
'recurring_invoice' => $recurring_invoice->hashed_id,
'client' => $recurring_invoice->client->hashed_id,
'contact' => auth('contact')->user()->hashed_id,
+ 'account_key' => $recurring_invoice->client->custom_value2,
];
$this->triggerWebhook($context);
@@ -1043,6 +1045,7 @@ class SubscriptionService
'client' => $invoice->client->hashed_id,
'contact' => $invoice->client->primary_contact()->first() ? $invoice->client->primary_contact()->first()->hashed_id: $invoice->client->contacts->first()->hashed_id,
'invoice' => $invoice->hashed_id,
+ 'account_key' => $invoice->client->custom_value2,
];
$response = $this->triggerWebhook($context);
diff --git a/composer.lock b/composer.lock
index 85f86f3316f1..66c9f665747d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -323,16 +323,16 @@
},
{
"name": "aws/aws-sdk-php",
- "version": "3.204.6",
+ "version": "3.208.0",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c"
+ "reference": "fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c",
- "reference": "59d4d6a58ed7da541aa0ed75cc1944f8d6ca2d1c",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0",
+ "reference": "fef9c7a9b0d65014a40cc7451da9e420e6f0eaa0",
"shasum": ""
},
"require": {
@@ -408,9 +408,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.204.6"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.208.0"
},
- "time": "2021-11-26T19:18:52+00:00"
+ "time": "2021-12-02T19:14:25+00:00"
},
{
"name": "bacon/bacon-qr-code",
@@ -467,22 +467,22 @@
},
{
"name": "beganovich/snappdf",
- "version": "v1.7.0",
+ "version": "v1.9.0",
"source": {
"type": "git",
"url": "https://github.com/beganovich/snappdf.git",
- "reference": "4ae1315e793385b385699bdd0328106c39644a91"
+ "reference": "bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/beganovich/snappdf/zipball/4ae1315e793385b385699bdd0328106c39644a91",
- "reference": "4ae1315e793385b385699bdd0328106c39644a91",
+ "url": "https://api.github.com/repos/beganovich/snappdf/zipball/bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1",
+ "reference": "bffcc6a71c60f00b8f82b8f5654c0bbf0c4b15e1",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-zip": "*",
- "php": "^7.3|^7.4|^8.0",
+ "php": "^7.3|^7.4|^8.0|^8.1",
"symfony/console": "^5.2",
"symfony/filesystem": "^5.2",
"symfony/process": "^5.2"
@@ -514,9 +514,9 @@
"description": "Convert webpages or HTML into the PDF file using Chromium or Google Chrome.",
"support": {
"issues": "https://github.com/beganovich/snappdf/issues",
- "source": "https://github.com/beganovich/snappdf/tree/v1.7.0"
+ "source": "https://github.com/beganovich/snappdf/tree/v1.9.0"
},
- "time": "2021-06-26T23:28:52+00:00"
+ "time": "2021-11-29T11:21:59+00:00"
},
{
"name": "braintree/braintree_php",
@@ -1049,16 +1049,16 @@
},
{
"name": "composer/composer",
- "version": "2.1.12",
+ "version": "2.1.14",
"source": {
"type": "git",
"url": "https://github.com/composer/composer.git",
- "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0"
+ "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/composer/zipball/6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0",
- "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0",
+ "url": "https://api.github.com/repos/composer/composer/zipball/cd28fc05b0c9d3beaf58b57018725c4dc15a6446",
+ "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446",
"shasum": ""
},
"require": {
@@ -1073,7 +1073,7 @@
"react/promise": "^1.2 || ^2.7",
"seld/jsonlint": "^1.4",
"seld/phar-utils": "^1.0",
- "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
+ "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0",
"symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
"symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
"symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0"
@@ -1127,7 +1127,7 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/composer/issues",
- "source": "https://github.com/composer/composer/tree/2.1.12"
+ "source": "https://github.com/composer/composer/tree/2.1.14"
},
"funding": [
{
@@ -1143,7 +1143,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-09T15:02:04+00:00"
+ "time": "2021-11-30T09:51:43+00:00"
},
{
"name": "composer/metadata-minifier",
@@ -2651,16 +2651,16 @@
},
{
"name": "google/apiclient",
- "version": "v2.11.0",
+ "version": "v2.12.1",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client.git",
- "reference": "7db9eb40c8ba887e81c0fe84f2888a967396cdfb"
+ "reference": "1530583a711f4414407112c4068464bcbace1c71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/7db9eb40c8ba887e81c0fe84f2888a967396cdfb",
- "reference": "7db9eb40c8ba887e81c0fe84f2888a967396cdfb",
+ "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/1530583a711f4414407112c4068464bcbace1c71",
+ "reference": "1530583a711f4414407112c4068464bcbace1c71",
"shasum": ""
},
"require": {
@@ -2691,7 +2691,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.x-dev"
+ "dev-main": "2.x-dev"
}
},
"autoload": {
@@ -2716,22 +2716,22 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client/issues",
- "source": "https://github.com/googleapis/google-api-php-client/tree/v2.11.0"
+ "source": "https://github.com/googleapis/google-api-php-client/tree/v2.12.1"
},
- "time": "2021-09-20T21:15:55+00:00"
+ "time": "2021-12-02T03:34:25+00:00"
},
{
"name": "google/apiclient-services",
- "version": "v0.223.0",
+ "version": "v0.224.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git",
- "reference": "e7c5284f4271a7f794410356ff44aff65c0254eb"
+ "reference": "2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/e7c5284f4271a7f794410356ff44aff65c0254eb",
- "reference": "e7c5284f4271a7f794410356ff44aff65c0254eb",
+ "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1",
+ "reference": "2dfd8e7fc063b9228e8d9ccf9ffdeb6dace7e6b1",
"shasum": ""
},
"require": {
@@ -2760,9 +2760,9 @@
],
"support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues",
- "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.223.0"
+ "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.224.0"
},
- "time": "2021-11-21T12:26:34+00:00"
+ "time": "2021-11-24T12:26:12+00:00"
},
{
"name": "google/auth",
@@ -3827,16 +3827,16 @@
},
{
"name": "laravel/framework",
- "version": "v8.73.2",
+ "version": "v8.74.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "0e1c63315eeaee5920552ff042bd820bb4014533"
+ "reference": "004ea195012d5132eca07a176a6e587c6a74815e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/0e1c63315eeaee5920552ff042bd820bb4014533",
- "reference": "0e1c63315eeaee5920552ff042bd820bb4014533",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/004ea195012d5132eca07a176a6e587c6a74815e",
+ "reference": "004ea195012d5132eca07a176a6e587c6a74815e",
"shasum": ""
},
"require": {
@@ -3858,15 +3858,15 @@
"psr/simple-cache": "^1.0",
"ramsey/uuid": "^4.2.2",
"swiftmailer/swiftmailer": "^6.3",
- "symfony/console": "^5.1.4",
- "symfony/error-handler": "^5.1.4",
- "symfony/finder": "^5.1.4",
- "symfony/http-foundation": "^5.1.4",
- "symfony/http-kernel": "^5.1.4",
- "symfony/mime": "^5.1.4",
- "symfony/process": "^5.1.4",
- "symfony/routing": "^5.1.4",
- "symfony/var-dumper": "^5.1.4",
+ "symfony/console": "^5.4",
+ "symfony/error-handler": "^5.4",
+ "symfony/finder": "^5.4",
+ "symfony/http-foundation": "^5.4",
+ "symfony/http-kernel": "^5.4",
+ "symfony/mime": "^5.4",
+ "symfony/process": "^5.4",
+ "symfony/routing": "^5.4",
+ "symfony/var-dumper": "^5.4",
"tijsverkoyen/css-to-inline-styles": "^2.2.2",
"vlucas/phpdotenv": "^5.2",
"voku/portable-ascii": "^1.4.8"
@@ -3922,7 +3922,7 @@
"pda/pheanstalk": "^4.0",
"phpunit/phpunit": "^8.5.19|^9.5.8",
"predis/predis": "^1.1.9",
- "symfony/cache": "^5.1.4"
+ "symfony/cache": "^5.4"
},
"suggest": {
"aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
@@ -3949,8 +3949,8 @@
"predis/predis": "Required to use the predis connector (^1.1.9).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^5.4).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).",
"symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
"wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
},
@@ -3995,20 +3995,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2021-11-23T14:27:43+00:00"
+ "time": "2021-11-30T15:26:05+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v1.0.4",
+ "version": "v1.0.5",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d"
+ "reference": "25de3be1bca1b17d52ff0dc02b646c667ac7266c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8148e72e6c2c3af7f05640ada1b26c3bca970f8d",
- "reference": "8148e72e6c2c3af7f05640ada1b26c3bca970f8d",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/25de3be1bca1b17d52ff0dc02b646c667ac7266c",
+ "reference": "25de3be1bca1b17d52ff0dc02b646c667ac7266c",
"shasum": ""
},
"require": {
@@ -4054,7 +4054,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2021-11-16T17:01:57+00:00"
+ "time": "2021-11-30T15:53:04+00:00"
},
{
"name": "laravel/slack-notification-channel",
@@ -4256,16 +4256,16 @@
},
{
"name": "laravel/ui",
- "version": "v3.3.3",
+ "version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
- "reference": "08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6"
+ "reference": "b3e804559bf3973ecca160a4ae1068e6c7c167c6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/ui/zipball/08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6",
- "reference": "08ea313a35dfc89ff0cd9916ca0bcef9715d0ed6",
+ "url": "https://api.github.com/repos/laravel/ui/zipball/b3e804559bf3973ecca160a4ae1068e6c7c167c6",
+ "reference": "b3e804559bf3973ecca160a4ae1068e6c7c167c6",
"shasum": ""
},
"require": {
@@ -4275,6 +4275,9 @@
"illuminate/validation": "^8.42|^9.0",
"php": "^7.3|^8.0"
},
+ "require-dev": {
+ "orchestra/testbench": "^6.23|^7.0"
+ },
"type": "library",
"extra": {
"branch-alias": {
@@ -4308,9 +4311,9 @@
"ui"
],
"support": {
- "source": "https://github.com/laravel/ui/tree/v3.3.3"
+ "source": "https://github.com/laravel/ui/tree/v3.4.0"
},
- "time": "2021-11-21T22:20:05+00:00"
+ "time": "2021-11-30T16:22:00+00:00"
},
{
"name": "league/commonmark",
@@ -4507,16 +4510,16 @@
},
{
"name": "league/csv",
- "version": "9.7.3",
+ "version": "9.7.4",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
- "reference": "d8149032aa74a9daca6f7b35d63c46a35c9bc1d5"
+ "reference": "002f55f649e7511710dc7154ff44c7be32c8195c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/csv/zipball/d8149032aa74a9daca6f7b35d63c46a35c9bc1d5",
- "reference": "d8149032aa74a9daca6f7b35d63c46a35c9bc1d5",
+ "url": "https://api.github.com/repos/thephpleague/csv/zipball/002f55f649e7511710dc7154ff44c7be32c8195c",
+ "reference": "002f55f649e7511710dc7154ff44c7be32c8195c",
"shasum": ""
},
"require": {
@@ -4587,20 +4590,20 @@
"type": "github"
}
],
- "time": "2021-11-21T19:32:00+00:00"
+ "time": "2021-11-30T07:09:34+00:00"
},
{
"name": "league/flysystem",
- "version": "1.1.7",
+ "version": "1.1.8",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d"
+ "reference": "c995bb0c23c58c9813d081f9523c9b7bb496698e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d",
- "reference": "3ca8f158ee21efa4bbd4f74bea5730c9b9261e2d",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c995bb0c23c58c9813d081f9523c9b7bb496698e",
+ "reference": "c995bb0c23c58c9813d081f9523c9b7bb496698e",
"shasum": ""
},
"require": {
@@ -4673,7 +4676,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.7"
+ "source": "https://github.com/thephpleague/flysystem/tree/1.1.8"
},
"funding": [
{
@@ -4681,7 +4684,7 @@
"type": "other"
}
],
- "time": "2021-11-25T19:40:58+00:00"
+ "time": "2021-11-28T21:50:23+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
@@ -5050,16 +5053,16 @@
},
{
"name": "livewire/livewire",
- "version": "v2.8.0",
+ "version": "v2.8.1",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
- "reference": "fc8c315babf8d42c2a25f207b3931b1bc8eb5e70"
+ "reference": "0f846a93369109e445f0e5009741b1e19e6fa6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/livewire/livewire/zipball/fc8c315babf8d42c2a25f207b3931b1bc8eb5e70",
- "reference": "fc8c315babf8d42c2a25f207b3931b1bc8eb5e70",
+ "url": "https://api.github.com/repos/livewire/livewire/zipball/0f846a93369109e445f0e5009741b1e19e6fa6f6",
+ "reference": "0f846a93369109e445f0e5009741b1e19e6fa6f6",
"shasum": ""
},
"require": {
@@ -5110,7 +5113,7 @@
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
- "source": "https://github.com/livewire/livewire/tree/v2.8.0"
+ "source": "https://github.com/livewire/livewire/tree/v2.8.1"
},
"funding": [
{
@@ -5118,7 +5121,7 @@
"type": "github"
}
],
- "time": "2021-11-24T04:33:15+00:00"
+ "time": "2021-12-02T01:31:26+00:00"
},
{
"name": "maennchen/zipstream-php",
@@ -5826,16 +5829,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.13.1",
+ "version": "v4.13.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd"
+ "reference": "210577fe3cf7badcc5814d99455df46564f3c077"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd",
- "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077",
+ "reference": "210577fe3cf7badcc5814d99455df46564f3c077",
"shasum": ""
},
"require": {
@@ -5876,9 +5879,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2"
},
- "time": "2021-11-03T20:52:16+00:00"
+ "time": "2021-11-30T19:35:32+00:00"
},
{
"name": "nwidart/laravel-modules",
@@ -6950,16 +6953,16 @@
},
{
"name": "phpseclib/phpseclib",
- "version": "3.0.11",
+ "version": "3.0.12",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "6e794226a35159eb06f355efe59a0075a16551dd"
+ "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/6e794226a35159eb06f355efe59a0075a16551dd",
- "reference": "6e794226a35159eb06f355efe59a0075a16551dd",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb",
+ "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb",
"shasum": ""
},
"require": {
@@ -7041,7 +7044,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
- "source": "https://github.com/phpseclib/phpseclib/tree/3.0.11"
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.12"
},
"funding": [
{
@@ -7057,7 +7060,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-27T03:01:46+00:00"
+ "time": "2021-11-28T23:46:03+00:00"
},
{
"name": "pragmarx/google2fa",
@@ -7587,16 +7590,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.10.11",
+ "version": "v0.10.12",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "38017532bba35d15d28dcc001b4274df0251c4a1"
+ "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38017532bba35d15d28dcc001b4274df0251c4a1",
- "reference": "38017532bba35d15d28dcc001b4274df0251c4a1",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a0d9981aa07ecfcbea28e4bfa868031cca121e7d",
+ "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d",
"shasum": ""
},
"require": {
@@ -7656,9 +7659,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.10.11"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.10.12"
},
- "time": "2021-11-23T15:02:17+00:00"
+ "time": "2021-11-30T14:05:36+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -8291,22 +8294,22 @@
},
{
"name": "sentry/sdk",
- "version": "3.1.0",
+ "version": "3.1.1",
"source": {
"type": "git",
"url": "https://github.com/getsentry/sentry-php-sdk.git",
- "reference": "f03133b067fdf03fed09ff03daf3f1d68f5f3673"
+ "reference": "2de7de3233293f80d1e244bd950adb2121a3731c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/f03133b067fdf03fed09ff03daf3f1d68f5f3673",
- "reference": "f03133b067fdf03fed09ff03daf3f1d68f5f3673",
+ "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/2de7de3233293f80d1e244bd950adb2121a3731c",
+ "reference": "2de7de3233293f80d1e244bd950adb2121a3731c",
"shasum": ""
},
"require": {
"http-interop/http-factory-guzzle": "^1.0",
"sentry/sentry": "^3.1",
- "symfony/http-client": "^4.3|^5.0"
+ "symfony/http-client": "^4.3|^5.0|^6.0"
},
"type": "metapackage",
"notification-url": "https://packagist.org/downloads/",
@@ -8331,7 +8334,7 @@
"sentry"
],
"support": {
- "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.1.0"
+ "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.1.1"
},
"funding": [
{
@@ -8343,7 +8346,7 @@
"type": "custom"
}
],
- "time": "2020-12-01T10:31:45+00:00"
+ "time": "2021-11-30T11:54:41+00:00"
},
{
"name": "sentry/sentry",
@@ -8599,16 +8602,16 @@
},
{
"name": "stripe/stripe-php",
- "version": "v7.103.0",
+ "version": "v7.104.0",
"source": {
"type": "git",
"url": "https://github.com/stripe/stripe-php.git",
- "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12"
+ "reference": "6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/stripe/stripe-php/zipball/3a029598395bb4c7cfafa64707a553f4b01a9a12",
- "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12",
+ "url": "https://api.github.com/repos/stripe/stripe-php/zipball/6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5",
+ "reference": "6bfd895eaa3f6ebb49c10f9ab9ccc9e5baadded5",
"shasum": ""
},
"require": {
@@ -8618,11 +8621,10 @@
"php": ">=5.6.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "2.17.1",
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5.7",
- "squizlabs/php_codesniffer": "^3.3",
- "symfony/process": "~3.4"
+ "friendsofphp/php-cs-fixer": "3.2.1",
+ "phpstan/phpstan": "^1.2",
+ "phpunit/phpunit": "^5.7 || ^9.0",
+ "squizlabs/php_codesniffer": "^3.3"
},
"type": "library",
"extra": {
@@ -8654,9 +8656,9 @@
],
"support": {
"issues": "https://github.com/stripe/stripe-php/issues",
- "source": "https://github.com/stripe/stripe-php/tree/v7.103.0"
+ "source": "https://github.com/stripe/stripe-php/tree/v7.104.0"
},
- "time": "2021-11-20T00:36:07+00:00"
+ "time": "2021-12-01T22:24:54+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -8736,28 +8738,29 @@
},
{
"name": "symfony/console",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "3e7ab8f5905058984899b05a4648096f558bfeba"
+ "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba",
- "reference": "3e7ab8f5905058984899b05a4648096f558bfeba",
+ "url": "https://api.github.com/repos/symfony/console/zipball/ec3661faca1d110d6c307e124b44f99ac54179e3",
+ "reference": "ec3661faca1d110d6c307e124b44f99ac54179e3",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php73": "^1.8",
"symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/string": "^5.1"
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.1|^6.0"
},
"conflict": {
+ "psr/log": ">=3",
"symfony/dependency-injection": "<4.4",
"symfony/dotenv": "<5.1",
"symfony/event-dispatcher": "<4.4",
@@ -8769,12 +8772,12 @@
},
"require-dev": {
"psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/event-dispatcher": "^4.4|^5.0",
- "symfony/lock": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
- "symfony/var-dumper": "^4.4|^5.0"
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
+ "symfony/lock": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log": "For using the console logger",
@@ -8814,7 +8817,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.3.11"
+ "source": "https://github.com/symfony/console/tree/v5.4.0"
},
"funding": [
{
@@ -8830,20 +8833,20 @@
"type": "tidelift"
}
],
- "time": "2021-11-21T19:41:05+00:00"
+ "time": "2021-11-29T15:30:56+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.3.4",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "7fb120adc7f600a59027775b224c13a33530dd90"
+ "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90",
- "reference": "7fb120adc7f600a59027775b224c13a33530dd90",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/44b933f98bb4b5220d10bed9ce5662f8c2d13dcc",
+ "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc",
"shasum": ""
},
"require": {
@@ -8880,7 +8883,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.3.4"
+ "source": "https://github.com/symfony/css-selector/tree/v5.4.0"
},
"funding": [
{
@@ -8896,7 +8899,7 @@
"type": "tidelift"
}
],
- "time": "2021-07-21T12:38:00+00:00"
+ "time": "2021-09-09T08:06:01+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -8967,28 +8970,31 @@
},
{
"name": "symfony/error-handler",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3"
+ "reference": "8433fa3145ac78df88b87a4a539118e950828126"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/eec73dd7218713f48a7996583a741b3bae58c8d3",
- "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/8433fa3145ac78df88b87a4a539118e950828126",
+ "reference": "8433fa3145ac78df88b87a4a539118e950828126",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0"
+ "symfony/var-dumper": "^4.4|^5.0|^6.0"
},
"require-dev": {
- "symfony/deprecation-contracts": "^2.1",
- "symfony/http-kernel": "^4.4|^5.0",
- "symfony/serializer": "^4.4|^5.0"
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/http-kernel": "^4.4|^5.0|^6.0",
+ "symfony/serializer": "^4.4|^5.0|^6.0"
},
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
"type": "library",
"autoload": {
"psr-4": {
@@ -9015,7 +9021,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.3.11"
+ "source": "https://github.com/symfony/error-handler/tree/v5.4.0"
},
"funding": [
{
@@ -9031,26 +9037,26 @@
"type": "tidelift"
}
],
- "time": "2021-11-13T13:42:37+00:00"
+ "time": "2021-11-29T15:30:56+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "661a7a6e085394f8513945669e31f7c1338a7e69"
+ "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/661a7a6e085394f8513945669e31f7c1338a7e69",
- "reference": "661a7a6e085394f8513945669e31f7c1338a7e69",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb",
+ "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/event-dispatcher-contracts": "^2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/event-dispatcher-contracts": "^2|^3",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
@@ -9062,13 +9068,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/stopwatch": "^4.4|^5.0"
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/dependency-injection": "",
@@ -9100,7 +9106,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.11"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0"
},
"funding": [
{
@@ -9116,7 +9122,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-17T12:16:12+00:00"
+ "time": "2021-11-23T10:19:22+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -9199,21 +9205,22 @@
},
{
"name": "symfony/filesystem",
- "version": "v5.3.4",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32"
+ "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/343f4fe324383ca46792cae728a3b6e2f708fb32",
- "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01",
+ "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
"symfony/polyfill-php80": "^1.16"
},
"type": "library",
@@ -9242,7 +9249,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.3.4"
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.0"
},
"funding": [
{
@@ -9258,24 +9265,25 @@
"type": "tidelift"
}
],
- "time": "2021-07-21T12:40:44+00:00"
+ "time": "2021-10-28T13:39:27+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.3.7",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93"
+ "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
- "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/d2f29dac98e96a98be467627bd49c2efb1bc2590",
+ "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php80": "^1.16"
},
"type": "library",
@@ -9304,7 +9312,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.3.7"
+ "source": "https://github.com/symfony/finder/tree/v5.4.0"
},
"funding": [
{
@@ -9320,30 +9328,30 @@
"type": "tidelift"
}
],
- "time": "2021-08-04T21:20:46+00:00"
+ "time": "2021-11-28T15:25:38+00:00"
},
{
"name": "symfony/http-client",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e"
+ "reference": "b3d99775f5372ff746035e98d6fa00182e832380"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/3f55da60fc3c3d6e6a4144ee65a37d23a637107e",
- "reference": "3f55da60fc3c3d6e6a4144ee65a37d23a637107e",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/b3d99775f5372ff746035e98d6fa00182e832380",
+ "reference": "b3d99775f5372ff746035e98d6fa00182e832380",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/http-client-contracts": "^2.4",
"symfony/polyfill-php73": "^1.11",
"symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.0|^2"
+ "symfony/service-contracts": "^1.0|^2|^3"
},
"provide": {
"php-http/async-client-implementation": "*",
@@ -9360,10 +9368,10 @@
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4.13|^5.1.5",
- "symfony/process": "^4.4|^5.0",
- "symfony/stopwatch": "^4.4|^5.0"
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
@@ -9391,7 +9399,7 @@
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-client/tree/v5.3.11"
+ "source": "https://github.com/symfony/http-client/tree/v5.4.0"
},
"funding": [
{
@@ -9407,7 +9415,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-20T16:42:42+00:00"
+ "time": "2021-11-23T15:26:31+00:00"
},
{
"name": "symfony/http-client-contracts",
@@ -9489,29 +9497,29 @@
},
{
"name": "symfony/http-foundation",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc"
+ "reference": "5ef86ac7927d2de08dc1e26eb91325f9ccbe6309"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc",
- "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5ef86ac7927d2de08dc1e26eb91325f9ccbe6309",
+ "reference": "5ef86ac7927d2de08dc1e26eb91325f9ccbe6309",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.1",
"symfony/polyfill-php80": "^1.16"
},
"require-dev": {
"predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/mime": "^4.4|^5.0"
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/mime": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/mime": "To use the file extension guesser"
@@ -9542,7 +9550,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.3.11"
+ "source": "https://github.com/symfony/http-foundation/tree/v5.4.0"
},
"funding": [
{
@@ -9558,36 +9566,35 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T16:37:19+00:00"
+ "time": "2021-11-28T15:25:38+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.3.12",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b"
+ "reference": "e012f16688bcb151e965473a70d8ebaa8b1d15ea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53025cd1d91b1af85d6d9e17eefa98e31ee953b",
- "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e012f16688bcb151e965473a70d8ebaa8b1d15ea",
+ "reference": "e012f16688bcb151e965473a70d8ebaa8b1d15ea",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
"psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/event-dispatcher": "^5.0",
- "symfony/http-client-contracts": "^1.1|^2",
- "symfony/http-foundation": "^5.3.7",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/event-dispatcher": "^5.0|^6.0",
+ "symfony/http-foundation": "^5.3.7|^6.0",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-php73": "^1.9",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "symfony/browser-kit": "<4.4",
+ "symfony/browser-kit": "<5.4",
"symfony/cache": "<5.0",
"symfony/config": "<5.0",
"symfony/console": "<4.4",
@@ -9607,19 +9614,20 @@
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^4.4|^5.0",
- "symfony/config": "^5.0",
- "symfony/console": "^4.4|^5.0",
- "symfony/css-selector": "^4.4|^5.0",
- "symfony/dependency-injection": "^5.3",
- "symfony/dom-crawler": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/finder": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
- "symfony/routing": "^4.4|^5.0",
- "symfony/stopwatch": "^4.4|^5.0",
- "symfony/translation": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/config": "^5.0|^6.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/css-selector": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^5.3|^6.0",
+ "symfony/dom-crawler": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2|^3",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/routing": "^4.4|^5.0|^6.0",
+ "symfony/stopwatch": "^4.4|^5.0|^6.0",
+ "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2|^3",
"twig/twig": "^2.13|^3.0.4"
},
"suggest": {
@@ -9654,7 +9662,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v5.3.12"
+ "source": "https://github.com/symfony/http-kernel/tree/v5.4.0"
},
"funding": [
{
@@ -9670,25 +9678,25 @@
"type": "tidelift"
}
],
- "time": "2021-11-24T08:46:46+00:00"
+ "time": "2021-11-29T16:56:53+00:00"
},
{
"name": "symfony/mime",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "dffc0684f10526db12c52fcd6238c64695426d61"
+ "reference": "d4365000217b67c01acff407573906ff91bcfb34"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/dffc0684f10526db12c52fcd6238c64695426d61",
- "reference": "dffc0684f10526db12c52fcd6238c64695426d61",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34",
+ "reference": "d4365000217b67c01acff407573906ff91bcfb34",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0",
"symfony/polyfill-php80": "^1.16"
@@ -9702,10 +9710,10 @@
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/property-access": "^4.4|^5.1",
- "symfony/property-info": "^4.4|^5.1",
- "symfony/serializer": "^5.2"
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/property-access": "^4.4|^5.1|^6.0",
+ "symfony/property-info": "^4.4|^5.1|^6.0",
+ "symfony/serializer": "^5.2|^6.0"
},
"type": "library",
"autoload": {
@@ -9737,7 +9745,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.3.11"
+ "source": "https://github.com/symfony/mime/tree/v5.4.0"
},
"funding": [
{
@@ -9753,25 +9761,25 @@
"type": "tidelift"
}
],
- "time": "2021-11-20T16:42:42+00:00"
+ "time": "2021-11-23T10:19:22+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v5.3.7",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e"
+ "reference": "b0fb78576487af19c500aaddb269fd36701d4847"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4b78e55b179003a42523a362cc0e8327f7a69b5e",
- "reference": "4b78e55b179003a42523a362cc0e8327f7a69b5e",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b0fb78576487af19c500aaddb269fd36701d4847",
+ "reference": "b0fb78576487af19c500aaddb269fd36701d4847",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php73": "~1.0",
"symfony/polyfill-php80": "^1.16"
},
@@ -9806,7 +9814,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v5.3.7"
+ "source": "https://github.com/symfony/options-resolver/tree/v5.4.0"
},
"funding": [
{
@@ -9822,7 +9830,7 @@
"type": "tidelift"
}
],
- "time": "2021-08-04T21:20:46+00:00"
+ "time": "2021-11-23T10:19:22+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -10713,16 +10721,16 @@
},
{
"name": "symfony/process",
- "version": "v5.3.12",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a"
+ "reference": "5be20b3830f726e019162b26223110c8f47cf274"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/e498803a6e95ede78e9d5646ad32a2255c033a6a",
- "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a",
+ "url": "https://api.github.com/repos/symfony/process/zipball/5be20b3830f726e019162b26223110c8f47cf274",
+ "reference": "5be20b3830f726e019162b26223110c8f47cf274",
"shasum": ""
},
"require": {
@@ -10755,7 +10763,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.3.12"
+ "source": "https://github.com/symfony/process/tree/v5.4.0"
},
"funding": [
{
@@ -10771,7 +10779,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-22T22:39:13+00:00"
+ "time": "2021-11-28T15:25:38+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
@@ -10863,21 +10871,21 @@
},
{
"name": "symfony/routing",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca"
+ "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/fcbc2b81d55984f04bb704c2269755fa5aaf5cca",
- "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/9eeae93c32ca86746e5d38f3679e9569981038b1",
+ "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
@@ -10889,11 +10897,11 @@
"require-dev": {
"doctrine/annotations": "^1.12",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.3",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/yaml": "^4.4|^5.0"
+ "symfony/config": "^5.3|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/expression-language": "^4.4|^5.0|^6.0",
+ "symfony/http-foundation": "^4.4|^5.0|^6.0",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
"symfony/config": "For using the all-in-one router or any loader",
@@ -10933,7 +10941,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v5.3.11"
+ "source": "https://github.com/symfony/routing/tree/v5.4.0"
},
"funding": [
{
@@ -10949,7 +10957,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T16:37:19+00:00"
+ "time": "2021-11-23T10:19:22+00:00"
},
{
"name": "symfony/service-contracts",
@@ -11036,16 +11044,16 @@
},
{
"name": "symfony/string",
- "version": "v5.3.10",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
+ "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
- "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
+ "url": "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d",
+ "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d",
"shasum": ""
},
"require": {
@@ -11056,11 +11064,14 @@
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php80": "~1.15"
},
+ "conflict": {
+ "symfony/translation-contracts": ">=3.0"
+ },
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-client": "^4.4|^5.0",
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
"symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0"
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
@@ -11099,7 +11110,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.3.10"
+ "source": "https://github.com/symfony/string/tree/v5.4.0"
},
"funding": [
{
@@ -11115,31 +11126,32 @@
"type": "tidelift"
}
],
- "time": "2021-10-27T18:21:46+00:00"
+ "time": "2021-11-24T10:02:00+00:00"
},
{
"name": "symfony/translation",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a"
+ "reference": "6fe32b10e912a518805bc9eafc2a87145773cf13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/17a965c8f3b1b348cf15d903ac53942984561f8a",
- "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/6fe32b10e912a518805bc9eafc2a87145773cf13",
+ "reference": "6fe32b10e912a518805bc9eafc2a87145773cf13",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php80": "^1.16",
"symfony/translation-contracts": "^2.3"
},
"conflict": {
"symfony/config": "<4.4",
+ "symfony/console": "<5.3",
"symfony/dependency-injection": "<5.0",
"symfony/http-kernel": "<5.0",
"symfony/twig-bundle": "<5.0",
@@ -11150,15 +11162,16 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0",
- "symfony/console": "^4.4|^5.0",
- "symfony/dependency-injection": "^5.0",
- "symfony/finder": "^4.4|^5.0",
- "symfony/http-kernel": "^5.0",
- "symfony/intl": "^4.4|^5.0",
+ "symfony/config": "^4.4|^5.0|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.0|^6.0",
+ "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
+ "symfony/http-kernel": "^5.0|^6.0",
+ "symfony/intl": "^4.4|^5.0|^6.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2",
- "symfony/yaml": "^4.4|^5.0"
+ "symfony/service-contracts": "^1.1.2|^2|^3",
+ "symfony/yaml": "^4.4|^5.0|^6.0"
},
"suggest": {
"psr/log-implementation": "To use logging capability in translator",
@@ -11194,7 +11207,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v5.3.11"
+ "source": "https://github.com/symfony/translation/tree/v5.4.0"
},
"funding": [
{
@@ -11210,7 +11223,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-04T16:37:19+00:00"
+ "time": "2021-11-29T15:30:56+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -11292,16 +11305,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "a029b3a11b757f9cc8693040339153b4745a913f"
+ "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a029b3a11b757f9cc8693040339153b4745a913f",
- "reference": "a029b3a11b757f9cc8693040339153b4745a913f",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/89ab66eaef230c9cd1992de2e9a1b26652b127b9",
+ "reference": "89ab66eaef230c9cd1992de2e9a1b26652b127b9",
"shasum": ""
},
"require": {
@@ -11315,8 +11328,9 @@
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
+ "symfony/console": "^4.4|^5.0|^6.0",
+ "symfony/process": "^4.4|^5.0|^6.0",
+ "symfony/uid": "^5.1|^6.0",
"twig/twig": "^2.13|^3.0.4"
},
"suggest": {
@@ -11360,7 +11374,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.3.11"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.4.0"
},
"funding": [
{
@@ -11376,7 +11390,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-12T11:38:27+00:00"
+ "time": "2021-11-29T15:30:56+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -12208,16 +12222,16 @@
},
{
"name": "brianium/paratest",
- "version": "v6.3.3",
+ "version": "v6.4.1",
"source": {
"type": "git",
"url": "https://github.com/paratestphp/paratest.git",
- "reference": "a448f456921719fdf8a2c0f6d1e2e8f63c085ffa"
+ "reference": "c32a5c4fc2ff339202437d25d19a5f496f880d61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paratestphp/paratest/zipball/a448f456921719fdf8a2c0f6d1e2e8f63c085ffa",
- "reference": "a448f456921719fdf8a2c0f6d1e2e8f63c085ffa",
+ "url": "https://api.github.com/repos/paratestphp/paratest/zipball/c32a5c4fc2ff339202437d25d19a5f496f880d61",
+ "reference": "c32a5c4fc2ff339202437d25d19a5f496f880d61",
"shasum": ""
},
"require": {
@@ -12226,13 +12240,13 @@
"ext-reflection": "*",
"ext-simplexml": "*",
"php": "^7.3 || ^8.0",
- "phpunit/php-code-coverage": "^9.2.7",
+ "phpunit/php-code-coverage": "^9.2.9",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-timer": "^5.0.3",
"phpunit/phpunit": "^9.5.10",
"sebastian/environment": "^5.1.3",
- "symfony/console": "^4.4.30 || ^5.3.7",
- "symfony/process": "^4.4.30 || ^5.3.7"
+ "symfony/console": "^5.4.0 || ^6.0.0",
+ "symfony/process": "^5.4.0 || ^6.0.0"
},
"require-dev": {
"doctrine/coding-standard": "^9.0.0",
@@ -12240,14 +12254,15 @@
"ergebnis/phpstan-rules": "^0.15.3",
"ext-posix": "*",
"infection/infection": "^0.25.3",
+ "malukenho/mcbumpface": "^1.1.5",
"phpstan/phpstan": "^0.12.99",
"phpstan/phpstan-deprecation-rules": "^0.12.6",
"phpstan/phpstan-phpunit": "^0.12.22",
"phpstan/phpstan-strict-rules": "^0.12.11",
- "squizlabs/php_codesniffer": "^3.6.0",
- "symfony/filesystem": "^5.3.4",
- "thecodingmachine/phpstan-strict-rules": "^0.12.1",
- "vimeo/psalm": "^4.10.0"
+ "squizlabs/php_codesniffer": "^3.6.1",
+ "symfony/filesystem": "^v5.4.0",
+ "thecodingmachine/phpstan-strict-rules": "^v0.12.2",
+ "vimeo/psalm": "^4.13.1"
},
"bin": [
"bin/paratest"
@@ -12286,7 +12301,7 @@
],
"support": {
"issues": "https://github.com/paratestphp/paratest/issues",
- "source": "https://github.com/paratestphp/paratest/tree/v6.3.3"
+ "source": "https://github.com/paratestphp/paratest/tree/v6.4.1"
},
"funding": [
{
@@ -12298,7 +12313,7 @@
"type": "paypal"
}
],
- "time": "2021-11-19T07:41:55+00:00"
+ "time": "2021-12-02T09:12:23+00:00"
},
{
"name": "darkaonline/l5-swagger",
@@ -12587,16 +12602,16 @@
},
{
"name": "facade/ignition",
- "version": "2.17.1",
+ "version": "2.17.2",
"source": {
"type": "git",
"url": "https://github.com/facade/ignition.git",
- "reference": "317f6110c1977b50e06365bbb155fbe5079035ec"
+ "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/317f6110c1977b50e06365bbb155fbe5079035ec",
- "reference": "317f6110c1977b50e06365bbb155fbe5079035ec",
+ "url": "https://api.github.com/repos/facade/ignition/zipball/af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2",
+ "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2",
"shasum": ""
},
"require": {
@@ -12661,7 +12676,7 @@
"issues": "https://github.com/facade/ignition/issues",
"source": "https://github.com/facade/ignition"
},
- "time": "2021-11-25T10:26:30+00:00"
+ "time": "2021-11-29T14:04:22+00:00"
},
{
"name": "facade/ignition-contracts",
@@ -13839,16 +13854,16 @@
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.5",
+ "version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
"shasum": ""
},
"require": {
@@ -13887,7 +13902,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
},
"funding": [
{
@@ -13895,7 +13910,7 @@
"type": "github"
}
],
- "time": "2020-09-28T05:57:25+00:00"
+ "time": "2021-12-02T12:48:52+00:00"
},
{
"name": "phpunit/php-invoker",
@@ -15344,21 +15359,21 @@
},
{
"name": "symfony/stopwatch",
- "version": "v5.3.4",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "b24c6a92c6db316fee69e38c80591e080e41536c"
+ "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b24c6a92c6db316fee69e38c80591e080e41536c",
- "reference": "b24c6a92c6db316fee69e38c80591e080e41536c",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/208ef96122bfed82a8f3a61458a07113a08bdcfe",
+ "reference": "208ef96122bfed82a8f3a61458a07113a08bdcfe",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/service-contracts": "^1.0|^2"
+ "symfony/service-contracts": "^1|^2|^3"
},
"type": "library",
"autoload": {
@@ -15386,7 +15401,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v5.3.4"
+ "source": "https://github.com/symfony/stopwatch/tree/v5.4.0"
},
"funding": [
{
@@ -15402,32 +15417,32 @@
"type": "tidelift"
}
],
- "time": "2021-07-10T08:58:57+00:00"
+ "time": "2021-11-23T10:19:22+00:00"
},
{
"name": "symfony/yaml",
- "version": "v5.3.11",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a"
+ "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/226638aa877bc4104e619a15f27d8141cd6b4e4a",
- "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc",
+ "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/polyfill-ctype": "~1.8"
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<4.4"
+ "symfony/console": "<5.3"
},
"require-dev": {
- "symfony/console": "^4.4|^5.0"
+ "symfony/console": "^5.3|^6.0"
},
"suggest": {
"symfony/console": "For validating YAML files using the lint command"
@@ -15461,7 +15476,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v5.3.11"
+ "source": "https://github.com/symfony/yaml/tree/v5.4.0"
},
"funding": [
{
@@ -15477,7 +15492,7 @@
"type": "tidelift"
}
],
- "time": "2021-11-20T16:42:42+00:00"
+ "time": "2021-11-28T15:25:38+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/resources/views/pdf-designs/bold.html b/resources/views/pdf-designs/bold.html
index a05851f097d5..faf492857824 100644
--- a/resources/views/pdf-designs/bold.html
+++ b/resources/views/pdf-designs/bold.html
@@ -113,7 +113,7 @@
table-layout: fixed;
overflow-wrap: break-word;
margin-top: 3rem;
- margin-bottom: 200px;
+ margin-bottom: 0px;
}
[data-ref="table"]:last-child{
@@ -371,20 +371,24 @@
$entity_images
+
- tables.forEach((tableIdentifier) => {
- document.getElementById(tableIdentifier).childElementCount === 0
- ? document.getElementById(tableIdentifier).style.display = 'none'
- : '';
- });
- });
-
diff --git a/resources/views/pdf-designs/hipster.html b/resources/views/pdf-designs/hipster.html
index f8b91e7d9108..a8b64113a343 100644
--- a/resources/views/pdf-designs/hipster.html
+++ b/resources/views/pdf-designs/hipster.html
@@ -354,30 +354,29 @@
-
$entity_images
-
+
- // If we have elements in these tables, we can change label to "Statement" & hide entity details.
- if (document.querySelectorAll('#statement-payment-table > tbody, #statement-payment-table > tbody, #statement-aging-table-totals > tbody').length > 0) {
- document.querySelector('.entity-label').innerText = '$statement_label';
- document.querySelector('.entity-details-wrapper').style.display = 'none';
- }
- });
-
diff --git a/resources/views/pdf-designs/modern.html b/resources/views/pdf-designs/modern.html
index 906237dfe47b..84dcbf1280c9 100644
--- a/resources/views/pdf-designs/modern.html
+++ b/resources/views/pdf-designs/modern.html
@@ -348,24 +348,28 @@ $entity_images
+
- tables.forEach((tableIdentifier) => {
- document.getElementById(tableIdentifier).childElementCount === 0
- ? document.getElementById(tableIdentifier).style.display = 'none'
- : '';
- });
- });
-
diff --git a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php
index 3e5b8970eb66..61beb2645a7d 100644
--- a/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php
+++ b/resources/views/portal/ninja2020/components/livewire/documents-table.blade.php
@@ -12,12 +12,6 @@
{{ ctrans('texts.credits') }}
-
- {{ ctrans('texts.expenses') }}
-
-
diff --git a/resources/views/portal/ninja2020/plan/index.blade.php b/resources/views/portal/ninja2020/plan/index.blade.php
index 4ab6008db659..5a33249a5096 100644
--- a/resources/views/portal/ninja2020/plan/index.blade.php
+++ b/resources/views/portal/ninja2020/plan/index.blade.php
@@ -110,14 +110,14 @@
document.getElementById('handlePlanChange').addEventListener('click', function() {
if(document.getElementById("newPlan").value.length > 1)
- location.href = 'https://invoiceninja.invoicing.co/client/subscriptions/{{ $current_recurring_id }}/plan_switch/' + document.getElementById("newPlan").value + '';
+ location.href = 'http://devhosted.test:8000/client/subscriptions/{{ $current_recurring_id }}/plan_switch/' + document.getElementById("newPlan").value + '';
});
@else
document.getElementById('handleNewPlan').addEventListener('click', function() {
if(document.getElementById("newPlan").value.length > 1)
- location.href = 'https://invoiceninja.invoicing.co/client/subscriptions/' + document.getElementById("newPlan").value + '/purchase';
+ location.href = 'http://devhosted.test:8000/client/subscriptions/' + document.getElementById("newPlan").value + '/purchase';
});
@endif
diff --git a/tests/Feature/ExpenseApiTest.php b/tests/Feature/ExpenseApiTest.php
index 70254f13b67a..63f550512084 100644
--- a/tests/Feature/ExpenseApiTest.php
+++ b/tests/Feature/ExpenseApiTest.php
@@ -121,6 +121,17 @@ class ExpenseApiTest extends TestCase
$response->assertStatus(200);
}
+ public function testExpenseGetSort()
+ {
+ $response = $this->withHeaders([
+ 'X-API-SECRET' => config('ninja.api_secret'),
+ 'X-API-TOKEN' => $this->token,
+ ])->get('/api/v1/expenses?sort=public_notes|desc');
+
+ $response->assertStatus(200);
+ }
+
+
public function testExpenseNotArchived()
{
$response = $this->withHeaders([
diff --git a/tests/Unit/AutoBillInvoiceTest.php b/tests/Unit/AutoBillInvoiceTest.php
index b897024aff86..dade531875fc 100644
--- a/tests/Unit/AutoBillInvoiceTest.php
+++ b/tests/Unit/AutoBillInvoiceTest.php
@@ -38,7 +38,7 @@ class AutoBillInvoiceTest extends TestCase
$this->assertEquals($this->client->paid_to_date, 0);
$this->assertEquals($this->client->credit_balance, 10);
- $this->invoice->service()->markSent()->autoBill()->save();
+ $this->invoice->service()->markSent()->autoBill();
$this->assertNotNull($this->invoice->payments());
$this->assertEquals(10, $this->invoice->payments()->sum('payments.amount'));
diff --git a/tests/Unit/SubscriptionsCalcTest.php b/tests/Unit/SubscriptionsCalcTest.php
index 5b07efeb9478..98e07240bef3 100644
--- a/tests/Unit/SubscriptionsCalcTest.php
+++ b/tests/Unit/SubscriptionsCalcTest.php
@@ -94,13 +94,13 @@ class SubscriptionsCalcTest extends TestCase
$refund = $pro_rata->refund($invoice->amount, Carbon::parse('2021-01-01'), Carbon::parse('2021-01-06'), $subscription->frequency_id);
- $this->assertEquals(1.67, $refund);
+ $this->assertEquals(1.61, $refund);
$pro_rata = new ProRata;
$upgrade = $pro_rata->charge($target->price, Carbon::parse('2021-01-01'), Carbon::parse('2021-01-06'), $subscription->frequency_id);
- $this->assertEquals(3.33, $upgrade);
+ $this->assertEquals(3.23, $upgrade);
}
}