- warn "$flag : $flags->{$flag} \n ";
-
- ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
- if ($flags->{$flag}->{'noissues'}) {
- $flag = "<font color=red>$flag</font>";
- }
- if ($flag eq 'CHARGES') {
- $flaginfotext.= <<"EOF";
-<tr><td valign=top>$flag</td>
-<td bgcolor=$color><b>$flags->{$flag}->{'message'}</b>
-<a href=/cgi-bin/koha/pay.pl?bornum=$borrower->{'borrowernumber'}
-onClick="openWindow(this, 'Payment', 480,640)">Payment</a></td></tr>
-EOF
- } elsif ($flag eq 'WAITING') {
- my $itemswaiting='';
- my $items = $flags->{$flag}->{'itemlist'};
- foreach my $item (@$items) {
- my ($iteminformation) = getiteminformation(\%env, $item->{'itemnumber'}, 0);
- $itemswaiting .= <<"EOF";
-<a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra
-onClick="openWindow(this, 'Item', 480, 640)">$iteminformation->{'barcode'}</a>
-$iteminformation->{'title'}
-($branches->{$iteminformation->{'holdingbranch'}}->{'branchname'})<br>
-EOF
- }
- $flaginfotext.="<tr><td valign=top>$flag</td><td>$itemswaiting</td></tr>\n";
- } elsif ($flag eq 'ODUES') {
- my $itemsoverdue = '';
- my $items = $flags->{$flag}->{'itemlist'};
- foreach my $item (sort {$a->{'date_due'} cmp $b->{'date_due'}} @$items) {
- my ($iteminformation) = getiteminformation(\%env, $item->{'itemnumber'}, 0);
- $itemsoverdue .= <<"EOF";
-<font color=red>$item->{'date_due'}</font>
-<a href=/cgi-bin/koha/detail.pl?bib=$iteminformation->{'biblionumber'}&type=intra
-onClick="openWindow(this, 'Item', 480, 640)">$iteminformation->{'barcode'}</a>
-$iteminformation->{'title'}
-<br>
-EOF
- }
- $flaginfotext .= "<tr><td valign=top>$flag</td><td>$itemsoverdue</td></tr>\n";
- } else {
- $flaginfotext.= <<"EOF";
-<tr><td valign=top>$flag</td>
-<td bgcolor=$color>$flags->{$flag}->{'message'}</td></tr>
-EOF
- }
- }
- if ($flaginfotext) {
- $borrowertable .= << "EOF";
-<tr><td bgcolor=$headerbackgroundcolor background=$backgroundimage colspan=2>
-<b>Flags</b></td></tr>
-$flaginfotext
-</table>
-EOF
+ my %flaginfo;
+ ($color eq $linecolor1) ? ($color=$linecolor2) : ($color=$linecolor1);
+ unless($flagset) { $flagset=1; }
+ $flaginfo{color}=$color;
+ $flaginfo{redfont} =($flags->{$flag}->{'noissues'});
+ $flaginfo{flag}=$flag;
+ if ($flag eq 'CHARGES') {
+ $flaginfo{msg}=$flag;
+ $flaginfo{charges}=1;
+ } elsif ($flag eq 'WAITING') {
+ $flaginfo{msg}=$flag;
+ $flaginfo{waiting}=1;
+ my @waitingitemloop;
+ my $items = $flags->{$flag}->{'itemlist'};
+ foreach my $item (@$items) {
+ my ($iteminformation) = getiteminformation(\%env, $item->{'itemnumber'}, 0);
+ my %waitingitem;
+ $waitingitem{biblionum}=$iteminformation->{'biblionumber'};
+ $waitingitem{barcode}=$iteminformation->{'barcode'};
+ $waitingitem{title}=$iteminformation->{'title'};
+ $waitingitem{brname}=$branches->{$iteminformation->{'holdingbranch'}}->{'branchname'};
+ push(@waitingitemloop, \%waitingitem);
+ }
+ $flaginfo{itemloop}=\@waitingitemloop;
+ } elsif ($flag eq 'ODUES') {
+ my $items = $flags->{$flag}->{'itemlist'};
+ my @itemloop;
+ foreach my $item (sort {$a->{'date_due'} cmp $b->{'date_due'}} @$items) {
+ my ($iteminformation) = getiteminformation(\%env, $item->{'itemnumber'}, 0);
+ my %overdueitem;
+ $overdueitem{duedate}=$item->{'date_due'};
+ $overdueitem{biblionum}=$iteminformation->{'biblionumber'};
+ $overdueitem{barcode}=$iteminformation->{'barcode'};
+ $overdueitem{title}=$iteminformation->{'title'};
+ $overdueitem{brname}=$branches->{$iteminformation->{'holdingbranch'}}->{'branchname'};
+ push(@itemloop, \%overdueitem);
+ }
+ $flaginfo{itemloop}=\@itemloop;
+ $flaginfo{overdue}=1;
+ } else {
+ $flaginfo{other}=1;
+ $flaginfo{msg}=$flags->{$flag}->{'message'};
+ }
+ push(@flagloop, \%flaginfo);