Bug 26894: Handle subfield 0 and delete empty fields
authorNick Clemens <nick@bywatersolutions.com>
Mon, 2 Nov 2020 12:05:47 +0000 (12:05 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 12 Jan 2021 15:02:35 +0000 (16:02 +0100)
commit77f3d48dee24ad51dfbed65922712064dedff1ff
treefe881bb26c872e75d0da5c4451712d273b84f7d4
parent4253eb91a6a21d301178c1a7b58301cc34b013b9
Bug 26894: Handle subfield 0 and delete empty fields

This patch corrects handling of subfield 0 when copying/moving. Before these
patches copying from subfield 0 would copy the entire field.

We also correct an error that if moving a single subfield, we can leave behind empty
fields with no subfields. They should be deleted.

To test:
1 - Define a new MARC Modification template with actions:
        Delete field 100$0
        Add new field 100$0 with value Test
        Update existing or add new field 100$0 with value TestUpdated
        Move field 100$0 to 600$0
        Copy field 600$0 to 100$0
        Copy and replace field 245$0 to 700$0
2 - Define a new record like:
    LDR 00334nam a22001217a 4500
    003 ff
    005 20201102111604.0
    008 201102b        xxu||||| |||| 00| 0 eng d
    040 _ _ ‡cvsd
    100 1 _ ‡012345‡aKnuth, Donal Ervin‡d1938
    245 _ _ ‡012345‡aThe aty of computer programming‡cDonald E. Knuth
    650 _ 0 ‡042‡aComputer programming‡9462
3 - Modify this record using the template above
4 - Note that entier 245 is copied to 700, same for 600 field
5 - Apply patch
6 - Now only subfields 0 are copied

Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/SimpleMARC.pm
t/db_dependent/MarcModificationTemplates.t