]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/perlmods/live_t/16-acq-invoicing.t
LP 1562426: Renumber Perl live_t tests.
[Evergreen.git] / Open-ILS / src / perlmods / live_t / 16-acq-invoicing.t
1 #!perl
2 use strict; use warnings;
3 use Test::More tests => 7;
4 use OpenILS::Utils::TestUtils;
5 use OpenILS::Utils::CStoreEditor qw/:funcs/;
6
7 diag("Tests ACQ invoices");
8
9 my $script = OpenILS::Utils::TestUtils->new();
10 $script->bootstrap;
11
12 my $e = new_editor();
13 $e->init;
14
15 $script->authenticate({
16     username => 'admin',
17     password => 'demo123',
18     type => 'staff'
19 });
20
21 ok($script->authtoken, 'Have an authtoken');
22
23 my $invoice = Fieldmapper::acq::invoice->new;
24 $invoice->isnew(1);
25 $invoice->receiver(1);
26 $invoice->provider(1);
27 $invoice->shipper(1);
28 $invoice->inv_ident(rand());
29 $invoice->complete('f');
30
31 my $entry = Fieldmapper::acq::invoice_entry->new;
32 $entry->isnew(1);
33 $entry->lineitem(3);
34 $entry->purchase_order(2);
35 $entry->inv_item_count(1);
36 $entry->phys_item_count(1);
37 $entry->cost_billed('25.00');
38 $entry->actual_cost('25.00');
39 $entry->amount_paid('25.00');
40
41 my $acq_ses = $script->session('open-ils.acq');
42
43 my $req = $acq_ses->request(
44     'open-ils.acq.invoice.update', $script->authtoken, $invoice, [$entry]);
45
46 $invoice = $req->recv->content;
47 $entry = $invoice->entries->[0];
48
49 is(ref $invoice, 'Fieldmapper::acq::invoice', 'Invoice created');
50
51 my $inv_debit = 
52     $e->search_acq_fund_debit({invoice_entry => $entry->id})->[0];
53
54 isnt($inv_debit, undef, 'A fund_debit links to new invoice entry');
55
56 is($inv_debit->encumbrance, 't', 
57     'Debit is still encumbered after invoice create');
58
59 # Close the invoice.  LP#1333254. 
60 $invoice->complete('t');
61 $invoice->ischanged(1);
62
63 $req = $acq_ses->request(
64     'open-ils.acq.invoice.update', $script->authtoken, $invoice);
65
66 $invoice = $req->recv->content;
67
68 is($invoice->complete, 't', 'Invoice is closed');
69
70 $inv_debit = $e->retrieve_acq_fund_debit($inv_debit->id);
71
72 is($inv_debit->encumbrance, 'f', 
73     'Debit is disencumbered after invoice close');
74
75 # re-open the invoice
76 $invoice->complete('f');
77 $invoice->ischanged(1);
78
79 $req = $acq_ses->request(
80     'open-ils.acq.invoice.update', $script->authtoken, $invoice);
81
82 $invoice = $req->recv->content;
83
84 $inv_debit = $e->retrieve_acq_fund_debit($inv_debit->id);
85
86 is($inv_debit->encumbrance, 't', 
87     'Debit is re-encumbered when invoice is reopened');
88