Bug 15332: Sent DateTime object to DBIx::Class, not formatted dates
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 18 Dec 2015 15:01:15 +0000 (15:01 +0000)
committerBrendan A Gallagher <brendan@bywatersolutions.com>
Wed, 30 Dec 2015 02:45:09 +0000 (02:45 +0000)
If formatted dates are sent to DBIx::Class on update/insert, the date
will be set as 0000-00-00 (except if the format is yyyy-mm-dd).

Test plan:
Use the batch patron modification tools to update the dateenrolled or
dateexpiry values for at least 1 patron.
Without this patch, the modified value will be updated to 0000-00-00,
with this patch, the correct value will be set.

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>

tools/modborrowers.pl

index 4172bc3..71588c0 100755 (executable)
@@ -35,6 +35,7 @@ use C4::Members::Attributes;
 use C4::Members::AttributeTypes qw/GetAttributeTypes_hashref/;
 use C4::Output;
 use List::MoreUtils qw /any uniq/;
+use Koha::DateUtils qw( dt_from_string );
 use Koha::List::Patron;
 
 my $input = new CGI;
@@ -261,6 +262,10 @@ if ( $op eq 'do' ) {
         $infos->{$field} = "" if grep { /^$field$/ } @disabled;
     }
 
+    for my $field ( qw( dateenrolled dateexpiry ) ) {
+        $infos->{$field} = dt_from_string($infos->{$field});
+    }
+
     my @attributes = $input->param('patron_attributes');
     my @attr_values = $input->param('patron_attributes_value');