Bugzilla – Attachment 14188 Details for
Bug 5336
Acq history search
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 5336:Order search (search and UI enhancements)
Bug-5336Order-search-search-and-UI-enhancements.patch (text/plain), 33.21 KB, created by
Jonathan Druart
on 2012-12-18 13:31:39 UTC
(
hide
)
Description:
Bug 5336:Order search (search and UI enhancements)
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2012-12-18 13:31:39 UTC
Size:
33.21 KB
patch
obsolete
>From 3ed4429947985e45947561186621d2c5f19ae247 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 18 Jan 2012 16:05:40 +0100 >Subject: [PATCH] Bug 5336:Order search (search and UI enhancements) > >You can now search orders by >- order status >- branchcode >- budget > >New authorised value 'ORDRSTATUS' is created with following values: > 0 => New > 1 => Ordered > 2 => Partial > 3 => Complete > 4 => Deleted > >New field aqorders.parent_ordernumber is added (which is mainly used by others enhancement). >It allows to know the main(=parent) order for an order (if an order is partially received, >Koha creates another order. But it is the same order. We want to know this information). > >To test: Search and check if results are consistent in histsearch.pl >--- > C4/Acquisition.pm | 121 +++++++++++++++++--- > acqui/histsearch.pl | 50 +++++++- > installer/data/mysql/de-DE/optional/auth_val.sql | 7 ++ > installer/data/mysql/en/optional/auth_val.sql | 7 ++ > installer/data/mysql/es-ES/optional/auth_val.sql | 7 ++ > .../fr-FR/1-Obligatoire/authorised_values.sql | 5 + > installer/data/mysql/it-IT/necessari/auth_val.sql | 7 ++ > installer/data/mysql/kohastructure.sql | 1 + > .../data/mysql/nb-NO/2-Valgfritt/auth_val.sql | 7 ++ > installer/data/mysql/pl-PL/optional/auth_val.sql | 7 ++ > installer/data/mysql/updatedatabase.pl | 24 ++++ > .../prog/en/modules/acqui/histsearch.tt | 102 ++++++++++++----- > 12 files changed, 298 insertions(+), 47 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 17330e5..eaecc7f 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -28,7 +28,7 @@ use MARC::Record; > use C4::Suggestions; > use C4::Biblio; > use C4::Debug; >-use C4::SQLHelper qw(InsertInTable); >+use C4::SQLHelper qw(InsertInTable UpdateInTable); > use C4::Bookseller qw(GetBookSellerFromId); > use C4::Templates qw(gettemplate); > >@@ -75,6 +75,7 @@ BEGIN { > &GetItemnumbersFromOrder > > &AddClaim >+ &GetBiblioCountByBasketno > ); > } > >@@ -225,6 +226,17 @@ sub CloseBasket { > "; > my $sth = $dbh->prepare($query); > $sth->execute($basketno); >+ >+ my @orders = GetOrders($basketno); >+ foreach my $order (@orders) { >+ $query = qq{ >+ UPDATE aqorders >+ SET orderstatus = 1 >+ WHERE ordernumber = ?; >+ }; >+ $sth = $dbh->prepare($query); >+ $sth->execute($order->{'ordernumber'}); >+ } > } > > #------------------------------------------------------------# >@@ -464,6 +476,19 @@ sub ModBasket { > my $dbh = C4::Context->dbh; > my $sth = $dbh->prepare($query); > $sth->execute(@params); >+ >+ # set orders status = new >+ my @orders = GetOrders($basketinfo->{'basketno'}); >+ foreach my $order (@orders) { >+ $query = qq{ >+ UPDATE aqorders >+ SET orderstatus = 0 >+ WHERE ordernumber = ?; >+ }; >+ $sth = $dbh->prepare($query); >+ $sth->execute($order->{'ordernumber'}); >+ } >+ > $sth->finish; > } > >@@ -1040,7 +1065,8 @@ The following keys are used: "biblionumber", "title", "basketno", "quantity", "n > > sub NewOrder { > my $orderinfo = shift; >-#### ------------------------------ >+ my $parent_ordernumber = shift; >+ > my $dbh = C4::Context->dbh; > my @params; > >@@ -1313,6 +1339,7 @@ sub ModReceiveOrder { > $sth=$dbh->prepare(" > UPDATE aqorders > SET quantity = ? >+ ordernumber = 2 > WHERE ordernumber = ? > "); > >@@ -1339,7 +1366,7 @@ sub ModReceiveOrder { > } else { > $sth=$dbh->prepare("update aqorders > set quantityreceived=?,datereceived=?,invoiceid=?, >- unitprice=?,rrp=?,ecost=? >+ unitprice=?,rrp=?,ecost=?,orderstatus=3 > where biblionumber=? and ordernumber=?"); > $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$biblionumber,$ordernumber); > $sth->finish; >@@ -1556,7 +1583,7 @@ sub DelOrder { > my $dbh = C4::Context->dbh; > my $query = " > UPDATE aqorders >- SET datecancellationprinted=now() >+ SET datecancellationprinted=now(), orderstatus=4 > WHERE biblionumber=? AND ordernumber=? > "; > my $sth = $dbh->prepare($query); >@@ -1917,6 +1944,10 @@ sub GetHistory { > my $basket = $params{basket}; > my $booksellerinvoicenumber = $params{booksellerinvoicenumber}; > my $basketgroupname = $params{basketgroupname}; >+ my $budget = $params{budget}; >+ my $branchcode = $params{branchcode}; >+ my $orderstatus = $params{orderstatus}; >+ > my @order_loop; > my $total_qty = 0; > my $total_qtyreceived = 0; >@@ -1925,10 +1956,10 @@ sub GetHistory { > my $dbh = C4::Context->dbh; > my $query =" > SELECT >- biblio.title, >- biblio.author, >- biblioitems.isbn, >- biblioitems.ean, >+ COALESCE(biblio.title, deletedbiblio.title) AS title, >+ COALESCE(biblio.author, deletedbiblio.author) AS author, >+ COALESCE(biblioitems.isbn, deletedbiblioitems.isbn) AS isbn, >+ COALESCE(biblioitems.ean, deletedbiblioitems.ean) AS ean, > aqorders.basketno, > aqbasket.basketname, > aqbasket.basketgroupid, >@@ -1942,19 +1973,35 @@ sub GetHistory { > aqorders.ordernumber, > aqinvoices.invoicenumber, > aqbooksellers.id as id, >- aqorders.biblionumber >+ aqorders.biblionumber, >+ aqorders.orderstatus, >+ aqorders.parent_ordernumber"; >+ $query .= ", aqbudgets.budget_id AS budget" if defined $budget; >+ $query .= ", aqorders.branchcode " if ( not C4::Context->preference("IndependantBranches") and defined $branchcode and $branchcode ); >+ $query .= " > FROM aqorders > LEFT JOIN aqbasket ON aqorders.basketno=aqbasket.basketno > LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid=aqbasketgroups.id > LEFT JOIN aqbooksellers ON aqbasket.booksellerid=aqbooksellers.id >- LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber >+ LEFT JOIN biblioitems ON biblioitems.biblionumber=aqorders.biblionumber > LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber >- LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid"; >+ LEFT JOIN aqinvoices ON aqorders.invoiceid = aqinvoices.invoiceid >+ LEFT JOIN deletedbiblio ON deletedbiblio.biblionumber=aqorders.biblionumber >+ LEFT JOIN deletedbiblioitems ON deletedbiblioitems.biblionumber=aqorders.biblionumber >+ "; >+ >+ $query .= " LEFT JOIN aqbudgets ON aqorders.budget_id=aqbudgets.budget_id" >+ if defined $budget; >+ >+ if ( C4::Context->preference("IndependantBranches") ) { >+ $query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber"; >+ } elsif ( defined $branchcode and $branchcode) { >+ $query .= " LEFT JOIN borrowers ON aqorders.branchcode=borrowers.branchcode" >+ } > >- $query .= " LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber" >- if ( C4::Context->preference("IndependantBranches") ); >+ $query .= " WHERE 1 "; > >- $query .= " WHERE (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') "; >+ $query .= " AND (datecancellationprinted is NULL or datecancellationprinted='0000-00-00') " if $orderstatus ne '4'; > > my @query_params = (); > >@@ -1973,7 +2020,7 @@ sub GetHistory { > $query .= " AND biblioitems.isbn LIKE ? "; > push @query_params, "%$isbn%"; > } >- if ( defined $ean and $ean ) { >+ if ( $ean ) { > $query .= " AND biblioitems.ean = ? "; > push @query_params, "$ean"; > } >@@ -1982,6 +2029,11 @@ sub GetHistory { > push @query_params, "%$name%"; > } > >+ if ( $budget ) { >+ $query .= " AND aqbudgets.budget_id = ? "; >+ push @query_params, "$budget"; >+ } >+ > if ( $from_placed_on ) { > $query .= " AND creationdate >= ? "; > push @query_params, $from_placed_on; >@@ -1992,6 +2044,11 @@ sub GetHistory { > push @query_params, $to_placed_on; > } > >+ if ( defined $orderstatus and $orderstatus ne '') { >+ $query .= " AND aqorders.orderstatus = ? "; >+ push @query_params, "$orderstatus"; >+ } >+ > if ($basket) { > if ($basket =~ m/^\d+$/) { > $query .= " AND aqorders.basketno = ? "; >@@ -2018,6 +2075,9 @@ sub GetHistory { > $query .= " AND (borrowers.branchcode = ? OR borrowers.branchcode ='' ) "; > push @query_params, $userenv->{branch}; > } >+ } elsif ( defined $branchcode and $branchcode ) { >+ $query .= " AND aqorders.branchcode = ? "; >+ push @query_params, $branchcode; > } > $query .= " ORDER BY id"; > my $sth = $dbh->prepare($query); >@@ -2027,9 +2087,9 @@ sub GetHistory { > $line->{count} = $cnt++; > $line->{toggle} = 1 if $cnt % 2; > push @order_loop, $line; >- $total_qty += $line->{'quantity'}; >- $total_qtyreceived += $line->{'quantityreceived'}; >- $total_price += $line->{'quantity'} * $line->{'ecost'}; >+ $total_qty += ( $line->{quantity} ) ? $line->{quantity} : 0; >+ $total_qtyreceived += ( $line->{quantityreceived} ) ? $line->{quantityreceived} : 0; >+ $total_price += ( $line->{quantity} and $line->{ecost} ) ? $line->{quantity} * $line->{ecost} : 0; > } > return \@order_loop, $total_qty, $total_price, $total_qtyreceived; > } >@@ -2491,6 +2551,31 @@ sub ReopenInvoice { > $sth->execute($invoiceid); > } > >+=head3 GetBiblioCountByBasketno >+ >+$biblio_count = &GetBiblioCountByBasketno($basketno); >+ >+Looks up the biblio's count that has basketno value $basketno >+ >+Returns a quantity >+ >+=cut >+ >+sub GetBiblioCountByBasketno { >+ my ($basketno) = @_; >+ my $dbh = C4::Context->dbh; >+ my $query = " >+ SELECT COUNT( DISTINCT( biblionumber ) ) >+ FROM aqorders >+ WHERE basketno = ? >+ AND (datecancellationprinted IS NULL OR datecancellationprinted='0000-00-00') >+ "; >+ >+ my $sth = $dbh->prepare($query); >+ $sth->execute($basketno); >+ return $sth->fetchrow; >+} >+ > 1; > __END__ > >diff --git a/acqui/histsearch.pl b/acqui/histsearch.pl >index e89bcae..9705e53 100755 >--- a/acqui/histsearch.pl >+++ b/acqui/histsearch.pl >@@ -57,6 +57,8 @@ use C4::Output; > use C4::Acquisition; > use C4::Dates; > use C4::Debug; >+use C4::Branch; >+use C4::Koha; > > my $input = new CGI; > my $title = $input->param( 'title'); >@@ -70,6 +72,10 @@ my $booksellerinvoicenumber = $input->param( 'booksellerinvoicenumber' ); > my $do_search = $input->param('do_search') || 0; > my $from_placed_on = C4::Dates->new($input->param('from')); > my $to_placed_on = C4::Dates->new($input->param('to')); >+my $budget = $input->param( 'budget' ); >+my $branchcode = $input->param( 'branchcode' ); >+my $orderstatus = $input->param( 'orderstatus' ); >+ > if ( not $input->param('from') ) { > # FIXME Dirty but we can't sent a Date::Calc to C4::Dates ? > # We would use a function like Add_Delta_YM(-1, 0, 0); >@@ -110,21 +116,59 @@ if ($do_search) { > basket => $basket, > booksellerinvoicenumber => $booksellerinvoicenumber, > basketgroupname => $basketgroupname, >+ budget => $budget, >+ branchcode => $branchcode, >+ orderstatus => $orderstatus, > ); > } > > my $from_date = $from_placed_on ? $from_placed_on->output('syspref') : undef; > my $to_date = $to_placed_on ? $to_placed_on->output('syspref') : undef; > >+my $budgetperiods = C4::Budgets::GetBudgetPeriods; >+my $bp_loop = $budgetperiods; >+for my $bp ( @{$budgetperiods} ) { >+ my $hierarchy = C4::Budgets::GetBudgetHierarchy( $$bp{budget_period_id} ); >+ for my $budget ( @{$hierarchy} ) { >+ $$budget{budget_display_name} = sprintf("%s", ">" x $$budget{depth} . $$budget{budget_name}); >+ } >+ $$bp{hierarchy} = $hierarchy; >+} >+ >+if ( not C4::Context->preference("IndependantBranches") ){ >+ my $branches = GetBranches(); >+ my @branchloop; >+ foreach my $thisbranch ( keys %$branches ) { >+ my %row = ( >+ value => $thisbranch, >+ branchname => $branches->{$thisbranch}->{'branchname'}, >+ ); >+ push @branchloop, \%row; >+ } >+ $template->param( >+ branchcode => $branchcode, >+ display_branchcode => !C4::Context->preference("IndependantBranches"), >+ branchloop => \@branchloop >+ ); >+} >+ >+my $orderstatusloop = GetAuthorisedValues( "ORDRSTATUS" ); >+my %order_status = map { >+ $_->{authorised_value} => $_->{lib} >+} @$orderstatusloop; >+ >+$_->{lib_orderstatus} = $order_status{$_->{orderstatus}} >+ for @$order_loop; >+ > $template->param( >- suggestions_loop => $order_loop, >+ order_loop => $order_loop, > total_qty => $total_qty, > total_qtyreceived => $total_qtyreceived, > total_price => sprintf( "%.2f", $total_price ), > numresults => $order_loop ? scalar(@$order_loop) : undef, > title => $title, > author => $author, >- isbn => $isbn, >+ isbn => $isbn, > ean => $ean, > name => $name, > basket => $basket, >@@ -132,6 +176,8 @@ $template->param( > basketgroupname => $basketgroupname, > from_placed_on => $from_date, > to_placed_on => $to_date, >+ bp_loop => $bp_loop, >+ orderstatusloop => $orderstatusloop, > DHTMLcalendar_dateformat=> C4::Dates->DHTMLcalendar(), > dateformat => C4::Dates->new()->format(), > debug => $debug || $input->param('debug') || 0, >diff --git a/installer/data/mysql/de-DE/optional/auth_val.sql b/installer/data/mysql/de-DE/optional/auth_val.sql >index 3c45e08..9f9bb9b 100644 >--- a/installer/data/mysql/de-DE/optional/auth_val.sql >+++ b/installer/data/mysql/de-DE/optional/auth_val.sql >@@ -57,3 +57,10 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_ > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'PAT', 'Benutzer'); > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'ACQ', 'Erwerbung'); > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'ACC', 'Gebühren'); >+ >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >diff --git a/installer/data/mysql/en/optional/auth_val.sql b/installer/data/mysql/en/optional/auth_val.sql >index db6df3d..66e34b0 100644 >--- a/installer/data/mysql/en/optional/auth_val.sql >+++ b/installer/data/mysql/en/optional/auth_val.sql >@@ -57,3 +57,10 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_ > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'PAT', 'Patrons'); > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'ACQ', 'Acquisitions'); > INSERT INTO authorised_values (category, authorised_value, lib) VALUES ('REPORT_GROUP', 'ACC', 'Accounts'); >+ >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >diff --git a/installer/data/mysql/es-ES/optional/auth_val.sql b/installer/data/mysql/es-ES/optional/auth_val.sql >index e1c7917..1ab14d5 100644 >--- a/installer/data/mysql/es-ES/optional/auth_val.sql >+++ b/installer/data/mysql/es-ES/optional/auth_val.sql >@@ -50,3 +50,10 @@ INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('BOR_N > -- OPAC Suggestions reasons > INSERT INTO authorised_values (category,authorised_value,lib,lib_opac) VALUES ('OPAC_SUG','damaged','The copy on the shelf is damaged','The copy on the shelf is damaged'); > INSERT INTO authorised_values (category,authorised_value,lib,lib_opac) VALUES ('OPAC_SUG','bestseller','Upcoming title by popular author','Upcoming title by popular author'); >+ >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >diff --git a/installer/data/mysql/fr-FR/1-Obligatoire/authorised_values.sql b/installer/data/mysql/fr-FR/1-Obligatoire/authorised_values.sql >index 8c46b7b..a527dfd 100644 >--- a/installer/data/mysql/fr-FR/1-Obligatoire/authorised_values.sql >+++ b/installer/data/mysql/fr-FR/1-Obligatoire/authorised_values.sql >@@ -351,3 +351,8 @@ INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES > INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'qualif', '295', 'Donneur de grades'); > INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'qualif', '010', 'Adaptateur'); > INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'LOC', 'En reliure', 'En reliure'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'Nouveau'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Demandé'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partielle'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complète'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Supprimée') >diff --git a/installer/data/mysql/it-IT/necessari/auth_val.sql b/installer/data/mysql/it-IT/necessari/auth_val.sql >index cd78c83..d6d2707 100644 >--- a/installer/data/mysql/it-IT/necessari/auth_val.sql >+++ b/installer/data/mysql/it-IT/necessari/auth_val.sql >@@ -79,4 +79,11 @@ INSERT INTO authorised_values (category, authorised_value, lib) VALUES > ('LANG', 'fre', 'francese'), > ('LANG', 'lat', 'latino'); > >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >+ > SET FOREIGN_KEY_CHECKS=1; >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index ed673da..cef39f2 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -2805,6 +2805,7 @@ CREATE TABLE `aqorders` ( -- information related to the basket line items > `claims_count` int(11) default 0, -- count of claim letters generated > `claimed_date` date default NULL, -- last date a claim was generated > parent_ordernumber int(11) default NULL, -- ordernumber of parent order line, or same as ordernumber if no parent >+ `orderstatus` tinyint(2) default 0, -- the current status for this line item > PRIMARY KEY (`ordernumber`), > KEY `basketno` (`basketno`), > KEY `biblionumber` (`biblionumber`), >diff --git a/installer/data/mysql/nb-NO/2-Valgfritt/auth_val.sql b/installer/data/mysql/nb-NO/2-Valgfritt/auth_val.sql >index 3deeae2..9073015 100644 >--- a/installer/data/mysql/nb-NO/2-Valgfritt/auth_val.sql >+++ b/installer/data/mysql/nb-NO/2-Valgfritt/auth_val.sql >@@ -71,3 +71,10 @@ INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('BOR_N > -- OPAC Suggestions reasons > INSERT INTO authorised_values (category,authorised_value,lib,lib_opac) VALUES ('OPAC_SUG','damaged','Eksemplaret pÃ¥ hylla er skadet','Eksemplaret pÃ¥ hylla er skadet'); > INSERT INTO authorised_values (category,authorised_value,lib,lib_opac) VALUES ('OPAC_SUG','bestseller','Kommende tittel av populær forfatter','Kommende tittel av populær forfatter'); >+ >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >diff --git a/installer/data/mysql/pl-PL/optional/auth_val.sql b/installer/data/mysql/pl-PL/optional/auth_val.sql >index 0bc10c9..447589d 100644 >--- a/installer/data/mysql/pl-PL/optional/auth_val.sql >+++ b/installer/data/mysql/pl-PL/optional/auth_val.sql >@@ -38,3 +38,10 @@ INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('NOT_L > > -- restricted status of an item, linked to items.restricted > INSERT INTO `authorised_values` (category, authorised_value, lib) VALUES ('RESTRICTED','1','Restricted Access'); >+ >+-- order status >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '0', 'New'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '1', 'Ordered'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '2', 'Partial'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '3', 'Complete'); >+INSERT INTO `authorised_values` ( `category`, `authorised_value`, `lib`) VALUES ( 'ORDRSTATUS', '4', 'Deleted'); >diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl >index 2c4b1ed..ef221d3 100755 >--- a/installer/data/mysql/updatedatabase.pl >+++ b/installer/data/mysql/updatedatabase.pl >@@ -6299,6 +6299,30 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) { > } > > >+ >+ >+ >+ >+$DBversion = "3.11.00.XXX"; >+if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { >+ my $return_count; >+ eval { $return_count = $dbh->do("SELECT 1 FROM authorised_values WHERE category='ORDRSTATUS'"); }; >+ if ( $return_count == 0 ) { >+ $dbh->do("INSERT IGNORE INTO authorised_values ( category, authorised_value, lib) VALUES ( 'ORDRSTATUS', '0', 'New')"); >+ $dbh->do("INSERT IGNORE INTO authorised_values ( category, authorised_value, lib) VALUES ( 'ORDRSTATUS', '1', 'Ordered')"); >+ $dbh->do("INSERT IGNORE INTO authorised_values ( category, authorised_value, lib) VALUES ( 'ORDRSTATUS', '2', 'Partial')"); >+ $dbh->do("INSERT IGNORE INTO authorised_values ( category, authorised_value, lib) VALUES ( 'ORDRSTATUS', '3', 'Complete')"); >+ $dbh->do("INSERT IGNORE INTO authorised_values ( category, authorised_value, lib) VALUES ( 'ORDRSTATUS', '4', 'Deleted')"); >+ $dbh->do("ALTER TABLE aqorders ADD COLUMN orderstatus tinyint(2) DEFAULT 0 AFTER parent_ordernumber"); >+ $dbh->do("UPDATE aqorders SET orderstatus=1 WHERE basketno IN (SELECT basketno FROM aqbasket WHERE closedate IS NOT NULL)"); >+ $dbh->do("UPDATE aqorders SET orderstatus=2 WHERE quantity > quantityreceived AND quantityreceived > 0"); >+ $dbh->do("UPDATE aqorders SET orderstatus=3 WHERE quantity=quantityreceived"); >+ $dbh->do("UPDATE aqorders SET orderstatus=4 WHERE datecancellationprinted IS NOT NULL"); >+ } >+ print "Upgrade to $DBversion done (Add category ORDRSTATUS values in authorised_values table)\n"; >+ SetVersion($DBversion); >+} >+ > =head1 FUNCTIONS > > =head2 TableExists($table) >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >index 5659c1d..b860696 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >@@ -1,6 +1,6 @@ > [% USE KohaDates %] > [% INCLUDE 'doc-head-open.inc' %] >-<title>Koha › Acquisitions › [% IF ( suggestions_loop ) %]Orders search › Search results[% ELSE %]Order search[% END %]</title> >+<title>Koha › Acquisitions › [% IF ( order_loop ) %]Orders search › Search results[% ELSE %]Order search[% END %]</title> > <link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" /> > [% INCLUDE 'doc-head-close.inc' %] > [% INCLUDE 'calendar.inc' %] >@@ -21,7 +21,7 @@ > [% INCLUDE 'header.inc' %] > [% INCLUDE 'acquisitions-search.inc' %] > >-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> › [% IF ( suggestions_loop ) %]<a href="/cgi-bin/koha/acqui/histsearch.pl">Orders search</a> › Search results[% ELSE %]Order search[% END %]</div> >+<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/acqui/acqui-home.pl">Acquisitions</a> › [% IF ( order_loop ) %]<a href="/cgi-bin/koha/acqui/histsearch.pl">Orders search</a> › Search results[% ELSE %]Order search[% END %]</div> > > <div id="doc3" class="yui-t2"> > >@@ -29,7 +29,7 @@ > <div id="yui-main"> > <div class="yui-b"> > >- [% UNLESS ( suggestions_loop ) %]<form action="/cgi-bin/koha/acqui/histsearch.pl" method="post"> >+ [% UNLESS ( order_loop ) %]<form action="/cgi-bin/koha/acqui/histsearch.pl" method="post"> > <fieldset class="rows"> > <legend>Search Orders</legend> > <ol> >@@ -46,6 +46,47 @@ > <label for="basketgroupname">Basket group:</label> > <input type="text" name="basketgroupname" id="basketgroupname" value="[% basketgroupname %]" /> > </li> >+ >+ <li> >+ <label for="orderstatus">Order Status: </label> >+ <select name="orderstatus" id="orderstatus"> >+ <option value=""></option> >+ [% FOREACH order_loo IN orderstatusloop %] >+ <option value="[% order_loo.authorised_value %]">[% order_loo.lib %]</option> >+ [% END %] >+ </select> >+ </li> >+ >+ [% IF ( display_branchcode ) %] >+ <li> >+ <label for="branchcode">Branch: </label> >+ <select name="branchcode" id="branchcode"> >+ <option value=""></option> >+ [% FOREACH branch IN branchloop %] >+ <option value="[% branch.value %]"> >+ [% branch.value %] - [% branch.branchname %] >+ </option> >+ [% END %] >+ </select> >+ </li> >+ [% END %] >+ >+ <li> >+ <label for="budget">Budget: </label> >+ <select name="budget" id="budget"> >+ <option value="">All budgets</option> >+ [% FOREACH bp_loo IN bp_loop %] >+ <optgroup label="[% bp_loo.budget_period_description %]"> >+ [% FOREACH h_loo IN bp_loo.hierarchy %] >+ <option type="text" name="budget" value="[% h_loo.budget_id %]" branchcode="[% h_loo.budget_branchcode %]"> >+ [% h_loo.budget_display_name %] >+ </option> >+ [% END %] >+ </optgroup> >+ [% END %] >+ </select> >+ </li> >+ > <li><label for="from">From: </label> > <input type="text" size="10" id="from" name="from" value="[% from_placed_on %]" class="datepickerfrom" /> > <div class="hint">[% INCLUDE 'date-format.inc' %]</div> >@@ -59,11 +100,12 @@ > <input type="hidden" name="do_search" value="1" /> > <fieldset class="action"><input type="submit" value="Search" /></fieldset> > </form>[% END %] >- [% IF ( suggestions_loop ) %]<h1>Search results</h1> >+ [% IF ( order_loop ) %]<h1>Search results</h1> > <div id="acqui_histsearch"> > <table id="histsearcht"> > <thead> > <tr> >+ <th>Order line</th> > <th>Basket</th> > <th>Basket group</th> > <th>Invoice number</th> >@@ -72,41 +114,47 @@ > <th>Vendor</th> > <th>Placed on</th> > <th>Received on</th> >- <th>Quantity ordered</th> >+ <th>Status</th> >+ <th>Quantity received</th> >+ <th>Pending order</th> > <th>Unit cost</th> > </tr> > </thead> > <tbody> >- [% FOREACH suggestions_loo IN suggestions_loop %] >- <tr> >- <td>[% suggestions_loo.basketname %] (<a href="basket.pl?basketno=[% suggestions_loo.basketno %]">[% suggestions_loo.basketno %]</a>)</td> >+ [% FOREACH order IN order_loop %] >+ <tr> >+ <td>[% order.parent_ordernumber %]</td> >+ <td>[% order.basketname %] (<a href="basket.pl?basketno=[% order.basketno %]">[% order.basketno %]</a>)</td> > <td> >- [% IF ( suggestions_loo.basketgroupid ) %] >- [% suggestions_loo.groupname %] (<a href="basketgroup.pl?booksellerid=[% suggestions_loo.id %]">[% suggestions_loo.basketgroupid %]</a>) >+ [% IF ( order.basketgroupid ) %] >+ [% order.groupname %] (<a href="basketgroup.pl?booksellerid=[% order.id %]">[% order.basketgroupid %]</a>) > [% ELSE %] > > [% END %] > </td> >- <td>[% IF ( suggestions_loo.invoicenumber ) %] >- <a href="/cgi-bin/koha/acqui/parcel.pl?invoice=[% suggestions_loo.invoicenumber %]&booksellerid=[% suggestions_loo.id %]&datereceived=[% suggestions_loo.datereceived %]">[% suggestions_loo.invoicenumber %]</a> >- [% ELSE %] >- >- [% END %] >- </td> >- <td>[% suggestions_loo.ordernumber %]</td> >- <td><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% suggestions_loo.biblionumber %]">[% suggestions_loo.title |html %]</a> >- <br />[% suggestions_loo.author %] <br /> [% suggestions_loo.isbn %]</td> >- <td><a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% suggestions_loo.id %]">[% suggestions_loo.name %]</a></td> >- <td>[% suggestions_loo.creationdate | $KohaDates %]</td> >+ <td>[% IF ( order.invoicenumber ) %] >+ <a href="/cgi-bin/koha/acqui/parcel.pl?invoice=[% order.invoicenumber %]&booksellerid=[% order.id %]&datereceived=[% order.datereceived %]">[% order.invoicenumber %]</a> >+ [% ELSE %] >+ >+ [% END %] >+ </td> >+ <td>[% order.ordernumber %]</td> >+ <td> >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% order.biblionumber %]">[% order.title |html %]</a> >+ <br />[% order.author %] <br /> [% IF ( order.internalnotes ) %][% order.internalnotes %]<br />[% END %][% order.isbn %]</td> >+ <td><a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% order.id %]">[% order.name %]</a></td> >+ <td>[% order.creationdate | $KohaDates %]</td> > <td> >- [% IF suggestions_loo.datereceived %] >- [% suggestions_loo.datereceived | $KohaDates %] >+ [% IF order.datereceived %] >+ [% order.datereceived | $KohaDates %] > [% END %] > </td> >- <td>[% suggestions_loo.quantity %]</td> >- <td>[% suggestions_loo.ecost %]</td> >- </tr> >- [% END %] >+ <td>[% order.lib_orderstatus %]</td> >+ <td>[% order.quantityreceived %]</td> >+ <td>[% order.quantity %]</td> >+ <td>[% order.ecost %]</td> >+ </tr> >+ [% END %] > </tbody> > </table> > </div>[% ELSE %][% END %] >-- >1.7.10.4
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 5336
:
11603
|
11604
|
11792
|
14067
|
14188
|
14213
|
16013
|
17612
|
17613
|
17615
|
17617
|
17648
|
17649
|
17650
|
17883
|
18187
|
18411
|
18412
|
18413
|
18414
|
18496
|
18497
|
18498
|
18499
|
18500
|
19317
|
19318
|
19319
|
19320
|
19321
|
19550
|
20894
|
20895
|
20896
|
20897
|
20898
|
20899
|
21689
|
21690
|
21691
|
21692
|
21693
|
21694
|
21695
|
21696
|
21697
|
21707
|
21708
|
21709
|
21751
|
21752
|
21753
|
21754
|
21755
|
21756
|
21757
|
21758