Bugzilla – Attachment 145912 Details for
Bug 25655
Additionally store actual cost in foreign currency and currency from the invoice
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 25655: Add tests
Bug-25655-Add-tests.patch (text/plain), 11.70 KB, created by
Jonathan Druart
on 2023-01-31 20:24:52 UTC
(
hide
)
Description:
Bug 25655: Add tests
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2023-01-31 20:24:52 UTC
Size:
11.70 KB
patch
obsolete
>From 422c363ee02fcdabf952c0000389e68bce5b3fa8 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Mon, 23 Jan 2023 22:27:56 +0100 >Subject: [PATCH] Bug 25655: Add tests > >And fix a bug they caught. We need to undef if a modification is made >and invoice_currency is removed. > >Sponsored-by: The Research University in the Helmholtz Association (KIT) >--- > C4/Acquisition.pm | 14 +- > acqui/finishreceive.pl | 7 +- > .../prog/en/modules/acqui/orderreceive.tt | 8 +- > t/db_dependent/Acquisition.t | 175 +++++++++++++++++- > 4 files changed, 190 insertions(+), 14 deletions(-) > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 844dc631719..f4e837db9a5 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -1429,10 +1429,10 @@ sub ModReceiveOrder { > $query .= q|, order_internalnote = ?|; > push @params, $order->{order_internalnote}; > } >- if ( defined $order->{invoice_unitprice} ) { >- $query .= q|, invoice_unitprice = ?, invoice_currency = ?|; >- push @params, $order->{invoice_unitprice}, $order->{invoice_currency}; >- } >+ >+ $query .= q|, invoice_unitprice = ?, invoice_currency = ?|; >+ push @params, $order->{invoice_unitprice}, $order->{invoice_currency}; >+ > $query .= q| > WHERE ordernumber = ? > |; >@@ -1491,7 +1491,7 @@ sub ModReceiveOrder { > > $query .= q| > , invoice_unitprice = ?, invoice_currency = ? >- | if defined $order->{invoice_unitprice}; >+ |; > > $query .= q| where biblionumber=? and ordernumber=?|; > >@@ -1518,9 +1518,7 @@ sub ModReceiveOrder { > push @params, $order->{order_internalnote}; > } > >- if ( defined $order->{invoice_unitprice} ) { >- push @params, $order->{invoice_unitprice}, $order->{invoice_currency}; >- } >+ push @params, $order->{invoice_unitprice}, $order->{invoice_currency}; > > push @params, ( $biblionumber, $order->{ordernumber} ); > >diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl >index 3c9e87ca78b..7b294a9fc86 100755 >--- a/acqui/finishreceive.pl >+++ b/acqui/finishreceive.pl >@@ -107,12 +107,15 @@ if ($quantityrec > $origquantityrec ) { > replacementprice => $replacementprice, > unitprice => $unitprice, > ( >- defined $invoice_unitprice && $invoice_unitprice ne '' >+ $invoice_unitprice && $invoice_unitprice ne '' > ? ( > invoice_unitprice => $invoice_unitprice, > invoice_currency => $invoice_currency, > ) >- : () >+ : ( >+ invoice_unitprice => undef, >+ invoice_currency => undef, >+ ) > ), > } > ); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >index 619c08e6ff5..fc5d4d284da 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt >@@ -611,12 +611,16 @@ > $("#unitprice").prop("readonly", "true"); > } else { > $("#select_currency").hide(); >+ $("#invoice_unitprice").val(""); // Empty to not store the values >+ $("#invoice_currency").val(""); > $("#unitprice").prop("readonly", ""); > } >- }).change(); >+ }); > > [% IF order.invoice_unitprice %] >- $("input[name='change_currency']").click().trigger('change'); >+ $("input[name='change_currency']").click(); >+ [% ELSE %] >+ $("input[name='change_currency']").trigger('change'); > [% END %] > > function update_unitprice() { >diff --git a/t/db_dependent/Acquisition.t b/t/db_dependent/Acquisition.t >index fb2e44b5b54..1560cf930f2 100755 >--- a/t/db_dependent/Acquisition.t >+++ b/t/db_dependent/Acquisition.t >@@ -19,7 +19,7 @@ use Modern::Perl; > > use POSIX qw(strftime); > >-use Test::More tests => 71; >+use Test::More tests => 72; > use t::lib::Mocks; > use Koha::Database; > use Koha::DateUtils qw(dt_from_string output_pref); >@@ -783,10 +783,181 @@ subtest 'ModReceiveOrder and subscription' => sub { > is( $received_order->order_internalnote, > $second_note, "No price set if none passed in" ); > >- $order->get_from_storage; > is( $order->get_from_storage->order_internalnote, $first_note ); > }; > >+subtest 'ModReceiveOrder invoice_unitprice and invoice_currency' => sub { >+ plan tests => 2; >+ >+ my $builder = t::lib::TestBuilder->new; >+ subtest 'partial order' => sub { >+ plan tests => 2; >+ >+ subtest 'no invoice_unitprice' => sub { >+ plan tests => 4; >+ my $order = $builder->build_object( >+ { >+ class => 'Koha::Acquisition::Orders', >+ value => { >+ quantity => 5, >+ quantityreceived => 0, >+ ecost_tax_excluded => 42, >+ unitprice_tax_excluded => 42, >+ } >+ } >+ ); >+ my $order_info = { >+ %{ $order->unblessed }, >+ invoice_unitprice => undef, >+ invoice_currency => undef, >+ }; >+ my ( undef, $received_ordernumber ) = ModReceiveOrder( >+ { >+ biblionumber => $order->biblionumber, >+ order => $order_info, >+ quantityreceived => 1, # We receive only 1 >+ budget_id => $order->budget_id, >+ } >+ ); >+ my $received_order = >+ Koha::Acquisition::Orders->find($received_ordernumber); >+ is( $received_order->invoice_unitprice, >+ undef, 'no price should be stored if none passed' ); >+ is( $received_order->invoice_currency, >+ undef, 'no currency should be stored if none passed' ); >+ $order = $order->get_from_storage; >+ is( $order->invoice_unitprice, undef, >+ 'no price should be stored if none passed' ); >+ is( $order->invoice_currency, undef, >+ 'no currency should be stored if none passed' ); >+ }; >+ subtest 'with invoice_unitprice' => sub { >+ plan tests => 4; >+ my $order = $builder->build_object( >+ { >+ class => 'Koha::Acquisition::Orders', >+ value => { >+ quantity => 5, >+ quantityreceived => 0, >+ ecost_tax_excluded => 42, >+ unitprice_tax_excluded => 42, >+ } >+ } >+ ); >+ my $order_info = { >+ %{ $order->unblessed }, >+ invoice_unitprice => 37, >+ invoice_currency => 'GBP', >+ }; >+ my ( undef, $received_ordernumber ) = ModReceiveOrder( >+ { >+ biblionumber => $order->biblionumber, >+ order => $order_info, >+ quantityreceived => 1, >+ budget_id => $order->budget_id, >+ } >+ ); >+ my $received_order = >+ Koha::Acquisition::Orders->find($received_ordernumber); >+ is( $received_order->invoice_unitprice + 0, >+ 37, 'price should be stored in new order' ); >+ is( $received_order->invoice_currency, >+ 'GBP', 'currency should be stored in new order' ); >+ $order = $order->get_from_storage; >+ is( $order->invoice_unitprice + 0, >+ 37, 'price should be stored in existing order' ); >+ is( $order->invoice_currency, 'GBP', >+ 'currency should be stored in existing order' ); >+ >+ }; >+ }; >+ >+ subtest 'full received order' => sub { >+ plan tests => 2; >+ >+ subtest 'no invoice_unitprice' => sub { >+ plan tests => 4; >+ my $builder = t::lib::TestBuilder->new; >+ my $order = $builder->build_object( >+ { >+ class => 'Koha::Acquisition::Orders', >+ value => { >+ quantity => 5, >+ quantityreceived => 0, >+ ecost_tax_excluded => 42, >+ unitprice_tax_excluded => 42, >+ } >+ } >+ ); >+ my $order_info = { >+ %{ $order->unblessed }, >+ invoice_unitprice => undef, >+ invoice_currency => undef, >+ }; >+ my ( undef, $received_ordernumber ) = ModReceiveOrder( >+ { >+ biblionumber => $order->biblionumber, >+ order => $order_info, >+ quantityreceived => 5, # We receive them all! >+ budget_id => $order->budget_id, >+ } >+ ); >+ my $received_order = >+ Koha::Acquisition::Orders->find($received_ordernumber); >+ is( $received_order->invoice_unitprice, >+ undef, 'no price should be stored if none passed' ); >+ is( $received_order->invoice_currency, >+ undef, 'no currency should be stored if none passed' ); >+ $order = $order->get_from_storage; >+ is( $order->invoice_unitprice, undef, >+ 'no price should be stored if none passed' ); >+ is( $order->invoice_currency, undef, >+ 'no currency should be stored if none passed' ); >+ }; >+ >+ subtest 'with invoice_unitprice' => sub { >+ plan tests => 4; >+ my $order = $builder->build_object( >+ { >+ class => 'Koha::Acquisition::Orders', >+ value => { >+ quantity => 5, >+ quantityreceived => 0, >+ ecost_tax_excluded => 42, >+ unitprice_tax_excluded => 42, >+ } >+ } >+ ); >+ my $order_info = { >+ %{ $order->unblessed }, >+ invoice_unitprice => 37, >+ invoice_currency => 'GBP', >+ }; >+ my ( undef, $received_ordernumber ) = ModReceiveOrder( >+ { >+ biblionumber => $order->biblionumber, >+ order => $order_info, >+ quantityreceived => 1, >+ budget_id => $order->budget_id, >+ } >+ ); >+ my $received_order = >+ Koha::Acquisition::Orders->find($received_ordernumber); >+ is( $received_order->invoice_unitprice + 0, >+ 37, 'price should be stored in new order' ); >+ is( $received_order->invoice_currency, >+ 'GBP', 'currency should be stored in new order' ); >+ $order = $order->get_from_storage; >+ is( $order->invoice_unitprice + 0, >+ 37, 'price should be stored in existing order' ); >+ is( $order->invoice_currency, 'GBP', >+ 'currency should be stored in existing order' ); >+ >+ }; >+ }; >+ >+}; >+ > subtest 'GetHistory with additional fields' => sub { > plan tests => 3; > my $builder = t::lib::TestBuilder->new; >-- >2.25.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 25655
:
144618
|
145906
|
145907
|
145908
|
145909
|
145910
|
145911
|
145912
|
146082
|
146084
|
146085
|
146086
|
146087
|
146088
|
146089
|
146478
|
146479
|
146480
|
146481
|
146482
|
146483
|
146484
|
146658
|
146660
|
146818
|
146819
|
146820
|
146821
|
146822
|
146823
|
146824
|
146825
|
146826