| Lines 1364-1389
          sub anonymize {
      
      
        Link Here | 
        
          | 1364 |     @columns = grep { !/borrowernumber|branchcode|categorycode|^date|password|flags|updated_on|lastseen|lang|login_attempts|flgAnonymized/ } @columns; | 1364 |     @columns = grep { !/borrowernumber|branchcode|categorycode|^date|password|flags|updated_on|lastseen|lang|login_attempts|flgAnonymized/ } @columns; | 
        
          | 1365 |     push @columns, 'dateofbirth'; # add this date back in | 1365 |     push @columns, 'dateofbirth'; # add this date back in | 
        
          | 1366 |     foreach my $col (@columns) { | 1366 |     foreach my $col (@columns) { | 
          
            
              | 1367 |         if( $mandatory->{lc $col} ) { | 1367 |         $self->_anonymize_column($col, $mandatory->{lc $col} ); | 
            
              | 1368 |             my $str = $self->_anonymize_column($col); |  |  | 
            
              | 1369 |             $self->$col($str); | 
            
              | 1370 |         } else { | 
            
              | 1371 |             $self->$col(undef); | 
            
              | 1372 |         } | 
        
          | 1373 |     } | 1368 |     } | 
        
          | 1374 |     $self->flgAnonymized(1)->store; | 1369 |     $self->flgAnonymized(1)->store; | 
        
          | 1375 | } | 1370 | } | 
        
          | 1376 |  | 1371 |  | 
        
          | 1377 | sub _anonymize_column { | 1372 | sub _anonymize_column { | 
          
            
              | 1378 |     my ( $self, $col ) = @_; | 1373 |     my ( $self, $col, $mandatory ) = @_; | 
            
              | 1379 |     my $type = $self->_result->result_source->column_info($col)->{data_type}; | 1374 |     my $col_info = $self->_result->result_source->column_info($col); | 
            
              |  |  | 1375 |     my $type = $col_info->{data_type}; | 
            
              | 1376 |     my $nullable = $col_info->{is_nullable}; | 
            
              | 1377 |     my $val; | 
        
          | 1380 |     if( $type =~ /char|text/ ) { | 1378 |     if( $type =~ /char|text/ ) { | 
          
            
              | 1381 |         return Koha::Token->new->generate({ pattern => '\w{10}' }); | 1379 |         $val = $mandatory | 
            
              |  |  | 1380 |             ? Koha::Token->new->generate({ pattern => '\w{10}' }) | 
            
              | 1381 |             : $nullable | 
            
              | 1382 |             ? undef | 
            
              | 1383 |             : q{}; | 
        
          | 1382 |     } elsif( $type =~ /integer|int$|float|dec|double/ ) { | 1384 |     } elsif( $type =~ /integer|int$|float|dec|double/ ) { | 
          
            
              | 1383 |         return 0; | 1385 |         $val = $nullable ? undef : 0; | 
        
          | 1384 |     } elsif( $type =~ /date|time/ ) { | 1386 |     } elsif( $type =~ /date|time/ ) { | 
          
            
              | 1385 |         return dt_from_string; | 1387 |         $val = $nullable ? undef : dt_from_string; | 
        
          | 1386 |     } | 1388 |     } | 
            
              |  |  | 1389 |     $self->$col($val); | 
        
          | 1387 | } | 1390 | } | 
        
          | 1388 |  | 1391 |  | 
        
          | 1389 | =head2 Internal methods | 1392 | =head2 Internal methods | 
            
              | 1390 | -  |  |  |