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

(-)a/C4/Acquisition.pm (-141 / +93 lines)
Lines 53-61 BEGIN { Link Here
53
        &ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup &CloseBasketgroup
53
        &ModBasketgroup &NewBasketgroup &DelBasketgroup &GetBasketgroup &CloseBasketgroup
54
        &GetBasketgroups &ReOpenBasketgroup
54
        &GetBasketgroups &ReOpenBasketgroup
55
55
56
        &NewOrder &DelOrder &ModOrder &GetPendingOrders &GetOrder &GetOrders &GetOrdersByBiblionumber
56
        &NewOrder &DelOrder &ModOrder &GetOrder &GetOrders &GetOrdersByBiblionumber
57
        &GetLateOrders &GetOrderFromItemnumber
57
        &GetLateOrders &GetOrderFromItemnumber
58
        &SearchOrder &GetHistory &GetRecentAcqui
58
        &SearchOrders &GetHistory &GetRecentAcqui
59
        &ModReceiveOrder &CancelReceipt
59
        &ModReceiveOrder &CancelReceipt
60
        &GetCancelledOrders
60
        &GetCancelledOrders
61
        &GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
61
        &GetLastOrderNotReceivedFromSubscriptionid &GetLastOrderReceivedFromSubscriptionid
Lines 827-922 sub GetBasketgroups { Link Here
827
827
828
=head2 FUNCTIONS ABOUT ORDERS
828
=head2 FUNCTIONS ABOUT ORDERS
829
829
830
=cut
831
832
#------------------------------------------------------------#
833
834
=head3 GetPendingOrders
835
836
$orders = &GetPendingOrders($supplierid,$grouped,$owner,$basketno,$ordernumber,$search,$ean);
837
838
Finds pending orders from the bookseller with the given ID. Ignores
839
completed and cancelled orders.
840
841
C<$booksellerid> contains the bookseller identifier
842
C<$owner> contains 0 or 1. 0 means any owner. 1 means only the list of orders entered by the user itself.
843
C<$grouped> is a boolean that, if set to 1 will group all order lines of the same basket
844
in a single result line
845
C<$orders> is a reference-to-array; each element is a reference-to-hash.
846
847
Used also by the filter in parcel.pl
848
I have added:
849
850
C<$ordernumber>
851
C<$search>
852
C<$ean>
853
854
These give the value of the corresponding field in the aqorders table
855
of the Koha database.
856
857
Results are ordered from most to least recent.
858
859
=cut
860
861
sub GetPendingOrders {
862
    my ($supplierid,$grouped,$owner,$basketno,$ordernumber,$search,$ean) = @_;
863
    my $dbh = C4::Context->dbh;
864
    my $strsth = "
865
        SELECT ".($grouped?"count(*),":"")."aqbasket.basketno,
866
               surname,firstname,biblio.*,biblioitems.isbn,
867
               aqbasket.closedate, aqbasket.creationdate, aqbasket.basketname,
868
               aqorders.*
869
        FROM aqorders
870
        LEFT JOIN aqbasket ON aqbasket.basketno=aqorders.basketno
871
        LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
872
        LEFT JOIN biblio ON biblio.biblionumber=aqorders.biblionumber
873
        LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
874
        WHERE (quantity > quantityreceived OR quantityreceived is NULL)
875
        AND datecancellationprinted IS NULL";
876
    my @query_params;
877
    my $userenv = C4::Context->userenv;
878
    if ( C4::Context->preference("IndependentBranches") ) {
879
        if ( ($userenv) && ( $userenv->{flags} != 1 ) ) {
880
            $strsth .= " AND (borrowers.branchcode = ?
881
                        or borrowers.branchcode  = '')";
882
            push @query_params, $userenv->{branch};
883
        }
884
    }
885
    if ($supplierid) {
886
        $strsth .= " AND aqbasket.booksellerid = ?";
887
        push @query_params, $supplierid;
888
    }
889
    if($ordernumber){
890
        $strsth .= " AND (aqorders.ordernumber=?)";
891
        push @query_params, $ordernumber;
892
    }
893
    if($search){
894
        $strsth .= " AND (biblio.title like ? OR biblio.author LIKE ? OR biblioitems.isbn like ?)";
895
        push @query_params, ("%$search%","%$search%","%$search%");
896
    }
897
    if ($ean) {
898
        $strsth .= " AND biblioitems.ean = ?";
899
        push @query_params, $ean;
900
    }
901
    if ($basketno) {
902
        $strsth .= " AND aqbasket.basketno=? ";
903
        push @query_params, $basketno;
904
    }
905
    if ($owner) {
906
        $strsth .= " AND aqbasket.authorisedby=? ";
907
        push @query_params, $userenv->{'number'};
908
    }
909
    $strsth .= " group by aqbasket.basketno" if $grouped;
910
    $strsth .= " order by aqbasket.basketno";
911
    my $sth = $dbh->prepare($strsth);
912
    $sth->execute( @query_params );
913
    my $results = $sth->fetchall_arrayref({});
914
    $sth->finish;
915
    return $results;
916
}
917
918
#------------------------------------------------------------#
919
920
=head3 GetOrders
830
=head3 GetOrders
921
831
922
  @orders = &GetOrders($basketnumber, $orderby);
832
  @orders = &GetOrders($basketnumber, $orderby);
Lines 1489-1568 sub CancelReceipt { Link Here
1489
1399
1490
#------------------------------------------------------------#
1400
#------------------------------------------------------------#
1491
1401
1492
=head3 SearchOrder
1402
=head3 SearchOrders
1493
1403
1494
@results = &SearchOrder($search, $biblionumber, $complete);
1404
@results = &SearchOrders({
1405
    ordernumber => $ordernumber,
1406
    search => $search,
1407
    biblionumber => $biblionumber,
1408
    ean => $ean,
1409
    booksellerid => $booksellerid,
1410
    basketno => $basketno,
1411
    owner => $owner,
1412
    pending => $pending
1413
});
1495
1414
1496
Searches for orders.
1415
Searches for orders.
1497
1416
1498
C<$search> may take one of several forms: if it is an ISBN,
1417
C<$owner> Finds order for the logged in user.
1499
C<&ordersearch> returns orders with that ISBN. If C<$search> is an
1418
C<$pending> Finds pending orders. Ignores completed and cancelled orders.
1500
order number, C<&ordersearch> returns orders with that order number
1501
and biblionumber C<$biblionumber>. Otherwise, C<$search> is considered
1502
to be a space-separated list of search terms; in this case, all of the
1503
terms must appear in the title (matching the beginning of title
1504
words).
1505
1506
If C<$complete> is C<yes>, the results will include only completed
1507
orders. In any case, C<&ordersearch> ignores cancelled orders.
1508
1509
C<&ordersearch> returns an array.
1510
C<@results> is an array of references-to-hash with the following keys:
1511
1512
=over 4
1513
1514
=item C<author>
1515
1419
1516
=item C<seriestitle>
1517
1420
1518
=item C<branchcode>
1421
C<@results> is an array of references-to-hash with the keys are fields
1519
1422
from aqorders, biblio, biblioitems and aqbasket tables.
1520
=item C<budget_id>
1521
1522
=back
1523
1423
1524
=cut
1424
=cut
1525
1425
1526
sub SearchOrder {
1426
sub SearchOrders {
1527
#### -------- SearchOrder-------------------------------
1427
    my ( $params ) = @_;
1528
    my ( $ordernumber, $search, $ean, $supplierid, $basket ) = @_;
1428
    my $ordernumber = $params->{ordernumber};
1429
    my $search = $params->{search};
1430
    my $ean = $params->{ean};
1431
    my $booksellerid = $params->{booksellerid};
1432
    my $basketno = $params->{basketno};
1433
    my $basketname = $params->{basketname};
1434
    my $basketgroupname = $params->{basketgroupname};
1435
    my $owner = $params->{owner};
1436
    my $pending = $params->{pending};
1529
1437
1530
    my $dbh = C4::Context->dbh;
1438
    my $dbh = C4::Context->dbh;
1531
    my @args = ();
1439
    my @args = ();
1532
    my $query =
1440
    my $query = q{
1533
            "SELECT *
1441
        SELECT aqbasket.basketno,
1534
            FROM aqorders
1442
               borrowers.surname,
1443
               borrowers.firstname,
1444
               biblio.*,
1445
               biblioitems.isbn,
1446
               biblioitems.biblioitemnumber,
1447
               aqbasket.closedate,
1448
               aqbasket.creationdate,
1449
               aqbasket.basketname,
1450
               aqorders.*
1451
        FROM aqorders
1452
            LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno
1453
            LEFT JOIN aqbasketgroups ON aqbasket.basketgroupid = aqbasketgroups.id
1454
            LEFT JOIN borrowers ON aqbasket.authorisedby=borrowers.borrowernumber
1535
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1455
            LEFT JOIN biblio ON aqorders.biblionumber=biblio.biblionumber
1536
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1456
            LEFT JOIN biblioitems ON biblioitems.biblionumber=biblio.biblionumber
1537
            LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno
1457
        WHERE (datecancellationprinted is NULL)
1538
                WHERE  (datecancellationprinted is NULL)";
1458
    };
1459
1460
    $query .= q{
1461
        AND (quantity > quantityreceived OR quantityreceived is NULL)
1462
    };
1463
1464
    my $userenv = C4::Context->userenv;
1465
    if ( C4::Context->preference("IndependentBranches") ) {
1466
        if ( ( $userenv ) and ( $userenv->{flags} != 1 ) ) {
1467
            $query .= q{
1468
                AND (
1469
                    borrowers.branchcode = ?
1470
                    OR borrowers.branchcode  = ''
1471
                )
1472
            };
1473
            push @args, $userenv->{branch};
1474
        }
1475
    }
1539
1476
1540
    if($ordernumber){
1477
    if ( $ordernumber ) {
1541
        $query .= " AND (aqorders.ordernumber=?)";
1478
        $query .= ' AND (aqorders.ordernumber=?)';
1542
        push @args, $ordernumber;
1479
        push @args, $ordernumber;
1543
    }
1480
    }
1544
    if($search){
1481
    if( $search ) {
1545
        $query .= " AND (biblio.title like ? OR biblio.author LIKE ? OR biblioitems.isbn like ?)";
1482
        $query .= ' AND (biblio.title LIKE ? OR biblio.author LIKE ? OR biblioitems.isbn LIKE ?)';
1546
        push @args, ("%$search%","%$search%","%$search%");
1483
        push @args, ("%$search%","%$search%","%$search%");
1547
    }
1484
    }
1548
    if ($ean) {
1485
    if ( $ean ) {
1549
        $query .= " AND biblioitems.ean = ?";
1486
        $query .= ' AND biblioitems.ean = ?';
1550
        push @args, $ean;
1487
        push @args, $ean;
1551
    }
1488
    }
1552
    if ($supplierid) {
1489
    if ( $booksellerid ) {
1553
        $query .= "AND aqbasket.booksellerid = ?";
1490
        $query .= 'AND aqbasket.booksellerid = ?';
1554
        push @args, $supplierid;
1491
        push @args, $booksellerid;
1555
    }
1492
    }
1556
    if($basket){
1493
    if( $basketno ) {
1557
        $query .= "AND aqorders.basketno = ?";
1494
        $query .= 'AND aqbasket.basketno = ?';
1558
        push @args, $basket;
1495
        push @args, $basketno;
1559
    }
1496
    }
1497
    if( $basketname ) {
1498
        $query .= 'AND aqbasket.basketname LIKE ?';
1499
        push @args, "%$basketname%";
1500
    }
1501
    if( $basketgroupname ) {
1502
        $query .= ' AND aqbasketgroups.name LIKE ?';
1503
        push @args, "%$basketgroupname%";
1504
    }
1505
1506
    if ( $owner ) {
1507
        $query .= ' AND aqbasket.authorisedby=? ';
1508
        push @args, $userenv->{'number'};
1509
    }
1510
1511
    $query .= ' ORDER BY aqbasket.basketno';
1560
1512
1561
    my $sth = $dbh->prepare($query);
1513
    my $sth = $dbh->prepare($query);
1562
    $sth->execute(@args);
1514
    $sth->execute(@args);
1563
    my $results = $sth->fetchall_arrayref({});
1515
    return $sth->fetchall_arrayref({});
1564
    $sth->finish;
1565
    return $results;
1566
}
1516
}
1567
1517
1568
#------------------------------------------------------------#
1518
#------------------------------------------------------------#
Lines 2365-2372 sub GetInvoiceDetails { Link Here
2365
    my $invoice = $sth->fetchrow_hashref;
2315
    my $invoice = $sth->fetchrow_hashref;
2366
2316
2367
    $query = qq{
2317
    $query = qq{
2368
        SELECT aqorders.*, biblio.*
2318
        SELECT aqorders.*, biblio.*,
2319
        aqbasket.basketname
2369
        FROM aqorders
2320
        FROM aqorders
2321
          LEFT JOIN aqbasket ON aqorders.basketno = aqbasket.basketno
2370
          LEFT JOIN biblio ON aqorders.biblionumber = biblio.biblionumber
2322
          LEFT JOIN biblio ON aqorders.biblionumber = biblio.biblionumber
2371
        WHERE invoiceid = ?
2323
        WHERE invoiceid = ?
2372
    };
2324
    };
(-)a/acqui/orderreceive.pl (-1 / +3 lines)
Lines 91-97 $datereceived = $datereceived ? C4::Dates->new($datereceived, 'iso') : C4::Dates Link Here
91
91
92
my $bookseller = GetBookSellerFromId($booksellerid);
92
my $bookseller = GetBookSellerFromId($booksellerid);
93
my $results;
93
my $results;
94
$results = SearchOrder($ordernumber) if $ordernumber;
94
$results = SearchOrders({
95
    ordernumber => $ordernumber
96
}) if $ordernumber;
95
97
96
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
98
my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
97
    {
99
    {
(-)a/acqui/parcel.pl (-7 / +20 lines)
Lines 162-169 for my $item ( @parcelitems ) { Link Here
162
    $item->{unitprice} = get_value_with_gst_params( $item->{unitprice}, $item->{gstrate}, $bookseller );
162
    $item->{unitprice} = get_value_with_gst_params( $item->{unitprice}, $item->{gstrate}, $bookseller );
163
    $total = ( $item->{'unitprice'} ) * $item->{'quantityreceived'};
163
    $total = ( $item->{'unitprice'} ) * $item->{'quantityreceived'};
164
    $item->{'unitprice'} += 0;
164
    $item->{'unitprice'} += 0;
165
    my %line;
165
    my %line = %{ $item };
166
    %line          = %{ $item };
167
    my $ecost = get_value_with_gst_params( $line{ecost}, $line{gstrate}, $bookseller );
166
    my $ecost = get_value_with_gst_params( $line{ecost}, $line{gstrate}, $bookseller );
168
    $line{ecost} = sprintf( "%.2f", $ecost );
167
    $line{ecost} = sprintf( "%.2f", $ecost );
169
    $line{invoice} = $invoice->{invoicenumber};
168
    $line{invoice} = $invoice->{invoicenumber};
Lines 207-219 if(!defined $invoice->{closedate}) { Link Here
207
    if($input->param('op') eq "search"){
206
    if($input->param('op') eq "search"){
208
        my $search   = $input->param('summaryfilter') || '';
207
        my $search   = $input->param('summaryfilter') || '';
209
        my $ean      = $input->param('eanfilter') || '';
208
        my $ean      = $input->param('eanfilter') || '';
210
        my $basketno = $input->param('basketfilter') || '';
209
        my $basketname = $input->param('basketfilter') || '';
211
        my $orderno  = $input->param('orderfilter') || '';
210
        my $orderno  = $input->param('orderfilter') || '';
212
        my $grouped;
211
        $pendingorders = SearchOrders({
213
        my $owner;
212
            booksellerid => $booksellerid,
214
        $pendingorders = GetPendingOrders($booksellerid,$grouped,$owner,$basketno,$orderno,$search,$ean);
213
            basketname => $basketname,
214
            ordernumber => $orderno,
215
            search => $search,
216
            ean => $ean,
217
            pending => 1,
218
        });
219
        $template->param(
220
            summaryfilter => $search,
221
            eanfilter => $ean,
222
            basketfilter => $basketname,
223
            orderfilter => $orderno,
224
        );
215
    }else{
225
    }else{
216
        $pendingorders = GetPendingOrders($booksellerid);
226
        $pendingorders = SearchOrders({
227
            booksellerid => $booksellerid,
228
            pending => 1
229
        });
217
    }
230
    }
218
    my $countpendings = scalar @$pendingorders;
231
    my $countpendings = scalar @$pendingorders;
219
232
(-)a/acqui/uncertainprice.pl (-2 / +7 lines)
Lines 52-58 use C4::Output; Link Here
52
use CGI;
52
use CGI;
53
53
54
use C4::Bookseller qw/GetBookSellerFromId/;
54
use C4::Bookseller qw/GetBookSellerFromId/;
55
use C4::Acquisition qw/GetPendingOrders GetOrder ModOrder/;
55
use C4::Acquisition qw/SearchOrders GetOrder ModOrder/;
56
use C4::Biblio qw/GetBiblioData/;
56
use C4::Biblio qw/GetBiblioData/;
57
57
58
my $input=new CGI;
58
my $input=new CGI;
Lines 73-79 my $owner = $input->param('owner') || 0 ; # flag to see only "my" orders, or eve Link Here
73
my $bookseller = &GetBookSellerFromId($booksellerid);
73
my $bookseller = &GetBookSellerFromId($booksellerid);
74
74
75
#show all orders that have uncertain price for the bookseller
75
#show all orders that have uncertain price for the bookseller
76
my $pendingorders = &GetPendingOrders($booksellerid,0,$owner,$basketno);
76
my $pendingorders = SearchOrders({
77
    booksellerid => $booksellerid,
78
    owner => $owner,
79
    basketno => $basketno,
80
    pending => 1,
81
});
77
my @orders;
82
my @orders;
78
83
79
foreach my $order (@{$pendingorders}) {
84
foreach my $order (@{$pendingorders}) {
(-)a/serials/acqui-search-result.pl (-2 / +5 lines)
Lines 45-51 use C4::Auth; Link Here
45
use C4::Biblio;
45
use C4::Biblio;
46
use C4::Output;
46
use C4::Output;
47
use CGI;
47
use CGI;
48
use C4::Acquisition;
48
use C4::Acquisition qw( SearchOrders );
49
use C4::Dates qw/format_date/;
49
use C4::Dates qw/format_date/;
50
use C4::Bookseller qw( GetBookSeller );
50
use C4::Bookseller qw( GetBookSeller );
51
51
Lines 66-72 my @suppliers = GetBookSeller($supplier); Link Here
66
#build result page
66
#build result page
67
my $loop_suppliers = [];
67
my $loop_suppliers = [];
68
for my $s (@suppliers) {
68
for my $s (@suppliers) {
69
    my $orders = GetPendingOrders($s->{'id'});
69
    my $orders = SearchOrders({
70
        booksellerid => $s->{'id'},
71
        pending => 1
72
    });
70
73
71
    my $loop_basket = [];
74
    my $loop_basket = [];
72
    for my $ord ( @{$orders} ) {
75
    for my $ord ( @{$orders} ) {
(-)a/t/db_dependent/Acquisition.t (-2 / +4 lines)
Lines 80-87 my ($biblionumber2, $biblioitemnumber2) = AddBiblio(MARC::Record->new, ''); Link Here
80
    }
80
    }
81
);
81
);
82
82
83
my $grouped    = 0;
83
my $orders = SearchOrders({
84
my $orders = GetPendingOrders( $booksellerid, $grouped );
84
    booksellerid => $booksellerid,
85
    pending => 1
86
});
85
isa_ok( $orders, 'ARRAY' );
87
isa_ok( $orders, 'ARRAY' );
86
88
87
C4::Acquisition::CloseBasket( $basketno );
89
C4::Acquisition::CloseBasket( $basketno );
(-)a/t/db_dependent/lib/KohaTest/Acquisition.pm (-140 lines)
Lines 1-140 Link Here
1
package KohaTest::Acquisition;
2
use base qw( KohaTest );
3
4
use strict;
5
use warnings;
6
7
use Test::More;
8
9
use C4::Acquisition;
10
use C4::Budgets;
11
use C4::Context;
12
use C4::Members;
13
use Time::localtime;
14
15
sub testing_class { 'C4::Acquisition' };
16
17
18
sub methods : Test( 1 ) {
19
    my $self = shift;
20
    my @methods = qw(  GetBasket 
21
                       NewBasket 
22
                       CloseBasket 
23
                       GetPendingOrders 
24
                       GetOrders 
25
                       GetOrder 
26
                       NewOrder 
27
                       ModOrder 
28
                       ModReceiveOrder 
29
                       SearchOrder 
30
                       DelOrder 
31
                       GetParcel 
32
                       GetParcels 
33
                       GetLateOrders 
34
                       GetHistory 
35
                       GetRecentAcqui 
36
                );
37
    
38
    can_ok( $self->testing_class, @methods );    
39
}
40
41
=head3 create_new_basket
42
43
  creates a baseket by creating an order with no baseket number.
44
45
  named parameters:
46
    authorizedby
47
    invoice
48
    date
49
50
  returns: baseket number, order number
51
52
  runs 4 tests
53
54
=cut
55
56
sub create_new_basket {
57
    my $self = shift;
58
    my %param = @_;
59
    $param{'authorizedby'} = $self->{'memberid'} unless exists $param{'authorizedby'};
60
    $param{'invoice'}      = 123                 unless exists $param{'invoice'};
61
    
62
    my $today = sprintf( '%04d-%02d-%02d',
63
                         localtime->year() + 1900,
64
                         localtime->mon() + 1,
65
                         localtime->mday() );
66
    
67
    # I actually think that this parameter is unused.
68
    $param{'date'}         = $today              unless exists $param{'date'};
69
70
    $self->add_biblios( add_items => 1 );
71
    ok( scalar @{$self->{'biblios'}} > 0, 'we have added at least one biblio' );
72
73
    my $rand = int(rand(10000));
74
    my $basketno = NewBasket( $self->{'booksellerid'}, $param{'authorizedby'},  "Basket $rand");
75
#             $basketnote, $basketbooksellernote, $basketcontractnumber );
76
#   The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "biblioitemnumber", "rrp", "ecost", "gst", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "bookfundid".
77
    my $budget_id = AddBudget( { budget_name => "Budget $rand" } );
78
    my ( undef, $ordernumber ) = NewOrder( {
79
            basketno => $basketno,
80
            budget_id => $budget_id,
81
            biblionumber => $self->{'biblios'}[0],
82
            quantity => 1,
83
            bookfundid => $self->{'bookfundid'},
84
            rrp => 1,
85
            ecost => 1,
86
            booksellerinvoicenumber => $param{'invoice'},
87
        } );
88
    ok( $basketno, "my basket number is $basketno" );
89
    ok( $ordernumber,   "my order number is $ordernumber" );
90
    
91
    my $order = GetOrder( $ordernumber );
92
    is( $order->{'ordernumber'}, $ordernumber, 'got the right order' )
93
      or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) );
94
    
95
    is( $order->{'budgetdate'}, $today, "the budget date is $today" );
96
97
    # XXX should I stuff these in $self?
98
    return ( $basketno, $ordernumber );
99
    
100
}
101
102
103
sub enable_independant_branches {
104
    my $self = shift;
105
    
106
    my $member = GetMember( 'borrowernumber' =>$self->{'memberid'} );
107
    
108
    C4::Context::set_userenv( 0, # usernum
109
                              $self->{'memberid'}, # userid
110
                              undef, # usercnum
111
                              undef, # userfirstname
112
                              undef, # usersurname
113
                              $member->{'branchcode'}, # userbranch
114
                              undef, # branchname
115
                              0, # userflags
116
                              undef, # emailaddress
117
                              undef, # branchprinter
118
                         );
119
120
    # set a preference. There's surely a method for this, but I can't find it.
121
    my $retval = C4::Context->dbh->do( q(update systempreferences set value = '1' where variable = 'IndependentBranches') );
122
    ok( $retval, 'set the preference' );
123
    
124
    ok( C4::Context->userenv, 'usernev' );
125
    isnt( C4::Context->userenv->{flags}, 1, 'flag != 1' )
126
      or diag( Data::Dumper->Dump( [ C4::Context->userenv ], [ 'userenv' ] ) );
127
128
    is( C4::Context->userenv->{branch}, $member->{'branchcode'}, 'we have set the right branch in C4::Context: ' . $member->{'branchcode'} );
129
    
130
}
131
132
sub disable_independant_branches {
133
    my $self = shift;
134
135
    my $retval = C4::Context->dbh->do( q(update systempreferences set value = '0' where variable = 'IndependentBranches') );
136
    ok( $retval, 'set the preference back' );
137
138
    
139
}
140
1;
(-)a/t/db_dependent/lib/KohaTest/Acquisition/GetPendingOrders.pm (-83 lines)
Lines 1-82 Link Here
1
package KohaTest::Acquisition::GetPendingOrders;
2
use base qw( KohaTest::Acquisition );
3
4
use strict;
5
use warnings;
6
7
use Test::More;
8
9
use C4::Acquisition;
10
11
=head3 no_orders
12
13
at first, there should be no orders for our bookseller.
14
15
=cut
16
17
sub no_orders : Test( 1 ) {
18
    my $self = shift;
19
20
    my $orders = GetPendingOrders( $self->{'booksellerid'} );
21
    is( scalar @$orders, 0, 'our new bookseller has no pending orders' )
22
      or diag( Data::Dumper->Dump( [ $orders ], [ 'orders' ] ) );
23
}
24
25
=head3 new_order
26
27
we make an order, then see if it shows up in the pending orders
28
29
=cut
30
31
sub one_new_order : Test( 49 ) {
32
    my $self = shift;
33
34
    my ( $basketno, $ordernumber ) = $self->create_new_basket();
35
36
    ok( $basketno, "basketno is $basketno" );
37
    ok( $ordernumber, "ordernumber is $ordernumber" );
38
    
39
    my $orders = GetPendingOrders( $self->{'booksellerid'} );
40
    is( scalar @$orders, 1, 'we successfully entered one order.' );
41
42
    my @expectedfields = qw( basketno
43
                             biblioitemnumber
44
                             biblionumber
45
                             booksellerinvoicenumber
46
                             budgetdate
47
                             cancelledby
48
                             closedate
49
                             creationdate
50
                             currency
51
                             datecancellationprinted
52
                             datereceived
53
                             ecost
54
                             entrydate
55
                             firstname
56
                             freight
57
                             gst
58
                             listprice
59
                             notes
60
                             ordernumber
61
                             purchaseordernumber
62
                             quantity
63
                             quantityreceived
64
                             rrp
65
                             serialid
66
                             sort1
67
                             sort2
68
                             subscription
69
                             supplierreference
70
                             surname
71
                             timestamp
72
                             title
73
                             totalamount
74
                             unitprice );
75
    my $firstorder = $orders->[0];
76
    for my $field ( @expectedfields ) {
77
        ok( exists( $firstorder->{ $field } ), "This order has a $field field" );
78
    }
79
    
80
}
81
82
1;
83
- 

Return to bug 10723