X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=ferlib2koha.pl;h=e702ddb8a769778fc13dbefdcc11587dcf4f30a7;hb=4429c343d51528fef3b1385aa65225dcdcc39ced;hp=aa6ef6222ffdffde26ee2a473e322e8065a9a77b;hpb=67efd4ac492e64d35a93e3718cd6b72b228584fb;p=ferlib2koha.git diff --git a/ferlib2koha.pl b/ferlib2koha.pl index aa6ef62..e702ddb 100755 --- a/ferlib2koha.pl +++ b/ferlib2koha.pl @@ -5,11 +5,13 @@ use DBI; use Data::Dump qw/dump/; use Algorithm::CheckDigits; +# sudo apt-get install libdbd-sqlite3-perl libdbd-csv-perl + $|++; my $import = { borrowers => $ENV{FULL} || 0, - issues => $ENV{FULL} || 1, + issues => $ENV{FULL} || 0, reserves => $ENV{FULL} || 0, barcode => $ENV{FULL} || 0, }; @@ -105,19 +107,52 @@ sub borrowers { insert 'borrowers' => $row; + my $borrowernumber = $k->{mysql_insertid}; + insert 'borrower_attributes' => { - borrowernumber => $k->{mysql_insertid}, + 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} ) { -$k->do(qq{ delete from borrowers where borrowernumber > 57 }); -$k->do(qq{ delete from borrower_attributes where borrowernumber > 57 }); +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{ select @@ -241,32 +276,56 @@ select from posud }; -$k->do('delete from old_issues'); -$k->do('delete from issues'); +sql $k => qq{ +delete from old_issues; +alter table old_issues auto_increment = 1; +delete from issues; +alter table issues auto_increment = 1; +}; issues 'old_issues' => qq{$posud_sql where datum_vra != ''}; issues 'issues' => qq{$posud_sql where datum_vra == ''}; -$k->do($_) foreach split(/;/, qq{ +sql $k => qq{ update items join issues on items.itemnumber=issues.itemnumber set onloan = date_due, datelastborrowed = issuedate ; update items set datelastseen = datelastborrowed ; +create temporary table old_returndate as +select itemnumber,max(returndate) as returndate +from old_issues +group by itemnumber,returndate +; +update items +join old_returndate on items.itemnumber=old_returndate.itemnumber +set datelastseen = returndate +where returndate > datelastseen or datelastseen is null +; +create temporary table old_issuedate as +select itemnumber,max(issuedate) as issuedate +from old_issues +group by itemnumber,issuedate +; update items -join old_issues on items.itemnumber=old_issues.itemnumber -set datelastseen = returndate where returndate > datelastseen +join old_issuedate on items.itemnumber=old_issuedate.itemnumber +set datelastborrowed = issuedate +where datelastborrowed is null ; update old_issues set timestamp = returndate -}); +}; }; # import->{issues} if ( $import->{reserves} ) { -$k->do(qq{ delete from reserves where borrowernumber > 100 }); -$k->do(qq{ delete from old_reserves where borrowernumber > 100 }); +sql $k => qq{ +delete from reserves; +alter table reserves auto_increment = 1; +delete from old_reserves; +alter table old_reserves auto_increment = 1; +}; sub reserves { my ($table, $sql) = @_; @@ -331,6 +390,28 @@ while( my $row = $sth->fetchrow_hashref ) { } # import->{barcode} +sub aqbooksellers { + my ($sql) = @_; + my $sth = $f->prepare($sql); + $sth->execute; + + $insert = undef; + while (my $row = $sth->fetchrow_hashref ) { + insert 'aqbooksellers' => $row; + } +} + +sql $k => qq{ +delete from aqbooksellers; +alter table aqbooksellers auto_increment = 1; +}; +aqbooksellers qq{ +select + ozn_nacdob as notes, + opis_nacdob as name, + 'HRK' as currency +from nacdob +}; $k->commit;