Revision ae84885c
Von Kivitendo Admin vor mehr als 7 Jahren hinzugefügt
SL/Controller/Part.pm | ||
---|---|---|
94 | 94 |
return $self->js->error(t8('The document has been changed by another user. Please reopen it in another window and copy the changes to the new window'))->render; |
95 | 95 |
} |
96 | 96 |
|
97 |
if ( $is_new and !$::form->{part}{partnumber} ) { |
|
98 |
$self->check_next_transnumber_is_free or return $self->js->error(t8('The next partnumber in the number range already exists!'))->render; |
|
97 |
if ( $is_new |
|
98 |
&& $::form->{part}{partnumber} |
|
99 |
&& SL::DB::Manager::Part->find_by(partnumber => $::form->{part}{partnumber}) |
|
100 |
) { |
|
101 |
return $self->js->error(t8('The partnumber is already being used'))->render; |
|
99 | 102 |
} |
100 | 103 |
|
101 | 104 |
$self->parse_form; |
... | ... | |
1037 | 1040 |
} |
1038 | 1041 |
|
1039 | 1042 |
# general checking functions |
1040 |
sub check_next_transnumber_is_free { |
|
1041 |
my ($self) = @_; |
|
1042 |
|
|
1043 |
my ($next_transnumber, $count); |
|
1044 |
$self->part->db->with_transaction(sub { |
|
1045 |
$next_transnumber = $self->part->get_next_trans_number; |
|
1046 |
$count = SL::DB::Manager::Part->get_all_count(where => [ partnumber => $next_transnumber ]); |
|
1047 |
return 1; |
|
1048 |
}) or die $@; |
|
1049 |
$count ? return 0 : return 1; |
|
1050 |
} |
|
1051 | 1043 |
|
1052 | 1044 |
sub check_part_id { |
1053 | 1045 |
die t8("Can't load item without a valid part.id") . "\n" unless $::form->{part}{id}; |
Auch abrufbar als: Unified diff
Part Controller - mit nächster freier Nummer speichern
Gibt man beim Anlegen eines neuen Artikels die Artikelnummer vor so wird
beim Speichern eine Warnung angezeigt und der Speichervorgang
abgebrochen.
Lässt man die Artikelnummer frei und die nächste Artikelnummer (laut
defaults articlenumber, servicenumber, ...) ist schon vergeben, so wird
die nächste freie Artikelnummer genommen.
Die Prüfung, ob die nächste Artikelnummer bereits vergeben ist, wurde
daher entfernt.