exit;
}
-die
- "TalkingTechItivaPhoneNotification system preference not activated... dying\n"
+die "TalkingTechItivaPhoneNotification system preference not activated... dying\n"
unless ( C4::Context->preference("TalkingTechItivaPhoneNotification") );
# Database handle
my $OUT;
if ( defined $outfile ) {
open( $OUT, '>', "$outfile" ) || die("Cannot open output file");
-}
-else {
+} else {
print "No output file defined; printing to STDOUT\n"
if ( defined $verbose );
open( $OUT, '>', "&STDOUT" ) || die("Couldn't duplicate STDOUT: $!");
foreach my $type (@types) {
$type = uc($type); #just in case lower or mixed-case was supplied
- my $module =
- $type_module_map->{$type}; #since the module is required to get the letter
- my $code = $type_notice_map->{$type}; #to get the Koha name of the notice
+ my $module = $type_module_map->{$type}; #since the module is required to get the letter
+ my $code = $type_notice_map->{$type}; #to get the Koha name of the notice
my @loop;
if ( $type eq 'OVERDUE' ) {
@loop = GetOverdueIssues();
- }
- elsif ( $type eq 'PREOVERDUE' ) {
+ } elsif ( $type eq 'PREOVERDUE' ) {
@loop = GetPredueIssues();
- }
- elsif ( $type eq 'RESERVE' ) {
+ } elsif ( $type eq 'RESERVE' ) {
@loop = GetWaitingHolds();
- }
- else {
+ } else {
print "Unknown or unsupported message type $type; skipping...\n"
if ( defined $verbose );
next;
my $message_id = 0;
if ($outfile) {
$message_id = C4::Letters::EnqueueLetter(
- {
- letter => $letter,
+ { letter => $letter,
borrowernumber => $issues->{'borrowernumber'},
message_transport_type => 'phone',
}
);
}
- print $OUT
-"\"$format\",\"$language\",\"$type\",\"$issues->{level}\",\"$issues->{cardnumber}\",\"$issues->{patron_title}\",\"$issues->{firstname}\",";
- print $OUT
-"\"$issues->{surname}\",\"$issues->{phone}\",\"$issues->{email}\",\"$library_code\",";
- print $OUT
-"\"$issues->{site}\",\"$issues->{site_name}\",\"$issues->{barcode}\",\"$due_date\",\"$issues->{title}\",\"$message_id\"\n";
+ print $OUT "\"$format\",\"$language\",\"$type\",\"$issues->{level}\",\"$issues->{cardnumber}\",\"$issues->{patron_title}\",\"$issues->{firstname}\",";
+ print $OUT "\"$issues->{surname}\",\"$issues->{phone}\",\"$issues->{email}\",\"$library_code\",";
+ print $OUT "\"$issues->{site}\",\"$issues->{site_name}\",\"$issues->{barcode}\",\"$due_date\",\"$issues->{title}\",\"$message_id\"\n";
}
}
=cut
sub GetOverdueIssues {
- my $query =
-"SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
+ my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, issues.date_due,
max(overduerules.branchcode) as rulebranch, TO_DAYS(NOW())-TO_DAYS(date_due) as daysoverdue, delay1, delay2, delay3,
issues.branchcode as site, branches.branchname as site_name
while ( my $issue = $sth->fetchrow_hashref() ) {
if ( $issue->{'daysoverdue'} == $issue->{'delay1'} ) {
$issue->{'level'} = 1;
- }
- elsif ( $issue->{'daysoverdue'} == $issue->{'delay2'} ) {
+ } elsif ( $issue->{'daysoverdue'} == $issue->{'delay2'} ) {
$issue->{'level'} = 2;
- }
- elsif ( $issue->{'daysoverdue'} == $issue->{'delay3'} ) {
+ } elsif ( $issue->{'daysoverdue'} == $issue->{'delay3'} ) {
$issue->{'level'} = 3;
- }
- else {
+ } else {
# this shouldn't ever happen, based our SQL criteria
}
}
sub GetPredueIssues {
- my $query =
-"SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
+ my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, issues.date_due,
issues.branchcode as site, branches.branchname as site_name
FROM borrowers JOIN issues USING (borrowernumber)
}
sub GetWaitingHolds {
- my $query =
-"SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
+ my $query = "SELECT borrowers.borrowernumber, borrowers.cardnumber, borrowers.title as patron_title, borrowers.firstname, borrowers.surname,
borrowers.phone, borrowers.email, borrowers.branchcode, biblio.biblionumber, biblio.title, items.barcode, reserves.waitingdate,
reserves.branchcode AS site, branches.branchname AS site_name,
TO_DAYS(NOW())-TO_DAYS(reserves.waitingdate) AS days_since_waiting
my @results;
while ( my $issue = $sth->fetchrow_hashref() ) {
my @waitingdate = split( /-/, $issue->{'waitingdate'} );
- my @date_due =
- Add_Delta_Days( $waitingdate[0], $waitingdate[1], $waitingdate[2],
- $pickupdelay );
- $issue->{'date_due'} =
- sprintf( "%04d-%02d-%02d", $date_due[0], $date_due[1], $date_due[2] );
- $issue->{'level'} = 1; # only one level for Hold Waiting notifications
+ my @date_due = Add_Delta_Days( $waitingdate[0], $waitingdate[1], $waitingdate[2], $pickupdelay );
+ $issue->{'date_due'} = sprintf( "%04d-%02d-%02d", $date_due[0], $date_due[1], $date_due[2] );
+ $issue->{'level'} = 1; # only one level for Hold Waiting notifications
my $days_to_subtract = 0;
my $calendar = C4::Calendar->new( branchcode => $issue->{'site'} );
- while (
- $calendar->isHoliday(
- reverse(
- Add_Delta_Days(
- $waitingdate[0], $waitingdate[1],
- $waitingdate[2], $days_to_subtract
- )
- )
- )
- )
- {
+ while ( $calendar->isHoliday( reverse( Add_Delta_Days( $waitingdate[0], $waitingdate[1], $waitingdate[2], $days_to_subtract ) ) ) ) {
$days_to_subtract++;
}
- $issue->{'days_since_waiting'} =
- $issue->{'days_since_waiting'} - $days_to_subtract;
-
- if (
- (
- grep $_ eq $issue->{'days_since_waiting'},
- @holds_waiting_days_to_call
- )
- || !scalar(@holds_waiting_days_to_call)
- )
- {
+ $issue->{'days_since_waiting'} = $issue->{'days_since_waiting'} - $days_to_subtract;
+
+ if ( ( grep $_ eq $issue->{'days_since_waiting'}, @holds_waiting_days_to_call )
+ || !scalar(@holds_waiting_days_to_call) ) {
push @results, $issue;
}
}