Lines 82-87
BEGIN {
Link Here
|
82 |
|
82 |
|
83 |
&AddClaim |
83 |
&AddClaim |
84 |
&GetBiblioCountByBasketno |
84 |
&GetBiblioCountByBasketno |
|
|
85 |
|
86 |
&GetOrderUsers |
87 |
&ModOrderUsers |
88 |
&NotifyOrderUsers |
85 |
); |
89 |
); |
86 |
} |
90 |
} |
87 |
|
91 |
|
Lines 1477-1482
q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
Link Here
|
1477 |
$biblionumber, |
1481 |
$biblionumber, |
1478 |
$ordernumber |
1482 |
$ordernumber |
1479 |
); |
1483 |
); |
|
|
1484 |
|
1485 |
# All items have been received, sent a notification to users |
1486 |
NotifyOrderUsers( $ordernumber ); |
1487 |
|
1480 |
} |
1488 |
} |
1481 |
return ($datereceived, $new_ordernumber); |
1489 |
return ($datereceived, $new_ordernumber); |
1482 |
} |
1490 |
} |
Lines 2960-2965
sub populate_order_with_prices {
Link Here
|
2960 |
return $order; |
2968 |
return $order; |
2961 |
} |
2969 |
} |
2962 |
|
2970 |
|
|
|
2971 |
=head3 GetOrderUsers |
2972 |
|
2973 |
$order_users_ids = &GetOrderUsers($ordernumber); |
2974 |
|
2975 |
Returns a list of all borrowernumbers that are in order users list |
2976 |
|
2977 |
=cut |
2978 |
|
2979 |
sub GetOrderUsers { |
2980 |
my ($ordernumber) = @_; |
2981 |
|
2982 |
return unless $ordernumber; |
2983 |
|
2984 |
my $query = q| |
2985 |
SELECT borrowernumber |
2986 |
FROM aqorderusers |
2987 |
WHERE ordernumber = ? |
2988 |
|; |
2989 |
my $dbh = C4::Context->dbh; |
2990 |
my $sth = $dbh->prepare($query); |
2991 |
$sth->execute($ordernumber); |
2992 |
my $results = $sth->fetchall_arrayref( {} ); |
2993 |
|
2994 |
my @borrowernumbers; |
2995 |
foreach (@$results) { |
2996 |
push @borrowernumbers, $_->{'borrowernumber'}; |
2997 |
} |
2998 |
|
2999 |
return @borrowernumbers; |
3000 |
} |
3001 |
|
3002 |
=head3 ModOrderUsers |
3003 |
|
3004 |
my @order_users_ids = (1, 2, 3); |
3005 |
&ModOrderUsers($ordernumber, @basketusers_ids); |
3006 |
|
3007 |
Delete all users from order users list, and add users in C<@order_users_ids> |
3008 |
to this users list. |
3009 |
|
3010 |
=cut |
3011 |
|
3012 |
sub ModOrderUsers { |
3013 |
my ( $ordernumber, @order_users_ids ) = @_; |
3014 |
|
3015 |
return unless $ordernumber; |
3016 |
|
3017 |
my $dbh = C4::Context->dbh; |
3018 |
my $query = q| |
3019 |
DELETE FROM aqorderusers |
3020 |
WHERE ordernumber = ? |
3021 |
|; |
3022 |
my $sth = $dbh->prepare($query); |
3023 |
$sth->execute($ordernumber); |
3024 |
|
3025 |
$query = q| |
3026 |
INSERT INTO aqorderusers (ordernumber, borrowernumber) |
3027 |
VALUES (?, ?) |
3028 |
|; |
3029 |
$sth = $dbh->prepare($query); |
3030 |
foreach my $order_user_id (@order_users_ids) { |
3031 |
$sth->execute( $ordernumber, $order_user_id ); |
3032 |
} |
3033 |
} |
3034 |
|
3035 |
sub NotifyOrderUsers { |
3036 |
my ($ordernumber) = @_; |
3037 |
|
3038 |
my @borrowernumbers = GetOrderUsers($ordernumber); |
3039 |
return unless @borrowernumbers; |
3040 |
|
3041 |
my $order = GetOrder( $ordernumber ); |
3042 |
for my $borrowernumber (@borrowernumbers) { |
3043 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ); |
3044 |
my $branch = C4::Branch::GetBranchDetail( $borrower->{branchcode} ); |
3045 |
my $biblio = C4::Biblio::GetBiblio( $order->{biblionumber} ); |
3046 |
my $letter = C4::Letters::GetPreparedLetter( |
3047 |
module => 'acquisition', |
3048 |
letter_code => 'ACQ_NOTIF_ON_RECEIV', |
3049 |
branchcode => $branch->{branchcode}, |
3050 |
tables => { |
3051 |
'branches' => $branch, |
3052 |
'borrowers' => $borrower, |
3053 |
'biblio' => $biblio, |
3054 |
'aqorders' => $order, |
3055 |
}, |
3056 |
); |
3057 |
if ( $letter ) { |
3058 |
C4::Letters::EnqueueLetter( |
3059 |
{ |
3060 |
letter => $letter, |
3061 |
borrowernumber => $borrowernumber, |
3062 |
LibraryName => C4::Context->preference("LibraryName"), |
3063 |
message_transport_type => 'email', |
3064 |
} |
3065 |
) or warn "can't enqueue letter $letter"; |
3066 |
} |
3067 |
} |
3068 |
} |
3069 |
|
2963 |
1; |
3070 |
1; |
2964 |
__END__ |
3071 |
__END__ |
2965 |
|
3072 |
|