diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index b201296e0db4..7f4a7bd7fc8b 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -148,6 +148,8 @@ class ActivityController extends BaseController } } + $activity->company->setLocale(); + if (isset($activity->invoice_id)) { $filename = $activity->invoice->numberFormatter().'.pdf'; } elseif (isset($activity->quote_id)) { diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php index a1d4949f0175..2c606c141573 100644 --- a/app/Http/Controllers/ClientPortal/InvitationController.php +++ b/app/Http/Controllers/ClientPortal/InvitationController.php @@ -85,23 +85,21 @@ class InvitationController extends Controller ->with('contact.client') ->firstOrFail(); - //09-03-2023 do not show entity if the invitation has been trashed. if ($invitation->trashed() || $invitation->{$entity}->is_deleted) { return $this->render('generic.not_available', ['account' => $invitation->company->account, 'company' => $invitation->company]); } - /* 12/01/2022 Clean up an edge case where if the contact is trashed, restore if a invitation comes back. */ if ($invitation->contact->trashed()) { $invitation->contact->restore(); } - /* Return early if we have the correct client_hash embedded */ $client_contact = $invitation->contact; if (empty($client_contact->email)) { $client_contact->email = Str::random(15) . "@example.com"; - } $client_contact->save(); - + $client_contact->save(); + } + if (request()->has('client_hash') && request()->input('client_hash') == $invitation->contact->client->client_hash) { request()->session()->invalidate(); auth()->guard('contact')->loginUsingId($client_contact->id, true); diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index 336706ea3668..bff1ac302f19 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -11,34 +11,35 @@ namespace App\Http\Controllers; -use App\Events\Credit\CreditWasCreated; -use App\Events\Credit\CreditWasUpdated; -use App\Factory\CloneCreditFactory; +use App\Utils\Ninja; +use App\Models\Client; +use App\Models\Credit; +use App\Models\Account; +use App\Models\Invoice; +use Illuminate\Http\Response; use App\Factory\CreditFactory; use App\Filters\CreditFilters; -use App\Http\Requests\Credit\ActionCreditRequest; +use App\Jobs\Credit\ZipCredits; +use App\Utils\Traits\MakesHash; +use App\Jobs\Entity\EmailEntity; +use App\Factory\CloneCreditFactory; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; +use App\Repositories\CreditRepository; +use App\Events\Credit\CreditWasCreated; +use App\Events\Credit\CreditWasUpdated; +use App\Transformers\CreditTransformer; +use Illuminate\Support\Facades\Storage; use App\Http\Requests\Credit\BulkCreditRequest; -use App\Http\Requests\Credit\CreateCreditRequest; -use App\Http\Requests\Credit\DestroyCreditRequest; use App\Http\Requests\Credit\EditCreditRequest; use App\Http\Requests\Credit\ShowCreditRequest; use App\Http\Requests\Credit\StoreCreditRequest; +use App\Http\Requests\Credit\ActionCreditRequest; +use App\Http\Requests\Credit\CreateCreditRequest; use App\Http\Requests\Credit\UpdateCreditRequest; use App\Http\Requests\Credit\UploadCreditRequest; -use App\Jobs\Credit\ZipCredits; -use App\Jobs\Entity\EmailEntity; -use App\Models\Account; -use App\Models\Client; -use App\Models\Credit; -use App\Models\Invoice; -use App\Repositories\CreditRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\CreditTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Credit\DestroyCreditRequest; /** * Class CreditController. @@ -691,6 +692,8 @@ class CreditController extends BaseController $credit = $invitation->credit; + App::setLocale($invitation->contact->preferredLocale()); + $file = $credit->service()->getCreditPdf($invitation); $headers = ['Content-Type' => 'application/pdf']; diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 1c691f36f577..81556fc531af 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -12,38 +12,39 @@ namespace App\Http\Controllers; -use App\Events\Invoice\InvoiceWasCreated; -use App\Events\Invoice\InvoiceWasUpdated; -use App\Factory\CloneInvoiceFactory; -use App\Factory\CloneInvoiceToQuoteFactory; +use App\Utils\Ninja; +use App\Models\Quote; +use App\Models\Account; +use App\Models\Invoice; +use App\Jobs\Cron\AutoBill; +use Illuminate\Http\Response; use App\Factory\InvoiceFactory; use App\Filters\InvoiceFilters; -use App\Http\Requests\Invoice\ActionInvoiceRequest; +use App\Utils\Traits\MakesHash; +use App\Jobs\Invoice\ZipInvoices; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Factory\CloneInvoiceFactory; +use App\Jobs\Invoice\BulkInvoiceJob; +use App\Utils\Traits\SavesDocuments; +use App\Jobs\Invoice\UpdateReminders; +use App\Transformers\QuoteTransformer; +use App\Repositories\InvoiceRepository; +use Illuminate\Support\Facades\Storage; +use App\Transformers\InvoiceTransformer; +use App\Events\Invoice\InvoiceWasCreated; +use App\Events\Invoice\InvoiceWasUpdated; +use App\Factory\CloneInvoiceToQuoteFactory; use App\Http\Requests\Invoice\BulkInvoiceRequest; -use App\Http\Requests\Invoice\CreateInvoiceRequest; -use App\Http\Requests\Invoice\DestroyInvoiceRequest; use App\Http\Requests\Invoice\EditInvoiceRequest; use App\Http\Requests\Invoice\ShowInvoiceRequest; use App\Http\Requests\Invoice\StoreInvoiceRequest; +use App\Http\Requests\Invoice\ActionInvoiceRequest; +use App\Http\Requests\Invoice\CreateInvoiceRequest; use App\Http\Requests\Invoice\UpdateInvoiceRequest; -use App\Http\Requests\Invoice\UpdateReminderRequest; use App\Http\Requests\Invoice\UploadInvoiceRequest; -use App\Jobs\Cron\AutoBill; -use App\Jobs\Invoice\BulkInvoiceJob; -use App\Jobs\Invoice\UpdateReminders; -use App\Jobs\Invoice\ZipInvoices; -use App\Models\Account; -use App\Models\Invoice; -use App\Models\Quote; -use App\Repositories\InvoiceRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\InvoiceTransformer; -use App\Transformers\QuoteTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Invoice\DestroyInvoiceRequest; +use App\Http\Requests\Invoice\UpdateReminderRequest; /** * Class InvoiceController. @@ -821,6 +822,8 @@ class InvoiceController extends BaseController $invoice = $invitation->invoice; + App::setLocale($invitation->contact->preferredLocale()); + $file_name = $invoice->numberFormatter().'.pdf'; $file = (new \App\Jobs\Entity\CreateRawPdf($invitation, $invitation->company->db))->handle(); diff --git a/app/Http/Controllers/PurchaseOrderController.php b/app/Http/Controllers/PurchaseOrderController.php index 91da9c5efd7d..c6892f89a69d 100644 --- a/app/Http/Controllers/PurchaseOrderController.php +++ b/app/Http/Controllers/PurchaseOrderController.php @@ -11,32 +11,33 @@ namespace App\Http\Controllers; -use App\Events\PurchaseOrder\PurchaseOrderWasCreated; -use App\Events\PurchaseOrder\PurchaseOrderWasUpdated; +use App\Utils\Ninja; +use App\Models\Client; +use App\Models\Account; +use App\Models\PurchaseOrder; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; use App\Factory\PurchaseOrderFactory; use App\Filters\PurchaseOrderFilters; -use App\Http\Requests\PurchaseOrder\ActionPurchaseOrderRequest; +use Illuminate\Support\Facades\Storage; +use App\Jobs\PurchaseOrder\ZipPurchaseOrders; +use App\Repositories\PurchaseOrderRepository; +use App\Jobs\PurchaseOrder\PurchaseOrderEmail; +use App\Transformers\PurchaseOrderTransformer; +use App\Events\PurchaseOrder\PurchaseOrderWasCreated; +use App\Events\PurchaseOrder\PurchaseOrderWasUpdated; use App\Http\Requests\PurchaseOrder\BulkPurchaseOrderRequest; -use App\Http\Requests\PurchaseOrder\CreatePurchaseOrderRequest; -use App\Http\Requests\PurchaseOrder\DestroyPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\EditPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\ShowPurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\StorePurchaseOrderRequest; +use App\Http\Requests\PurchaseOrder\ActionPurchaseOrderRequest; +use App\Http\Requests\PurchaseOrder\CreatePurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\UpdatePurchaseOrderRequest; use App\Http\Requests\PurchaseOrder\UploadPurchaseOrderRequest; -use App\Jobs\PurchaseOrder\PurchaseOrderEmail; -use App\Jobs\PurchaseOrder\ZipPurchaseOrders; -use App\Models\Account; -use App\Models\Client; -use App\Models\PurchaseOrder; -use App\Repositories\PurchaseOrderRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\PurchaseOrderTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\PurchaseOrder\DestroyPurchaseOrderRequest; class PurchaseOrderController extends BaseController { diff --git a/app/Http/Controllers/QuoteController.php b/app/Http/Controllers/QuoteController.php index ca27b5840054..bfee11be5a57 100644 --- a/app/Http/Controllers/QuoteController.php +++ b/app/Http/Controllers/QuoteController.php @@ -11,38 +11,39 @@ namespace App\Http\Controllers; -use App\Events\Quote\QuoteWasCreated; -use App\Events\Quote\QuoteWasUpdated; -use App\Factory\CloneQuoteFactory; -use App\Factory\CloneQuoteToInvoiceFactory; -use App\Factory\CloneQuoteToProjectFactory; +use App\Utils\Ninja; +use App\Models\Quote; +use App\Models\Client; +use App\Models\Account; +use App\Models\Invoice; +use Illuminate\Http\Request; use App\Factory\QuoteFactory; use App\Filters\QuoteFilters; -use App\Http\Requests\Quote\ActionQuoteRequest; -use App\Http\Requests\Quote\BulkActionQuoteRequest; -use App\Http\Requests\Quote\CreateQuoteRequest; -use App\Http\Requests\Quote\DestroyQuoteRequest; +use App\Jobs\Quote\ZipQuotes; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; +use App\Factory\CloneQuoteFactory; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; +use App\Events\Quote\QuoteWasCreated; +use App\Events\Quote\QuoteWasUpdated; +use App\Repositories\QuoteRepository; +use App\Transformers\QuoteTransformer; +use App\Utils\Traits\GeneratesCounter; +use Illuminate\Support\Facades\Storage; +use App\Transformers\InvoiceTransformer; +use App\Factory\CloneQuoteToInvoiceFactory; +use App\Factory\CloneQuoteToProjectFactory; use App\Http\Requests\Quote\EditQuoteRequest; use App\Http\Requests\Quote\ShowQuoteRequest; use App\Http\Requests\Quote\StoreQuoteRequest; +use App\Http\Requests\Quote\ActionQuoteRequest; +use App\Http\Requests\Quote\CreateQuoteRequest; use App\Http\Requests\Quote\UpdateQuoteRequest; use App\Http\Requests\Quote\UploadQuoteRequest; -use App\Jobs\Quote\ZipQuotes; -use App\Models\Account; -use App\Models\Client; -use App\Models\Invoice; -use App\Models\Quote; -use App\Repositories\QuoteRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Transformers\InvoiceTransformer; -use App\Transformers\QuoteTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Request; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Quote\DestroyQuoteRequest; +use App\Http\Requests\Quote\BulkActionQuoteRequest; /** * Class QuoteController. @@ -824,6 +825,8 @@ class QuoteController extends BaseController $contact = $invitation->contact; $quote = $invitation->quote; + + App::setLocale($invitation->contact->preferredLocale()); $file = $quote->service()->getQuotePdf($contact); diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index 02b526d094c2..daa59552c836 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -11,29 +11,28 @@ namespace App\Http\Controllers; -use App\Events\RecurringInvoice\RecurringInvoiceWasCreated; -use App\Events\RecurringInvoice\RecurringInvoiceWasUpdated; +use App\Utils\Ninja; +use App\Models\Account; +use Illuminate\Http\Response; +use App\Utils\Traits\MakesHash; +use App\Models\RecurringInvoice; +use App\Utils\Traits\SavesDocuments; use App\Factory\RecurringInvoiceFactory; use App\Filters\RecurringInvoiceFilters; -use App\Http\Requests\RecurringInvoice\ActionRecurringInvoiceRequest; +use App\Jobs\RecurringInvoice\UpdateRecurring; +use App\Repositories\RecurringInvoiceRepository; +use App\Transformers\RecurringInvoiceTransformer; +use App\Events\RecurringInvoice\RecurringInvoiceWasCreated; +use App\Events\RecurringInvoice\RecurringInvoiceWasUpdated; use App\Http\Requests\RecurringInvoice\BulkRecurringInvoiceRequest; -use App\Http\Requests\RecurringInvoice\CreateRecurringInvoiceRequest; -use App\Http\Requests\RecurringInvoice\DestroyRecurringInvoiceRequest; use App\Http\Requests\RecurringInvoice\EditRecurringInvoiceRequest; use App\Http\Requests\RecurringInvoice\ShowRecurringInvoiceRequest; use App\Http\Requests\RecurringInvoice\StoreRecurringInvoiceRequest; +use App\Http\Requests\RecurringInvoice\ActionRecurringInvoiceRequest; +use App\Http\Requests\RecurringInvoice\CreateRecurringInvoiceRequest; use App\Http\Requests\RecurringInvoice\UpdateRecurringInvoiceRequest; use App\Http\Requests\RecurringInvoice\UploadRecurringInvoiceRequest; -use App\Jobs\RecurringInvoice\UpdateRecurring; -use App\Models\Account; -use App\Models\RecurringInvoice; -use App\Repositories\RecurringInvoiceRepository; -use App\Transformers\RecurringInvoiceTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\RecurringInvoice\DestroyRecurringInvoiceRequest; /** * Class RecurringInvoiceController. @@ -566,6 +565,8 @@ class RecurringInvoiceController extends BaseController } $invoice = $invitation->recurring_invoice; + + \Illuminate\Support\Facades\App::setLocale($invitation->contact->preferredLocale()); $file_name = $invoice->numberFormatter().'.pdf'; diff --git a/app/Http/Controllers/VendorPortal/InvitationController.php b/app/Http/Controllers/VendorPortal/InvitationController.php index 80bc02e5d5df..7ce6ae394d01 100644 --- a/app/Http/Controllers/VendorPortal/InvitationController.php +++ b/app/Http/Controllers/VendorPortal/InvitationController.php @@ -11,16 +11,17 @@ namespace App\Http\Controllers\VendorPortal; -use App\Events\Misc\InvitationWasViewed; -use App\Events\PurchaseOrder\PurchaseOrderWasViewed; -use App\Http\Controllers\Controller; -use App\Jobs\Vendor\CreatePurchaseOrderPdf; -use App\Models\PurchaseOrderInvitation; use App\Utils\Ninja; -use App\Utils\Traits\MakesDates; -use App\Utils\Traits\MakesHash; -use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; +use App\Utils\Traits\MakesHash; +use App\Utils\Traits\MakesDates; +use Illuminate\Support\Facades\App; +use App\Http\Controllers\Controller; +use Illuminate\Support\Facades\Auth; +use App\Models\PurchaseOrderInvitation; +use App\Events\Misc\InvitationWasViewed; +use App\Jobs\Vendor\CreatePurchaseOrderPdf; +use App\Events\PurchaseOrder\PurchaseOrderWasViewed; /** * Class InvitationController. @@ -89,6 +90,8 @@ class InvitationController extends Controller return response()->json(["message" => "no record found"], 400); } + App::setLocale($invitation->contact->preferredLocale()); + $file_name = $invitation->purchase_order->numberFormatter().'.pdf'; $file = (new CreatePurchaseOrderPdf($invitation))->rawPdf(); diff --git a/app/Http/Middleware/SetInviteDb.php b/app/Http/Middleware/SetInviteDb.php index 07dc7b4419d1..cc9ec3c1918b 100644 --- a/app/Http/Middleware/SetInviteDb.php +++ b/app/Http/Middleware/SetInviteDb.php @@ -53,7 +53,6 @@ class SetInviteDb /* Try and determine the DB from the invitation key STRING*/ if (config('ninja.db.multi_db_enabled')) { - // nlog("/ Try and determine the DB from the invitation key /"); $hashids = new Hashids(config('ninja.hash_salt'), 10); $segments = explode('-', $request->route('invitation_key')); diff --git a/app/Models/Company.php b/app/Models/Company.php index ea94a0a6c1d1..cce115b25c9c 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -16,6 +16,7 @@ use App\Casts\EncryptedCast; use App\Utils\Traits\AppSetup; use App\Utils\Traits\MakesHash; use App\DataMapper\CompanySettings; +use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Cache; use Laracasts\Presenter\PresentableTrait; use App\Utils\Traits\CompanySettingsSaver; @@ -686,6 +687,11 @@ class Company extends BaseModel return $this->getLocale(); } + public function setLocale() + { + App::setLocale($this->getLocale()); + } + public function getSetting($setting) { if (property_exists($this->settings, $setting) != false) { diff --git a/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php b/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php index 40044b90b6e5..5735b6eadeed 100644 --- a/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php +++ b/app/Services/PurchaseOrder/GetPurchaseOrderPdf.php @@ -11,11 +11,11 @@ namespace App\Services\PurchaseOrder; -use App\Jobs\Vendor\CreatePurchaseOrderPdf; use App\Models\PurchaseOrder; use App\Models\VendorContact; use App\Services\AbstractService; use Illuminate\Support\Facades\Storage; +use App\Jobs\Vendor\CreatePurchaseOrderPdf; class GetPurchaseOrderPdf extends AbstractService { @@ -31,6 +31,7 @@ class GetPurchaseOrderPdf extends AbstractService $invitation = $this->purchase_order->invitations()->where('vendor_contact_id', $this->contact->id)->first(); + if (! $invitation) { $invitation = $this->purchase_order->invitations()->first(); }