X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FAcquisition.pm;h=15a68eaa33a635b8e36b19d2e46692bc4fc11506;hb=c4d21bcbfebb5bf8a8d1a877a01a528237fd5b7a;hp=19c4f087c2b2c362c02ca0d8f491997e7ee08300;hpb=4d67e6910775ea389cfa0a25e3fb55b9cf17bd6f;p=koha_gimpoz diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm index 19c4f087c2..15a68eaa33 100644 --- a/C4/Acquisition.pm +++ b/C4/Acquisition.pm @@ -54,6 +54,7 @@ BEGIN { &GetOrderNumber &GetLateOrders &GetOrderFromItemnumber &SearchOrder &GetHistory &GetRecentAcqui &ModReceiveOrder &ModOrderBiblioitemNumber + &GetCancelledOrders &NewOrderItem &ModOrderItem @@ -61,6 +62,8 @@ BEGIN { &GetContracts &GetContract &GetItemnumbersFromOrder + + &AddClaim ); } @@ -711,8 +714,9 @@ sub GetPendingOrders { my $dbh = C4::Context->dbh; my $strsth = " SELECT ".($grouped?"count(*),":"")."aqbasket.basketno, - surname,firstname,aqorders.*,biblio.*,biblioitems.isbn, - aqbasket.closedate, aqbasket.creationdate, aqbasket.basketname + surname,firstname,biblio.*,biblioitems.isbn, + aqbasket.closedate, aqbasket.creationdate, aqbasket.basketname, + aqorders.* FROM aqorders LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber @@ -720,10 +724,7 @@ sub GetPendingOrders { LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber WHERE booksellerid=? AND (quantity > quantityreceived OR quantityreceived is NULL) - AND datecancellationprinted IS NULL - AND (to_days(now())-to_days(closedate) < 180 OR closedate IS NULL) - "; - ## FIXME Why 180 days ??? + AND datecancellationprinted IS NULL"; my @query_params = ( $supplierid ); my $userenv = C4::Context->userenv; if ( C4::Context->preference("IndependantBranches") ) { @@ -926,7 +927,6 @@ sub NewOrder { =cut sub NewOrderItem { - #my ($biblioitemnumber,$ordernumber, $biblionumber) = @_; my ($itemnumber, $ordernumber) = @_; my $dbh = C4::Context->dbh; my $query = qq| @@ -1044,6 +1044,42 @@ sub ModOrderBiblioitemNumber { $sth->execute( $biblioitemnumber, $ordernumber, $biblionumber ); } +=head3 GetCancelledOrders + + my @orders = GetCancelledOrders($basketno, $orderby); + +Returns cancelled orders for a basket + +=cut + +sub GetCancelledOrders { + my ( $basketno, $orderby ) = @_; + + return () unless $basketno; + + my $dbh = C4::Context->dbh; + my $query = " + SELECT biblio.*, biblioitems.*, aqorders.*, aqbudgets.* + FROM aqorders + LEFT JOIN aqbudgets ON aqbudgets.budget_id = aqorders.budget_id + LEFT JOIN biblio ON biblio.biblionumber = aqorders.biblionumber + LEFT JOIN biblioitems ON biblioitems.biblionumber = biblio.biblionumber + WHERE basketno = ? + AND (datecancellationprinted IS NOT NULL + AND datecancellationprinted <> '0000-00-00') + "; + + $orderby = "aqorders.datecancellationprinted desc, aqorders.timestamp desc" + unless $orderby; + $query .= " ORDER BY $orderby"; + my $sth = $dbh->prepare($query); + $sth->execute($basketno); + my $results = $sth->fetchall_arrayref( {} ); + + return @$results; +} + + #------------------------------------------------------------# =head3 ModReceiveOrder @@ -1072,16 +1108,13 @@ sub ModReceiveOrder { ) = @_; my $dbh = C4::Context->dbh; -# warn "DATE BEFORE : $daterecieved"; -# $daterecieved=POSIX::strftime("%Y-%m-%d",CORE::localtime) unless $daterecieved; -# warn "DATE REC : $daterecieved"; $datereceived = C4::Dates->output('iso') unless $datereceived; my $suggestionid = GetSuggestionFromBiblionumber( $dbh, $biblionumber ); if ($suggestionid) { ModSuggestion( {suggestionid=>$suggestionid, - STATUS=>'AVAILABLE', - biblionumber=> $biblionumber} - ); + STATUS=>'AVAILABLE', + biblionumber=> $biblionumber} + ); } my $sth=$dbh->prepare(" @@ -1419,9 +1452,12 @@ sub GetLateOrders { DATE(aqbasket.closedate) AS orderdate, aqorders.rrp AS unitpricesupplier, aqorders.ecost AS unitpricelib, + aqorders.claims_count AS claims_count, + aqorders.claimed_date AS claimed_date, aqbudgets.budget_name AS budget, borrowers.branchcode AS branch, aqbooksellers.name AS supplier, + aqbooksellers.id AS supplierid, biblio.author, biblio.title, biblioitems.publishercode AS publisher, biblioitems.publicationyear, @@ -1483,6 +1519,7 @@ sub GetLateOrders { my @results; while (my $data = $sth->fetchrow_hashref) { $data->{orderdate} = format_date($data->{orderdate}); + $data->{claimed_date} = format_date($data->{claimed_date}); push @results, $data; } return @results; @@ -1581,33 +1618,33 @@ sub GetHistory { my @query_params = (); - if ( defined $title ) { + if ( $title ) { $query .= " AND biblio.title LIKE ? "; $title =~ s/\s+/%/g; push @query_params, "%$title%"; } - if ( defined $author ) { + if ( $author ) { $query .= " AND biblio.author LIKE ? "; push @query_params, "%$author%"; } - if ( defined $isbn ) { + if ( $isbn ) { $query .= " AND biblioitems.isbn LIKE ? "; push @query_params, "%$isbn%"; } - if ( defined $name ) { + if ( $name ) { $query .= " AND aqbooksellers.name LIKE ? "; push @query_params, "%$name%"; } - if ( defined $from_placed_on ) { + if ( $from_placed_on ) { $query .= " AND creationdate >= ? "; push @query_params, $from_placed_on; } - if ( defined $to_placed_on ) { + if ( $to_placed_on ) { $query .= " AND creationdate <= ? "; push @query_params, $to_placed_on; } @@ -1642,8 +1679,6 @@ sub GetHistory { $line->{count} = $cnt++; $line->{toggle} = 1 if $cnt % 2; push @order_loop, $line; - $line->{creationdate} = format_date( $line->{creationdate} ); - $line->{datereceived} = format_date( $line->{datereceived} ); $total_qty += $line->{'quantity'}; $total_qtyreceived += $line->{'quantityreceived'}; $total_price += $line->{'quantity'} * $line->{'ecost'}; @@ -1745,6 +1780,31 @@ sub GetContract { return $result; } +=head3 AddClaim + +=over 4 + +&AddClaim($ordernumber); + +Add a claim for an order + +=back + +=cut +sub AddClaim { + my ($ordernumber) = @_; + my $dbh = C4::Context->dbh; + my $query = " + UPDATE aqorders SET + claims_count = claims_count + 1, + claimed_date = CURDATE() + WHERE ordernumber = ? + "; + my $sth = $dbh->prepare($query); + $sth->execute($ordernumber); + +} + 1; __END__