Bugzilla – Attachment 22636 Details for
Bug 8037
Add holds and funds to items already received in parcel.pl
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 8037 - Add holds and funds to items already received in parcel.pl
Bug-8037---Add-holds-and-funds-to-items-already-re.patch (text/plain), 10.32 KB, created by
Marcel de Rooy
on 2013-10-31 13:08:36 UTC
(
hide
)
Description:
Bug 8037 - Add holds and funds to items already received in parcel.pl
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2013-10-31 13:08:36 UTC
Size:
10.32 KB
patch
obsolete
>From 7ed92ee73c54e74d59c4e4616d7eade89f4f5537 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 28 Mar 2012 13:33:36 -0400 >Subject: [PATCH] Bug 8037 - Add holds and funds to items already received in > parcel.pl >Content-Type: text/plain; charset=utf-8 > >Adds a column to indicate holds on recieved items, as well as adding >a new column for fund and showing the subtotals per fund above >the total subtotal. > >Signed-off-by: Pierre Angot <tredok.pierre@gmail.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> >--- > C4/Acquisition.pm | 3 +- > C4/Budgets.pm | 25 ++++++++++ > C4/Reserves.pm | 12 ++++- > acqui/parcel.pl | 7 ++- > .../intranet-tmpl/prog/en/modules/acqui/parcel.tt | 50 +++++++++++++++----- > 5 files changed, 81 insertions(+), 16 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 8c40dcd..88783e7 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -2460,11 +2460,12 @@ sub GetInvoiceDetails { > my $invoice = $sth->fetchrow_hashref; > > $query = qq{ >- SELECT aqorders.*, biblio.*, >+ SELECT aqorders.*, biblio.*, aqorders_items.itemnumber, > aqbasket.basketname > FROM aqorders > LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno > LEFT JOIN biblio ON aqorders.biblionumber = biblio.biblionumber >+ LEFT JOIN aqorders_items ON aqorders.ordernumber = aqorders_items.ordernumber > WHERE invoiceid = ? > }; > $sth = $dbh->prepare($query); >diff --git a/C4/Budgets.pm b/C4/Budgets.pm >index a648773..334e610 100644 >--- a/C4/Budgets.pm >+++ b/C4/Budgets.pm >@@ -34,6 +34,7 @@ BEGIN { > @EXPORT = qw( > > &GetBudget >+ &GetBudgetByOrderNumber > &GetBudgets > &GetBudgetHierarchy > &AddBudget >@@ -672,6 +673,30 @@ sub GetBudget { > return $result; > } > >+=head2 GetBudgetByOrderNumber >+ >+ &GetBudgetByOrderNumber($ordernumber); >+ >+get a specific budget by order number >+ >+=cut >+ >+# ------------------------------------------------------------------- >+sub GetBudgetByOrderNumber { >+ my ( $ordernumber ) = @_; >+ my $dbh = C4::Context->dbh; >+ my $query = " >+ SELECT aqbudgets.* >+ FROM aqbudgets, aqorders >+ WHERE ordernumber=? >+ AND aqorders.budget_id = aqbudgets.budget_id >+ "; >+ my $sth = $dbh->prepare($query); >+ $sth->execute( $ordernumber ); >+ my $result = $sth->fetchrow_hashref; >+ return $result; >+} >+ > =head2 GetChildBudgetsSpent > > &GetChildBudgetsSpent($budget-id); >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index f8666a3..9826f2c 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -277,9 +277,12 @@ of the reserves and an arrayref pointing to the reserves for C<$biblionumber>. > sub GetReservesFromBiblionumber { > my ($biblionumber) = shift or return (0, []); > my ($all_dates) = shift; >+ my ($itemnumber) = shift; >+ warn "ITEMNUMBER: $itemnumber"; > my $dbh = C4::Context->dbh; > > # Find the desired items in the reserves >+ my @params; > my $query = " > SELECT reserve_id, > branchcode, >@@ -298,12 +301,17 @@ sub GetReservesFromBiblionumber { > suspend_until > FROM reserves > WHERE biblionumber = ? "; >+ push( @params, $biblionumber ); > unless ( $all_dates ) { >- $query .= "AND reservedate <= CURRENT_DATE()"; >+ $query .= " AND reservedate <= CURRENT_DATE() "; >+ } >+ if ( $itemnumber ) { >+ $query .= " AND ( itemnumber IS NULL OR itemnumber = ? )"; >+ push( @params, $itemnumber ); > } > $query .= "ORDER BY priority"; > my $sth = $dbh->prepare($query); >- $sth->execute($biblionumber); >+ $sth->execute( @params ); > my @results; > my $i = 0; > while ( my $data = $sth->fetchrow_hashref ) { >diff --git a/acqui/parcel.pl b/acqui/parcel.pl >index 839c2a9..7ad184d 100755 >--- a/acqui/parcel.pl >+++ b/acqui/parcel.pl >@@ -67,6 +67,7 @@ use CGI; > use C4::Output; > use C4::Dates qw/format_date format_date_in_iso/; > use C4::Suggestions; >+use C4::Reserves qw/GetReservesFromBiblionumber/; > use JSON; > > my $input=new CGI; >@@ -170,6 +171,9 @@ for my $item ( @parcelitems ) { > $line{invoice} = $invoice->{invoicenumber}; > $line{total} = sprintf($cfstr, $total); > $line{booksellerid} = $invoice->{booksellerid}; >+ my ($count) = &GetReservesFromBiblionumber($line{biblionumber},undef,$item->{itemnumber}); >+ $line{holds} = $count; >+ $line{budget} = GetBudgetByOrderNumber( $line{ordernumber} ); > $totalprice += $item->{'unitprice'}; > $line{unitprice} = sprintf( $cfstr, $item->{'unitprice'} ); > my $gste = get_gste( $line{total}, $line{gstrate}, $bookseller ); >@@ -187,7 +191,8 @@ for my $item ( @parcelitems ) { > > if ( $line{parent_ordernumber} != $line{ordernumber} ) { > if ( grep { $_->{ordernumber} == $line{parent_ordernumber} } >- @parcelitems ) >+ @parcelitems >+ ) > { > $line{cannot_cancel} = 1; > } >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >index fef72dc..d208802 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/parcel.tt >@@ -1,3 +1,4 @@ >+[% USE currency = format('%.2f') -%] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Acquisitions › [% IF ( date ) %] > Receipt summary for [% name %] [% IF ( invoice ) %]invoice [% invoice %][% END %] on [% formatteddatereceived %][% ELSE %]Receive orders from [% name %][% END %]</title> >@@ -58,12 +59,14 @@ > "iCookieDuration": 60*60*24*1000, // 1000 days > "aLengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]], > "aoColumnDefs": [ >- { "aTargets": [ 3, -1 ], "bSortable": false, "bSearchable": false }, >+ { "aTargets": [ 4, -1 ], "bSortable": false, "bSearchable": false }, > ], > "aoColumns": [ > { "sType": "num-html" }, > { "sType": "num-html" }, > { "sType": "html" }, >+ { "sType": "html" }, >+ null, > null, > null, > null, >@@ -298,36 +301,57 @@ > > > [% IF ( loop_received ) %] >+ [% SET funds = {} %] >+ [% SET estimated_total = 0 %] >+ >+ [% FOREACH loop_receive IN loop_received %] >+ [% SET estimated_total = estimated_total + ( loop_receive.ecost * loop_receive.quantityreceived ) %] >+ [% SET funds.${ loop_receive.budget.budget_name }.estimated = funds.${ loop_receive.budget.budget_name }.estimated + ( loop_receive.ecost * loop_receive.quantityreceived )%] >+ [% SET funds.${ loop_receive.budget.budget_name }.actual = funds.${ loop_receive.budget.budget_name }.actual + loop_receive.total %] >+ [% END %] >+ > <form action="/cgi-bin/koha/acqui/parcel.pl" method="get" name="orderform"> > <table id="receivedt"> > <thead> > <tr> >- <th>Basket</th> >- <th>Order line</th> >- <th>Summary</th> >- <th>View record</th> >- <th>Quantity</th> >- <th>Est cost</th> >- <th>Actual cost</th> >- <th>TOTAL</th> >+ <th>Basket</th> >+ <th>Order Line</th> >+ <th>Holds</th> >+ <th>Summary</th> >+ <th>View record</th> >+ <th>Quantity</th> >+ <th>Fund</th> >+ <th>Est cost</th> >+ <th>Actual cost</th> >+ <th>TOTAL</th> > <th></th> > </tr> > </thead> > <tfoot> >+ [% FOREACH key IN funds.keys.sort %] >+ <tr> >+ <td colspan="6" class="total"> </td> >+ <td><i>Subtotal for</i> [% key %]</td> >+ <td>[% currency( funds.$key.estimated ) %]</td> >+ <td>[% currency( funds.$key.actual ) %]</td> >+ <td> </td> >+ <td> </td> >+ </tr> >+ [% END %] > <tr> >- <th colspan="7" class="total">Total tax exc.</th> >+ <th colspan="9" class="total">Total tax exc.</th> > <th>[% total_gste %]</th> > <th></th> > </tr> > [% FOREACH book_foot IN book_foot_loop %] > <tr> >- <th colspan="7">Total (GST [% book_foot.gstrate * 100 | format ("%.1f") %]%)</th> >+ <th colspan="9">Total (GST [% book_foot.gstrate * 100 | format ("%.1f") %]%)</th> > <th>[% book_foot.value %]</th> > <th></th> > </tr> > [% END %] > <tr> >- <th colspan="7" class="total">Total tax inc.</th> >+ <th colspan="9" class="total">Total tax inc.</th> > <th>[% total_gsti %]</th> > <th></th> > </tr> >@@ -337,6 +361,7 @@ > <tr> > <td>[% loop_receive.basketname %] (<a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% loop_receive.basketno %]">[% loop_receive.basketno %]</a>)</td> > <td><a href="neworderempty.pl?ordernumber=[% loop_receive.ordernumber %]&booksellerid=[% booksellerid %]">[% loop_receive.ordernumber %]</a></td> >+ <td>[% IF loop_receive.holds %]<span class="error"><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.holds %]</a></span>[% END %]</td> > <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loop_receive.biblionumber %]">[% loop_receive.title |html %]</a> > [% IF ( loop_receive.author ) %] / [% loop_receive.author %][% END %] > [% IF ( loop_receive.isbn ) %] - [% loop_receive.isbn %][% END %] >@@ -349,6 +374,7 @@ > </td> > <td><a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% loop_receive.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% loop_receive.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a></td> > <td>[% loop_receive.quantityreceived %]</td> >+ <td>[% loop_receive.budget.budget_name %]</td> > <td>[% loop_receive.ecost %]</td> > <td>[% loop_receive.unitprice %]</td> > <td>[% loop_receive.total %]</td> >-- >1.7.7.6
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 8037
:
9383
|
9384
|
11089
|
13152
|
13153
|
14892
|
16336
|
16635
|
16651
|
16660
|
16749
|
18021
|
18022
|
18023
|
18693
|
19672
|
19789
|
19790
|
19791
|
22244
|
22390
| 22636 |
22637
|
22638
|
22639
|
22647