From a5e87511cca6a912d00c36f5bce4952d2ad00b43 Mon Sep 17 00:00:00 2001
From: Jonathan Druart
Date: Wed, 18 Feb 2015 15:55:08 +0100
Subject: [PATCH] Bug 11062: Fill shipping tax excluded
This patch adds the ability to enter the shipping tax excluded.
Note that the total will continue to be calculated using the shipping
tax included.
---
C4/Acquisition.pm | 2 +-
C4/Bookseller.pm | 9 +++--
acqui/parcels.pl | 10 +++++-
acqui/supplier.pl | 2 ++
acqui/updatesupplier.pl | 2 ++
.../intranet-tmpl/prog/en/modules/acqui/invoice.tt | 11 ++++--
.../prog/en/modules/acqui/supplier.tt | 42 +++++++++++++++++++---
7 files changed, 67 insertions(+), 11 deletions(-)
diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index 75a4784..049c831 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -2622,7 +2622,7 @@ sub AddInvoice {
return unless(%invoice and $invoice{invoicenumber});
my @columns = qw(invoicenumber booksellerid shipmentdate billingdate
- closedate shipping shipmentcost_budgetid);
+ closedate shipping shipping_tax_rate shipmentcost_budgetid);
my @set_strs;
my @set_args;
diff --git a/C4/Bookseller.pm b/C4/Bookseller.pm
index 0f8d368..ecd3c14 100644
--- a/C4/Bookseller.pm
+++ b/C4/Bookseller.pm
@@ -139,9 +139,9 @@ sub AddBookseller {
postal, phone, accountnumber,fax, url,
active, listprice, invoiceprice, gstreg,
listincgst,invoiceincgst, tax_rate, discount, notes,
- deliverytime
+ deliverytime, shipping_tax_rate, shippingincgst
)
- VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) |
+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) |
;
my $sth = $dbh->prepare($query);
$sth->execute(
@@ -155,6 +155,7 @@ sub AddBookseller {
$data->{'listincgst'}, $data->{'invoiceincgst'},
$data->{'tax_rate'}, $data->{'discount'},
$data->{notes}, $data->{deliverytime},
+ $data->{shipping_tax_rate}, $data->{shippingincgst},
);
# return the id of this new supplier
@@ -196,7 +197,8 @@ sub ModBookseller {
postal=?,phone=?,accountnumber=?,fax=?,url=?,
active=?,listprice=?, invoiceprice=?,
gstreg=?,listincgst=?,invoiceincgst=?,
- discount=?,notes=?,tax_rate=?,deliverytime=?
+ discount=?,notes=?,tax_rate=?,deliverytime=?,
+ shipping_tax_rate = ?, shippingincgst = ?
WHERE id=?';
my $sth = $dbh->prepare($query);
my $cnt = $sth->execute(
@@ -210,6 +212,7 @@ sub ModBookseller {
$data->{'listincgst'}, $data->{'invoiceincgst'},
$data->{'discount'}, $data->{'notes'},
$data->{'tax_rate'}, $data->{deliverytime},
+ $data->{shipping_tax_rate}, $data->{shippingincgst},
$data->{'id'}
);
$contacts ||= $data->{'contacts'};
diff --git a/acqui/parcels.pl b/acqui/parcels.pl
index 952d0f2..244cb35 100755
--- a/acqui/parcels.pl
+++ b/acqui/parcels.pl
@@ -107,12 +107,15 @@ if($shipmentdate) {
$shipmentdate = C4::Dates->new($shipmentdate)->output('iso');
}
+my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
+
if ( $op and $op eq 'new' ) {
if ( C4::Context->preference('AcqWarnOnDuplicateInvoice') ) {
my @invoices = GetInvoices(
supplierid => $booksellerid,
invoicenumber => $invoicenumber,
);
+
if ( scalar @invoices > 0 ) {
$template->{'VARS'}->{'duplicate_invoices'} = \@invoices;
$template->{'VARS'}->{'invoicenumber'} = $invoicenumber;
@@ -125,11 +128,17 @@ if ( $op and $op eq 'new' ) {
$op = 'confirm' unless $template->{'VARS'}->{'duplicate_invoices'};
}
if ($op and $op eq 'confirm') {
+ my $shipping_tax_rate = $bookseller->{shipping_tax_rate};
+ unless ( $bookseller->{shippingincgst} ) {
+ $shipping = $shipping * ( 1 + $shipping_tax_rate );
+ }
+
my $invoiceid = AddInvoice(
invoicenumber => $invoicenumber,
booksellerid => $booksellerid,
shipmentdate => $shipmentdate,
shipping => $shipping,
+ shipping_tax_rate => $shipping_tax_rate,
shipmentcost_budgetid => $shipmentcost_budgetid,
);
if(defined $invoiceid) {
@@ -141,7 +150,6 @@ if ($op and $op eq 'confirm') {
}
}
-my $bookseller = Koha::Acquisition::Bookseller->fetch({ id => $booksellerid });
my @parcels = GetInvoices(
supplierid => $booksellerid,
invoicenumber => $code,
diff --git a/acqui/supplier.pl b/acqui/supplier.pl
index 4b359a7..631776c 100755
--- a/acqui/supplier.pl
+++ b/acqui/supplier.pl
@@ -83,6 +83,7 @@ if ( $op eq 'display' ) {
$template->param(
active => $supplier->{'active'},
tax_rate => $supplier->{'tax_rate'} + 0.0,
+ shipping_tax_rate => $supplier->{'shipping_tax_rate'} + 0.0,
invoiceprice => $supplier->{'invoiceprice'},
listprice => $supplier->{'listprice'},
basketcount => $supplier->{'basketcount'},
@@ -127,6 +128,7 @@ if ( $op eq 'display' ) {
# set active ON by default for supplier add (id empty for add)
active => $booksellerid ? $supplier->{'active'} : 1,
tax_rate => $supplier->{tax_rate} ? $supplier->{'tax_rate'}+0.0 : 0,
+ shipping_tax_rate => $supplier->{shipping_tax_rate} ? $supplier->{shipping_tax_rate}+0.0 : 0,
gst_values => \@gst_values,
loop_currency => $loop_currency,
enter => 1,
diff --git a/acqui/updatesupplier.pl b/acqui/updatesupplier.pl
index 3981864..fcfb6dd 100755
--- a/acqui/updatesupplier.pl
+++ b/acqui/updatesupplier.pl
@@ -96,8 +96,10 @@ $data{'invoiceprice'}=$input->param('invoice_currency');
$data{'gstreg'}=$input->param('gst');
$data{'listincgst'}=$input->param('list_gst');
$data{'invoiceincgst'}=$input->param('invoice_gst');
+$data{shippingincgst} = $input->param('shippingincgst');
#have to transform this into fraction so it's easier to use
$data{'tax_rate'} = $input->param('tax_rate');
+$data{shipping_tax_rate} = $input->param('shipping_tax_rate');
$data{'discount'} = $input->param('discount');
$data{deliverytime} = $input->param('deliverytime');
$data{'active'}=$input->param('status');
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt
index 812cf9d..c3e6345 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt
@@ -79,8 +79,15 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
@@ -264,6 +272,15 @@ function delete_contact(ev) {
[% END %]
+ -
+ [% IF ( shippingincgst ) %]
+
+
+ [% ELSE %]
+
+
+ [% END %]
+
[% IF gst_values %]
@@ -279,6 +296,19 @@ function delete_contact(ev) {
[% END %]
+ -
+
+
+
+
[% ELSE %]
@@ -325,12 +355,16 @@ function delete_contact(ev) {
[% END %]
List prices are: [% listprice %]
Invoice prices are: [% invoiceprice %]
- [% IF ( tax_rate ) %]Tax number registered:
+ [% IF tax_rate %]
+
Tax number registered:
[% IF ( gstreg ) %]Yes[% ELSE %]No[% END %]
- List item price includes tax:
+
List item price includes tax:
[% IF ( listincgst ) %]Yes[% ELSE %]No[% END %]
- Invoice item price includes tax:
- [% IF ( invoiceincgst ) %]Yes[% ELSE %]No[% END %]
[% END %]
+ Invoice item price includes tax:
+ [% IF ( invoiceincgst ) %]Yes[% ELSE %]No[% END %]
+ Shipping price includes tax:
+ [% IF ( shippingincgst ) %]Yes[% ELSE %]No[% END %]
+ [% END %]
Discount:
[% discount | format("%.1f") %] %
Tax rate:
--
2.1.0