+our $insert;
+sub insert {
+ my ( $table, $row ) = @_;
+ $insert->{$table} ||= $k->prepare(
+ "insert into $table ("
+ . join(',', keys %$row)
+ . ") values ("
+ . join(',', map { '?' } keys %$row )
+ . ")"
+ );
+
+ foreach my $c ( grep { /(date|timestamp)/ } keys %$row ) {
+ $row->{$c} =~ s/^(\d\d)\.(\d\d)\.(\d\d\d\d)/$3-$2-$1/;
+ }
+
+ $insert->{$table}->execute( values %$row );
+ warn "# inserted $table ", dump $row;
+
+}
+
+sub borrowers {
+ my $sql = shift;
+ my $sth = $f->prepare($sql);
+ $sth->execute;
+
+ $insert = undef;
+
+ while (my $row = $sth->fetchrow_hashref ) {
+
+ warn dump $row;
+
+ # poor man's (sqlite) outer join
+ $row->{'country'} = lookup($f, 'drzava', 'ozn_drzava', 'naz_drzava', $row->{'country'}, $row->{contry} );
+ $row->{'city'} = lookup($f, 'mjesto', 'post_ozn', 'naz_mjesto', $row->{'city'}, $row->{city} );
+
+ $row->{'B_country'} = lookup($f, 'drzava', 'ozn_drzava', 'naz_drzava', $row->{'B_country'}, $row->{B_country} );
+ $row->{'B_city'} = lookup($f, 'mjesto', 'post_ozn', 'naz_mjesto', $row->{'B_city'}, $row->{B_city} );
+
+ $row->{'B_email'} = lookup($f, 'clanost', 'ozn_vrclan||ozn_clan', 'email', $row->{'cardnumber'}, undef);
+ $row->{'emailpro'} = lookup($f, 'clanost', 'ozn_vrclan||ozn_clan', 'email_k', $row->{'cardnumber'}, undef);
+
+ $row->{'email'} = lookup($u, 'users', 'jmbag', 'email', substr($row->{cardnumber},1), undef); # $row->{B_email} || $row->{emailpro} )
+
+ $row->{'userid'} = lookup($u, 'users', 'jmbag', 'nick', substr($row->{cardnumber},1), $row->{cardnumber});
+
+ $row->{sex} =~ s/\x{17D}/F/;
+
+ $row->{city} ||= '?'; # not null
+
+ $row->{borrowernotes} = lookup($f, 'clanorg', 'ozn_vrclan||ozn_clan', 'napom_clan', $row->{'cardnumber'}, undef);
+
+ $row->{title} = lookup($f, 'titula', 'ozn_titula', 'opis_titula', $row->{title}, $row->{title});
+
+ $row->{dateexpiry} ||= '01.01.2020'; # next revision
+
+ my $jmbg = delete $row->{jmbg};
+
+ insert 'borrowers' => $row;
+
+ insert 'borrower_attributes' => {
+ borrowernumber => $k->{mysql_insertid},
+ code => 'JMBG',
+ attribute => $jmbg,
+ } if $jmbg;
+
+ }
+}
+
+if ( $import->{borrowers} ) {
+
+$k->do(qq{ delete from borrowers where borrowernumber > 57 });
+$k->do(qq{ delete from borrower_attributes where borrowernumber > 57 });
+
+borrowers qq{