Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision aa7ea0f0

Von Tamino Steinert vor 6 Monaten hinzugefügt

  • ID aa7ea0f0983b08270fc0bdddf4425fa83c1bba74
  • Vorgänger 28faaa2a
  • Nachfolger c3b8cc66

S:D:Part: EAN eindeutig machen

Unterschiede anzeigen:

SL/DB/MetaSetup/Part.pm
__PACKAGE__->meta->primary_key_columns([ 'id' ]);
__PACKAGE__->meta->unique_keys([ 'partnumber' ]);
__PACKAGE__->meta->unique_keys(
[ 'ean' ],
[ 'partnumber' ],
);
__PACKAGE__->meta->allow_inline_column_values(1);
SL/DB/Part.pm
__PACKAGE__->attr_sorted('businessmodels');
__PACKAGE__->before_save('_before_save_set_partnumber');
__PACKAGE__->before_save('_before_save_remove_empty_ean');
__PACKAGE__->before_save('_before_save_set_assembly_weight');
__PACKAGE__->before_save('_before_check_variant_property_values');
......
return 1;
}
sub _before_save_remove_empty_ean {
my ($self) = @_;
$self->ean(undef) if $self->ean eq '';
return 1;
}
sub _before_save_set_assembly_weight {
my ($self) = @_;
......
unless ( $self->id ) {
push @errors, $::locale->text('The partnumber already exists.') if SL::DB::Manager::Part->get_all_count(where => [ partnumber => $self->partnumber ]);
}
push @errors, $::locale->text('The ean already exists.') if $self->ean ne '' && SL::DB::Manager::Part->get_all_count(where => [ ean => $self->ean ]);
if ($self->is_assortment && $self->orphaned && scalar @{$self->assortment_items} == 0) {
# when assortment isn't orphaned form doesn't contain any items
locale/de/all
'The document has been printed.' => 'Das Dokument wurde gedruckt.',
'The documents have been sent to the printer \'#1\'.' => 'Die Dokumente sind zum Drucker \'#1\' geschickt',
'The dunnings have been printed.' => 'Die Mahnung(en) wurden gedruckt.',
'The ean already exists.' => 'Diese EAN existiert bereits',
'The email entry for #1 looks invalid' => 'Die eingetragene E-Mail-Adresse für #1 sieht ungültig aus.',
'The email has been sent.' => 'Die E-Mail wurde verschickt.',
'The email was not sent due to the following error: #1.' => 'Die E-Mail wurde aufgrund des folgenden Fehlers nicht verschickt: #1',
locale/en/all
'The document has been printed.' => '',
'The documents have been sent to the printer \'#1\'.' => '',
'The dunnings have been printed.' => '',
'The ean already exists.' => '',
'The email entry for #1 looks invalid' => '',
'The email has been sent.' => '',
'The email was not sent due to the following error: #1.' => '',
sql/Pg-upgrade2/parts_ean_unique.sql
-- @tag: parts_ean_unique
-- @description: EAN in Artikel eindeutig machen
-- @depends: release_3_8_0
-- @ignore: 0
UPDATE parts SET ean = null where ean = '';
ALTER TABLE parts ADD CONSTRAINT parts_ean_unique UNIQUE(ean);

Auch abrufbar als: Unified diff