Bugzilla – Attachment 97042 Details for
Bug 24082
Add a 'refund' option to anonymous payments
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 24082: Add a refund option to POS
Bug-24082-Add-a-refund-option-to-POS.patch (text/plain), 27.79 KB, created by
Martin Renvoize (ashimema)
on 2020-01-08 17:04:24 UTC
(
hide
)
Description:
Bug 24082: Add a refund option to POS
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2020-01-08 17:04:24 UTC
Size:
27.79 KB
patch
obsolete
>From eb5ca1a3db7476408b476b1b0ee7797a676bbed4 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Wed, 21 Aug 2019 16:16:16 +0100 >Subject: [PATCH] Bug 24082: Add a refund option to POS > >--- > Koha/Cash/Register.pm | 2 +- > installer/data/mysql/account_offset_types.sql | 3 + > .../data/mysql/atomicupdate/bug_24082.perl | 22 ++ > .../prog/en/includes/accounts.inc | 3 + > .../prog/en/includes/pos-menu.inc | 2 +- > .../prog/en/modules/pos/register.tt | 269 +++++++++++++++++- > pos/register.pl | 66 ++++- > pos/registers.pl | 4 +- > 8 files changed, 356 insertions(+), 15 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_24082.perl > >diff --git a/Koha/Cash/Register.pm b/Koha/Cash/Register.pm >index 8c87d0cfc3..9988368cc7 100644 >--- a/Koha/Cash/Register.pm >+++ b/Koha/Cash/Register.pm >@@ -220,7 +220,7 @@ sub add_cashup { > my $rs = $self->_result->add_to_cash_register_actions( > { > code => 'CASHUP', >- manager_id => $params->{user_id}, >+ manager_id => $params->{staff_id}, > amount => $params->{amount} > } > )->discard_changes; >diff --git a/installer/data/mysql/account_offset_types.sql b/installer/data/mysql/account_offset_types.sql >index 98aedc19bc..f309960019 100644 >--- a/installer/data/mysql/account_offset_types.sql >+++ b/installer/data/mysql/account_offset_types.sql >@@ -7,6 +7,9 @@ INSERT INTO account_offset_types ( type ) VALUES > ('Manual Credit'), > ('Manual Debit'), > ('Reverse Payment'), >+('REFUND'), >+('LINK'), >+('PAYOUT'), > ('Forgiven'), > ('Dropbox'), > ('Account Fee'), >diff --git a/installer/data/mysql/atomicupdate/bug_24082.perl b/installer/data/mysql/atomicupdate/bug_24082.perl >new file mode 100644 >index 0000000000..c0f8d3eb76 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_24082.perl >@@ -0,0 +1,22 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if ( CheckVersion($DBversion) ) { >+ >+ $dbh->do(qq{ >+ INSERT IGNORE permissions (module_bit, code, description) >+ VALUES >+ (25, 'refund_cash_registers', 'Perform refund actions from cash registers') >+ }); >+ >+ $dbh->do(q{ >+ INSERT IGNORE INTO account_offset_types ( type ) VALUES ( 'REFUND' ); >+ }); >+ $dbh->do(q{ >+ INSERT IGNORE INTO account_offset_types ( type ) VALUES ( 'LINK' ); >+ }); >+ $dbh->do(q{ >+ INSERT IGNORE INTO account_offset_types ( type ) VALUES ( 'PAYOUT' ); >+ }); >+ >+ SetVersion($DBversion); >+ print "Upgrade to $DBversion done (Bug 23442 - Add a refund option to the point of sale system)\n"; >+} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc >index 8d9e836729..162a641e57 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/accounts.inc >@@ -7,6 +7,7 @@ > [%- CASE 'FORGIVEN' -%]Forgiven > [%- CASE 'CREDIT' -%]Credit > [%- CASE 'LOST_RETURN' -%]Lost item fee refund >+ [%- CASE 'Refund' -%]Refund > [%- CASE -%][% account.credit_type.description | html %] > [%- END -%] > [%- ELSIF account.debit_type_code -%] >@@ -24,6 +25,7 @@ > [%- CASE 'RENT_DAILY_RENEW' -%]Rewewal of daily rental item > [%- CASE 'RESERVE' -%]Hold fee > [%- CASE 'RESERVE_EXPIRED' -%]Hold waiting too long >+ [%- CASE 'Payout' -%]Payout > [%- CASE -%][% account.debit_type.description | html %] > [%- END -%] > [%- END -%] >@@ -49,6 +51,7 @@ > [%- CASE 'UNRETURNED' -%]<span> (Accruing)</span> > [%- CASE 'RETURNED' -%]<span> (Returned)</span> > [%- CASE 'REPLACED' -%]<span> (Replaced)</span> >+ [%- CASE 'REFUNDED' -%]<span> (Refunded)</span> > [%- CASE 'FORGIVEN' -%]<span> (Forgiven)</span> > [%- CASE 'VOID' -%]<span> (Voided)</span> > [%- CASE 'LOST' -%]<span> (Lost)</span> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc >index d8cb71cfd5..2211a22169 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc >@@ -1,6 +1,6 @@ > <div id="navmenu"> > <div id="navmenulist"> >- [% IF ( CAN_user_cash_management_cashup_cash_registers ) %] >+ [% IF ( CAN_user_cash_management_cashup_cash_registers || CAN_user_cash_management_refund_cash_registers ) %] > <h5>Point of sale</h5> > <ul> > <li><a href="/cgi-bin/koha/pos/register.pl">Register details</a></li> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt >index 705d6cb346..f682e09903 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt >@@ -26,9 +26,11 @@ > You must have at least one cash register associated with this branch before you can record payments. > </div> > [% ELSE %] >+ [% IF ( CAN_user_cash_management_cashup_cash_registers ) %] > <div id="toolbar" class="btn-toolbar"> > <a id="cashup" href="/cgi-bin/koha/pos/register.pl?op=cashup" class="btn btn-default"><i class="fa fa-money"></i> Record cashup</a> > </div> >+ [% END %] > > <h1>Register transaction details for [% register.name | html %]</h1> > >@@ -51,19 +53,22 @@ > <table id="sales" class="table_sales"> > <thead> > <th> >- Receipt ID >+ ID >+ </th> >+ <th> >+ DATA > </th> > <th> > Transaction > </th> > <th> >- Description of charges >+ Description > </th> > <th> >- Item >+ Price > </th> > <th> >- Transaction >+ Total > </th> > <th> > Actions >@@ -73,26 +78,164 @@ > [% FOREACH accountline IN accountlines %] > [% IF accountline.is_credit %] > [% FOREACH credit IN accountline.credit_offsets %] >+ [% IF credit.debit %] >+ <tr> >+ <td> >+ [% accountline.accountlines_id %] >+ </td> >+ <td> >+ { "type": "credit", "description": "[%- PROCESS account_type_description account=accountline -%] ([% accountline.payment_type | html %])", "amount": "[% accountline.amount * -1 | $Price %]" } >+ </td> >+ <td></td> >+ <td> >+ [%- PROCESS account_type_description account=credit.debit -%] >+ [%- IF credit.debit.description -%] ([% credit.debit.description | html %])[%- END -%] >+ [%- IF ( credit.debit.itemnumber ) -%] (<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% credit.debit.item.biblionumber | uri %]&itemnumber=[% credit.debit.itemnumber | uri %]">[% credit.debit.item.biblio.title | html %]</a>)[%- END -%] >+ </td> >+ <td> >+ [% credit.debit.amount | $Price %] >+ </td> >+ <td></td> >+ <td> >+ [% IF CAN_user_cash_management_refund_cash_registers && !(credit.debit.status == 'REFUNDED' ) %] >+ <button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#issueRefundModal" data-item="[%- PROCESS account_type_description account=credit.debit -%]" data-accountline="[% credit.debit.accountlines_id | html %]" data-amount="[% credit.debit.amount | $Price %]" data-quantity="[% credit.debit.note | html %]"><i class="fa fa-money"></i> Issue refund</button> >+ [% END %] >+ </td> >+ </tr> >+ [% END %] >+ [% END %] >+ [% ELSE %] >+ [% FOREACH debit IN accountline.debit_offsets %] >+ [% IF debit.credit %] >+ <tr> >+ <td> >+ [% accountline.accountlines_id %] >+ </td> >+ <td> >+ { "type": "debit", "description": "[%- PROCESS account_type_description account=accountline -%] ([% accountline.payment_type | html %])", "amount": "[% accountline.amount * -1 | $Price %]" } >+ </td> >+ <td></td> >+ <td> >+ [%- PROCESS account_type_description account=debit.credit -%] >+ </td> >+ <td> >+ [%- IF debit.credit.description %][% debit.credit.description | html %][%- END -%] >+ [%- IF ( debit.credit.itemnumber ) -%] (<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% debit.credit.item.biblionumber | uri %]&itemnumber=[% debit.credit.itemnumber | uri %]">[% debit.credit.item.biblio.title | html %]</a>)[%- END -%] >+ </td> >+ <td> >+ [% debit.credit.amount | $Price %] >+ </td> >+ <td></td> >+ </tr> >+ [% END %] >+ [% END %] >+ [% END %] >+ [% END %] >+ </tbody> >+ <tfoot> >+ <tr> >+ <td colspan="5">Total income: </td> >+ <td>[% accountlines.total * -1 | $Price %]</td> >+ <td></td> >+ </tr> >+ </tfoot> >+ </table> >+ [% END %] >+ >+ [% IF trange_f %] >+ <h2>Older transactions</h2> >+ <table id="past_sales" class="past_sales_table"> >+ <thead> >+ <th> >+ ID >+ </th> >+ <th> >+ DATA >+ </th> >+ <th> >+ Transaction >+ </th> >+ <th> >+ Description >+ </th> >+ <th> >+ Price >+ </th> >+ <th> >+ Total >+ </th> >+ <th> >+ Actions >+ </th> >+ </thead> >+ <tbody> >+ [% FOREACH accountline IN past_accountlines %] >+ [% IF accountline.is_credit %] >+ [% FOREACH credit IN accountline.credit_offsets %] >+ [% IF credit.debit %] > <tr> > <td>[% accountline.accountlines_id %]</td> > <td>{ "type": "credit", "description": "[%- PROCESS account_type_description account=accountline -%] ([% accountline.payment_type | html %])", "amount": "[% accountline.amount * -1 | $Price %]" }</td> >- <td>[%- PROCESS account_type_description account=credit.debit -%]</td> >+ <td></td> >+ <td>[%- PROCESS account_type_description account=credit.debit -%] >+ [%- IF credit.debit.description -%] ([% credit.debit.description | html %])[%- END -%] >+ [%- IF ( credit.debit.itemnumber ) -%] (<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% credit.debit.item.biblionumber | uri %]&itemnumber=[% credit.debit.itemnumber | uri %]">[% credit.debit.item.biblio.title | html %]</a>)[%- END -%] >+ </td> > <td>[% credit.debit.amount | $Price %]</td> > <td></td> >+ <td> >+ [% IF CAN_user_cash_management_refund_cash_registers && !(credit.debit.status == 'REFUNDED' ) %] >+ <button type="button" class="btn btn-default btn-xs" data-toggle="modal" data-target="#issueRefundModal" data-item="[%- PROCESS account_type_description account=credit.debit -%]" data-accountline="[% credit.debit.accountlines_id | html %]" data-amount="[% credit.debit.amount | $Price %]" data-quantity="[% credit.debit.note | html %]"><i class="fa fa-money"></i> Issue refund</button> >+ [% END %] >+ </td> >+ </tr> >+ [% END %] >+ [% END %] >+ [% ELSE %] >+ [% FOREACH debit IN accountline.debit_offsets %] >+ [% IF debit.credit %] >+ <tr> >+ <td>[% accountline.accountlines_id %]</td> >+ <td>{ "type": "debit", "description": "[%- PROCESS account_type_description account=accountline -%] ([% accountline.payment_type | html %])", "amount": "[% accountline.amount * -1 | $Price %]" }</td> >+ <td></td> >+ <td>[%- PROCESS account_type_description account=debit.credit -%]</td> >+ <td>[%- IF debit.credit.description %][% debit.credit.description | html %][% END %] >+ [% IF ( debit.credit.itemnumber ) %]<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=[% debit.credit.item.biblionumber | uri %]&itemnumber=[% debit.credit.itemnumber | uri %]">[% debit.credit.item.biblio.title | html %]</a>[% END %]</td> >+ <td>[% debit.credit.amount | $Price %]</td> > <td></td> > </tr> > [% END %] >+ [% END %] > [% END %] > [% END %] > </tbody> > <tfoot> > <tr> >- <td colspan="4">Total income: </td> >- <td>[% accountlines.total * -1 | $Price %]</td> >+ <td colspan="5">Total income: </td> >+ <td>[% past_accountlines.total * -1 | $Price %]</td> > <td></td> > </tr> > </tfoot> > </table> >+ [% ELSE %] >+ [% IF register.cashups %] >+ <h2>Older transactions</h2> >+ <form method="GET" action="/cgi-bin/koha/pos/register.pl"> >+ <fieldset class="rows"> >+ Please select a date range to display transactions for: >+ <ol> >+ <li> >+ <label for="trange_f">From: </label> >+ <input type="text" size="10" id="from" name="trange_f" /> >+ <label class="inline" for="trange_t">To: </label> >+ <input size="10" id="to" name="trange_t" value="[% trange_t | html %]" type="text" /> >+ <span class="hint">[% INCLUDE 'date-format.inc' %]</span> >+ </li> >+ </ol> >+ </fieldset> >+ <input type="submit" value="Display" /> >+ </form> >+ [% END %] > [% END %] > </div> > >@@ -103,9 +246,64 @@ > </div> > </div><!-- /.row --> > >+ <!-- Issue refund modal --> >+ <div class="modal" id="issueRefundModal" tabindex="-1" role="dialog" aria-labelledby="issueRefundLabel"> >+ <form id="refund_form" method="post" enctype="multipart/form-data" class="validated"> >+ <input type="hidden" name="accountline" value="" id="refundline"> >+ <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="issueRefundLabel">Issue refund from <em>[% register.name | html %]</em></h4> >+ </div> >+ <div class="modal-body"> >+ <fieldset class="rows"> >+ <ol> >+ <li> >+ <span id="item" class="label">Item: </span><span></span> >+ </li> >+ <li> >+ <span id="paid" class="label">Amount paid: </span><span>[% refund.amount | $Price %]</span> >+ </li> >+ <li> >+ <label class="required" for="amount">Returned to patron: </label> >+ <input type="number" step="0.01" max="[% refund.amount | $Price %]" id="amount" name="amount" value="[% refund.amount | $Price %]" required="required"> >+ <span class="required">Required</span> >+ </li> >+ <li> >+ <label class="required" for="quantity">Quantity: </label> >+ <input type="text" id="quantity" name="quantity" value="[% refund.quantity | html %]" required="required"> >+ <span class="required">Required</span> >+ </li> >+ [% SET payment_types = AuthorisedValues.GetAuthValueDropbox('PAYMENT_TYPE') %] >+ [% IF payment_types %] >+ <li> >+ <label for="transaction_type">Transaction type: </label> >+ <select name="transaction_type" id="transaction_type"> >+ [% FOREACH pt IN payment_types %] >+ <option value="[% pt.authorised_value | html %]">[% pt.lib | html %]</option> >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ </ol> >+ </fieldset> <!-- /.rows --> >+ </div> <!-- /.modal-body --> >+ <div class="modal-footer"> >+ <input type="hidden" name="registerid" value="[% register.id | html %]"> >+ <input type="hidden" name="op" value="refund"> >+ <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> <!-- /#refund_form --> >+ </div> <!-- /#issueRefundModal --> >+ > [% MACRO jsinclude BLOCK %] > [% INCLUDE 'datatables.inc' %] > [% Asset.js("lib/jquery/plugins/rowGroup/dataTables.rowGroup.min.js") | $raw %] >+ [% INCLUDE 'calendar.inc' %] > <script> > var sales_table = $("#sales").dataTable($.extend(true, {}, dataTablesDefaults, { > orderFixed: [ 0, 'asc'], >@@ -118,19 +316,72 @@ > startRender: function ( rows, group ) { > var details = JSON.parse(rows.data().pluck(1).pop()); > return $('<tr class="'+details.type+'"/>') >- .append( '<td colspan="2">'+group+' '+details.description+'</td>' ) >+ .append( '<td>'+group+'</td>' ) >+ .append( '<td colspan="2">'+details.description+'</td>' ) > .append( '<td>'+details.amount+'</td>' ) >- .append( '<td><button class="printReceipt" data-accountline="'+group+'"><i class="fa fa-print"></i> Print receipt</button></td>'); >+ .append( '<td><button class="printReceipt btn btn-default btn-xs" data-accountline="'+group+'"><i class="fa fa-print"></i> Print receipt</button></td>'); > }, > endRender: null, > } > })); > >+ var past_sales_table = $("#past_sales").dataTable($.extend(true, {}, dataTablesDefaults, { >+ orderFixed: [ 0, 'asc'], >+ columnDefs: [ { >+ targets: [ 0, 1 ], >+ visible: false >+ }], >+ rowGroup: { >+ dataSrc: 0, >+ startRender: function ( rows, group ) { >+ var details = JSON.parse(rows.data().pluck(1).pop()); >+ return $('<tr class="'+details.type+'"/>') >+ .append( '<td>'+group+'</td>' ) >+ .append( '<td colspan="2">'+details.description+'</td>' ) >+ .append( '<td>'+details.amount+'</td>' ) >+ .append( '<td><button class="printReceipt btn btn-default btn-xs" data-accountline="'+group+'"><i class="fa fa-print"></i> Print receipt</button></td>'); >+ }, >+ endRender: null, >+ } >+ })); >+ >+ $("#issueRefundModal").on("shown.bs.modal", function(e){ >+ var button = $(e.relatedTarget); >+ var item = button.data('item'); >+ $("#item + span").replaceWith(item); >+ var accountline = button.data('accountline'); >+ $('#refundline').val(accountline); >+ var amount = button.data('amount'); >+ $("#paid + span").replaceWith(amount); >+ $("#amount").val(amount); >+ $("#amount").attr("max", amount); >+ var quantity = button.data('quantity'); >+ $("#quantity").val(quantity); >+ $("#amount, #quantity, #transaction_type").focus(); >+ }); >+ > $(".printReceipt").click(function() { > var accountlines_id = $(this).data('accountline'); > var win = window.open('/cgi-bin/koha/pos/printreceipt.pl?action=print&accountlines_id=' + accountlines_id, '_blank'); > win.focus(); > }); >+ >+ $(document).ready(function() { >+ // http://jqueryui.com/demos/datepicker/#date-range >+ var dates = $( "#from, #to" ).datepicker({ >+ changeMonth: true, >+ numberOfMonths: 1, >+ onSelect: function( selectedDate ) { >+ var option = this.id == "from" ? "minDate" : "maxDate", >+ instance = $( this ).data( "datepicker" ); >+ date = $.datepicker.parseDate( >+ instance.settings.dateFormat || >+ $.datepicker._defaults.dateFormat, >+ selectedDate, instance.settings ); >+ dates.not( this ).datepicker( "option", option, date ); >+ } >+ }); >+ }); > </script> > [% END %] > >diff --git a/pos/register.pl b/pos/register.pl >index 9a32fdf934..37105a9c6d 100755 >--- a/pos/register.pl >+++ b/pos/register.pl >@@ -24,8 +24,10 @@ use C4::Auth; > use C4::Output; > use C4::Context; > >+use Koha::Account::Lines; > use Koha::Cash::Registers; > use Koha::Database; >+use Koha::DateUtils; > > my $q = CGI->new(); > >@@ -38,6 +40,7 @@ my ( $template, $loggedinuser, $cookie, $user_flags ) = get_template_and_user( > } > ); > my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; >+my $schema = Koha::Database->new->schema; > > my $library_id = C4::Context->userenv->{'branch'}; > my $registerid = $q->param('registerid'); >@@ -70,12 +73,71 @@ $template->param( > accountlines => $accountlines > ); > >+my $transactions_range_from = $q->param('trange_f'); >+my $last_cashup = $cash_register->last_cashup; >+my $transactions_range_to = >+ $q->param('trange_t') ? $q->param('trange_t') >+ : $last_cashup ? $last_cashup->timestamp >+ : ''; >+$template->param( trange_t => $transactions_range_to ); >+if ($transactions_range_from) { >+ $template->param( trange_f => $transactions_range_from ); >+ >+ my $dtf = $schema->storage->datetime_parser; >+ my $start = dt_from_string($transactions_range_from); >+ my $end = dt_from_string($transactions_range_to); >+ my $past_accountlines = Koha::Account::Lines->search( >+ { >+ register_id => $registerid, >+ timestamp => { >+ -between => [ >+ $dtf->format_datetime($start), $dtf->format_datetime($end) >+ ] >+ } >+ } >+ ); >+ $template->param( past_accountlines => $past_accountlines ); >+} >+ > my $op = $q->param('op') // ''; > if ( $op eq 'cashup' ) { > $cash_register->add_cashup( > { >- user_id => $logged_in_user->id, >- amount => $cash_register->outstanding_accountlines->total >+ staff_id => $logged_in_user->id, >+ amount => $cash_register->outstanding_accountlines->total >+ } >+ ); >+} >+elsif ( $op eq 'refund' ) { >+ my $amount = $q->param('amount'); >+ my $quantity = $q->param('quantity'); >+ my $accountline_id = $q->param('accountline'); >+ my $transaction_type = $q->param('transaction_type'); >+ >+ my $accountline = Koha::Account::Lines->find($accountline_id); >+ $schema->txn_do( >+ sub { >+ >+ my $refund = $accountline->reduce( >+ { >+ reduction_type => 'Refund', >+ branch => $library_id, >+ staff_id => $logged_in_user->id, >+ interface => 'intranet', >+ amount => $amount >+ } >+ ); >+ my $payout = $refund->payout( >+ { >+ payout_type => $transaction_type, >+ branch => $library_id, >+ staff_id => $logged_in_user->id, >+ cash_register => $cash_register->id, >+ interface => 'intranet', >+ amount => $amount >+ } >+ ); >+ > } > ); > } >diff --git a/pos/registers.pl b/pos/registers.pl >index bf74f9f7af..2a5dd604dc 100755 >--- a/pos/registers.pl >+++ b/pos/registers.pl >@@ -59,8 +59,8 @@ if ( $op eq 'cashup' ) { > for my $register ( $registers->as_list ) { > $register->add_cashup( > { >- user_id => $logged_in_user->id, >- amount => $register->outstanding_accountlines->total >+ staff_id => $logged_in_user->id, >+ amount => $register->outstanding_accountlines->total > } > ); > } >-- >2.20.1
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 24082
:
97042
|
97826
|
97827
|
97828
|
98849
|
98850
|
98851
|
98854
|
98855
|
98856
|
99983
|
99984
|
99985
|
99991
|
99992
|
99993
|
99995
|
99996
|
99997
|
100031
|
100032
|
100033
|
100070
|
100071
|
100072
|
100073