extend dateexpiry for users which exist in ferweb
[ferlib2koha.git] / ferweb-import-report.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use DBI;
5 use Data::Dump qw/dump/;
6 use Algorithm::CheckDigits;
7 use Text::Unaccent;
8
9 my $ferweb_csv = 'report_62836_1026_Aktivni_studenti.csv';
10 my $new_dateexpiry = '2013-10-31';
11
12 die "$ferweb_csv : $!" unless -r $ferweb_csv;
13
14 my $c = DBI->connect("dbi:CSV:","","", { RaiseError => 1, f_ext => '.csv', f_encoding => 'utf-8', csv_sep_char => ';' }) || die $dbi::errstr;
15 my $k = DBI->connect("dbi:mysql:database=koha_fer","","", { RaiseError => 1, AutoCommit => 0, mysql_enable_utf8 => 1 }) || die $DBI::errstr;
16
17 my $ferweb_table = $ferweb_csv;
18 $ferweb_table =~ s/\.csv//i;
19
20 my $s = $c->prepare(qq{
21 select * from $ferweb_table
22 });
23 $s->execute;
24
25 my $user_exists = $k->prepare(qq{
26 select * from borrowers where cardnumber = ?
27 });
28
29 my $insert_user = $k->prepare(qq{
30 insert into borrowers 
31 (cardnumber, categorycode, userid, firstname, surname, branchcode, email, dateexpiry)
32 values
33 (?,'S',?,?,?,'SRE',?,'2021-12-13')
34 });
35
36 my $update_dateexpiry = $k->prepare(qq{
37 update borrowers
38 set dateexpiry = ?
39 where cardnumber = ?
40 });
41
42 my $stat;
43
44 while( my $row = $s->fetchrow_hashref ) {
45
46 #       warn "# row = ",dump($row),$/;
47
48         $user_exists->execute( 'S' . $row->{jmbag} );
49
50         if ( $user_exists->rows ) {
51                 my $user = $user_exists->fetchrow_hashref;
52 #               warn "# koha borrower = ",dump($user);
53                 print "UPD ";
54                 $stat->{updated}++;
55                 $update_dateexpiry->execute( $new_dateexpiry, 'S' . $row->{jmbag} );
56         } elsif ( ! $row->{nick} ) {
57                 warn "NEW (without nick) ",dump($row);
58                 $stat->{new_no_nick}++;
59                 print "NC? ";
60         } else {
61                 warn "NEW: ",dump($row);
62                 $insert_user->execute( 'S' . $row->{jmbag}, $row->{nick}, $row->{ime}, $row->{prezime}, $row->{email} );
63                 $stat->{new}++;
64                 print "NEW ";
65         }
66
67         print join(" "
68                 , $row->{jmbag}
69                 , $row->{nick}
70                 , $row->{email}
71         ),$/;
72
73 }
74
75 $k->commit;
76
77 warn "# stat ", dump( $stat ),$/;