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

(-)a/C4/Suggestions.pm (-28 lines)
Lines 35-41 our @EXPORT = qw( Link Here
35
    ConnectSuggestionAndBiblio
35
    ConnectSuggestionAndBiblio
36
    DelSuggestion
36
    DelSuggestion
37
    GetSuggestionByStatus
37
    GetSuggestionByStatus
38
    GetSuggestionInfoFromBiblionumber
39
    GetSuggestionInfo
38
    GetSuggestionInfo
40
    ModStatus
39
    ModStatus
41
    ModSuggestion
40
    ModSuggestion
Lines 69-101 Suggestions done by other borrowers can be seen when not "AVAILABLE" Link Here
69
68
70
=head1 FUNCTIONS
69
=head1 FUNCTIONS
71
70
72
=head2 GetSuggestionInfoFromBiblionumber
73
74
Get a suggestion and borrower's informations from it's biblionumber.
75
76
return :
77
all informations (suggestion and borrower) of the suggestion which is related to the biblionumber given.
78
79
=cut
80
81
sub GetSuggestionInfoFromBiblionumber {
82
    my ($biblionumber) = @_;
83
    my $query = q{
84
        SELECT suggestions.*,
85
            U1.surname          AS surnamesuggestedby,
86
            U1.firstname        AS firstnamesuggestedby,
87
            U1.borrowernumber   AS borrnumsuggestedby
88
        FROM suggestions
89
            LEFT JOIN borrowers AS U1 ON suggestedby=U1.borrowernumber
90
        WHERE biblionumber=?
91
        LIMIT 1
92
    };
93
    my $dbh = C4::Context->dbh;
94
    my $sth = $dbh->prepare($query);
95
    $sth->execute($biblionumber);
96
    return $sth->fetchrow_hashref;
97
}
98
99
=head2 GetSuggestionInfo
71
=head2 GetSuggestionInfo
100
72
101
Get a suggestion and borrower's informations from it's suggestionid
73
Get a suggestion and borrower's informations from it's suggestionid
(-)a/acqui/basket.pl (-5 / +5 lines)
Lines 28-34 use C4::Acquisition Link Here
28
    qw( GetBasket CanUserManageBasket GetBasketAsCSV NewBasket NewBasketgroup ModBasket ReopenBasket ModBasketUsers GetBasketgroup GetBasketgroups GetBasketUsers GetOrders GetOrder get_rounded_price );
28
    qw( GetBasket CanUserManageBasket GetBasketAsCSV NewBasket NewBasketgroup ModBasket ReopenBasket ModBasketUsers GetBasketgroup GetBasketgroups GetBasketUsers GetOrders GetOrder get_rounded_price );
29
use C4::Budgets     qw( GetBudgetHierarchy GetBudget CanUserUseBudget );
29
use C4::Budgets     qw( GetBudgetHierarchy GetBudget CanUserUseBudget );
30
use C4::Contract    qw( GetContract );
30
use C4::Contract    qw( GetContract );
31
use C4::Suggestions qw( GetSuggestionInfoFromBiblionumber GetSuggestionInfo );
31
use C4::Suggestions qw( GetSuggestionInfo );
32
use Koha::Biblios;
32
use Koha::Biblios;
33
use Koha::Acquisition::Baskets;
33
use Koha::Acquisition::Baskets;
34
use Koha::Acquisition::Booksellers;
34
use Koha::Acquisition::Booksellers;
Lines 544-553 sub get_order_infos { Link Here
544
        $line{deleted_biblio} = Koha::Old::Biblios->find( $order->{deleted_biblionumber} );
544
        $line{deleted_biblio} = Koha::Old::Biblios->find( $order->{deleted_biblionumber} );
545
    }
545
    }
546
546
547
    my $suggestion = GetSuggestionInfoFromBiblionumber( $line{biblionumber} );
547
    my $suggestion = Koha::Suggestions->find( { biblionumber => $line{biblionumber} } );
548
    $line{suggestionid}         = $$suggestion{suggestionid};
548
    $line{suggestionid}         = $suggestion->{suggestionid};
549
    $line{surnamesuggestedby}   = $$suggestion{surnamesuggestedby};
549
    $line{surnamesuggestedby}   = $suggestion->suggester->surname;
550
    $line{firstnamesuggestedby} = $$suggestion{firstnamesuggestedby};
550
    $line{firstnamesuggestedby} = $suggestion->suggester->firstname;
551
551
552
    $line{estimated_delivery_date} = $order->{estimated_delivery_date};
552
    $line{estimated_delivery_date} = $order->{estimated_delivery_date};
553
553
(-)a/acqui/orderreceive.pl (-9 / +1 lines)
Lines 66-74 use C4::Auth qw( get_template_and_user ); Link Here
66
use C4::Output      qw( output_html_with_http_headers );
66
use C4::Output      qw( output_html_with_http_headers );
67
use C4::Budgets     qw( GetBudget GetBudgetPeriods GetBudgetPeriod GetBudgetHierarchy CanUserUseBudget );
67
use C4::Budgets     qw( GetBudget GetBudgetPeriods GetBudgetPeriod GetBudgetHierarchy CanUserUseBudget );
68
use C4::Members;
68
use C4::Members;
69
use C4::Biblio      qw( GetMarcStructure );
69
use C4::Biblio qw( GetMarcStructure );
70
use C4::Suggestions qw( GetSuggestionInfoFromBiblionumber GetSuggestionInfo );
71
72
use Koha::Acquisition::Booksellers;
70
use Koha::Acquisition::Booksellers;
73
use Koha::Acquisition::Currencies qw( get_active );
71
use Koha::Acquisition::Currencies qw( get_active );
74
use Koha::Acquisition::Orders;
72
use Koha::Acquisition::Orders;
Lines 133-144 if ($order) { Link Here
133
        $template->param( orders => $orders, );
131
        $template->param( orders => $orders, );
134
    }
132
    }
135
133
136
    my $suggestion = GetSuggestionInfoFromBiblionumber( $order->biblionumber );
137
138
    if ($suggestion) {
139
        $template->param( suggestion => $suggestion );
140
    }
141
142
    $template->param(
134
    $template->param(
143
        order              => $order,
135
        order              => $order,
144
        creator            => $creator,
136
        creator            => $creator,
(-)a/acqui/parcel.pl (-4 / +3 lines)
Lines 60-66 use C4::Acquisition qw( CancelReceipt GetInvoice GetInvoiceDetails get_rounded_p Link Here
60
use C4::Budgets     qw( GetBudget GetBudgetByOrderNumber GetBudgetName );
60
use C4::Budgets     qw( GetBudget GetBudgetByOrderNumber GetBudgetName );
61
use CGI             qw ( -utf8 );
61
use CGI             qw ( -utf8 );
62
use C4::Output      qw( output_html_with_http_headers );
62
use C4::Output      qw( output_html_with_http_headers );
63
use C4::Suggestions qw( GetSuggestionInfoFromBiblionumber GetSuggestionInfo );
64
63
65
use Koha::Acquisition::Baskets;
64
use Koha::Acquisition::Baskets;
66
use Koha::Acquisition::Bookseller;
65
use Koha::Acquisition::Bookseller;
Lines 150-159 for my $order (@orders) { Link Here
150
    $total_tax_excluded                 += get_rounded_price( $line{unitprice_tax_excluded} ) * $line{quantity};
149
    $total_tax_excluded                 += get_rounded_price( $line{unitprice_tax_excluded} ) * $line{quantity};
151
    $total_tax_included                 += get_rounded_price( $line{unitprice_tax_included} ) * $line{quantity};
150
    $total_tax_included                 += get_rounded_price( $line{unitprice_tax_included} ) * $line{quantity};
152
151
153
    my $suggestion = GetSuggestionInfoFromBiblionumber( $line{biblionumber} );
152
    my $suggestion = Koha::Suggestions->find( { biblionumber => $line{biblionumber} } );
154
    $line{suggestionid}         = $suggestion->{suggestionid};
153
    $line{suggestionid}         = $suggestion->{suggestionid};
155
    $line{surnamesuggestedby}   = $suggestion->{surnamesuggestedby};
154
    $line{surnamesuggestedby}   = $suggestion->suggester->surname;
156
    $line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby};
155
    $line{firstnamesuggestedby} = $suggestion->suggester->firstname;
157
156
158
    if ( $line{parent_ordernumber} != $line{ordernumber} ) {
157
    if ( $line{parent_ordernumber} != $line{ordernumber} ) {
159
        if ( grep { $_->{ordernumber} == $line{parent_ordernumber} } @orders ) {
158
        if ( grep { $_->{ordernumber} == $line{parent_ordernumber} } @orders ) {
(-)a/t/db_dependent/Suggestions.t (-50 / +2 lines)
Lines 19-25 use Modern::Perl; Link Here
19
19
20
use DateTime::Duration;
20
use DateTime::Duration;
21
use Test::NoWarnings;
21
use Test::NoWarnings;
22
use Test::More tests => 92;
22
use Test::More tests => 80;
23
use Test::Warn;
23
use Test::Warn;
24
24
25
use t::lib::Mocks;
25
use t::lib::Mocks;
Lines 38-44 use Koha::Suggestions; Link Here
38
BEGIN {
38
BEGIN {
39
    use_ok(
39
    use_ok(
40
        'C4::Suggestions',
40
        'C4::Suggestions',
41
        qw( ModSuggestion GetSuggestionInfo GetSuggestionInfoFromBiblionumber GetSuggestionByStatus ConnectSuggestionAndBiblio DelSuggestion MarcRecordFromNewSuggestion GetUnprocessedSuggestions DelSuggestionsOlderThan )
41
        qw( ModSuggestion GetSuggestionInfo GetSuggestionByStatus ConnectSuggestionAndBiblio DelSuggestion MarcRecordFromNewSuggestion GetUnprocessedSuggestions DelSuggestionsOlderThan )
42
    );
42
    );
43
}
43
}
44
44
Lines 335-387 is( Link Here
335
    'GetSuggestionInfo returns the borrower number correctly'
335
    'GetSuggestionInfo returns the borrower number correctly'
336
);
336
);
337
337
338
is(
339
    GetSuggestionInfoFromBiblionumber(), undef,
340
    'GetSuggestionInfoFromBiblionumber without the biblio number returns undef'
341
);
342
is(
343
    GetSuggestionInfoFromBiblionumber(2), undef,
344
    'GetSuggestionInfoFromBiblionumber with an invalid biblio number returns undef'
345
);
346
$suggestion = GetSuggestionInfoFromBiblionumber( $biblio_1->biblionumber );
347
is(
348
    $suggestion->{suggestionid}, $my_suggestionid,
349
    'GetSuggestionInfoFromBiblionumber returns the suggestion id correctly'
350
);
351
is( $suggestion->{title}, $mod_suggestion1->{title}, 'GetSuggestionInfoFromBiblionumber returns the title correctly' );
352
is(
353
    $suggestion->{author}, $mod_suggestion1->{author},
354
    'GetSuggestionInfoFromBiblionumber returns the author correctly'
355
);
356
is(
357
    $suggestion->{publishercode}, $mod_suggestion1->{publishercode},
358
    'GetSuggestionInfoFromBiblionumber returns the publisher code correctly'
359
);
360
is(
361
    $suggestion->{suggestedby}, $my_suggestion->{suggestedby},
362
    'GetSuggestionInfoFromBiblionumber returns the borrower number correctly'
363
);
364
is(
365
    $suggestion->{biblionumber}, $my_suggestion->{biblionumber},
366
    'GetSuggestionInfoFromBiblionumber returns the biblio number correctly'
367
);
368
is(
369
    $suggestion->{STATUS}, $mod_suggestion3->{STATUS},
370
    'GetSuggestionInfoFromBiblionumber returns the status correctly'
371
);
372
is(
373
    $suggestion->{surnamesuggestedby}, $member->{surname},
374
    'GetSuggestionInfoFromBiblionumber returns the surname correctly'
375
);
376
is(
377
    $suggestion->{firstnamesuggestedby}, $member->{firstname},
378
    'GetSuggestionInfoFromBiblionumber returns the firstname correctly'
379
);
380
is(
381
    $suggestion->{borrnumsuggestedby}, $my_suggestion->{suggestedby},
382
    'GetSuggestionInfoFromBiblionumeber returns the borrower number correctly'
383
);
384
385
my $suggestions = GetSuggestionByStatus();
338
my $suggestions = GetSuggestionByStatus();
386
is( @$suggestions, 0, 'GetSuggestionByStatus without the status returns an empty array' );
339
is( @$suggestions, 0, 'GetSuggestionByStatus without the status returns an empty array' );
387
$suggestions = GetSuggestionByStatus('CHECKED');
340
$suggestions = GetSuggestionByStatus('CHECKED');
388
- 

Return to bug 23990