public function approveQuote($quote, Invitation $invitation = null)
{
$account = $quote->account;
if (!$account->hasFeature(FEATURE_QUOTES) || !$quote->isType(INVOICE_TYPE_QUOTE) || $quote->quote_invoice_id) {
return null;
}
if ($account->auto_convert_quote) {
$invoice = $this->convertQuote($quote);
foreach ($invoice->invitations as $invoiceInvitation) {
if ($invitation->contact_id == $invoiceInvitation->contact_id) {
$invitation = $invoiceInvitation;
}
}
} else {
$quote->markApproved();
}
event(new QuoteInvitationWasApproved($quote, $invitation));
return $invitation->invitation_key;
}