d76dbace5e
New field deliverytime in aqbooksellers table. It is an estimated delivery time for orders (in days). You can set this delay on the supplier modification page. It is used in the late orders search. The order estimated date is the aqbasket.closedate + aqbooksellers.deliverytime If you set a delay, the query check if closedate <= today - delay If you set a "delivery time from" and a "delivery time to", the query check if $delivery_time_from <= aqbooksellers.deliverytime is not NULL and if closedate + deliverytime >= $delivery_time_to if there is not a time_to then $delivery_time_to = the current date.
182 lines
6.5 KiB
Perl
Executable file
182 lines
6.5 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# Copyright 2000-2002 Katipo Communications
|
|
# Copyright 2008-2009 BibLibre SARL
|
|
# Copyright 2010 PTFS Europe Ltd
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it under the
|
|
# terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; either version 2 of the License, or (at your option) any later
|
|
# version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# 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.,
|
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
=head1 NAME
|
|
|
|
supplier.pl
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
this script shows the details for a bookseller given on input arg.
|
|
It allows to edit & save information about this bookseller.
|
|
|
|
=head1 CGI PARAMETERS
|
|
|
|
=over 4
|
|
|
|
=item booksellerid
|
|
|
|
To know the bookseller this script has to display details.
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
use strict;
|
|
use warnings;
|
|
use C4::Auth;
|
|
use C4::Contract qw/GetContract/;
|
|
use C4::Biblio;
|
|
use C4::Output;
|
|
use CGI;
|
|
|
|
use C4::Bookseller qw( GetBookSellerFromId DelBookseller );
|
|
use C4::Budgets;
|
|
|
|
my $query = CGI->new;
|
|
my $booksellerid = $query->param('booksellerid');
|
|
my $supplier = {};
|
|
if ($booksellerid) {
|
|
$supplier = GetBookSellerFromId($booksellerid);
|
|
}
|
|
my $op = $query->param('op') || 'display';
|
|
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
|
|
{ template_name => 'acqui/supplier.tmpl',
|
|
query => $query,
|
|
type => 'intranet',
|
|
authnotrequired => 0,
|
|
flagsrequired => { acquisition => '*' },
|
|
debug => 1,
|
|
}
|
|
);
|
|
my $seller_gstrate = $supplier->{'gstrate'};
|
|
|
|
# ensure the scalar isn't flagged as a string
|
|
$seller_gstrate = ( defined $seller_gstrate ) ? $seller_gstrate + 0 : undef;
|
|
my $tax_rate = $seller_gstrate // C4::Context->preference('gist') // 0;
|
|
$tax_rate *= 100;
|
|
#build array for currencies
|
|
if ( $op eq 'display' ) {
|
|
|
|
my $contracts = GetContract( { booksellerid => $booksellerid } );
|
|
|
|
$template->param(
|
|
booksellerid => $booksellerid,
|
|
name => $supplier->{'name'},
|
|
postal => $supplier->{'postal'},
|
|
address1 => $supplier->{'address1'},
|
|
address2 => $supplier->{'address2'},
|
|
address3 => $supplier->{'address3'},
|
|
address4 => $supplier->{'address4'},
|
|
phone => $supplier->{'phone'},
|
|
accountnumber => $supplier->{'accountnumber'},
|
|
fax => $supplier->{'fax'},
|
|
url => $supplier->{'url'},
|
|
contact => $supplier->{'contact'},
|
|
contpos => $supplier->{'contpos'},
|
|
contphone => $supplier->{'contphone'},
|
|
contaltphone => $supplier->{'contaltphone'},
|
|
contfax => $supplier->{'contfax'},
|
|
contemail => $supplier->{'contemail'},
|
|
contnotes => $supplier->{'contnotes'},
|
|
notes => $supplier->{'notes'},
|
|
active => $supplier->{'active'},
|
|
gstreg => $supplier->{'gstreg'},
|
|
listincgst => $supplier->{'listincgst'},
|
|
invoiceincgst => $supplier->{'invoiceincgst'},
|
|
discount => $supplier->{'discount'},
|
|
deliverytime => $supplier->{deliverytime},
|
|
invoiceprice => $supplier->{'invoiceprice'},
|
|
listprice => $supplier->{'listprice'},
|
|
GST => $tax_rate,
|
|
default_tax => defined($seller_gstrate),
|
|
basketcount => $supplier->{'basketcount'},
|
|
subscriptioncount => $supplier->{'subscriptioncount'},
|
|
contracts => $contracts,
|
|
);
|
|
} elsif ( $op eq 'delete' ) {
|
|
# no further message needed for the user
|
|
# the DELETE button only appears in the template if basketcount == 0
|
|
if ( $supplier->{'basketcount'} == 0 ) {
|
|
DelBookseller($booksellerid);
|
|
}
|
|
print $query->redirect('/cgi-bin/koha/acqui/acqui-home.pl');
|
|
exit;
|
|
} else {
|
|
my @currencies = GetCurrencies();
|
|
my $loop_currency;
|
|
my $active_currency = GetCurrency();
|
|
my $active_listprice = $supplier->{'listprice'};
|
|
my $active_invoiceprice = $supplier->{'invoiceprice'};
|
|
if (!$supplier->{listprice}) {
|
|
$active_listprice = $active_currency->{currency};
|
|
}
|
|
if (!$supplier->{invoiceprice}) {
|
|
$active_invoiceprice = $active_currency->{currency};
|
|
}
|
|
for (@currencies) {
|
|
push @{$loop_currency},
|
|
{
|
|
currency => $_->{currency},
|
|
listprice => ( $_->{currency} eq $active_listprice ),
|
|
invoiceprice => ( $_->{currency} eq $active_invoiceprice ),
|
|
};
|
|
}
|
|
|
|
my $default_gst_rate = (C4::Context->preference('gist') * 100) || '0.0';
|
|
|
|
my $gstrate = defined $supplier->{gstrate} ? $supplier->{gstrate} * 100 : '';
|
|
$template->param(
|
|
booksellerid => $booksellerid,
|
|
name => $supplier->{'name'},
|
|
postal => $supplier->{'postal'},
|
|
address1 => $supplier->{'address1'},
|
|
address2 => $supplier->{'address2'},
|
|
address3 => $supplier->{'address3'},
|
|
address4 => $supplier->{'address4'},
|
|
phone => $supplier->{'phone'},
|
|
accountnumber=> $supplier->{'accountnumber'},
|
|
fax => $supplier->{'fax'},
|
|
url => $supplier->{'url'},
|
|
contact => $supplier->{'contact'},
|
|
contpos => $supplier->{'contpos'},
|
|
contphone => $supplier->{'contphone'},
|
|
contaltphone => $supplier->{'contaltphone'},
|
|
contfax => $supplier->{'contfax'},
|
|
contemail => $supplier->{'contemail'},
|
|
contnotes => $supplier->{'contnotes'},
|
|
notes => $supplier->{'notes'},
|
|
# set active ON by default for supplier add (id empty for add)
|
|
active => $booksellerid ? $supplier->{'active'} : 1,
|
|
gstreg => $supplier->{'gstreg'},
|
|
listincgst => $supplier->{'listincgst'},
|
|
invoiceincgst => $supplier->{'invoiceincgst'},
|
|
gstrate => $gstrate,
|
|
discount => $supplier->{'discount'},
|
|
deliverytime => $supplier->{deliverytime},
|
|
loop_currency => $loop_currency,
|
|
GST => $tax_rate,
|
|
enter => 1,
|
|
default_gst_rate => $default_gst_rate,
|
|
);
|
|
}
|
|
|
|
output_html_with_http_headers $query, $cookie, $template->output;
|