[Koha-patches] [PATCH] Bug 10366: Alert librarian if an invoice number is duplicated
Srdjan
srdjan at catalyst.net.nz
Tue Jun 4 04:11:53 CEST 2013
From: Jared Camins-Esakov <jcamins at cpbibliography.com>
Some vendors ship materials from the same invoice in multiple packages.
In those cases, it would be good to notify the librarian when they enter
a duplicate invoice number, so that they can continue receiving on the
previously-created invoice, rather than creating an invoice with a
duplicate number.
Signed-off-by: Srdjan <srdjan at catalyst.net.nz>
---
acqui/parcels.pl | 34 +++++++++++++++++-----
installer/data/mysql/sysprefs.sql | 1 +
installer/data/mysql/updatedatabase.pl | 13 +++++++++
.../intranet-tmpl/prog/en/modules/acqui/parcels.tt | 29 ++++++++++++++++++
.../en/modules/admin/preferences/acquisitions.pref | 6 ++++
5 files changed, 75 insertions(+), 8 deletions(-)
diff --git a/acqui/parcels.pl b/acqui/parcels.pl
index 405ff64..7c03f7b 100755
--- a/acqui/parcels.pl
+++ b/acqui/parcels.pl
@@ -98,14 +98,32 @@ our ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user(
}
);
-if($op and $op eq 'new') {
- my $invoicenumber = $input->param('invoice');
- my $shipmentdate = $input->param('shipmentdate');
- my $shipmentcost = $input->param('shipmentcost');
- my $shipmentcost_budgetid = $input->param('shipmentcost_budgetid');
- if($shipmentdate) {
- $shipmentdate = C4::Dates->new($shipmentdate)->output('iso');
+my $invoicenumber = $input->param('invoice');
+my $shipmentdate = $input->param('shipmentdate');
+my $shipmentcost = $input->param('shipmentcost');
+my $shipmentcost_budgetid = $input->param('shipmentcost_budgetid');
+if($shipmentdate) {
+ $shipmentdate = C4::Dates->new($shipmentdate)->output('iso');
+}
+
+if ( $op and $op eq 'new' ) {
+ if ( C4::Context->preference('AcqWarnOnDuplicateInvoice') ) {
+ my @invoices = GetInvoices(
+ supplierid => $booksellerid,
+ invoicenumber => $invoicenumber,
+ );
+ if ( $#invoices > 0 ) {
+ $template->{'VARS'}->{'duplicate_invoices'} = \@invoices;
+ $template->{'VARS'}->{'invoicenumber'} = $invoicenumber;
+ $template->{'VARS'}->{'shipmentdate'} = $shipmentdate;
+ $template->{'VARS'}->{'shipmentcost'} = $shipmentcost;
+ $template->{'VARS'}->{'shipmentcost_budgetid'} =
+ $shipmentcost_budgetid;
+ }
}
+ $op = 'confirm' unless $template->{'VARS'}->{'duplicate_invoices'};
+}
+if ($op and $op eq 'confirm') {
my $invoiceid = AddInvoice(
invoicenumber => $invoicenumber,
booksellerid => $booksellerid,
@@ -114,7 +132,7 @@ if($op and $op eq 'new') {
shipmentcost_budgetid => $shipmentcost_budgetid,
);
if(defined $invoiceid) {
- # Successful 'Add'
+# Successful 'Add'
print $input->redirect("/cgi-bin/koha/acqui/parcel.pl?invoiceid=$invoiceid");
exit 0;
} else {
diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql
index 31485bc..6c5f073 100644
--- a/installer/data/mysql/sysprefs.sql
+++ b/installer/data/mysql/sysprefs.sql
@@ -427,3 +427,4 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('
INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('UseCourseReserves', '0', 'Enable the course reserves feature.', NULL, 'YesNo');
INSERT IGNORE INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowHoldNotes',0,'Show hold notes on OPAC','','YesNo');
INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('CalculateFinesOnReturn','1','Switch to control if overdue fines are calculated on return or not', '', 'YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AcqWarnOnDuplicateInvoice','0','Warn librarians when they try to create a duplicate invoice', '', 'YesNo');
diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl
index f3a90d8..dee9963 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -6984,6 +6984,19 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES (
}
+$DBversion = "3.13.00.XXX";
+if ( CheckVersion($DBversion) ) {
+ $dbh->do(
+ q{
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('AcqWarnOnDuplicateInvoice','0','Warn librarians when they try to create a duplicate invoice', '', 'YesNo');
+}
+ );
+ print
+"Upgrade to $DBversion done (Bug 10366 - Add system preference to enabling warning librarian when invoice is duplicated)\n";
+ SetVersion($DBversion);
+}
+
+
=head1 FUNCTIONS
=head2 TableExists($table)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
index 39c53e2..26e4af8 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcels.tt
@@ -1,3 +1,4 @@
+[% USE KohaDates %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Acquisitions › Receive shipment from vendor [% name %]</title>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
@@ -38,6 +39,34 @@
[% END %]
<h1>Receive shipment from vendor <a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% booksellerid %]">[% name %]</a></h1>
+ [% IF duplicate_invoices %]
+ <div id="parcels_duplicate_invoice" class="dialog alert">
+ <p>This invoice number has already been used. Would you like to receive on an existing invoice?</p>
+ <table>
+ <thead><tr><th>Invoice no.</th><th>Shipment date</th><th></th></tr></thead>
+ <tbody>
+ [% FOREACH invoice IN duplicate_invoices %]
+ <tr>
+ <td>[% invoice.invoicenumber %]</td>
+ <td>[% invoice.shipmentdate | $KohaDates %]</td>
+ <td><a href="/cgi-bin/koha/acqui/parcel.pl?invoiceid=[% invoice.invoiceid %]">Receive</a></td>
+ </tr>
+ [% END %]
+ </tbody>
+ </table>
+ <form method="get" action="parcels.pl">
+ <input type="hidden" name="booksellerid" value="[% booksellerid %]" />
+ <input type="hidden" name="op" value="confirm" />
+ <input type="hidden" name="invoice" value="[% invoicenumber %]" />
+ <input type="hidden" name="shipmentdate" value="[% shipmentdate %]" />
+ <input type="hidden" name="shipmentcost" value="[% shipmentcost %]" />
+ <input type="hidden" name="shipmentcost_budgetid" value="[% shipmentcost_budgetid %]" />
+ <input type="submit" class="button" value="Create new invoice anyway" />
+ </form>
+ </div>
+ [% END %]
+
+
[% IF ( count ) %]
<p> [% count %] shipments</p>
<div id="resultlist">
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/acquisitions.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/acquisitions.pref
index 1ec49ff..cb5a4c7 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/acquisitions.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/acquisitions.pref
@@ -35,6 +35,12 @@ Acquisitions:
- Default tax rates are
- pref: gist
- (enter in numeric form, 0.12 for 12%. First is the default. If you want more than 1 value, please separate with |)
+ -
+ - pref: AcqWarnOnDuplicateInvoice
+ choices:
+ yes: Warn
+ no: "Do not warn"
+ - when the librarian tries to create an invoice with a duplicate number.
Printing:
-
--
1.8.1.2
More information about the Koha-patches
mailing list