my $insertdate = DateTime->from_kivitendo($::form->{insertdate});
my $undo_transfer = 0;
if (ref $undo_date eq 'DateTime' && ref $insertdate eq 'DateTime') {
- # DateTime->compare it returns 1 if $dt1 > $dt2
- $undo_transfer = DateTime->compare($insertdate, $undo_date) == 1 ? 1 : 0;
+ $undo_transfer = $insertdate > $undo_date;
}
for my $bar ($::request->layout->get('actionbar')) {
$bar->add(
remove_emptied_rows();
validate_items();
+ # check for serial number if part needs one
+ for my $i (1 .. $form->{rowcount} - 1) {
+ next unless $form->{"has_sernumber_$i"};
+ $form->isblank("serialnumber_$i",
+ $locale->text('Serial Number missing in Row') . " $i");
+ }
# if the name changed get new values
my $vc = $form->{vc};
if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
}
$form->{id} = 0 if $form->{saveasnew};
-
+ # we rely on converted_from_orderitems, if the workflow is used
+ # be sure that at least one position is linked to the original orderitem
+ if ($form->{convert_from_oe_ids}) {
+ my $has_linked_pos;
+ for my $i (1 .. $form->{rowcount}) {
+ if ($form->{"converted_from_orderitems_id_$i"}) {
+ $has_linked_pos = 1;
+ last;
+ }
+ }
+ if (!$has_linked_pos) {
+ $form->error($locale->text('Need at least one original position for the workflow Order to Delivery Order!'));
+ }
+ }
DO->save();
# saving the history
if(!exists $form->{addition}) {