Bugzilla – Attachment 136798 Details for
Bug 30619
Add the option to email receipts as an alternative to printing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 30619: Add email receipt to POS
Bug-30619-Add-email-receipt-to-POS.patch (text/plain), 7.40 KB, created by
Isobel Graham
on 2022-07-01 07:24:36 UTC
(
hide
)
Description:
Bug 30619: Add email receipt to POS
Filename:
MIME Type:
Creator:
Isobel Graham
Created:
2022-07-01 07:24:36 UTC
Size:
7.40 KB
patch
obsolete
>From e9d2c14dbc19a286765d41f053cb79e8bb90291e Mon Sep 17 00:00:00 2001 >From: Isobel Graham <isobel.graham09@gmail.com> >Date: Thu, 30 Jun 2022 16:32:26 +0100 >Subject: [PATCH] Bug 30619: Add email receipt to POS > >This patch adds the ability to use email receipts with the point of sale >module. > >To test: >1) Configure your Koha to enable the point of sale system. >2) Add an email template to the 'Point of sale > RECEIPT' notice. >3) Add some charges on point of sale and pay for them. >3a) You should now see a new 'Email receipt' button next to the 'Print >receipt' option. >3b) Clicking the button will display a modal to enter the anonymous >users email address >3c) Enter an email address and confirm to send the email >--- > .../intranet-tmpl/prog/en/modules/pos/pay.tt | 41 +++++++++++-- > pos/pay.pl | 58 ++++++++++++++++--- > 2 files changed, 88 insertions(+), 11 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >index 905ed4c0f0..8ea2cd7801 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt >@@ -51,7 +51,7 @@ > > [% IF payment_id && !Koha.Preference('FinePaymentAutoPopup') %] > <div class="dialog alert audio-alert-action"> >- Payment received: <a target="_blank" href="/cgi-bin/koha/pos/printreceipt.pl?action=print&accountlines_id=[% payment_id | uri %]&collected=[% collected | uri %]&change=[% change | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print receipt</a> >+ Payment received: <a target="_blank" href="/cgi-bin/koha/pos/printreceipt.pl?action=print&accountlines_id=[% payment_id | uri %]&collected=[% collected | uri %]&change=[% change | uri %]" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print receipt</a> <a type="button" data-toggle="modal" data-target="#emailReceiptModal" class="btn btn-default btn-xs"><i class="fa fa-envelope"></i> Email receipt</a> > </div> > [% END %] > >@@ -168,7 +168,40 @@ > </div> > </div> <!-- /.row --> > >-<!-- Modal --> >+<!-- Email receipt modal --> >+<div class="modal" id="emailReceiptModal" tabindex="-1" role="dialog" aria-labelledby="emailReceiptLabel"> >+ <form id="email_form" action="/cgi-bin/koha/pos/pay.pl" method="get" enctype="multipart/form-data" class="validated"> >+ <input type="hidden" name="payment_id" id="payment_id" value="[% payment_id | uri %]"> >+ <input type="hidden" name="collected" id="collected" value="[% collected | uri %]"> >+ <input type="hidden" name="change" id="change" value="[% change | uri %]">" >+ <div class="modal-dialog" role="document"> >+ <div class="modal-content"> >+ <div class="modal-header"> >+ <button type="button" class="closebtn" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> >+ <h4 class="modal-title" id="emailReceiptLabel">Email receipt</h4> >+ </div> >+ <div class="modal-body"> >+ <fieldset class="rows"> >+ <ol> >+ <li> >+ <label class="required" for="toaddr">Email address: </label> >+ <input type="email" id="toaddr" name="toaddr" required="required"> >+ <span class="required">Required</span> >+ </li> >+ </ol> >+ </fieldset> <!-- /.rows --> >+ </div> <!-- /.modal-body --> >+ <div class="modal-footer"> >+ <input type="hidden" name="action" value="send"> >+ <button type="submit" class="btn btn-default">Confirm</button> >+ <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> >+ </div> <!-- /.modal-footer --> >+ </div> <!-- /.modal-content --> >+ </div> <!-- /.modal-dialog --> >+ </form> <!-- /#email_form --> >+</div> <!-- /#emailReceiptModal >+ >+<!-- Change modal --> > <div id="confirm_change_form" class="modal" tabindex="-1" role="dialog" aria-hidden="true"> > <div class="modal-dialog"> > <div class="modal-content"> >@@ -189,8 +222,8 @@ > </div> > > [% IF payment_id && Koha.Preference('FinePaymentAutoPopup') %] >-<!-- Automatic Print Receipt --> >- <a id="printReceipt" style="display: none" href="#"></a> >+ <!-- Automatic Print Receipt --> >+ <a id="printReceipt" style="display: none" href="#"></a> > [% END %] > > [% MACRO jsinclude BLOCK %] >diff --git a/pos/pay.pl b/pos/pay.pl >index b401f12495..871ffd6c19 100755 >--- a/pos/pay.pl >+++ b/pos/pay.pl >@@ -23,8 +23,9 @@ use CGI; > use JSON qw( from_json ); > > use C4::Auth qw( get_session get_template_and_user ); >-use C4::Output qw( output_html_with_http_headers ); > use C4::Context; >+use C4::Letters qw( GetPreparedLetter EnqueueLetter SendQueuedMessages ); >+use C4::Output qw( output_html_with_http_headers ); > > use Koha::Account::DebitTypes; > use Koha::AuthorisedValues; >@@ -39,16 +40,17 @@ my $session = get_session($sessionID); > > my ( $template, $loggedinuser, $cookie, $user_flags ) = get_template_and_user( > { >- template_name => 'pos/pay.tt', >- query => $input, >- type => 'intranet', >- flagsrequired => { cash_management => 'takepayment' }, >+ template_name => 'pos/pay.tt', >+ query => $input, >+ type => 'intranet', >+ flagsrequired => { cash_management => 'takepayment' }, > } > ); > my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; > >-my $library_id = C4::Context->userenv->{'branch'}; >-my $registerid = $input->param('registerid'); >+my $library_id = C4::Context->userenv->{'branch'}; >+my $registerid = $input->param('registerid'); >+my $action = $input->param('action') || ''; > > my $invoice_types = > Koha::Account::DebitTypes->search_with_library_limits( >@@ -82,6 +84,48 @@ if ( $total_paid and $total_paid ne '0.00' ) { > ); > } > >+if ( $action eq 'send' ) { >+ my $payment_id = $input->param('payment_id'); >+ my $change = $input->param('change'); >+ my $collected = $input->param('collected'); >+ my $toaddr = $input->param('toaddr'); >+ >+ # Create our letter from the template >+ my $letter = GetPreparedLetter( >+ module => 'pos', >+ letter_code => 'RECEIPT', >+ branchcode => C4::Context->userenv->{'branch'}, >+ message_transport_type => 'email', >+ tables => { >+ credits => $payment_id, >+ }, >+ substitute => { >+ collected => $collected, >+ change => $change >+ } >+ ); >+ >+ # Add letter to the queue >+ my $message_id = EnqueueLetter( >+ { >+ letter => $letter, >+ message_transport_type => 'email', >+ from_address => C4::Context->preference('KohaAdminEmailAddress'), >+ to_address => $toaddr, >+ } >+ ); >+ >+ # Send immediately >+ SendQueuedMessages( { message_id => $message_id } ); >+ >+ # Set variables for template to allow printing still >+ $template->param( >+ payment_id => $payment_id, >+ collected => $collected, >+ change => $change >+ ); >+} >+ > output_html_with_http_headers( $input, $cookie, $template->output ); > > 1; >-- >2.37.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 30619
:
136798
|
136800
|
136801
|
136802
|
137131
|
137132
|
139502
|
139503
|
139504