1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00
invoiceninja/app/Http/Controllers/ClientPortalProposalController.php

75 lines
2.2 KiB
PHP
Raw Normal View History

2018-02-13 11:06:50 +01:00
<?php
namespace App\Http\Controllers;
use App\Models\Account;
use App\Models\Document;
use App\Models\Invitation;
use App\Ninja\Repositories\ProposalRepository;
2018-03-22 08:31:47 +01:00
use App\Jobs\ConvertProposalToPdf;
2018-02-13 11:06:50 +01:00
class ClientPortalProposalController extends BaseController
{
private $invoiceRepo;
private $paymentRepo;
private $documentRepo;
private $propoosalRepo;
public function __construct(ProposalRepository $propoosalRepo)
{
$this->propoosalRepo = $propoosalRepo;
}
public function viewProposal($invitationKey)
{
if (! $invitation = $this->propoosalRepo->findInvitationByKey($invitationKey)) {
return $this->returnError(trans('texts.proposal_not_found'));
}
$account = $invitation->account;
$proposal = $invitation->proposal;
$invoiceInvitation = Invitation::whereContactId($invitation->contact_id)
->whereInvoiceId($proposal->invoice_id)
->firstOrFail();
$data = [
'proposal' => $proposal,
'account' => $account,
'invoiceInvitation' => $invoiceInvitation,
'proposalInvitation' => $invitation,
];
2018-03-22 08:31:47 +01:00
if (request()->phantomjs) {
return $proposal->present()->htmlDocument;
} else {
return view('invited.proposal', $data);
}
2018-02-13 11:06:50 +01:00
}
public function downloadProposal($invitationKey)
{
if (! $invitation = $this->propoosalRepo->findInvitationByKey($invitationKey)) {
return $this->returnError(trans('texts.proposal_not_found'));
}
$proposal = $invitation->proposal;
2018-03-22 08:31:47 +01:00
$pdf = dispatch(new ConvertProposalToPdf($proposal));
$this->downloadResponse($proposal->getFilename(), $pdf);
2018-02-13 11:06:50 +01:00
}
public function getProposalImage($accountKey, $documentKey)
{
$account = Account::whereAccountKey($accountKey)
->firstOrFail();
$document = Document::whereAccountId($account->id)
->whereDocumentKey($documentKey)
->whereIsProposal(true)
->firstOrFail();
return DocumentController::getDownloadResponse($document);
}
}