]> git.koha-community.org Git - koha.git/commit
Bug 27509: Prevent cn_sort value to be lost when editing items
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 21 Jan 2021 16:21:15 +0000 (17:21 +0100)
committerAndrew Fuerste-Henry <andrew@bywatersolutions.com>
Fri, 22 Jan 2021 14:45:20 +0000 (14:45 +0000)
commitb82e537485383da22e5ccad9adbde04bad351af4
tree44eb11793a8bd1d73e3beba04013c20b9995146e
parentba91d3ee51f6acb23706d39f17ac8d688bc0227c
Bug 27509: Prevent cn_sort value to be lost when editing items

This is a bit dirty, cn_sort is not passed from the UI but built in
Koha::Item->store depending on the values of itemcallnumber and
cn_source.
It must be updated only if one of those 2 attributes are modified.
The problem is that, as it's not passed, $item->{cn_sort} does not exist,
and set_or_blank will set it to undef.
The trick here is to backup the value before set_or_blank and set it
back to the item object.
Another solution would be to force the processing of cn_sort each time
we call Koha::Item->store. I don't think that's a good idea.

Test plan:
- Create a new item with a cn_source value and an itemcallnumber value
- write a quick report to see the cn_sort value: SELECT cn_sort FROM items WHERE itemnumber=your itemnumber, see your item has a cn_sort value
- edit your item and save it without changing either the cn_source of the itemcallnumber
- run your report again, cn_sort is not modified
- edit your item, changing either the cn_source or itemcallnumber
- run report again, cn_sort is modified as expected

Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
C4/Items.pm
t/db_dependent/Items.t