$total++;
}
-# verify that all of a field's subfields (except the ones explicitly ignore)
+# verify that all of a field's subfields (except the ones explicitly ignored)
# are in the same tab
$sth = $dbh->prepare("SELECT tagfield, frameworkcode, frameworktext, GROUP_CONCAT(DISTINCT tab) AS tabs
FROM marc_subfield_structure
$template->param(tab_info => $inconsistent_tabs);
}
+# verify that authtypecodes used in the framework
+# are defined in auth_types
+$sth = $dbh->prepare("SELECT frameworkcode, frameworktext, tagfield, tagsubfield, authtypecode
+ FROM marc_subfield_structure
+ LEFT JOIN biblio_framework USING (frameworkcode)
+ WHERE authtypecode IS NOT NULL
+ AND authtypecode <> ''
+ AND authtypecode NOT IN (SELECT authtypecode FROM auth_types)
+ ORDER BY frameworkcode, tagfield, tagsubfield");
+$sth->execute;
+my $invalid_authtypecodes = $sth->fetchall_arrayref({});
+if (scalar(@$invalid_authtypecodes) > 0) {
+ $total++;
+ $template->param(invalid_authtypecodes => 1);
+ $template->param(authtypecode_info => $invalid_authtypecodes);
+}
+
$template->param(total => $total,
);
</tr>
<!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="invalid_authtypecodes" -->
+ <tr>
+ <td style="vertical-align:top;">invalid authority types</td>
+ <td>Not all authority types referred to by the frameworks are defined.
+ <table>
+ <tr>
+ <th>Framework code</th>
+ <th>Framework description</th>
+ <th>Tag</th>
+ <th>Subfield</th>
+ <th>Invalid authority type</th>
+ </tr>
+ <!-- TMPL_LOOP NAME="authtypecode_info" -->
+ <tr>
+ <td><!-- TMPL_VAR NAME="frameworkcode" --></td>
+ <!-- TMPL_IF NAME="frameworkcode" -->
+ <td><!-- TMPL_VAR NAME="frameworktext" --></td>
+ <!-- TMPL_ELSE -->
+ <td>Default framework</td>
+ <!-- /TMPL_IF -->
+ <td><!-- TMPL_VAR NAME="tagfield" --></td>
+ <td><!-- TMPL_VAR NAME="tagsubfield" --></td>
+ <td><!-- TMPL_VAR NAME="authtypecode" --></td>
+ </tr>
+ <!-- /TMPL_LOOP -->
+ </table>
+ </td>
+ </tr>
+ <!-- TMPL_ELSE -->
+ <tr>
+ <td>OK</td>
+ <td>all authority types used in the frameworks are defined</td>
+ </tr>
+ <!-- /TMPL_IF -->
<!-- -->
<!-- TMPL_IF name="total" -->
<tr>