View | Details | Raw Unified | Return to bug 24190
Collapse All | Expand All

(-)a/t/db_dependent/Budgets.t (-3 / +36 lines)
Lines 1-6 Link Here
1
#!/usr/bin/perl
1
#!/usr/bin/perl
2
use Modern::Perl;
2
use Modern::Perl;
3
use Test::More tests => 144;
3
use Test::More tests => 147;
4
use JSON;
4
5
5
BEGIN {
6
BEGIN {
6
    use_ok('C4::Budgets', qw( AddBudgetPeriod AddBudget GetBudgetPeriods GetBudgetPeriod GetBudget ModBudgetPeriod ModBudget DelBudgetPeriod DelBudget GetBudgets GetBudgetName GetBudgetByCode GetBudgetHierarchy GetBudgetHierarchySpent GetBudgetSpent GetBudgetOrdered CloneBudgetPeriod GetBudgetsByActivity MoveOrders GetBudgetByOrderNumber SetOwnerToFundHierarchy GetBudgetAuthCats GetBudgetsPlanCell ));
7
    use_ok('C4::Budgets', qw( AddBudgetPeriod AddBudget GetBudgetPeriods GetBudgetPeriod GetBudget ModBudgetPeriod ModBudget DelBudgetPeriod DelBudget GetBudgets GetBudgetName GetBudgetByCode GetBudgetHierarchy GetBudgetHierarchySpent GetBudgetSpent GetBudgetOrdered CloneBudgetPeriod GetBudgetsByActivity MoveOrders GetBudgetByOrderNumber SetOwnerToFundHierarchy GetBudgetAuthCats GetBudgetsPlanCell ));
Lines 9-14 use C4::Context; Link Here
9
use C4::Biblio qw( AddBiblio );
10
use C4::Biblio qw( AddBiblio );
10
use C4::Acquisition qw( NewBasket AddInvoice GetInvoice ModReceiveOrder populate_order_with_prices );
11
use C4::Acquisition qw( NewBasket AddInvoice GetInvoice ModReceiveOrder populate_order_with_prices );
11
12
13
use Koha::ActionLogs;
12
use Koha::Acquisition::Booksellers;
14
use Koha::Acquisition::Booksellers;
13
use Koha::Acquisition::Orders;
15
use Koha::Acquisition::Orders;
14
use Koha::Acquisition::Funds;
16
use Koha::Acquisition::Funds;
Lines 22-27 use Koha::DateUtils; Link Here
22
24
23
use t::lib::Mocks;
25
use t::lib::Mocks;
24
t::lib::Mocks::mock_preference('OrderPriceRounding','');
26
t::lib::Mocks::mock_preference('OrderPriceRounding','');
27
t::lib::Mocks::mock_preference('AcqLog','1');
25
28
26
my $schema  = Koha::Database->new->schema;
29
my $schema  = Koha::Database->new->schema;
27
$schema->storage->txn_begin;
30
$schema->storage->txn_begin;
Lines 125-134 $bpid = AddBudgetPeriod($my_budgetperiod); #this is an active budget Link Here
125
my $my_budget = {
128
my $my_budget = {
126
    budget_code      => 'ABCD',
129
    budget_code      => 'ABCD',
127
    budget_amount    => '123.132000',
130
    budget_amount    => '123.132000',
131
    budget_expend    => '789',
128
    budget_name      => 'Periodiques',
132
    budget_name      => 'Periodiques',
129
    budget_notes     => 'This is a note',
133
    budget_notes     => 'This is a note',
130
    budget_period_id => $bpid,
134
    budget_period_id => $bpid,
131
    budget_encumb    => '', # Bug 21604
135
    budget_encumb    => '456', # Bug 21604
132
};
136
};
133
my $budget_id = AddBudget($my_budget);
137
my $budget_id = AddBudget($my_budget);
134
isnt( $budget_id, undef, 'AddBudget does not returns undef' );
138
isnt( $budget_id, undef, 'AddBudget does not returns undef' );
Lines 139-148 is( $budget->{budget_name}, $my_budget->{budget_name}, 'AddBudget stores the bud Link Here
139
is( $budget->{budget_notes}, $my_budget->{budget_notes}, 'AddBudget stores the budget notes correctly' );
143
is( $budget->{budget_notes}, $my_budget->{budget_notes}, 'AddBudget stores the budget notes correctly' );
140
is( $budget->{budget_period_id}, $my_budget->{budget_period_id}, 'AddBudget stores the budget period id correctly' );
144
is( $budget->{budget_period_id}, $my_budget->{budget_period_id}, 'AddBudget stores the budget period id correctly' );
141
145
146
my @create_logs = Koha::ActionLogs->find({ module =>'ACQUISITIONS', action => 'CREATE_FUND', object => $budget->{budget_id} });
147
148
my $expected_create_payload = {
149
    budget_amount => $my_budget->{budget_amount},
150
    budget_expend => $my_budget->{budget_expend},
151
    budget_encumb => $my_budget->{budget_encumb},
152
};
153
154
my $actual_create_payload = from_json($create_logs[0]->info);
155
156
is_deeply ($actual_create_payload, $expected_create_payload, 'ModBudget logs a budget creation with the correct payload');
157
158
my $before = $budget;
142
159
143
$my_budget = {
160
$my_budget = {
144
    budget_code      => 'EFG',
161
    budget_code      => 'EFG',
145
    budget_amount    => '321.231000',
162
    budget_amount    => '321.231000',
163
    budget_encumb    => '567',
164
    budget_expend    => '890',
146
    budget_name      => 'Modified name',
165
    budget_name      => 'Modified name',
147
    budget_notes     => 'This is a modified note',
166
    budget_notes     => 'This is a modified note',
148
    budget_period_id => $bpid,
167
    budget_period_id => $bpid,
Lines 160-165 is( $budget->{budget_name}, $my_budget->{budget_name}, 'ModBudget updates the bu Link Here
160
is( $budget->{budget_notes}, $my_budget->{budget_notes}, 'ModBudget updates the budget notes correctly' );
179
is( $budget->{budget_notes}, $my_budget->{budget_notes}, 'ModBudget updates the budget notes correctly' );
161
is( $budget->{budget_period_id}, $my_budget->{budget_period_id}, 'ModBudget updates the budget period id correctly' );
180
is( $budget->{budget_period_id}, $my_budget->{budget_period_id}, 'ModBudget updates the budget period id correctly' );
162
181
182
my @mod_logs = Koha::ActionLogs->find({ module =>'ACQUISITIONS', action => 'MODIFY_FUND', object => $budget->{budget_id} });
183
my $expected_mod_payload = {
184
    budget_amount_new    => $my_budget->{budget_amount},
185
    budget_encumb_new    => $my_budget->{budget_encumb},
186
    budget_expend_new    => $my_budget->{budget_expend},
187
    budget_amount_old    => $before->{budget_amount},
188
    budget_encumb_old    => $before->{budget_encumb},
189
    budget_expend_old    => $before->{budget_expend},
190
    budget_amount_change => 0 - ($before->{budget_amount} - $my_budget->{budget_amount})
191
};
192
my $actual_mod_payload = from_json($mod_logs[0]->info);
193
is_deeply ($actual_mod_payload, $expected_mod_payload, 'ModBudget logs a budget modification with the correct payload');
163
194
164
$budgets = GetBudgets();
195
$budgets = GetBudgets();
165
is( @$budgets, 1, 'GetBudgets returns the correct number of budgets' );
196
is( @$budgets, 1, 'GetBudgets returns the correct number of budgets' );
Lines 219-224 is( DelBudget($budget_id), 1, 'DelBudget returns true' ); Link Here
219
$budgets = GetBudgets();
250
$budgets = GetBudgets();
220
is( @$budgets, 2, 'GetBudgets returns the correct number of budget periods' );
251
is( @$budgets, 2, 'GetBudgets returns the correct number of budget periods' );
221
252
253
my @delete_logs = Koha::ActionLogs->find({ module =>'ACQUISITIONS', action => 'DELETE_FUND', object => $budget_id });
254
255
is (scalar @delete_logs, 1, 'DelBudget logs a budget deletion');
222
256
223
# GetBudgetHierarchySpent and GetBudgetHierarchyOrdered
257
# GetBudgetHierarchySpent and GetBudgetHierarchyOrdered
224
my $budget_period_total = 10_000;
258
my $budget_period_total = 10_000;
225
- 

Return to bug 24190