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 @@
  • -
  • -
  • +
  • +
  • + +
  • +
  • + +
  • +
  • +
  • +
  • + +
    1. @@ -264,6 +272,15 @@ function delete_contact(ev) { [% END %]
    2. +
    3. + [% IF ( shippingincgst ) %] + + + [% ELSE %] + + + [% END %]
    4. +
    [% IF gst_values %]
      @@ -279,6 +296,19 @@ function delete_contact(ev) { [% END %] +
    1. + + +
    2. +
    [% 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