=cut
sub CheckAccountLineLevelInfo {
- my($borrowernumber,$itemnumber,$level) = @_;
- my $dbh = C4::Context->dbh;
- my $query= qq|SELECT count(*)
- FROM accountlines
- WHERE borrowernumber =?
- AND itemnumber = ?
- AND notify_level=?|;
- my $sth=$dbh->prepare($query);
- $sth->execute($borrowernumber,$itemnumber,$level);
- my ($exist)=$sth->fetchrow;
- $sth->finish;
- return($exist);
+ my($borrowernumber,$itemnumber,$level,$datedue) = @_;
+ my @formatdate;
+ @formatdate=split('-',$datedue);
+ $datedue=$formatdate[2]."/".$formatdate[1]."/".$formatdate[0];
+ my $dbh = C4::Context->dbh;
+ my $query= qq|SELECT count(*)
+ FROM accountlines
+ WHERE borrowernumber =?
+ AND itemnumber = ?
+ AND notify_level=?
+ AND description like ?|;
+ my $sth=$dbh->prepare($query);
+ $sth->execute($borrowernumber,$itemnumber,$level,"%$datedue%");
+ my ($exist)=$sth->fetchrow;
+ $sth->finish;
+ return($exist);
}
=item GetOverduerules
=cut
sub CheckExistantNotifyid {
- my($borrowernumber,$date_due) = @_;
- my $dbh = C4::Context->dbh;
- my $query = qq|SELECT notify_id FROM issues,accountlines
- WHERE accountlines.borrowernumber =?
- AND issues.itemnumber= accountlines.itemnumber
- AND date_due = ?|;
- my $sth=$dbh->prepare($query);
- $sth->execute($borrowernumber,$date_due);
- my ($exist)=$sth->fetchrow;
- $sth->finish;
- if ($exist eq '')
- {
- return(0);
- }else
- {
- return($exist);
- }
+ my($borrowernumber,$date_due) = @_;
+ my $dbh = C4::Context->dbh;
+ my @formatdate;
+ @formatdate=split('-',$date_due);
+ $date_due=$formatdate[2]."/".$formatdate[1]."/".$formatdate[0];
+ my $query = qq|SELECT notify_id FROM accountlines
+ WHERE description like ?
+ AND borrowernumber =?
+ AND( accounttype='FU' OR accounttype='F' )
+ AND notify_id != 0
+ AND notify_id != 1|;
+ my $sth=$dbh->prepare($query);
+ $sth->execute("%$date_due%",$borrowernumber);
+ my ($exist)=$sth->fetchrow;
+ $sth->finish;
+ if ($exist eq '')
+ {
+ return(0);
+ }else
+ {
+ return($exist);
+ }
}
=item CheckAccountLineItemInfo
UpdateFine($data->[$i]->{'itemnumber'},$data->[$i]->{'borrowernumber'},$amount,$type,$due);
my $getnotifyid=CheckExistantNotifyid($borrower->{'borrowernumber'},$datedue);
- my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},1);
+ my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},1,$datedue);
if ($update eq '0'){
if ($getnotifyid eq '0'){
$starter=GetNextIdNotify($reference,$borrower->{'borrowernumber'});
if ($daycount >= $delays2 && $daycount < $delays3){
my $debarred2=GetOverduerules($borrower->{'categorycode'},2);
(UpdateBorrowerDebarred($borrower->{'borrowernumber'}))if(($debarred2 eq '1' ) and ($debarredstatus eq '0'));
- my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},2);
+ my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},2,$datedue);
if ($update eq '0'){
UpdateAccountLines(undef,2,$borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'});
}
if ($daycount >= $delays3 ){
my $debarred3=GetOverduerules($borrower->{'categorycode'},3);
(UpdateBorrowerDebarred($borrower->{'borrowernumber'}))if(($debarred3 eq '1' ) and ($debarredstatus eq '0'));
- my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},3);
+ my $update=CheckAccountLineLevelInfo($borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'},3,$datedue);
if ($update eq '0'){
UpdateAccountLines(undef,3,$borrower->{'borrowernumber'},$data->[$i]->{'itemnumber'});
}