Fixes for Tests, MultiDB (#3334)

* refactor send_invoice to generic -> send

* Code cleanup

* Fixes for tests and multidb
This commit is contained in:
David Bomba 2020-02-15 23:27:24 +11:00 committed by GitHub
parent bd8a6b462a
commit 1e35c90ee6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 42 additions and 30 deletions

View File

@ -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,
]);
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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,

View File

@ -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();
}
});

View File

@ -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();
}
});

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
});

View File

@ -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);
}
});
}

View File

@ -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);
}
});

View File

@ -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();
}
});

View File

@ -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);
}
});

View File

@ -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,
];
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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();
}