+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/;
+ $row->{$c} = undef if $row->{$c} eq ''; # XXX NULL dates istead of 0000-00-00
+ }
+
+ $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;
+
+ my $borrowernumber = $k->{mysql_insertid};
+
+ insert 'borrower_attributes' => {
+ borrowernumber => $borrowernumber,
+ code => 'JMBG',
+ attribute => $jmbg,
+ } if $jmbg;
+
+ foreach my $id ( 6,1,4,5,2 ) {
+
+ insert 'borrower_message_preferences' => {
+ borrowernumber => $borrowernumber,
+ message_attribute_id => $id,
+ days_in_advance => $id == 2 ? 0 : undef,
+ };
+
+ insert 'borrower_message_transport_preferences' => {
+ borrower_message_preference_id => $k->{mysql_insertid},
+ message_transport_type => 'email',
+ } if $id == 4;
+
+ }
+
+ }
+}
+
+sub sql {
+ my ($db,$sql) = @_;
+ foreach (split(/;/,$sql)) {
+ next if m/^\s*$/;
+ warn "# sql $_";
+ $db->do($_);
+ }
+}
+
+if ( $import->{borrowers} ) {
+
+sql $k => qq{
+delete from borrowers;
+alter table borrowers auto_increment = 1;
+delete from borrower_attributes;
+alter table borrower_attributes auto_increment = 1;
+delete from borrower_message_preferences where borrowernumber is not null ;
+alter table borrower_message_preferences auto_increment = 1;
+};
+
+
+borrowers qq{