/[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.2 by ravilov, Tue Jun 12 10:11:24 2001 UTC revision 1.5 by dpavlin, Tue Jun 19 09:27:42 2001 UTC
# Line 45  sub ConvertDate { Line 45  sub ConvertDate {
45                  # $dt = "NULL";                  # $dt = "NULL";
46                  $dt = undef;                  $dt = undef;
47          }          }
48          return $pgdbh->quote($dt);          return $dt;
49  }  }
50    
51  sub ConvertBool {  sub ConvertBool {
# Line 57  sub ConvertBool { Line 57  sub ConvertBool {
57    
58  sub ConvertString {  sub ConvertString {
59          my $str = join("\n", @_);          my $str = join("\n", @_);
60          $str =~ s/(^[\x00-\x1F]+|[\x00-\x1F]+$)//gs;          $str =~ s/[\x00-\x1F]+//gs;
61          $str =~ s/\s*\x8D?\s*\r?\s*\n\s*/\n/gs;          $str =~ s/\s*\x8D?\s*\r?\s*\n\s*/\n/gs;
62          $str =~ s/(^\s+|\s+$)//gs;          $str =~ s/(^\s+|\s+$)//gs;
63          $str =~ s/(^"|"$)//g;          $str =~ s/(^["']|["']$)//g;
64          # char recoding          # char recoding
65          #$str =~ s/đ/ð/g;          #$str =~ s/đ/ð/g;
66          #$str =~ s/č/è/g;          #$str =~ s/č/è/g;
67          #$str =~ s/ý/¾/g;          #$str =~ s/ý/¾/g;
68          $str =~ tr/{|`~}[\\@^]/¹ð¾èæ©Ð®ÈÆ/;          $str =~ tr/{|`~}[\\@^]/¹ð¾èæ©Ð®ÈÆ/;
69          return $pgdbh->quote($str);  #       return $pgdbh->quote($str);
70            return $str;
71  }  }
72    
73  sub Progress {  sub Progress {
# Line 81  sub Log { Line 82  sub Log {
82  }  }
83    
84  sub CondInsert {  sub CondInsert {
85          my ($table, $name, $key, $fields, $values) = @_;          my @values=pop @_;      # chop last argument which is array
86            my ($table, $name, $key, $fields) = @_;
87          my $sql = "SELECT $name FROM $table WHERE ($name = $key)";          my $sql = "SELECT $name FROM $table WHERE ($name = $key)";
88          my $cnt = $pgdbh->do($sql);          my $cnt = $pgdbh->do($sql);
89          return 0 if ($cnt > 0);          return 0 if ($cnt > 0);
90          $sql = "INSERT INTO $table $fields VALUES $values";          return 0 if ($#values == 0);
91          return $pgdbh->do($sql);          my @valtpl;
92            for (my $i=0; $i<=$#values; $i++) { push @valtpl,"?" }
93            $sql = "INSERT INTO $table $fields VALUES (".join(",",@valtpl).")";
94            my $sth = $pgdbh->prepare($sql);
95            my $ret = $sth->execute(@values);
96            my $err = $pgdbh->errstr;
97            print &Log("[$sql] [".join(",",@values)."]".$err) if ($err);
98            return $ret;
99  }  }
100    
101  sub tblATK {  sub tblATK {
# Line 164  sub tblINN { Line 173  sub tblINN {
173    
174  sub tblLijek {  sub tblLijek {
175          my ($table, $fields, $data) = @_;          my ($table, $fields, $data) = @_;
176          # ...          my $count = 0;
177          return 0;          my $sth = $pgdbh->prepare("INSERT INTO lijekovi (sifra, naziv, sif_atk, sif_inn, sif_proizvodjac, pakovanje, sastav_1, sastav_2, sif_nacin_izdavanja, sif_list_fond, sif_trudnoca, sif_dojencad, sif_vozac, sif_droga, cijena, sif_med, razno, glav_razno, djelovanje, indikacije, oprez) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
178            unless ($sth) {
179                    print &Log("[$table-prepare] ".$pgdbh->errstr);
180                    return 0;
181            }
182            my $refresh = 0;
183            foreach my $row (@$data) {
184                    my ($sifra, $nsifra, $naziv, $sif_proizvodjac, $naz_proizvodjac,
185                            $drzava, $zastupnistvo, $mjesto, $ulica_i_broj, $sif_inn,
186                            $naz_inn, $sif_atk0, $naz_atk0, $sif_atk, $naz_atk,
187                            $pakovanje, $sastav_1, $sastav_2, $sif_nacin_izdavanja,
188                            $naz_nacin_izdavanja, $sif_list_fond, $naz_list_fond,
189                            $sif_trudnoca, $naz_trudnoca, $sif_dojencad, $naz_dojencad,
190                            $sif_vozac, $naz_vozac, $sif_droga, $cijena, $razno,
191                            $sif_med, $glav_razno, $prazno, $djelovanje, $indikacije,
192                            $oprez, $tel, $fax) = @$row;
193                    $sifra += 0;    # force numeric
194                    $naziv = &ConvertString($naziv);
195                    $sif_proizvodjac += 0;  # force numeric
196                    $naz_proizvodjac = &ConvertString($naz_proizvodjac);
197                    $drzava = &ConvertString($drzava);
198                    $zastupnistvo = &ConvertString($zastupnistvo);
199                    $mjesto = &ConvertString($mjesto);
200                    $ulica_i_broj = &ConvertString($ulica_i_broj);
201                    $sif_inn = &ConvertString($sif_inn);
202                    $naz_inn = &ConvertString($naz_inn);
203                    $sif_atk = &ConvertString($sif_atk);
204                    $naz_atk = &ConvertString($naz_atk);
205                    $pakovanje = &ConvertString($pakovanje);
206                    $sastav_1 = &ConvertString($sastav_1);
207                    $sastav_2 = &ConvertString($sastav_2);
208                    $sif_nacin_izdavanja = &ConvertString($sif_nacin_izdavanja);
209                    $naz_nacin_izdavanja = &ConvertString($naz_nacin_izdavanja);
210                    $sif_list_fond = &ConvertString($sif_list_fond);
211                    $naz_list_fond = &ConvertString($naz_list_fond);
212                    $sif_trudnoca = &ConvertString($sif_trudnoca);
213                    $naz_trudnoca = &ConvertString($naz_trudnoca);
214                    $sif_dojencad = &ConvertString($sif_dojencad);
215                    $naz_dojencad = &ConvertString($naz_dojencad);
216                    $sif_vozac = &ConvertString($sif_vozac);
217                    $naz_vozac = &ConvertString($naz_vozac);
218                    $sif_droga = &ConvertString($sif_droga);
219                    $cijena = &ConvertString($cijena);
220                    $razno = &ConvertString($razno);
221                    $sif_med += 0;  # force numeric
222                    $glav_razno = &ConvertString($glav_razno);
223                    $djelovanje = &ConvertString($djelovanje);
224                    $indikacije = &ConvertString($indikacije);
225                    $oprez = &ConvertString($oprez);
226                    $tel = &ConvertString($tel);
227                    $fax = &ConvertString($fax);
228                    CondInsert("atk_inn", "sifra", $sif_atk,
229                            "(sifra, naziv, razno)", ($sif_atk, $naz_atk, ''));
230                    CondInsert("atk_inn", "sifra", $sif_inn,
231                            "(sifra, naziv, razno)", ($sif_inn, $naz_inn, ''));
232                    CondInsert("proizvodjaci", "sifra", $sif_proizvodjac,
233                            "(sifra, naziv, drzava, zastupnistvo, mjesto, zip, ulica_i_broj, razno, telefon, fax)",
234                            ($sif_proizvodjac, $naz_proizvodjac, $drzava, $zastupnistvo, $mjesto, '', $ulica_i_broj, '', $tel, $fax));
235                    CondInsert("nacin_izdavanja", "sifra", $sif_nacin_izdavanja,
236                            "(sifra, opis)", ($sif_nacin_izdavanja, $naz_nacin_izdavanja));
237                    CondInsert("list_fond", "sifra", $sif_list_fond,
238                            "(sifra, opis)", ($sif_list_fond, $naz_list_fond));
239                    CondInsert("trudnoca", "sifra", $sif_trudnoca,
240                            "(sifra, opis)", ($sif_trudnoca, $naz_trudnoca));
241                    CondInsert("dojencad", "sifra", $sif_dojencad,
242                            "(sifra, opis)", ($sif_dojencad, $naz_dojencad));
243                    CondInsert("vozac", "sifra", $sif_vozac,
244                            "(sifra, opis)", ($sif_vozac, $naz_vozac));
245                    CondInsert("droga", "sifra", $sif_droga,
246                            "(sifra, opis)", ($sif_droga, ''));
247                    my $tmp = $sth->execute($sifra, $naziv, $sif_atk, $sif_inn,
248                            $sif_proizvodjac, $pakovanje, $sastav_1, $sastav_2,
249                            $sif_nacin_izdavanja, $sif_list_fond, $sif_trudnoca,
250                            $sif_dojencad, $sif_vozac, $sif_droga, $cijena,
251                            $sif_med, $razno, $glav_razno, $djelovanje,
252                            $indikacije, $oprez);
253                    unless (defined($tmp)) {
254                            print &Log("[$table-execute] ".$pgdbh->errstr);
255                            next;
256                    }
257                    $tmp = 0 if ($tmp < 0);
258                    $count += $tmp;
259                    if (++$refresh >= $refresh_timeout) {
260                            $refresh = 0;
261                            print Progress($count, scalar(@$data));
262                    }
263            }
264            $sth->finish();
265            return $count;
266  }  }
267    
268  sub tblProiz {  sub tblProiz {
# Line 221  sub tblVodeca { Line 318  sub tblVodeca {
318                  my $tmp = 0;                  my $tmp = 0;
319                  if ($code eq "06") {                  if ($code eq "06") {
320                          $tmp += CondInsert("nacin_izdavanja", "sifra", $sifra,                          $tmp += CondInsert("nacin_izdavanja", "sifra", $sifra,
321                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
322                  } elsif ($code eq "07") {                  } elsif ($code eq "07") {
323                          $tmp += CondInsert("list_fond", "sifra", $sifra,                          $tmp += CondInsert("list_fond", "sifra", $sifra,
324                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
325                  } elsif ($code eq "08") {                  } elsif ($code eq "08") {
326                          $tmp += CondInsert("trudnoca", "sifra", $sifra,                          $tmp += CondInsert("trudnoca", "sifra", $sifra,
327                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
328                  } elsif ($code eq "09") {                  } elsif ($code eq "09") {
329                          $tmp += CondInsert("dojencad", "sifra", $sifra,                          $tmp += CondInsert("dojencad", "sifra", $sifra,
330                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
331                  } elsif ($code eq "10") {                  } elsif ($code eq "10") {
332                          $tmp += CondInsert("vozac", "sifra", $sifra,                          $tmp += CondInsert("vozac", "sifra", $sifra,
333                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
334                  } elsif ($code eq "11") {                  } elsif ($code eq "11") {
335                          $tmp += CondInsert("droga", "sifra", $sifra,                          $tmp += CondInsert("droga", "sifra", $sifra,
336                                  "(sifra, opis)", "($sifra, $naziv)");                                  "(sifra, opis)", ($sifra, $naziv));
337                  } else {                  } else {
338                          # UNKNOWN CODE!!!                          # UNKNOWN CODE!!!
339                          print &Log("[WARNING: unknown code \"$code\"]");                          print &Log("[WARNING: unknown code \"$code\"]");

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

  ViewVC Help
Powered by ViewVC 1.1.26