From ff711c48cfa02c7b6ab09fe22f699a872420db8d Mon Sep 17 00:00:00 2001 From: Magnus Enger Date: Fri, 6 Jan 2017 15:27:04 +0100 Subject: [PATCH] Bug 17778 - Make "Earliest Registered Date" in OAI dynamic This was hardcoded to 0001-01-01. To test: - Make sure you have a couple of records, with different timestamps - Enable OAI-PMH - Check http://localhost:2201/cgi-bin/koha/oai.pl?verb=Identify and verify that "Earliest Registered Date" is 0001-01-01 - Apply the patch - Re-check the "Earliest Registered Date" and verify that it is now the lowest timestamp in your biblio table - Manipulate the timestamps and verify that "Earliest Registered Date" changes accordingly - Sign off! Signed-off-by: Owen Leonard Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- Koha/OAI/Server/Identify.pm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Koha/OAI/Server/Identify.pm b/Koha/OAI/Server/Identify.pm index 3ab2188956..bddfc29e9c 100644 --- a/Koha/OAI/Server/Identify.pm +++ b/Koha/OAI/Server/Identify.pm @@ -34,7 +34,7 @@ sub new { adminEmail => C4::Context->preference("KohaAdminEmailAddress"), MaxCount => C4::Context->preference("OAI-PMH:MaxCount"), granularity => 'YYYY-MM-DD', - earliestDatestamp => '0001-01-01', + earliestDatestamp => _get_earliest_datestamp() || '0001-01-01', deletedRecord => C4::Context->preference("OAI-PMH:DeletedRecord") || 'no', ); @@ -49,4 +49,18 @@ sub new { return $self; } +# Find the earliest timestamp in the biblio table. If this table is empty, undef +# will be returned and we will report the fallback 0001-01-01. +sub _get_earliest_datestamp { + + my $dbh = C4::Context->dbh; + + my $order_sth = $dbh->prepare( "SELECT DATE(MIN(timestamp)) AS earliest FROM biblio" ); + $order_sth->execute(); + my $res = $order_sth->fetchrow_hashref(); + + return $res->{'earliest'}; + +} + 1; -- 2.39.5