mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Fixes for Tests, MultiDB (#3334)
* refactor send_invoice to generic -> send * Code cleanup * Fixes for tests and multidb
This commit is contained in:
parent
bd8a6b462a
commit
1e35c90ee6
@ -94,7 +94,7 @@ class SendTestEmails extends Command
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id,
|
||||
'is_primary' => 1,
|
||||
'send_invoice' => true,
|
||||
'send' => true,
|
||||
'email' => $faker->safeEmail,
|
||||
]);
|
||||
|
||||
@ -102,7 +102,7 @@ class SendTestEmails extends Command
|
||||
'user_id' => $user->id,
|
||||
'client_id' => $client->id,
|
||||
'company_id' => $company->id,
|
||||
'send_invoice' => true,
|
||||
'send' => true,
|
||||
'email' => $faker->safeEmail,
|
||||
]);
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ use App\Factory\CloneInvoiceFactory;
|
||||
use App\Factory\CloneInvoiceToQuoteFactory;
|
||||
use App\Factory\InvoiceFactory;
|
||||
use App\Filters\InvoiceFilters;
|
||||
use App\Helpers\Email\InvoiceEmail;
|
||||
use App\Http\Requests\Invoice\ActionInvoiceRequest;
|
||||
use App\Http\Requests\Invoice\CreateInvoiceRequest;
|
||||
use App\Http\Requests\Invoice\DestroyInvoiceRequest;
|
||||
@ -663,7 +664,12 @@ class InvoiceController extends BaseController {
|
||||
}
|
||||
break;
|
||||
case 'email':
|
||||
EmailInvoice::dispatch($invoice, $invoice->company);
|
||||
$invoice->invitations->each(function ($invitation) use($invoice){
|
||||
|
||||
EmailInvoice::dispatch((new InvoiceEmail)->build($invoice, null, null), $invitation, $invoice->company);
|
||||
|
||||
});
|
||||
|
||||
if (!$bulk) {
|
||||
return response()->json(['message' => 'email sent'], 200);
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ class EmailCredit implements ShouldQueue
|
||||
$template_style = $this->credit->client->getSetting('email_style');
|
||||
|
||||
$this->credit->invitations->each(function ($invitation) use ($template_style) {
|
||||
if ($invitation->contact->send_invoice && $invitation->contact->email) {
|
||||
if ($invitation->contact->send && $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();
|
||||
|
@ -6,6 +6,7 @@ use App\Events\Invoice\InvoiceWasEmailed;
|
||||
use App\Events\Invoice\InvoiceWasEmailedAndFailed;
|
||||
use App\Helpers\Email\InvoiceEmail;
|
||||
use App\Jobs\Utils\SystemLogger;
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Mail\TemplateEmail;
|
||||
use App\Models\Company;
|
||||
use App\Models\Invoice;
|
||||
@ -27,14 +28,18 @@ class EmailInvoice implements ShouldQueue
|
||||
|
||||
public $email_builder;
|
||||
|
||||
public $company;
|
||||
/**
|
||||
*
|
||||
* EmailQuote constructor.
|
||||
* @param BuildEmail $email_builder
|
||||
* @param QuoteInvitation $quote_invitation
|
||||
*/
|
||||
|
||||
public function __construct(InvoiceEmail $email_builder, InvoiceInvitation $invoice_invitation)
|
||||
public function __construct(InvoiceEmail $email_builder, InvoiceInvitation $invoice_invitation, Company $company)
|
||||
{
|
||||
$this->company = $company;
|
||||
|
||||
$this->invoice_invitation = $invoice_invitation;
|
||||
|
||||
$this->email_builder = $email_builder;
|
||||
@ -49,7 +54,8 @@ class EmailInvoice implements ShouldQueue
|
||||
|
||||
public function handle()
|
||||
{
|
||||
|
||||
MultiDB::setDb($this->company->db);
|
||||
|
||||
Mail::to($this->invoice_invitation->contact->email, $this->invoice_invitation->contact->present()->name())
|
||||
->send(new TemplateEmail($this->email_builder,
|
||||
$this->invoice_invitation->contact->user,
|
||||
|
@ -55,12 +55,12 @@ class CreateQuoteInvitations implements ShouldQueue
|
||||
->whereQuoteId($this->quote->id)
|
||||
->first();
|
||||
|
||||
if (!$invitation && $contact->send_invoice) {
|
||||
if (!$invitation && $contact->send) {
|
||||
$ii = QuoteInvitationFactory::create($this->quote->company_id, $this->quote->user_id);
|
||||
$ii->quote_id = $this->quote->id;
|
||||
$ii->client_contact_id = $contact->id;
|
||||
$ii->save();
|
||||
} elseif ($invitation && !$contact->send_invoice) {
|
||||
} elseif ($invitation && !$contact->send) {
|
||||
$invitation->delete();
|
||||
}
|
||||
});
|
||||
|
@ -42,12 +42,12 @@ class CreateInvoiceInvitation implements ShouldQueue
|
||||
->whereInvoiceId($invoice->id)
|
||||
->first();
|
||||
|
||||
if (!$invitation && $contact->send_invoice) {
|
||||
if (!$invitation && $contact->send) {
|
||||
$ii = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id);
|
||||
$ii->invoice_id = $invoice->id;
|
||||
$ii->client_contact_id = $contact->id;
|
||||
$ii->save();
|
||||
} elseif ($invitation && !$contact->send_invoice) {
|
||||
} elseif ($invitation && !$contact->send) {
|
||||
$invitation->delete();
|
||||
}
|
||||
});
|
||||
|
@ -56,9 +56,9 @@ class InvoiceRepository extends BaseRepository {
|
||||
|
||||
if (isset($data['client_contacts'])) {
|
||||
foreach ($data['client_contacts'] as $contact) {
|
||||
if ($contact['send_invoice'] == 1) {
|
||||
if ($contact['send'] == 1) {
|
||||
$client_contact = ClientContact::find($this->decodePrimaryKey($contact['id']));
|
||||
$client_contact->send_invoice = true;
|
||||
$client_contact->send = true;
|
||||
$client_contact->save();
|
||||
}
|
||||
}
|
||||
|
@ -47,9 +47,9 @@ class QuoteRepository extends BaseRepository
|
||||
|
||||
if (isset($data['client_contacts'])) {
|
||||
foreach ($data['client_contacts'] as $contact) {
|
||||
if ($contact['send_invoice'] == 1) {
|
||||
if ($contact['send'] == 1) {
|
||||
$client_contact = ClientContact::find($this->decodePrimaryKey($contact['id']));
|
||||
$client_contact->send_invoice = true;
|
||||
$client_contact->send = true;
|
||||
$client_contact->save();
|
||||
}
|
||||
}
|
||||
|
@ -35,12 +35,12 @@ class CreateInvitations
|
||||
->whereInvoiceId($invoice->id)
|
||||
->first();
|
||||
|
||||
if (!$invitation && $contact->send_invoice) {
|
||||
if (!$invitation && $contact->send) {
|
||||
$ii = InvoiceInvitationFactory::create($invoice->company_id, $invoice->user_id);
|
||||
$ii->invoice_id = $invoice->id;
|
||||
$ii->client_contact_id = $contact->id;
|
||||
$ii->save();
|
||||
} elseif ($invitation && !$contact->send_invoice) {
|
||||
} elseif ($invitation && !$contact->send) {
|
||||
$invitation->delete();
|
||||
}
|
||||
});
|
||||
|
@ -41,8 +41,8 @@ class SendEmail
|
||||
$email_builder = (new InvoiceEmail())->build($this->invoice, $reminder_template, $contact);
|
||||
|
||||
$this->invoice->invitations->each(function ($invitation) use ($email_builder) {
|
||||
if ($invitation->contact->send_invoice && $invitation->contact->email) {
|
||||
EmailInvoice::dispatch($email_builder, $invitation);
|
||||
if ($invitation->contact->send && $invitation->contact->email) {
|
||||
EmailInvoice::dispatch($email_builder, $invitation, $invitation->company);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ class SendEmail
|
||||
$email_builder = (new PaymentEmail())->build($this->payment, $contact);
|
||||
|
||||
$this->payment->client->contacts->each(function ($contact) use ($email_builder) {
|
||||
if ($contact->send_invoice && $contact->email) {
|
||||
if ($contact->send && $contact->email) {
|
||||
EmailPayment::dispatchNow($this->payment, $email_builder, $contact);
|
||||
}
|
||||
});
|
||||
|
@ -22,12 +22,12 @@ class CreateInvitations
|
||||
->whereQuoteId($quote->id)
|
||||
->first();
|
||||
|
||||
if (!$invitation && $contact->send_invoice) {
|
||||
if (!$invitation && $contact->send) {
|
||||
$ii = QuoteInvitationFactory::create($quote->company_id, $quote->user_id);
|
||||
$ii->quote_id = $quote->id;
|
||||
$ii->client_contact_id = $contact->id;
|
||||
$ii->save();
|
||||
} elseif ($invitation && !$contact->send_invoice) {
|
||||
} elseif ($invitation && !$contact->send) {
|
||||
$invitation->delete();
|
||||
}
|
||||
});
|
||||
|
@ -30,7 +30,7 @@ class SendEmail
|
||||
$email_builder = (new QuoteEmail())->build($this->quote, $reminder_template, $contact);
|
||||
|
||||
$this->quote->invitations->each(function ($invitation) use ($email_builder) {
|
||||
if ($invitation->contact->send_invoice && $invitation->contact->email) {
|
||||
if ($invitation->contact->send && $invitation->contact->email) {
|
||||
EmailQuote::dispatchNow($email_builder, $invitation);
|
||||
}
|
||||
});
|
||||
|
@ -44,7 +44,7 @@ class ClientContactTransformer extends EntityTransformer
|
||||
'custom_value3' => $contact->custom_value3 ?: '',
|
||||
'custom_value4' => $contact->custom_value4 ?: '',
|
||||
'contact_key' => $contact->contact_key ?: '',
|
||||
'send_invoice' => (bool) $contact->send_invoice,
|
||||
'send' => (bool) $contact->send,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ class CreateUsersTable extends Migration
|
||||
$table->string('password');
|
||||
$table->string('token')->nullable();
|
||||
$table->boolean('is_locked')->default(false);
|
||||
$table->boolean('send_invoice')->default(true);
|
||||
$table->boolean('send')->default(true);
|
||||
$table->string('contact_key')->nullable();
|
||||
$table->rememberToken();
|
||||
$table->timestamps(6);
|
||||
|
@ -58,9 +58,9 @@ class InvoiceEmailTest extends TestCase
|
||||
|
||||
$invitations->each(function ($invitation) use ($email_builder) {
|
||||
|
||||
if ($invitation->contact->send_invoice && $invitation->contact->email) {
|
||||
if ($invitation->contact->send && $invitation->contact->email) {
|
||||
|
||||
EmailInvoice::dispatch($email_builder, $invitation);
|
||||
EmailInvoice::dispatch($email_builder, $invitation, $invitation->company);
|
||||
|
||||
$this->expectsJobs(EmailInvoice::class);
|
||||
|
||||
|
@ -139,14 +139,14 @@ trait MockAccountData
|
||||
'client_id' => $this->client->id,
|
||||
'company_id' => $this->company->id,
|
||||
'is_primary' => 1,
|
||||
'send_invoice' => true,
|
||||
'send' => true,
|
||||
]);
|
||||
|
||||
factory(\App\Models\ClientContact::class,1)->create([
|
||||
'user_id' => $this->user->id,
|
||||
'client_id' => $this->client->id,
|
||||
'company_id' => $this->company->id,
|
||||
'send_invoice' => true
|
||||
'send' => true
|
||||
]);
|
||||
|
||||
|
||||
@ -200,13 +200,13 @@ trait MockAccountData
|
||||
->whereInvoiceId($this->invoice->id)
|
||||
->first();
|
||||
|
||||
if(!$invitation && $contact->send_invoice) {
|
||||
if(!$invitation && $contact->send) {
|
||||
$ii = InvoiceInvitationFactory::create($this->invoice->company_id, $this->invoice->user_id);
|
||||
$ii->invoice_id = $this->invoice->id;
|
||||
$ii->client_contact_id = $contact->id;
|
||||
$ii->save();
|
||||
}
|
||||
else if($invitation && !$contact->send_invoice) {
|
||||
else if($invitation && !$contact->send) {
|
||||
$invitation->delete();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user