# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=head1 NAME
parcel.pl
=head1 DESCRIPTION
+
This script shows all orders receipt or pending for a given supplier.
It allows to write an order as 'received' when he arrives.
=over 4
=item supplierid
+
To know the supplier this script has to show orders.
=item code
+
is the bookseller invoice number.
=item freight
=item datereceived
+
To filter the results list on this given date.
=back
=cut
+use strict;
+#use warnings; FIXME - Bug 2505
use C4::Auth;
use C4::Acquisition;
+use C4::Budgets;
use C4::Bookseller;
use C4::Biblio;
+use C4::Items;
use CGI;
use C4::Output;
use C4::Dates qw/format_date format_date_in_iso/;
-
-use strict;
+use JSON;
my $input=new CGI;
my $supplierid=$input->param('supplierid');
$resultsperpage = 20 unless ($resultsperpage);
$startfrom=0 unless ($startfrom);
+if($input->param('format') eq "json"){
+ my ($template, $loggedinuser, $cookie)
+ = get_template_and_user({template_name => "acqui/ajax.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => {acquisition => 'order_receive'},
+ debug => 1,
+ });
+
+ my @datas;
+ my $search = $input->param('search') || '';
+ my $supplier = $input->param('supplierid') || '';
+ my $basketno = $input->param('basketno') || '';
+ my $orderno = $input->param('orderno') || '';
+
+ my $orders = SearchOrder($orderno, $search, $supplier, $basketno);
+ foreach my $order (@$orders){
+ if($order->{quantityreceived} < $order->{quantity}){
+ my $data = {};
+
+ $data->{basketno} = $order->{basketno};
+ $data->{ordernumber} = $order->{ordernumber};
+ $data->{title} = $order->{title};
+ $data->{author} = $order->{author};
+ $data->{isbn} = $order->{isbn};
+ $data->{booksellerid} = $order->{booksellerid};
+ $data->{biblionumber} = $order->{biblionumber};
+ $data->{freight} = $order->{freight};
+ $data->{quantity} = $order->{quantity};
+ $data->{ecost} = $order->{ecost};
+ $data->{ordertotal} = sprintf("%.2f",$order->{ecost}*$order->{quantity});
+ push @datas, $data;
+ }
+ }
+
+ my $json_text = to_json(\@datas);
+ $template->param(return => $json_text);
+ output_html_with_http_headers $input, $cookie, $template->output;
+ exit;
+}
+
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "acqui/parcel.tmpl",
query => $input,
debug => 1,
});
+my $action = $input->param('action');
+my $ordernumber = $input->param('ordernumber');
+my $biblionumber = $input->param('biblionumber');
+
+# If canceling an order
+if ($action eq "cancelorder") {
+
+ my $error_delitem;
+ my $error_delbiblio;
+
+ # We delete the order
+ DelOrder($biblionumber, $ordernumber);
+
+ # We delete all the items related to this order
+ my @itemnumbers = GetItemnumbersFromOrder($ordernumber);
+ foreach (@itemnumbers) {
+ my $delcheck = DelItemCheck(C4::Context->dbh, $biblionumber, $_);
+ # (should always success, as no issue should exist on item on order)
+ if ($delcheck != 1) { $error_delitem = 1; }
+ }
+
+ # We get the number of remaining items
+ my $itemcount = GetItemsCount($biblionumber);
+
+ # If there are no items left,
+ if ($itemcount eq 0) {
+ # We delete the record
+ $error_delbiblio = DelBiblio($biblionumber);
+ }
+
+ if ($error_delitem || $error_delbiblio) {
+ if ($error_delitem) { $template->param(error_delitem => 1); }
+ if ($error_delbiblio) { $template->param(error_delbiblio => 1); }
+ } else {
+ $template->param(success_delorder => 1);
+ }
+}
+
# If receiving error, report the error (coming from finishrecieve.pl(sic)).
if( scalar(@rcv_err) ) {
my $cnt=0;
my %line;
%line = %{$pendingorders->[$i]};
$line{quantity}+=0;
- $line{quantrem} = $line{quantity} - $line{quantityreceived};
$line{quantityreceived}+=0;
$line{unitprice}+=0;
$totalPunitprice += $line{unitprice};
resultsperpage => $resultsperpage,
);
output_html_with_http_headers $input, $cookie, $template->output;
+