[Koha-patches] [PATCH] Bug-5620 Capture Mode of payment, receipt number and notes in pay fines.
LAURENT Henri-Damien
henridamien.laurent at biblibre.com
Mon Jan 17 12:40:15 CET 2011
Hi Amit
This looks pretty close to another dev we did
We have couple of enhancements to send you...
In order to get payment methods out of a system preference,
Would you take them in ?
--
Henri-Damien LAURENT
BibLibre
Le 17/01/2011 12:03, Amit Gupta a écrit :
> ---
> C4/Accounts.pm | 12 +++++++-----
> installer/data/mysql/kohastructure.sql | 3 +++
> installer/data/mysql/updatedatabase.pl | 9 +++++++++
> .../prog/en/modules/members/boraccount.tmpl | 8 +++++++-
> .../intranet-tmpl/prog/en/modules/members/pay.tmpl | 14 ++++++++++++--
> kohaversion.pl | 2 +-
> members/pay.pl | 8 +++++++-
> 7 files changed, 46 insertions(+), 10 deletions(-)
>
> diff --git a/C4/Accounts.pm b/C4/Accounts.pm
> index d73fc2e..f65bf7b 100644
> --- a/C4/Accounts.pm
> +++ b/C4/Accounts.pm
> @@ -135,7 +135,7 @@ sub recordpayment {
>
> =head2 makepayment
>
> - &makepayment($borrowernumber, $acctnumber, $amount, $branchcode);
> + &makepayment($borrowernumber, $acctnumber, $amount, $branchcode, $modeofpayment, $receiptno, $notes);
>
> Records the fact that a patron has paid off the entire amount he or
> she owes.
> @@ -144,7 +144,9 @@ C<$borrowernumber> is the patron's borrower number. C<$acctnumber> is
> the account that was credited. C<$amount> is the amount paid (this is
> only used to record the payment. It is assumed to be equal to the
> amount owed). C<$branchcode> is the code of the branch where payment
> -was made.
> +was made. C<$modeofpayment> is the code to capture mode of payment via cash, cheque etc.
> +C<$receiptno> is the code to capture receiptnumber.
> +C<$notes> is the code to capture notes.
>
> =cut
>
> @@ -156,7 +158,7 @@ sub makepayment {
> #here we update both the accountoffsets and the account lines
> #updated to check, if they are paying off a lost item, we return the item
> # from their card, and put a note on the item record
> - my ( $borrowernumber, $accountno, $amount, $user, $branch ) = @_;
> + my ( $borrowernumber, $accountno, $amount, $user, $branch, $modeofpayment, $receiptno, $notes) = @_;
> my $dbh = C4::Context->dbh;
>
> # begin transaction
> @@ -190,9 +192,9 @@ sub makepayment {
> $dbh->do( "
> INSERT INTO accountlines
> (borrowernumber, accountno, date, amount,
> - description, accounttype, amountoutstanding)
> + description, accounttype, amountoutstanding, modeofpayment, receiptno, notes)
> VALUES ($borrowernumber, $nextaccntno, now(), $payment,
> - 'Payment,thanks - $user', 'Pay', 0)
> + 'Payment,thanks - $user', 'Pay', 0, '$modeofpayment', '$receiptno', '$notes')
> " );
>
> # FIXME - The second argument to &UpdateStats is supposed to be the
> diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql
> index 5e0c6b6..0ff6802 100644
> --- a/installer/data/mysql/kohastructure.sql
> +++ b/installer/data/mysql/kohastructure.sql
> @@ -2289,6 +2289,9 @@ CREATE TABLE `accountlines` (
> `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
> `notify_id` int(11) NOT NULL default 0,
> `notify_level` int(2) NOT NULL default 0,
> + `modeofpayment` varchar(5) default NULL,
> + `receiptno` varchar(10) default NULL,
> + `notes` varchar(100) default NULL,
> KEY `acctsborridx` (`borrowernumber`),
> KEY `timeidx` (`timestamp`),
> KEY `itemnumber` (`itemnumber`),
> diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
> index cb88827..bbdd4dd 100755
> --- a/installer/data/mysql/updatedatabase.pl
> +++ b/installer/data/mysql/updatedatabase.pl
> @@ -3937,6 +3937,15 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
> SetVersion ($DBversion);
> }
>
> +$DBversion = '3.03.00.013';
> +if ( C4::Context->preference('Version') < TransformToNum($DBversion) ) {
> + $dbh->do('ALTER TABLE accountlines ADD modeofpayment varchar(5) default NULL');
> + $dbh->do('ALTER TABLE accountlines ADD receiptno varchar(10) default NULL');
> + $dbh->do('ALTER TABLE accountlines ADD notes varchar(100) default NULL');
> + print "Upgrade to $DBversion done (updating 3 fields in accountlines table)\n";
> + SetVersion($DBversion);
> +}
> +
> =head1 FUNCTIONS
>
> =head2 DropAllForeignKeys($table)
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tmpl
> index ef59ad2..1391951 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tmpl
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tmpl
> @@ -32,6 +32,9 @@
> <th>Description of charges</th>
> <th>Amount</th>
> <th>Outstanding</th>
> + <th>Mode of Payment</th>
> + <th>Receipt No.</th>
> + <th>Notes</th>
> <!-- TMPL_IF NAME="reverse_col" -->
> <th> </th>
> <!-- /TMPL_IF -->
> @@ -46,6 +49,9 @@
> <td><!-- TMPL_VAR NAME="description" --> <!-- TMPL_IF NAME="itemnumber" --><a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->&itemnumber=<!-- TMPL_VAR NAME="itemnumber" -->">View item</a> <!-- /TMPL_IF --><!-- TMPL_IF NAME="printtitle" --> <!-- TMPL_VAR NAME="title" escape="html" --><!-- /TMPL_IF --></td>
> <!-- TMPL_IF NAME="amountcredit" --><td class="credit"><!-- TMPL_ELSE --><td class="debit"><!-- /TMPL_IF --><!-- TMPL_VAR NAME="amount" --></td>
> <!-- TMPL_IF NAME="amountoutstandingcredit" --><td class="credit"><!-- TMPL_ELSE --><td class="debit"><!-- /TMPL_IF --><!-- TMPL_VAR NAME="amountoutstanding" --></td>
> + <td><!-- TMPL_VAR NAME="modeofpayment" --></td>
> + <td><!-- TMPL_VAR NAME="receiptno" --></td>
> + <td><!-- TMPL_VAR NAME="notes" --></td>
> <!-- TMPL_IF NAME="reverse_col" -->
> <td>
> <!-- TMPL_IF NAME="payment" -->
> @@ -67,7 +73,7 @@
> <!-- /TMPL_LOOP -->
> <tfoot>
> <tr>
> - <td colspan="4">Total due</td>
> + <td colspan="7">Total due</td>
> <!-- TMPL_IF NAME="totalcredit" --><td colspan="2" class="credit"><!-- TMPL_ELSE --><td colspan="2" class="debit"><!-- /TMPL_IF --><!-- TMPL_VAR NAME="total" --></td>
> </tr>
> </tfoot>
> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tmpl
> index 1177ba2..81dbea5 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tmpl
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tmpl
> @@ -31,6 +31,9 @@
> <table>
> <tr>
> <th>Fines & Charges</th>
> + <th> Mode of Payment </th>
> + <th> Receipt No </th>
> + <th> Notes </th>
> <th>Description</th>
> <th>Account Type</th>
> <th>Notify id</th>
> @@ -60,6 +63,13 @@
> <input type="hidden" name="notify_level<!-- TMPL_VAR name="i" -->" value="<!-- TMPL_VAR name="notify_level" -->" />
> <input type="hidden" name="totals<!-- TMPL_VAR name="i" -->" value="<!-- TMPL_VAR name="totals" -->" />
> </td>
> + <td>
> + <select name="modeofpayment" id="modeofpayment<!-- TMPL_VAR name="i" -->">
> + <option value="Cash">Cash</option>
> + <option value="Cheque">Cheque</option>
> + </select></td>
> + <td><input type="text" size=20 id="receiptno" name="receiptno<!-- TMPL_VAR name="i" -->"</td>
> + <td><input type="text" size=20 name="notes<!-- TMPL_VAR name="i" -->" /></td>
> <td><!-- TMPL_VAR name="description" --> <!-- TMPL_VAR name="title" escape="html" --></td>
> <td><!-- TMPL_VAR name="accounttype" --></td>
> <td><!-- TMPL_VAR name="notify_id" --></td>
> @@ -71,13 +81,13 @@
> <!-- TMPL_IF NAME="total"-->
> <tr>
>
> - <td colspan="6">Sub Total</td>
> + <td colspan="9">Sub Total</td>
> <td><!-- TMPL_VAR name="total" --></td>
> </tr>
> <!--/TMPL_IF-->
> <!-- /TMPL_LOOP -->
> <tr>
> - <td colspan="6">Total Due</td>
> + <td colspan="9">Total Due</td>
> <td><!-- TMPL_VAR name="total" --></td>
> </tr>
> </table>
> diff --git a/kohaversion.pl b/kohaversion.pl
> index fc595a0..270e2d0 100644
> --- a/kohaversion.pl
> +++ b/kohaversion.pl
> @@ -16,7 +16,7 @@ the kohaversion is divided in 4 parts :
> use strict;
>
> sub kohaversion {
> - our $VERSION = '3.03.00.012';
> + our $VERSION = '3.03.00.013';
> # version needs to be set this way
> # so that it can be picked up by Makefile.PL
> # during install
> diff --git a/members/pay.pl b/members/pay.pl
> index 5a36bd7..e3f1e97 100755
> --- a/members/pay.pl
> +++ b/members/pay.pl
> @@ -80,7 +80,10 @@ for ( my $i = 0 ; $i < @names ; $i++ ) {
> my $amount = $input->param( $names[ $i + 4 ] );
> my $borrowernumber = $input->param( $names[ $i + 5 ] );
> my $accountno = $input->param( $names[ $i + 6 ] );
> - makepayment( $borrowernumber, $accountno, $amount, $user, $branch );
> + my $modeofpayment = $input->param( $names[ $i + 10 ] );
> + my $receiptno = $input->param( $names[ $i + 11 ] );
> + my $notes = $input->param( $names[ $i + 12 ] );
> + makepayment( $borrowernumber, $accountno, $amount, $user, $branch, $modeofpayment, $receiptno, $notes);
> $check = 2;
> }
> }
> @@ -118,6 +121,9 @@ if ( $check == 0 ) {
> $line{notify_id} = $accts->[$i]{'notify_id'};
> $line{notify_level} = $accts->[$i]{'notify_level'};
> $line{net_balance} = 1 if($accts->[$i]{'amountoutstanding'} > 0); # you can't pay a credit.
> + $line{modeofpayment} = $accts->[$i]{'modeofpayment'};
> + $line{receiptno} = $accts->[$i]{'receiptno'};
> + $line{notes} = $accts->[$i]{'notes'};
> push( @loop_pay, \%line );
> }
> }
More information about the Koha-patches
mailing list