our $lookup;
sub lookup {
- my ($t, $k, $v, $s ) = @_;
+ my ($t, $k, $v, $s, $default ) = @_;
my $hash;
my $key = "$t $k $v";
if ( exists $lookup->{$key} ) {
return unless length $s > 1;
if ( ! exists $lookup->{$key}->{$s} ) {
warn "ERROR: no $s in $key\n";
- return $s;
+ return $default;
} else {
$lookup->{$key}->{$s};
}
}
-# select all posts which have been read or unread
-my $sql = qq{
-select
- 'S' as categorycode,
- 'SRE' as branchcode,
- mbr_stud as cardnumber,
- prez_stud as surname,
- ime_stud as firstname,
- djevprezime as othernames,
- spol as sex,
- dat_rodj as dateofbirth,
--- ime_otac as ??,
--- ime_majka as ??,
- ozn_drzava_preb as country,
- post_ozn_preb as zipcode,
- post_ozn_preb as city,
- adr_preb as address,
- ozn_drzava_stan as B_country,
- post_ozn_stan as B_zipcode,
- post_ozn_stan as B_city,
- adr_stan as B_address,
- tel_stud as phone,
- dat_prava_do as dateexpiry
--- aktivan as ??,
-from studk
-};
-
-my $sth = $f->prepare($sql);
-$sth->execute;
-
our $insert;
sub insert {
my ( $table, $row ) = @_;
}
-while (my $row = $sth->fetchrow_hashref ) {
+sub borrowers {
+ my $sql = shift;
+ my $sth = $f->prepare($sql);
+ $sth->execute;
- warn dump $row;
+ $insert = undef;
- # poor man's (sqlite) outer join
- $row->{'country'} = lookup('drzava', 'ozn_drzava', 'naz_drzava', $row->{'country'} );
- $row->{'city'} = lookup('mjesto', 'post_ozn', 'naz_mjesto', $row->{'city'} );
+ while (my $row = $sth->fetchrow_hashref ) {
- $row->{'B_country'} = lookup('drzava', 'ozn_drzava', 'naz_drzava', $row->{'B_country'} );
- $row->{'B_city'} = lookup('mjesto', 'post_ozn', 'naz_mjesto', $row->{'B_city'} );
+ warn dump $row;
- foreach my $c ( grep { /date/ } keys %$row ) {
- $row->{$c} =~ s/(\d\d)\.(\d\d)\.(\d\d\d\d)/$3-$2-$1/;
- }
+ # poor man's (sqlite) outer join
+ $row->{'country'} = lookup('drzava', 'ozn_drzava', 'naz_drzava', $row->{'country'}, $row->{contry} );
+ $row->{'city'} = lookup('mjesto', 'post_ozn', 'naz_mjesto', $row->{'city'}, $row->{city} );
- $row->{sex} =~ s/\x{17D}/F/;
+ $row->{'B_country'} = lookup('drzava', 'ozn_drzava', 'naz_drzava', $row->{'B_country'}, $row->{B_country} );
+ $row->{'B_city'} = lookup('mjesto', 'post_ozn', 'naz_mjesto', $row->{'B_city'}, $row->{B_city} );
- $row->{city} ||= '?'; # not null
+ $row->{'email'} = lookup('clanost', 'ozn_vrclan||ozn_clan', 'email', $row->{'cardnumber'}, undef);
+ $row->{'emailpro'} = lookup('clanost', 'ozn_vrclan||ozn_clan', 'email_k', $row->{'cardnumber'}, undef);
- insert 'borrowers' => $row;
+ foreach my $c ( grep { /date/ } keys %$row ) {
+ $row->{$c} =~ s/(\d\d)\.(\d\d)\.(\d\d\d\d)/$3-$2-$1/;
+ }
+
+ $row->{sex} =~ s/\x{17D}/F/;
+
+ $row->{city} ||= '?'; # not null
+
+ my $jmbg = delete $row->{jmbg};
+ insert 'borrowers' => $row;
+
+ insert 'borrower_attributes' => {
+ borrowernumber => $k->{mysql_insertid},
+ code => 'JMBG',
+ attribute => $jmbg,
+ } if $jmbg;
+
+ }
}
+$k->do(qq{ delete from borrowers where borrowernumber > 57 });
+$k->do(qq{ delete from borrower_attributes where borrowernumber > 57 });
+
+borrowers qq{
+select
+ 'S' as categorycode,
+ 'SRE' as branchcode,
+ 'S' || mbr_stud as cardnumber,
+ prez_stud as surname,
+ ime_stud as firstname,
+ djevprezime as othernames,
+ spol as sex,
+ dat_rodj as dateofbirth,
+-- ime_otac as ??,
+-- ime_majka as ??,
+ ozn_drzava_preb as country,
+ post_ozn_preb as zipcode,
+ post_ozn_preb as city,
+ adr_preb as address,
+ ozn_drzava_stan as B_country,
+ post_ozn_stan as B_zipcode,
+ post_ozn_stan as B_city,
+ adr_stan as B_address,
+ tel_stud as phone,
+ dat_prava_do as dateexpiry,
+-- aktivan as ??,
+ jmbg_stud as jmbg
+from studk
+};
+
+borrowers qq{
+select
+ 'D' as categorycode,
+ 'SRE' as branchcode,
+ 'D' || sif_djel as cardnumber,
+ ime_djel as firstname,
+ prez_djel as surname,
+ ozn_titula as title, -- FIXME
+-- sif_orgjed (REF orgjed) as B_address,
+-- sif_strsp_djel as ??,
+ tel_djel as phonepro,
+ dat_prekid_ro as dateexpiry,
+-- tel_poduz as ??,
+ fax_poduz as fax,
+ ozn_drzava as country,
+ post_ozn as zipcode,
+ post_ozn as city,
+ adr_stan as address,
+ tel_stan as phone,
+ jmbg_djel as jmbg
+from djelat
+};
+
+borrowers qq{
+select
+ 'O' as categorycode,
+ 'SRE' as branchcode,
+ 'O' || mbr_clan as cardnumber,
+ ime_clan as firstname,
+ prez_clan as surname,
+ ozn_titula as title, -- ?
+ zvanje_clan as borrowernotes, -- ?
+-- krat_poduz (REF poduz) as B_address,
+ tel_poduz as B_phone,
+-- fax_poduz as ??,
+ ozn_drzava as country,
+ post_ozn as zipcode,
+ post_ozn as city,
+ adr_stan as address,
+ tel_stan as phone,
+-- aktivan as ??,
+ jmbg_clan as jmbg
+from clost
+};
+
$k->commit;