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);
29 my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
31 WHERE (SELECT COUNT(*)
33 WHERE p.partnumber=pa.partnumber)
35 ORDER BY partnumber;|;
37 $::form->{PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query) ];
39 if ( scalar @{ $::form->{PARTS} } > 0 ) {
44 $query = qq|ALTER TABLE parts ADD UNIQUE (partnumber)|;
45 $self->db_query($query);
47 $query = qq|ALTER TABLE defaults ADD assemblynumber TEXT|;
48 $self->db_query($query);
52 sub print_error_message {
53 print $::form->parse_html_template("dbupgrade/erzeugnisnummern");
62 if ( $::form->{filter_partnumber} ) {
63 $where .= ' AND partnumber ILIKE ?';
64 push(@values, $::form->like( $::form->{filter_partnumber} ));
67 if ($::form->{filter_description}) {
68 $where .= ' AND description ILIKE ?';
69 push(@values, $::form->like($::form->{filter_description}));
72 if ($::form->{filter_notes}) {
73 $where .= ' AND notes ILIKE ?';
74 push(@values, $::form->like($::form->{filter_notes}));
77 if ($::form->{filter_ean}) {
78 $where .= ' AND ean ILIKE ?';
79 push(@values, $::form->like($::form->{filter_ean}));
82 if ($::form->{filter_type} eq 'assembly') {
83 $where .= ' AND assembly';
86 if ($::form->{filter_type} eq 'service') {
87 $where .= ' AND inventory_accno_id IS NULL AND NOT assembly';
90 if ($::form->{filter_type} eq 'part') {
91 $where .= ' AND inventory_accno_id IS NOT NULL';
92 $where .= ' AND NOT assembly';
95 if ($::form->{filter_obsolete} eq 'obsolete') {
96 $where .= ' AND obsolete';
99 if ($::form->{filter_obsolete} eq 'valid') {
100 $where .= ' AND NOT obsolete';
103 my $query = qq|SELECT id, partnumber, description, unit, notes, assembly, ean, inventory_accno_id, obsolete
106 ORDER BY partnumber|;
108 $::form->{ALL_PARTS} = [ selectall_hashref_query($::form, $self->dbh, $query, @values) ];
110 print $::form->parse_html_template("dbupgrade/show_partlist");