Skip to content

Commit

Permalink
Fix possibility to download receipts (not invoices) in CRM admin
Browse files Browse the repository at this point in the history
remp/helpdesk#1073
  • Loading branch information
rootpd committed Feb 11, 2022
1 parent eaa0881 commit f17f5f0
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ class DownloadReceiptButton extends BaseWidget
{
private $templateName = 'download_receipt_button.latte';

private bool $admin = false;

public function __construct(
WidgetManager $widgetManager
) {
Expand All @@ -28,6 +30,11 @@ public function identifier()
return 'downloadreceiptbutton';
}

public function setAdmin()
{
$this->admin = true;
}

public function render($payment)
{
$isReceiptable = $payment->related('payment_meta')
Expand All @@ -36,6 +43,7 @@ public function render($payment)

$this->template->paymentId = $payment->id;
$this->template->showButton = $isReceiptable;
$this->template->admin = $this->admin;
$this->template->setFile(__DIR__ . '/' . $this->templateName);
$this->template->render();
}
Expand Down
25 changes: 25 additions & 0 deletions src/Components/DownloadReceiptButton/ReceiptAdminButtonFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace Crm\InvoicesModule\Components;

use Crm\ApplicationModule\Widget\WidgetFactoryInterface;
use Crm\ApplicationModule\Widget\WidgetInterface;
use Crm\ApplicationModule\Widget\WidgetManager;

class ReceiptAdminButtonFactory implements WidgetFactoryInterface
{
protected $widgetManager;

public function __construct(
WidgetManager $widgetManager
) {
$this->widgetManager = $widgetManager;
}

public function create(): WidgetInterface
{
$receiptButton = new DownloadReceiptButton($this->widgetManager);
$receiptButton->setAdmin();
return $receiptButton;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
{if $showButton}
{if $admin}
<a href="{plink :Invoices:ReceiptsAdmin:downloadReceipt $paymentId}" class="btn btn-sm btn-primary">
<i class="fa fa-download"></i> {_invoices.frontend.invoice_button.download}
</a>
{else}
<a href="{plink ':Invoices:Receipts:downloadReceipt' $paymentId}" class="btn btn-sm btn-primary">
<i class="fa fa-download"></i> {_invoices.frontend.download_receipt}
</a>
{/if}
{/if}
2 changes: 1 addition & 1 deletion src/InvoicesModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public function registerWidgets(WidgetManagerInterface $widgetManager)

$widgetManager->registerWidgetFactory(
'admin.payments.listing.action',
$this->getInstance(\Crm\InvoicesModule\Components\DownloadReceiptButtonFactory::class),
$this->getInstance(\Crm\InvoicesModule\Components\ReceiptAdminButtonFactory::class),
500
);

Expand Down
1 change: 1 addition & 0 deletions src/config/config.neon
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ services:

- Crm\InvoicesModule\Components\DownloadReceiptButton
- Crm\InvoicesModule\Components\DownloadReceiptButtonFactory
- Crm\InvoicesModule\Components\ReceiptAdminButtonFactory
- Crm\InvoicesModule\Components\InvoiceDetailsWidget
- Crm\InvoicesModule\Components\InvoiceLabel
- Crm\InvoicesModule\Components\InvoiceAdminButtonFactory
Expand Down

0 comments on commit f17f5f0

Please sign in to comment.