1 # @tag: erzeugnisnummern
2 # @description: Erzeugnisnummern und Artikelnummern sollen eindeutig sein.
3 # @depends: release_3_0_0
4 package SL::DBUpgrade2::erzeugnisnummern;
9 use parent qw(SL::DBUpgrade2::Base);
16 if ($::form->{upgrade_action} eq 'filter_parts') {
17 return $self->filter_parts($self);
20 if ( $::form->{'continued'} ) {
22 foreach my $i (1 .. $::form->{rowcount}) {
23 $update_query = qq|UPDATE parts SET partnumber = '| . $::form->{"partnumber_$i"} . qq|' WHERE id = | . $::form->{"partid_$i"};
24 $self->db_query($update_query);
30 my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
32 WHERE (SELECT COUNT(*)
34 WHERE p.partnumber=pa.partnumber)
36 ORDER BY partnumber;|;
38 $::form->{PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query) ];
40 if ( scalar @{ $::form->{PARTS} } > 0 ) {
45 $query = qq|ALTER TABLE parts ADD UNIQUE (partnumber)|;
46 $self->db_query($query);
48 $query = qq|ALTER TABLE defaults ADD assemblynumber TEXT|;
49 $self->db_query($query);
53 sub print_error_message {
54 print $::form->parse_html_template("dbupgrade/erzeugnisnummern");
63 if ( $::form->{filter_partnumber} ) {
64 $where .= ' AND partnumber ILIKE ?';
65 push(@values, $::form->like( $::form->{filter_partnumber} ));
68 if ($::form->{filter_description}) {
69 $where .= ' AND description ILIKE ?';
70 push(@values, $::form->like($::form->{filter_description}));
73 if ($::form->{filter_notes}) {
74 $where .= ' AND notes ILIKE ?';
75 push(@values, $::form->like($::form->{filter_notes}));
78 if ($::form->{filter_ean}) {
79 $where .= ' AND ean ILIKE ?';
80 push(@values, $::form->like($::form->{filter_ean}));
83 if ($::form->{filter_type} eq 'assembly') {
84 $where .= ' AND assembly';
87 if ($::form->{filter_type} eq 'service') {
88 $where .= ' AND inventory_accno_id IS NULL AND NOT assembly';
91 if ($::form->{filter_type} eq 'part') {
92 $where .= ' AND inventory_accno_id IS NOT NULL';
93 $where .= ' AND NOT assembly';
96 if ($::form->{filter_obsolete} eq 'obsolete') {
97 $where .= ' AND obsolete';
100 if ($::form->{filter_obsolete} eq 'valid') {
101 $where .= ' AND NOT obsolete';
104 my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
107 ORDER BY partnumber|;
109 $::form->{ALL_PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query, @values) ];
111 print $::form->parse_html_template("dbupgrade/show_partlist");