Prevent entering online payment for deleted invoice

This commit is contained in:
Hillel Coren 2016-07-18 21:05:40 +03:00
parent fb28521160
commit 5e5207973f

View File

@ -17,6 +17,7 @@ use App\Services\PaymentService;
use App\Ninja\Mailers\UserMailer; use App\Ninja\Mailers\UserMailer;
use App\Http\Requests\CreateOnlinePaymentRequest; use App\Http\Requests\CreateOnlinePaymentRequest;
use App\Ninja\Repositories\ClientRepository; use App\Ninja\Repositories\ClientRepository;
use App\Ninja\Repositories\InvoiceRepository;
use App\Services\InvoiceService; use App\Services\InvoiceService;
/** /**
@ -34,16 +35,22 @@ class OnlinePaymentController extends BaseController
*/ */
protected $userMailer; protected $userMailer;
/**
* @var InvoiceRepository
*/
protected $invoiceRepo;
/** /**
* OnlinePaymentController constructor. * OnlinePaymentController constructor.
* *
* @param PaymentService $paymentService * @param PaymentService $paymentService
* @param UserMailer $userMailer * @param UserMailer $userMailer
*/ */
public function __construct(PaymentService $paymentService, UserMailer $userMailer) public function __construct(PaymentService $paymentService, UserMailer $userMailer, InvoiceRepository $invoiceRepo)
{ {
$this->paymentService = $paymentService; $this->paymentService = $paymentService;
$this->userMailer = $userMailer; $this->userMailer = $userMailer;
$this->invoiceRepo = $invoiceRepo;
} }
/** /**
@ -54,8 +61,14 @@ class OnlinePaymentController extends BaseController
*/ */
public function showPayment($invitationKey, $gatewayType = false, $sourceId = false) public function showPayment($invitationKey, $gatewayType = false, $sourceId = false)
{ {
$invitation = Invitation::with('invoice.invoice_items', 'invoice.client.currency', 'invoice.client.account.account_gateways.gateway') if ( ! $invitation = $this->invoiceRepo->findInvoiceByInvitation($invitationKey)) {
->where('invitation_key', '=', $invitationKey)->firstOrFail(); return response()->view('error', [
'error' => trans('texts.invoice_not_found'),
'hideHeader' => true,
]);
}
$invitation = $invitation->load('invoice.client.account.account_gateways.gateway');
if ( ! $gatewayType) { if ( ! $gatewayType) {
$gatewayType = Session::get($invitation->id . 'gateway_type'); $gatewayType = Session::get($invitation->id . 'gateway_type');