Bug 38213

Summary: Fix problems with MARC21 003 being mandatory
Product: Koha Reporter: Phil Ringnalda <phil>
Component: CatalogingAssignee: Bugs List <koha-bugs>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: katrin.fischer, m.de.rooy
Version: Main   
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Circulation function:

Description Phil Ringnalda 2024-10-18 22:51:41 UTC
In the MARC21 frameworks we ship, 003 is mandatory in Default and thus in the optional frameworks like BKS since they copy mandatory from Default. However, the optional frameworks set 003 to hidden = -6, which is visible in the OPAC and staff interface but not in the (basic) editor.

That means that if you create two records in BKS in the basic editor, you cannot set a value for 003, and then if you try to merge them you will not be able to merge, because 003 is mandatory but not present in either record and merging records enforces mandatories.

We could fix that for future installations by not setting hidden to -6 in the optional frameworks, so that they would require setting 003 just like Default does.

Or, we could fix it by not setting 003 mandatory. 003 is the marcorg code for the organization whose control number is in 001, but we don't set 001 as mandatory so we require a code for the organization which set the control number '' so that '(code)' will be a globally-unique control number, which is nonsense. It also creates nonsense when you import a naughty record which has a 001 but no 003, since then you will click in the 003 and have marc21_orgcode.pl fill in your marcorg code, saying that the control number is yours when in fact it's from someone unknown.

What we really mean by having 003 mandatory is '[ ] Mandatory for newly created records if 001 has a value', a checkbox which doesn't currently exist in frameworks and wouldn't be useful to add, since 003 is the only MARC21 field which is meaningless on its own and only exists as a prefix for another field.