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

(-)a/C4/Suggestions.pm (-28 lines)
Lines 27-33 BEGIN { Link Here
27
        DelSuggestion
27
        DelSuggestion
28
        GetSuggestion
28
        GetSuggestion
29
        GetSuggestionByStatus
29
        GetSuggestionByStatus
30
        GetSuggestionInfoFromBiblionumber
31
        GetSuggestionInfo
30
        GetSuggestionInfo
32
        ModStatus
31
        ModStatus
33
        ModSuggestion
32
        ModSuggestion
Lines 72-104 Suggestions done by other borrowers can be seen when not "AVAILABLE" Link Here
72
71
73
=head1 FUNCTIONS
72
=head1 FUNCTIONS
74
73
75
=head2 GetSuggestionInfoFromBiblionumber
76
77
Get a suggestion and borrower's information from it's biblionumber.
78
79
return :
80
all information (suggestion and borrower) of the suggestion which is related to the biblionumber given.
81
82
=cut
83
84
sub GetSuggestionInfoFromBiblionumber {
85
    my ($biblionumber) = @_;
86
    my $query = q{
87
        SELECT suggestions.*,
88
            U1.surname          AS surnamesuggestedby,
89
            U1.firstname        AS firstnamesuggestedby,
90
            U1.borrowernumber   AS borrnumsuggestedby
91
        FROM suggestions
92
            LEFT JOIN borrowers AS U1 ON suggestedby=U1.borrowernumber
93
        WHERE biblionumber=?
94
        LIMIT 1
95
    };
96
    my $dbh = C4::Context->dbh;
97
    my $sth = $dbh->prepare($query);
98
    $sth->execute($biblionumber);
99
    return $sth->fetchrow_hashref;
100
}
101
102
=head2 GetSuggestionInfo
74
=head2 GetSuggestionInfo
103
75
104
Get a suggestion and borrower's information from it's suggestionid
76
Get a suggestion and borrower's information 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 658-667 sub get_order_infos { Link Here
658
        $line{deleted_biblio} = Koha::Old::Biblios->find( $order->{deleted_biblionumber} );
658
        $line{deleted_biblio} = Koha::Old::Biblios->find( $order->{deleted_biblionumber} );
659
    }
659
    }
660
660
661
    my $suggestion = GetSuggestionInfoFromBiblionumber( $line{biblionumber} );
661
    my $suggestion = Koha::Suggestions->find( { biblionumber => $line{biblionumber} } );
662
    $line{suggestionid}         = $$suggestion{suggestionid};
662
    $line{suggestionid}         = $suggestion->suggestionid;
663
    $line{surnamesuggestedby}   = $$suggestion{surnamesuggestedby};
663
    $line{surnamesuggestedby}   = $suggestion->suggester->surname;
664
    $line{firstnamesuggestedby} = $$suggestion{firstnamesuggestedby};
664
    $line{firstnamesuggestedby} = $suggestion->suggester->firstname;
665
665
666
    $line{estimated_delivery_date} = $order->{estimated_delivery_date};
666
    $line{estimated_delivery_date} = $order->{estimated_delivery_date};
667
667
(-)a/acqui/orderreceive.pl (-1 / +1 lines)
Lines 67-73 use C4::Output qw( output_html_with_http_headers ); Link Here
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 );
70
use C4::Suggestions qw( GetSuggestionInfo );
71
71
72
use Koha::Acquisition::Booksellers;
72
use Koha::Acquisition::Booksellers;
73
use Koha::Acquisition::Currencies;
73
use Koha::Acquisition::Currencies;
(-)a/acqui/parcel.pl (-5 / +5 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 );
63
use C4::Suggestions qw( GetSuggestionInfo );
64
64
65
use Koha::Acquisition::Baskets;
65
use Koha::Acquisition::Baskets;
66
use Koha::Acquisition::Bookseller;
66
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};
150
    $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};
151
    $total_tax_included                 += get_rounded_price( $line{unitprice_tax_included} ) * $line{quantity};
152
152
153
    my $suggestion = GetSuggestionInfoFromBiblionumber( $line{biblionumber} );
153
    my $suggestion = Koha::Suggestions->find( { biblionumber => $line{biblionumber} } );
154
    $line{suggestionid}         = $suggestion->{suggestionid};
154
    $line{suggestionid}         = $suggestion->suggestionid;
155
    $line{surnamesuggestedby}   = $suggestion->{surnamesuggestedby};
155
    $line{surnamesuggestedby}   = $suggestion->suggester->surname;
156
    $line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby};
156
    $line{firstnamesuggestedby} = $suggestion->suggester->firstname;
157
157
158
    if ( $line{parent_ordernumber} != $line{ordernumber} ) {
158
    if ( $line{parent_ordernumber} != $line{ordernumber} ) {
159
        if ( grep { $_->{ordernumber} == $line{parent_ordernumber} } @orders ) {
159
        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 39723