Bug 26268: (QA follow-up) Conditionally remove

This patch adds conditions to prevent the removal of items.paidfor if it
is populated and also adds the removal fo the marc_subfield_structure
row if it exists.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Martin Renvoize 2020-09-11 12:51:47 +01:00 committed by Jonathan Druart
parent 7d2b6a3f35
commit 1758388045

View file

@ -1,13 +1,43 @@
$DBversion = 'XXX'; # will be replaced by the RM
if( CheckVersion( $DBversion ) ) {
$DBversion = 'XXX'; # will be replaced by the RM
if ( CheckVersion($DBversion) ) {
if( column_exists( 'items', 'paidfor' ) ) {
$dbh->do(q|ALTER TABLE items DROP COLUMN paidfor|);
if ( column_exists( 'items', 'paidfor' ) ) {
my ($count) = $dbh->selectrow_array(
qq|
SELECT COUNT(*)
FROM items
WHERE paidfor IS NOT NULL AND paidfor <> ""
|
);
if ($count) {
warn "Warning - Cannot remove column items.paidfor. At least one value exists";
}
else {
$dbh->do(q|ALTER TABLE items DROP COLUMN paidfor|);
$dbh->do(q|
DELETE FROM marc_subfield_structure
WHERE tagfield = '952'
AND tagsubfield = 'x'
AND kohafield = 'items.paidfor'
|);
}
}
if ( column_exists( 'deleteditems', 'paidfor' ) ) {
$dbh->do(q|ALTER TABLE deleteditems DROP COLUMN paidfor|);
my ($count) = $dbh->selectrow_array(
qq|
SELECT COUNT(*)
FROM items
WHERE paidfor IS NOT NULL AND paidfor <> ""
|
);
if ($count) {
warn "Warning - Cannot remove column deleteditems.paidfor. At least one value exists";
}
else {
$dbh->do(q|ALTER TABLE deleteditems DROP COLUMN paidfor|);
}
}
NewVersion( $DBversion, 26268, "Remove items.paidfor field");
NewVersion( $DBversion, 26268, "Remove items.paidfor field" );
}