public function sendPaymentConfirmation(Payment $payment)
{
$account = $payment->account;
$client = $payment->client;
$account->loadLocalizationSettings($client);
$invoice = $payment->invoice;
$accountName = $account->getDisplayName();
$emailTemplate = $account->getEmailTemplate(ENTITY_PAYMENT);
$emailSubject = $invoice->account->getEmailSubject(ENTITY_PAYMENT);
if ($payment->invitation) {
$user = $payment->invitation->user;
$contact = $payment->contact;
$invitation = $payment->invitation;
} else {
$user = $payment->user;
$contact = $client->contacts[0];
$invitation = $payment->invoice->invitations[0];
}
$variables = ['account' => $account, 'client' => $client, 'invitation' => $invitation, 'amount' => $payment->amount];
$data = ['body' => $this->templateService->processVariables($emailTemplate, $variables), 'link' => $invitation->getLink(), 'invoice' => $invoice, 'client' => $client, 'account' => $account, 'payment' => $payment, 'entityType' => ENTITY_INVOICE];
if ($account->attachPDF()) {
$data['pdfString'] = $invoice->getPDFString();
$data['pdfFileName'] = $invoice->getFileName();
}
$subject = $this->templateService->processVariables($emailSubject, $variables);
$data['invoice_id'] = $payment->invoice->id;
$view = $account->getTemplateView('payment_confirmation');
if ($user->email && $contact->email) {
$this->sendTo($contact->email, $user->email, $accountName, $subject, $view, $data);
}
$account->loadLocalizationSettings();
}