X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/6bb3a6152b33e37736b3e5ed855a830182ae0193..87eebe6:/sql/Pg-upgrade2/erzeugnisnummern.pl diff --git a/sql/Pg-upgrade2/erzeugnisnummern.pl b/sql/Pg-upgrade2/erzeugnisnummern.pl index 11ba2ef84..81c024160 100644 --- a/sql/Pg-upgrade2/erzeugnisnummern.pl +++ b/sql/Pg-upgrade2/erzeugnisnummern.pl @@ -1,31 +1,27 @@ # @tag: erzeugnisnummern # @description: Erzeugnisnummern und Artikelnummern sollen eindeutig sein. # @depends: release_3_0_0 -# @charset: utf-8 +package SL::DBUpgrade2::erzeugnisnummern; -use utf8; use strict; -use SL::Locale; - -die("This script cannot be run from the command line.") unless ($main::form); +use utf8; -sub mydberror { - my ($msg) = @_; - die($dbup_locale->text("Database update error:") . "
$msg
" . $DBI::errstr); -} +use parent qw(SL::DBUpgrade2::Base); -sub do_query { - my ($query, $may_fail) = @_; +sub run { + my ($self) = @_; - if (!$dbh->do($query)) { - mydberror($query) unless ($may_fail); - $dbh->rollback(); - $dbh->begin_work(); + if ( $::form->{'continued'} ) { + my $update_query; + foreach my $i (1 .. $::form->{rowcount}) { + $update_query = qq|UPDATE parts SET partnumber = '| . $::form->{"partnumber_$i"} . qq|' WHERE id = | . $::form->{"partid_$i"}; + $self->db_query($update_query); + print FH $i; + } + $self->dbh->commit(); } -} -sub do_update { - my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id + my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id FROM parts pa WHERE (SELECT COUNT(*) FROM parts p @@ -33,30 +29,30 @@ sub do_update { > 1 ORDER BY partnumber;|; - my $sth = $dbh->prepare($query); - $sth->execute || $main::form->dberror($query); + my $sth = $self->dbh->prepare($query); + $sth->execute || $::form->dberror($query); - $main::form->{PARTS} = []; + $::form->{PARTS} = []; while (my $ref = $sth->fetchrow_hashref("NAME_lc")) { - push @{ $main::form->{PARTS} }, $ref; + map {$ref->{$_} = $::locale->{iconv_utf8}->convert($ref->{$_})} keys %$ref; + push @{ $::form->{PARTS} }, $ref; } - if ( scalar @{ $main::form->{PARTS} } > 0 ) { + if ( scalar @{ $::form->{PARTS} } > 0 ) { &print_error_message; - return 0; + return 2; } $query = qq|ALTER TABLE parts ADD UNIQUE (partnumber)|; - do_query($query); + $self->db_query($query); $query = qq|ALTER TABLE defaults ADD assemblynumber TEXT|; - do_query($query); + $self->db_query($query); return 1; -}; # end do_update - +} # end run sub print_error_message { - print $main::form->parse_html_template("dbupgrade/erzeugnisnummern"); + print $::form->parse_html_template("dbupgrade/erzeugnisnummern"); } -return do_update(); +1;