View | Details | Raw Unified | Return to bug 31143
Collapse All | Expand All

(-)a/misc/cronjobs/fix_invalid_item_dates.pl (+58 lines)
Line 0 Link Here
1
#!/usr/bin/perl
2
3
# This file is part of Koha.
4
#
5
# Koha is free software; you can redistribute it and/or modify it
6
# under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3 of the License, or
8
# (at your option) any later version.
9
#
10
# Koha is distributed in the hope that it will be useful, but
11
# WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18
use Modern::Perl;
19
20
use C4::Context;
21
use C4::Log qw(cronlogaction);
22
use Getopt::Long qw( GetOptions );
23
use Pod::Usage qw( pod2usage );
24
use Koha::Logger;
25
use Koha::Items;
26
use Koha::DateUtils qw( dt_from_string );
27
use Koha::Script -cron;
28
use Data::Dumper;
29
30
my $verbose = 0;
31
my $doit = 0;
32
33
GetOptions(
34
    'v|verbose'       => \$verbose,
35
    'c|confirm'       => \$doit,
36
);
37
38
my $count = 0;
39
40
# search items that have date fields that are 0000-00-00
41
foreach my $date_type (qw(dateaccessioned replacementpricedate datelastborrowed datelastseen damaged_on itemlost_on withdrawn_on deleted_on onloan)) {
42
    my $items = Koha::Items->search( { $date_type=>'0000-00-00' } );
43
44
        while (my $item = $items->next()) {
45
            $count++;
46
            if ($doit) { # if confirm flag was run with cronjob
47
                $item->$date_type(undef)->store();
48
            }
49
        }
50
51
}
52
53
if ($verbose) {
54
  print "$count invalid item dates found\n";
55
  if ($doit) {
56
    print "$count invalid item dates fixed\n"
57
  }
58
}
(-)a/misc/maintenance/search_for_data_inconsistencies.pl (-1 / +20 lines)
Lines 345-350 use C4::Biblio qw( GetMarcFromKohaField ); Link Here
345
345
346
}
346
}
347
347
348
{
349
    my $count = 0;
350
351
    # search items that have date fields that are 0000-00-00
352
    foreach my $date_type (qw(dateaccessioned replacementpricedate datelastborrowed datelastseen damaged_on itemlost_on withdrawn_on deleted_on onloan)) {
353
        my $items = Koha::Items->search( { $date_type=>'0000-00-00' } );
354
        while (my $item = $items->next()) {
355
            $count++;
356
        }
357
    }
358
359
    new_section("$count invalid item dates found");
360
361
    if ($count > 0) {
362
        new_hint("You may change the date with script: misc/cronjobs/fix_invalid_item_dates.pl (-c -v)");
363
    }
364
365
}
366
348
{
367
{
349
    my @loop_borrowers_relationships;
368
    my @loop_borrowers_relationships;
350
    my @guarantor_ids = Koha::Patron::Relationships->_resultset->get_column('guarantor_id')->all();
369
    my @guarantor_ids = Koha::Patron::Relationships->_resultset->get_column('guarantor_id')->all();
Lines 470-474 Catch data inconsistencies in Koha database Link Here
470
* Invalid MARCXML in bibliographic records
489
* Invalid MARCXML in bibliographic records
471
* Patrons with invalid category types due to lower and upper age limits
490
* Patrons with invalid category types due to lower and upper age limits
472
* Patrons with 0000-00-00 dates in fields dateofbirth, dateenrolled, dateexpiry, date_renewed, lastseen, updated_on, debarred
491
* Patrons with 0000-00-00 dates in fields dateofbirth, dateenrolled, dateexpiry, date_renewed, lastseen, updated_on, debarred
492
* Items with 0000-00-00 dates in fields dateaccessioned, replacementpricedate, datelastborrowed, datelastseen, damaged_on, itemlost_on, withdrawn_on, deleted_on, onloan
473
493
474
=cut
494
=cut
475
- 

Return to bug 31143