/[registar]/convert.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /convert.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by ravilov, Tue Jun 12 08:38:53 2001 UTC revision 1.2 by ravilov, Tue Jun 12 10:11:24 2001 UTC
# Line 3  use strict; Line 3  use strict;
3  $| = 1;  $| = 1;
4    
5  my $debug = 0;  my $debug = 0;
6  my $raise = 1;  my $raise = 0;
7  my $log = "log";  my $log = "log";
8  my $xbase = "./registar";  my $xbase = "./registar";
9  my $db = "registar";  my $db = "registar";
10    my $refresh_timeout = 10;
11    
12  open(LOG, ">$log") || die "can't open log: $!";  open(LOG, ">$log") || die "can't open log: $!";
13    
# Line 15  my $xbdbh = DBI->connect("DBI:XBase:$xba Line 16  my $xbdbh = DBI->connect("DBI:XBase:$xba
16          { 'RaiseError' => $raise }) || die $DBI::errstr;          { 'RaiseError' => $raise }) || die $DBI::errstr;
17  my $pgdbh = DBI->connect("DBI:Pg:dbname=$db", "dpavlin", "",  my $pgdbh = DBI->connect("DBI:Pg:dbname=$db", "dpavlin", "",
18          { 'RaiseError' => $raise }) || die $DBI::errstr;          { 'RaiseError' => $raise }) || die $DBI::errstr;
19  # $SIG{'__WARN__'} = sub { };   # inhibit DBI warnings.  $SIG{'__WARN__'} = sub { };     # inhibit DBI warnings.
20    
21  my @tables = ();  my @tables = ();
22  if (@ARGV > 0) {  if (@ARGV > 0) {
# Line 79  sub Log { Line 80  sub Log {
80          return "$msg\n";          return "$msg\n";
81  }  }
82    
83    sub CondInsert {
84            my ($table, $name, $key, $fields, $values) = @_;
85            my $sql = "SELECT $name FROM $table WHERE ($name = $key)";
86            my $cnt = $pgdbh->do($sql);
87            return 0 if ($cnt > 0);
88            $sql = "INSERT INTO $table $fields VALUES $values";
89            return $pgdbh->do($sql);
90    }
91    
92  sub tblATK {  sub tblATK {
93          my ($table, $fields, $data) = @_;          my ($table, $fields, $data) = @_;
94          my $count = 0;          my $count = 0;
# Line 101  sub tblATK { Line 111  sub tblATK {
111                  $tmp ||= 0;                  $tmp ||= 0;
112                  $tmp = 0 if ($tmp < 0);                  $tmp = 0 if ($tmp < 0);
113                  $count += $tmp;                  $count += $tmp;
114                  if (++$refresh >= 20) {                  if (++$refresh >= $refresh_timeout) {
115                          $refresh = 0;                          $refresh = 0;
116                          print Progress($count, scalar(@$data));                          print Progress($count, scalar(@$data));
117                  }                  }
# Line 139  sub tblDFZupa { Line 149  sub tblDFZupa {
149                  }                  }
150                  $tmp = 0 if ($tmp < 0);                  $tmp = 0 if ($tmp < 0);
151                  $count += $tmp;                  $count += $tmp;
152                  if (++$refresh >= 20) {                  if (++$refresh >= $refresh_timeout) {
153                          $refresh = 0;                          $refresh = 0;
154                          print Progress($count, scalar(@$data));                          print Progress($count, scalar(@$data));
155                  }                  }
# Line 181  sub tblProiz { Line 191  sub tblProiz {
191                  $tel = &ConvertString($tel);                  $tel = &ConvertString($tel);
192                  $fax = &ConvertString($fax);                  $fax = &ConvertString($fax);
193                  my $tmp = $sth->execute($sifra, $naziv, $drzava,                  my $tmp = $sth->execute($sifra, $naziv, $drzava,
194                          $zastupnistvo, $zip, $mjesto, $ulica_i_broj,                          $zastupnistvo, $mjesto, $zip, $ulica_i_broj,
195                          $razno, $tel, $fax);                          $razno, $tel, $fax);
196                  unless (defined($tmp)) {                  unless (defined($tmp)) {
197                          print &Log("[$table-execute] ".$pgdbh->errstr);                          print &Log("[$table-execute] ".$pgdbh->errstr);
# Line 189  sub tblProiz { Line 199  sub tblProiz {
199                  }                  }
200                  $tmp = 0 if ($tmp < 0);                  $tmp = 0 if ($tmp < 0);
201                  $count += $tmp;                  $count += $tmp;
202                  if (++$refresh >= 20) {                  if (++$refresh >= $refresh_timeout) {
203                          $refresh = 0;                          $refresh = 0;
204                          print Progress($count, scalar(@$data));                          print Progress($count, scalar(@$data));
205                  }                  }
206          }          }
207          $sth->finish();          $sth->finish();
208          return 0;          return $count;
209  }  }
210    
211  sub tblVodeca {  sub tblVodeca {
212          my ($table, $fields, $data) = @_;          my ($table, $fields, $data) = @_;
213          my $count = 0;          my $count = 0;
         my $sth = $pgdbh->prepare("INSERT INTO vodeca (sifra, naziv) VALUES (?, ?)");  
         unless ($sth) {  
                 print &Log("[$table-prepare] ".$pgdbh->errstr);  
                 return 0;  
         }  
214          my $refresh = 0;          my $refresh = 0;
215          foreach my $row (@$data) {          foreach my $row (@$data) {
216                  my ($sifra, $naziv) = @$row;                  my ($sifra, $naziv) = @$row;
217                    $sifra =~ s/^(..)//;
218                    my $code = $1;
219                    $sifra = &ConvertString($sifra);
220                  $naziv = &ConvertString($naziv);                  $naziv = &ConvertString($naziv);
221                  $drzava = &ConvertString($drzava);                  my $tmp = 0;
222                  $zastupnistvo = &ConvertString($zastupnistvo);                  if ($code eq "06") {
223                  $zip = &ConvertString($zip);                          $tmp += CondInsert("nacin_izdavanja", "sifra", $sifra,
224                  $mjesto = &ConvertString($mjesto);                                  "(sifra, opis)", "($sifra, $naziv)");
225                  $ulica_i_broj = &ConvertString($ulica_i_broj);                  } elsif ($code eq "07") {
226                  $razno = &ConvertString($razno);                          $tmp += CondInsert("list_fond", "sifra", $sifra,
227                  $tel = &ConvertString($tel);                                  "(sifra, opis)", "($sifra, $naziv)");
228                  $fax = &ConvertString($fax);                  } elsif ($code eq "08") {
229                  my $tmp = $sth->execute($sifra, $naziv, $drzava,                          $tmp += CondInsert("trudnoca", "sifra", $sifra,
230                          $zastupnistvo, $zip, $mjesto, $ulica_i_broj,                                  "(sifra, opis)", "($sifra, $naziv)");
231                          $razno, $tel, $fax);                  } elsif ($code eq "09") {
232                  unless (defined($tmp)) {                          $tmp += CondInsert("dojencad", "sifra", $sifra,
233                          print &Log("[$table-execute] ".$pgdbh->errstr);                                  "(sifra, opis)", "($sifra, $naziv)");
234                          next;                  } elsif ($code eq "10") {
235                            $tmp += CondInsert("vozac", "sifra", $sifra,
236                                    "(sifra, opis)", "($sifra, $naziv)");
237                    } elsif ($code eq "11") {
238                            $tmp += CondInsert("droga", "sifra", $sifra,
239                                    "(sifra, opis)", "($sifra, $naziv)");
240                    } else {
241                            # UNKNOWN CODE!!!
242                            print &Log("[WARNING: unknown code \"$code\"]");
243                  }                  }
244                  $tmp = 0 if ($tmp < 0);                  $tmp = 0 if ($tmp < 0);
245                  $count += $tmp;                  $count += $tmp;
246                  if (++$refresh >= 20) {                  if (++$refresh >= $refresh_timeout) {
247                          $refresh = 0;                          $refresh = 0;
248                          print Progress($count, scalar(@$data));                          print Progress($count, scalar(@$data));
249                  }                  }
250          }          }
251          $sth->finish();          return $count;
         # ...  
         return 0;  
252  }  }
253    
254  my (%dbf) = (  my (%dbf) = (
# Line 294  foreach my $table (@tables) { Line 308  foreach my $table (@tables) {
308  close(LOG);  close(LOG);
309  $xbdbh->disconnect();  $xbdbh->disconnect();
310  $pgdbh->disconnect();  $pgdbh->disconnect();
311  print "Log left in file \"$log\"\n";  print "Log left in file \"$log\".\n";
312  exit $?;  exit $?;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.26