BEGIN {
if ( check_install( module => 'Test::DBIx::Class' ) ) {
- plan tests => 16;
+ plan tests => 15;
} else {
plan skip_all => "Need Test::DBIx::Class"
}
}
-use_ok('C4::Acquisition');
use_ok('C4::Context');
use_ok('Koha::Number::Price');
-t::lib::Mocks::mock_preference( 'gist', '0.02|0.05|0.196' );
+t::lib::Mocks::mock_preference( 'TaxRates', '0.02|0.05|0.196' );
use Test::DBIx::Class;
[ 3, '1 0', 1, 0 ],
[ 4, '1 1', 1, 1 ],
],
+ Aqbasket => [
+ [ qw/ basketno basketname booksellerid / ],
+ [ 1, '0 0', 1 ],
+ [ 2, '0 1', 2 ],
+ [ 3, '1 0', 3 ],
+ [ 4, '1 1', 4 ],
+ ],
], 'add currency fixtures';
my $bookseller_module = Test::MockModule->new('Koha::Acquisition::Bookseller');
-my ( $basketno_0_0, $basketno_1_1 );
+my ( $basketno_0_0, $basketno_0_1, $basketno_1_0, $basketno_1_1 ) = (1, 2, 3, 4);
my ( $invoiceid_0_0, $invoiceid_1_1 );
my $today;
my $biblionumber_0_0 = 42;
- my $order_0_0 = {
+ my $order_0_0 = Koha::Acquisition::Order->new({
biblionumber => $biblionumber_0_0,
quantity => 2,
listprice => 82,
invoiceid => $invoiceid_0_0,
rrp => 82.00,
ecost => 73.80,
- tax_rate => 0.0500,
+ tax_rate_on_ordering => 0.0500,
+ tax_rate_on_receiving => 0.0500,
discount => 10,
datereceived => $today
- };
- $order_0_0 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_0_0,
- booksellerid => 1,
- ordering => 1,
- }
- );
+ });
+ $order_0_0->populate_with_prices_for_ordering();
compare(
{
- got => $order_0_0->{rrp_tax_included},
+ got => $order_0_0->rrp_tax_included,
expected => 86.10,
conf => '0 0',
field => 'rrp_tax_included'
);
compare(
{
- got => $order_0_0->{rrp_tax_excluded},
+ got => $order_0_0->rrp_tax_excluded,
expected => 82.00,
conf => '0 0',
field => 'rrp_tax_excluded'
);
compare(
{
- got => $order_0_0->{ecost_tax_included},
+ got => $order_0_0->ecost_tax_included,
expected => 77.49,
conf => '0 0',
field => 'ecost_tax_included'
);
compare(
{
- got => $order_0_0->{ecost_tax_excluded},
+ got => $order_0_0->ecost_tax_excluded,
expected => 73.80,
conf => '0 0',
field => 'ecost_tax_excluded'
);
compare(
{
- got => $order_0_0->{tax_value_on_ordering},
+ got => $order_0_0->tax_value_on_ordering,
expected => 7.38,
conf => '0 0',
field => 'tax_value'
}
);
- $order_0_0 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_0_0,
- booksellerid => 1,
- receiving => 1,
- }
- );
+ $order_0_0->populate_with_prices_for_receiving();
compare(
{
- got => $order_0_0->{unitprice_tax_included},
+ got => $order_0_0->unitprice_tax_included,
expected => 77.49,
conf => '0 0',
field => 'unitprice_tax_included'
);
compare(
{
- got => $order_0_0->{unitprice_tax_excluded},
+ got => $order_0_0->unitprice_tax_excluded,
expected => 73.80,
conf => '0 0',
field => 'unitprice_tax_excluded'
);
compare(
{
- got => $order_0_0->{tax_value_on_receiving},
+ got => $order_0_0->tax_value_on_receiving,
expected => 7.38,
conf => '0 0',
field => 'tax_value'
plan tests => 11;
my $biblionumber_1_1 = 43;
- my $order_1_1 = {
+ my $order_1_1 = Koha::Acquisition::Order->new({
biblionumber => $biblionumber_1_1,
quantity => 2,
listprice => 82,
invoiceid => $invoiceid_1_1,
rrp => 82.00,
ecost => 73.80,
- tax_rate => 0.0500,
+ tax_rate_on_ordering => 0.0500,
+ tax_rate_on_receiving => 0.0500,
discount => 10,
datereceived => $today
- };
+ });
- $order_1_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_1,
- booksellerid => 4,
- ordering => 1,
- }
- );
+ $order_1_1->populate_with_prices_for_ordering();
compare(
{
- got => $order_1_1->{rrp_tax_included},
+ got => $order_1_1->rrp_tax_included,
expected => 82.00,
conf => '1 1',
field => 'rrp_tax_included'
);
compare(
{
- got => $order_1_1->{rrp_tax_excluded},
+ got => $order_1_1->rrp_tax_excluded,
expected => 78.10,
conf => '1 1',
field => 'rrp_tax_excluded'
);
compare(
{
- got => $order_1_1->{ecost_tax_included},
+ got => $order_1_1->ecost_tax_included,
expected => 73.80,
conf => '1 1',
field => 'ecost_tax_included'
);
compare(
{
- got => $order_1_1->{ecost_tax_excluded},
+ got => $order_1_1->ecost_tax_excluded,
expected => 70.29,
conf => '1 1',
field => 'ecost_tax_excluded'
);
compare(
{
- got => $order_1_1->{tax_value_on_ordering},
+ got => $order_1_1->tax_value_on_ordering,
expected => 7.03,
conf => '1 1',
field => 'tax_value'
}
);
- $order_1_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_1,
- booksellerid => 4,
- receiving => 1,
- }
- );
+ $order_1_1->populate_with_prices_for_receiving();
compare(
{
- got => $order_1_1->{unitprice_tax_included},
+ got => $order_1_1->unitprice_tax_included,
expected => 73.80,
conf => '1 1',
field => 'unitprice_tax_included'
);
compare(
{
- got => $order_1_1->{unitprice_tax_excluded},
+ got => $order_1_1->unitprice_tax_excluded,
expected => 70.29,
conf => '1 1',
field => 'unitprice_tax_excluded'
);
compare(
{
- got => $order_1_1->{tax_value_on_receiving},
+ got => $order_1_1->tax_value_on_receiving,
expected => 7.03,
conf => '1 1',
field => 'tax_value'
}
);
- # When unitprice is 0.00 C4::Acquisition->populate_order_with_prices() falls back to using ecost_tax_included and ecost_tax_excluded
- $order_1_1 = {
+ # When unitprice is 0.00
+ # Koha::Acquisition::Order::populate_with_prices_for_ordering() falls
+ # back to using ecost_tax_included and ecost_tax_excluded
+ $order_1_1 = Koha::Acquisition::Order->new({
biblionumber => $biblionumber_1_1,
quantity => 1,
listprice => 10,
invoiceid => $invoiceid_1_1,
rrp => 10.00,
ecost => 10.00,
- tax_rate => 0.1500,
+ tax_rate_on_ordering => 0.1500,
+ tax_rate_on_receiving => 0.1500,
discount => 0,
datereceived => $today
- };
+ });
- $order_1_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_1,
- booksellerid => 4,
- ordering => 1,
- }
- );
+ $order_1_1->populate_with_prices_for_ordering();
compare(
{
- got => $order_1_1->{ecost_tax_included},
+ got => $order_1_1->ecost_tax_included,
expected => 10.00,
conf => '1 1',
field => 'ecost_tax_included'
);
compare(
{
- got => $order_1_1->{ecost_tax_excluded},
+ got => $order_1_1->ecost_tax_excluded,
expected => 8.70,
conf => '1 1',
field => 'ecost_tax_excluded'
);
compare(
{
- got => $order_1_1->{tax_value_on_ordering},
+ got => $order_1_1->tax_value_on_ordering,
expected => 1.30,
conf => '1 1',
field => 'tax_value'
plan tests => 9;
my $biblionumber_1_0 = 44;
- my $order_1_0 = {
+ my $order_1_0 = Koha::Acquisition::Order->new({
biblionumber => $biblionumber_1_0,
quantity => 2,
listprice => 82,
unitprice => 0,
quantityreceived => 2,
- basketno => $basketno_1_1,
+ basketno => $basketno_1_0,
invoiceid => $invoiceid_1_1,
rrp => 82.00,
ecost => 73.80,
- tax_rate => 0.0500,
+ tax_rate_on_ordering => 0.0500,
+ tax_rate_on_receiving => 0.0500,
discount => 10,
datereceived => $today
- };
+ });
- $order_1_0 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_0,
- booksellerid => 3,
- ordering => 1,
- }
- );
+ $order_1_0->populate_with_prices_for_ordering();
compare(
{
- got => $order_1_0->{rrp_tax_included},
+ got => $order_1_0->rrp_tax_included,
expected => 82,
conf => '1 0',
field => 'rrp_tax_included'
);
compare(
{
- got => $order_1_0->{rrp_tax_excluded},
+ got => $order_1_0->rrp_tax_excluded,
expected => 78.10,
conf => '1 0',
field => 'rrp_tax_excluded'
);
compare(
{
- got => $order_1_0->{ecost_tax_included},
+ got => $order_1_0->ecost_tax_included,
expected => 73.80,
conf => '1 0',
field => 'ecost_tax_included'
);
compare(
{
- got => $order_1_0->{ecost_tax_excluded},
+ got => $order_1_0->ecost_tax_excluded,
expected => 70.29,
conf => '1 0',
field => 'ecost_tax_excluded'
# (note that in addorder.pl and addorderiso2709 the unitprice may/will be set to the ecost
compare(
{
- got => $order_1_0->{tax_value_on_ordering},
+ got => $order_1_0->tax_value_on_ordering,
expected => 7.03,
conf => '1 0',
field => 'tax_value'
}
);
- $order_1_0->{unitprice} = 70.29;
- $order_1_0 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_0,
- booksellerid => 3,
- ordering => 1,
- }
- );
+ $order_1_0->unitprice(70.29);
+ $order_1_0->populate_with_prices_for_ordering();
+
# If a unitprice is provided at ordering, we calculate the tax from that
compare(
{
- got => $order_1_0->{tax_value_on_ordering},
+ got => $order_1_0->tax_value_on_ordering,
expected => 6.69,
conf => '1 0',
field => 'tax_value'
}
);
- $order_1_0 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_1_0,
- booksellerid => 3,
- receiving => 1,
- }
- );
+ $order_1_0->populate_with_prices_for_receiving();
compare(
{
- got => $order_1_0->{unitprice_tax_included},
+ got => $order_1_0->unitprice_tax_included,
expected => 73.80,
conf => '1 0',
field => 'unitprice_tax_included'
);
compare(
{
- got => $order_1_0->{unitprice_tax_excluded},
+ got => $order_1_0->unitprice_tax_excluded,
expected => 70.29,
conf => '1 0',
field => 'unitprice_tax_excluded'
);
compare(
{
- got => $order_1_0->{tax_value_on_receiving},
+ got => $order_1_0->tax_value_on_receiving,
expected => 7.03,
conf => '1 0',
field => 'tax_value'
plan tests => 9;
my $biblionumber_0_1 = 45;
- my $order_0_1 = {
+ my $order_0_1 = Koha::Acquisition::Order->new({
biblionumber => $biblionumber_0_1,
quantity => 2,
listprice => 82,
unitprice => 0,
quantityreceived => 2,
- basketno => $basketno_1_1,
+ basketno => $basketno_0_1,
invoiceid => $invoiceid_1_1,
rrp => 82.00,
ecost => 73.80,
- tax_rate => 0.0500,
+ tax_rate_on_ordering => 0.0500,
+ tax_rate_on_receiving => 0.0500,
discount => 10,
datereceived => $today
- };
+ });
- $order_0_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_0_1,
- booksellerid => 2,
- ordering => 1,
- }
- );
+ $order_0_1->populate_with_prices_for_ordering();
compare(
{
- got => $order_0_1->{rrp_tax_included},
+ got => $order_0_1->rrp_tax_included,
expected => 86.10,
conf => '0 1',
field => 'rrp_tax_included'
);
compare(
{
- got => $order_0_1->{rrp_tax_excluded},
+ got => $order_0_1->rrp_tax_excluded,
expected => 82.00,
conf => '0 1',
field => 'rrp_tax_excluded'
);
compare(
{
- got => $order_0_1->{ecost_tax_included},
+ got => $order_0_1->ecost_tax_included,
expected => 77.49,
conf => '0 1',
field => 'ecost_tax_included'
);
compare(
{
- got => $order_0_1->{ecost_tax_excluded},
+ got => $order_0_1->ecost_tax_excluded,
expected => 73.80,
conf => '0 1',
field => 'ecost_tax_excluded'
# (note that in addorder.pl and addorderiso2709 the unitprice may/will be set to the ecost
compare(
{
- got => $order_0_1->{tax_value_on_ordering},
+ got => $order_0_1->tax_value_on_ordering,
expected => 7.38,
conf => '0 1',
field => 'tax_value'
}
);
- $order_0_1->{unitprice} = 77.490000;
- $order_0_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_0_1,
- booksellerid => 2,
- ordering => 1,
- }
- );
+ $order_0_1->unitprice(77.490000);
+ $order_0_1->populate_with_prices_for_ordering();
+
# If a unitprice is provided at ordering, we calculate the tax from that
compare(
{
- got => $order_0_1->{tax_value_on_ordering},
+ got => $order_0_1->tax_value_on_ordering,
expected => 7.75,
conf => '0 1',
field => 'tax_value'
}
);
- $order_0_1 = C4::Acquisition::populate_order_with_prices(
- {
- order => $order_0_1,
- booksellerid => 2,
- receiving => 1,
- }
- );
+ $order_0_1->populate_with_prices_for_receiving();
compare(
{
- got => $order_0_1->{unitprice_tax_included},
+ got => $order_0_1->unitprice_tax_included,
expected => 77.49,
conf => '0 1',
field => 'unitprice_tax_included'
);
compare(
{
- got => $order_0_1->{unitprice_tax_excluded},
+ got => $order_0_1->unitprice_tax_excluded,
expected => 73.80,
conf => '0 1',
field => 'unitprice_tax_excluded'
);
compare(
{
- got => $order_0_1->{tax_value_on_receiving},
+ got => $order_0_1->tax_value_on_receiving,
expected => 7.38,
conf => '0 1',
field => 'tax_value'
}
);
};
-
}
sub compare {