Description
paxed
2019-03-01 09:06:13 UTC
In addition: 1) prepare_host_field: if ( $field = $host->field('100') || $host->field('110') || $host->field('11') ) - the '11' should be '111' 2) prepare_host_field has a 240 -> 773b, which should be 250a -> 773b, as it is in PrepHostMarcField 3) There's a difference in how the 773a is set: prepare_host_field uses 100ab | 110ab | 11ab, but PrepHostMarcField uses 100a | 110a | 111a *** Bug 30793 has been marked as a duplicate of this bug. *** I remove C4::Biblio::prepare_host_field in bug 37305, opting to use the tested method I add to Koha::Biblio as `generate_marc_host_field` in bug 29560. 1) The 111 vs 11 mistake in prepare_marc_host is fixed in generate_marc_host_field already. 2) We set 773b t 250ab and 773s to 240a in generate_marc_host_field 3) We stick to 1XXab for 773a in generate_marc_host_field The outstanding differences between PrepHostMarcField, for EasyAnalytics, and generate_marc_host_field are: 1) Subfield 0 is set to the host biblionumber 2) Subfield 9 is set to the host itemnumber 3) Subfield o is set to the host item barcode Created attachment 183766 [details] [review] Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t Created attachment 183767 [details] [review] Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t *** Bug 37996 has been marked as a duplicate of this bug. *** Created attachment 184035 [details] [review] Bug 22439: Remove C4::Biblio::PrepHostMarcField and consolidate with Koha::Biblio::generate_marc_host_field This patch removes the PrepHostMarcField function from C4::Biblio and enhances the modern generate_marc_host_field method in Koha::Biblio to handle item-specific data when needed. The refactoring eliminates code duplication while maintaining all existing functionality. Item-specific subfields (barcode, itemnumber, biblionumber) are now only included when EasyAnalyticalRecords is enabled, ensuring the implementation continues to be compliant with MARC standards. Changes: - Remove PrepHostMarcField function from C4::Biblio - Enhance generate_marc_host_field to accept optional item parameter - Update cataloguing/addbiblio.pl to use the modern method - Update cataloguing/linkitem.pl to use the modern method - Add EasyAnalyticalRecords preference checking to ensure we only add the additional non-standard fields when the preference is enabled. Test plan: 1. Apply patch 2. Enable EasyAnalyticalRecords system preference 3. Create a parent bibliographic record with items 4. Create a child analytical record: - Go to Cataloging > New Record - Use "Add child record" option for the parent record - Choose a specific item from the parent record - Verify the 773 field contains subfields $0 (biblionumber), $9 (itemnumber), $o (barcode) 5. Test the linkitem.pl functionality: - Create an analytical record without using "Add child record" - Go to cataloguing/linkitem.pl with appropriate parameters - Link an item using its barcode - Verify the 773 field is properly populated 6. Disable EasyAnalyticalRecords system preference 7. Repeat steps 4-5 and verify that subfields $0, $9, and $o are NOT added to the 773 field 8. Verify that other 773 subfields (title, author, etc.) are still properly populated 9. Test with both MARC21 and UNIMARC if available 10. Run tests: prove t/db_dependent/Koha/Biblio.t Sponsored-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Created attachment 184036 [details] [review] Bug 22439: Add comprehensive tests for generate_marc_host_field item parameter This patch adds test coverage for the new item parameter functionality in generate_marc_host_field, ensuring proper behavior with the EasyAnalyticalRecords system preference. Test coverage includes: - MARC21 item functionality with EasyAnalyticalRecords enabled/disabled - UNIMARC item functionality with proper biblionumber precedence - Item-specific subfields: $0 (biblionumber), $9 (itemnumber), $o (barcode) - Verification that item subfields are only added when EasyAnalyticalRecords is enabled - Backward compatibility when no item parameter is provided The tests verify that biblionumber takes precedence over control number in UNIMARC when using item-specific data, matching the original PrepHostMarcField behavior and ensuring compliance with the easy analytics workflow. To test: prove t/db_dependent/Koha/Biblio.t |