sub
postProcessHoldings {
my
(
$cfg
,
$holdings
) =
@_
;
foreach
my
$holding
(
@$holdings
) {
processListOfFields(
$cfg
,
$holding
, 0);
}
return
$holdings
;
}
sub
processListOfFields {
my
(
$cfg
,
$list
,
$isItem
) =
@_
;
my
$thisCfg
=
$cfg
->{
$isItem
?
'circulation'
:
'holding'
};
my
$getFieldFromRecord
=
sub
{
my
(
$fieldname
) =
@_
;
foreach
(
my
$i
= 0;
$i
<
@$list
;
$i
++) {
my
$field
=
$list
->[
$i
];
my
(
$name
,
$value
) =
@$field
;
if
(
$name
eq
$fieldname
) {
return
$value
;
}
}
return
undef
;
};
foreach
(
my
$i
= 0;
$i
<
@$list
;
$i
++) {
my
$field
=
$list
->[
$i
];
my
(
$name
,
$value
) =
@$field
;
if
(!
$isItem
&&
$name
eq
'circulations'
) {
foreach
(
my
$j
= 0;
$j
<
@$value
;
$j
++) {
processListOfFields(
$cfg
,
$value
->[
$j
], 1);
}
}
else
{
my
$rule
=
$thisCfg
->{
$name
};
if
(
$rule
) {
$field
->[1] = transform(
$rule
,
$value
,
$getFieldFromRecord
);
}
}
}
}
our
@EXPORT_OK
=
qw(postProcessHoldings)
;
1;