mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Add documents as default includes
This commit is contained in:
parent
5f93b7ca70
commit
c220108168
@ -13,6 +13,7 @@ namespace App\Jobs\Credit;
|
||||
|
||||
use App\Events\Credit\CreditWasEmailed;
|
||||
use App\Events\Credit\CreditWasEmailedAndFailed;
|
||||
use App\Jobs\Mail\BaseMailerJob;
|
||||
use App\Jobs\Util\SystemLogger;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Mail\TemplateEmail;
|
||||
@ -26,7 +27,8 @@ use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
class EmailCredit implements ShouldQueue
|
||||
/*Multi Mailer implemented*/
|
||||
class EmailCredit extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
@ -57,14 +59,16 @@ class EmailCredit implements ShouldQueue
|
||||
|
||||
$template_style = $this->credit->client->getSetting('email_style');
|
||||
|
||||
$this->setMailDriver($this->credit->client->getSetting('email_sending_method'));
|
||||
|
||||
$this->credit->invitations->each(function ($invitation) use ($template_style) {
|
||||
|
||||
if ($invitation->contact->send_email && $invitation->contact->email) {
|
||||
|
||||
$message_array = $this->credit->getEmailData('', $invitation->contact);
|
||||
$message_array['title'] = &$message_array['subject'];
|
||||
$message_array['footer'] = "Sent to ".$invitation->contact->present()->name();
|
||||
|
||||
//change the runtime config of the mail provider here:
|
||||
|
||||
//send message
|
||||
Mail::to($invitation->contact->email, $invitation->contact->present()->name())
|
||||
->send(new TemplateEmail($message_array, $template_style, $invitation->contact->user, $invitation->contact->client));
|
||||
@ -77,8 +81,6 @@ class EmailCredit implements ShouldQueue
|
||||
|
||||
//fire any events
|
||||
event(new CreditWasEmailed($this->credit, $this->company, Ninja::eventVars()));
|
||||
|
||||
//sleep(5);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1,10 +1,20 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Invoice;
|
||||
|
||||
use App\Events\Invoice\InvoiceWasEmailed;
|
||||
use App\Events\Invoice\InvoiceWasEmailedAndFailed;
|
||||
use App\Helpers\Email\InvoiceEmail;
|
||||
use App\Jobs\Mail\BaseMailerJob;
|
||||
use App\Jobs\Utils\SystemLogger;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Mail\TemplateEmail;
|
||||
@ -20,7 +30,9 @@ use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Symfony\Component\Mime\Test\Constraint\EmailTextBodyContains;
|
||||
|
||||
class EmailInvoice implements ShouldQueue
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class EmailInvoice extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
||||
@ -56,6 +68,8 @@ class EmailInvoice implements ShouldQueue
|
||||
{
|
||||
MultiDB::setDB($this->company->db);
|
||||
|
||||
$this->setMailDriver($this->invoice_invitation->invoice->client->getSetting('email_sending_method'));
|
||||
|
||||
Mail::to($this->invoice_invitation->contact->email, $this->invoice_invitation->contact->present()->name())
|
||||
->send(
|
||||
new TemplateEmail(
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Mail;
|
||||
|
||||
@ -13,6 +22,8 @@ use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Mail;
|
||||
|
||||
@ -19,6 +28,8 @@ use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class EntityPaidMailer extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
@ -54,9 +65,9 @@ class EntityPaidMailer extends BaseMailerJob implements ShouldQueue
|
||||
public function handle()
|
||||
{
|
||||
//Set DB
|
||||
//
|
||||
MultiDB::setDb($this->company->db);
|
||||
|
||||
/*If we are migrating data we don't want to fire these notification*/
|
||||
if($this->company->company_users->first()->is_migrating)
|
||||
return true;
|
||||
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Mail;
|
||||
|
||||
@ -18,6 +27,8 @@ use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class EntitySentMailer extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Mail;
|
||||
|
||||
@ -18,6 +27,8 @@ use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class EntityViewedMailer extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Jobs\Mail;
|
||||
|
||||
@ -21,6 +30,8 @@ use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
/*Multi Mailer implemented*/
|
||||
|
||||
class PaymentFailureMailer extends BaseMailerJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, UserNotifies;
|
||||
|
@ -52,9 +52,10 @@ class UserEmailChanged extends BaseMailerJob implements ShouldQueue
|
||||
//Set DB
|
||||
MultiDB::setDb($this->company->db);
|
||||
|
||||
//if we need to set an email driver do it now
|
||||
//If we need to set an email driver do it now
|
||||
$this->setMailDriver($this->company->settings->email_sending_method);
|
||||
|
||||
/*Build the object*/
|
||||
$mail_obj = new \stdClass;
|
||||
$mail_obj->subject = ctrans('texts.email_address_changed');
|
||||
$mail_obj->markdown = 'email.admin.generic';
|
||||
@ -62,16 +63,14 @@ class UserEmailChanged extends BaseMailerJob implements ShouldQueue
|
||||
$mail_obj->tag = $this->company->company_key;
|
||||
$mail_obj->data = $this->getData();
|
||||
|
||||
|
||||
//send email
|
||||
//Send email via a Mailable class
|
||||
Mail::to($this->old_email)
|
||||
->send(new UserNotificationMailer($mail_obj));
|
||||
|
||||
Mail::to($this->new_email)
|
||||
->send(new UserNotificationMailer($mail_obj));
|
||||
|
||||
|
||||
//catch errors
|
||||
//Catch errors and report.
|
||||
if (count(Mail::failures()) > 0) {
|
||||
$this->logMailError(Mail::failures());
|
||||
}
|
||||
|
@ -1,4 +1,14 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use App\Models\Client;
|
||||
|
@ -1,4 +1,13 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
@ -23,7 +32,7 @@ class TestMailServer extends Mailable
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
* Test Server mail
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
|
@ -1,47 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* Invoice Ninja (https://invoiceninja.com)
|
||||
*
|
||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
||||
*
|
||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
||||
*
|
||||
* @license https://opensource.org/licenses/AAL
|
||||
*/
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class VerifyUser extends Mailable implements ShouldQueue
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
public $user;
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(User $user)
|
||||
{
|
||||
$this->user = $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
return $this->from('x@gmail.com') //todo
|
||||
->subject(ctrans('texts.confirmation_subject'))
|
||||
->markdown('email.auth.verify', ['user' => $this->user])
|
||||
->text('email.auth.verify_text');
|
||||
}
|
||||
}
|
@ -16,9 +16,11 @@ use App\Models\Client;
|
||||
use App\Models\ClientContact;
|
||||
use App\Models\ClientGatewayToken;
|
||||
use App\Models\CompanyLedger;
|
||||
use App\Models\Document;
|
||||
use App\Transformers\ActivityTransformer;
|
||||
use App\Transformers\ClientGatewayTokenTransformer;
|
||||
use App\Transformers\CompanyLedgerTransformer;
|
||||
use App\Transformers\DocumentTransformer;
|
||||
use App\Utils\Traits\MakesHash;
|
||||
|
||||
/**
|
||||
@ -30,12 +32,14 @@ class ClientTransformer extends EntityTransformer
|
||||
|
||||
protected $defaultIncludes = [
|
||||
'contacts',
|
||||
'documents',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $availableIncludes = [
|
||||
'documents',
|
||||
'gateway_tokens',
|
||||
'activities',
|
||||
'ledger',
|
||||
@ -54,6 +58,13 @@ class ClientTransformer extends EntityTransformer
|
||||
return $this->includeCollection($client->activities, $transformer, Activity::class);
|
||||
}
|
||||
|
||||
public function includeDocuments(Client $client)
|
||||
{
|
||||
$transformer = new DocumentTransformer($this->serializer);
|
||||
|
||||
return $this->includeCollection($client->documents, $transformer, Document::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Client $client
|
||||
*
|
||||
|
@ -21,6 +21,7 @@ use App\Models\CompanyToken;
|
||||
use App\Models\CompanyUser;
|
||||
use App\Models\Credit;
|
||||
use App\Models\Design;
|
||||
use App\Models\Document;
|
||||
use App\Models\Expense;
|
||||
use App\Models\GroupSetting;
|
||||
use App\Models\Payment;
|
||||
@ -36,6 +37,7 @@ use App\Transformers\CompanyLedgerTransformer;
|
||||
use App\Transformers\CompanyTokenHashedTransformer;
|
||||
use App\Transformers\CompanyTokenTransformer;
|
||||
use App\Transformers\CreditTransformer;
|
||||
use App\Transformers\DocumentTransformer;
|
||||
use App\Transformers\PaymentTermTransformer;
|
||||
use App\Transformers\TaskTransformer;
|
||||
use App\Transformers\WebhookTransformer;
|
||||
@ -52,12 +54,14 @@ class CompanyTransformer extends EntityTransformer
|
||||
* @var array
|
||||
*/
|
||||
protected $defaultIncludes = [
|
||||
'documents',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $availableIncludes = [
|
||||
'documents',
|
||||
'users',
|
||||
'designs',
|
||||
'account',
|
||||
@ -136,6 +140,13 @@ class CompanyTransformer extends EntityTransformer
|
||||
];
|
||||
}
|
||||
|
||||
public function includeDocuments(Company $company)
|
||||
{
|
||||
$transformer = new DocumentTransformer($this->serializer);
|
||||
|
||||
return $this->includeCollection($company->documents, $transformer, Document::class);
|
||||
}
|
||||
|
||||
public function includeCompanyUser(Company $company)
|
||||
{
|
||||
$transformer = new CompanyUserTransformer($this->serializer);
|
||||
|
@ -80,10 +80,6 @@ class InvoiceTransformer extends EntityTransformer
|
||||
{
|
||||
$transformer = new DocumentTransformer($this->serializer);
|
||||
|
||||
// $invoice->documents->each(function ($document) use ($invoice) {
|
||||
// $document->setRelation('invoice', $invoice);
|
||||
// });
|
||||
|
||||
return $this->includeCollection($invoice->documents, $transformer, Document::class);
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@ class PaymentTransformer extends EntityTransformer
|
||||
|
||||
protected $defaultIncludes = [
|
||||
// 'invoices'
|
||||
'documents',
|
||||
];
|
||||
|
||||
protected $availableIncludes = [
|
||||
|
@ -23,6 +23,7 @@ class ProductTransformer extends EntityTransformer
|
||||
use MakesHash;
|
||||
|
||||
protected $defaultIncludes = [
|
||||
'documents',
|
||||
];
|
||||
|
||||
/**
|
||||
|
@ -35,8 +35,12 @@ class HtmlEngine
|
||||
|
||||
public $entity_string;
|
||||
|
||||
public function __construct($invitation, $entity_string)
|
||||
public $designer;
|
||||
|
||||
public function __construct($designer, $invitation, $entity_string)
|
||||
{
|
||||
$this->designer = $designer;
|
||||
|
||||
$this->invitation = $invitation;
|
||||
|
||||
$this->entity = $invitation->{$entity_string};
|
||||
|
@ -15,6 +15,9 @@ class ExampleIntegrationTest extends TestCase
|
||||
|
||||
public function testExample()
|
||||
{
|
||||
$this->markTestSkipped('WIP');
|
||||
|
||||
|
||||
$invoice = Invoice::first();
|
||||
$invitation = $invoice->invitations()->first();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user