Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5198bac4

Von Bernd Bleßmann vor etwa 2 Jahren hinzugefügt

  • ID 5198bac4711f0231ba26f017fac8955f874b4fef
  • Vorgänger c77980a4
  • Nachfolger 09696cb9

Unterversionen: E-Mails finaler/gesperrter Versionen neu verschicken können

Unterschiede anzeigen:

SL/Controller/Order.pm
451 451
sub action_save_and_show_email_dialog {
452 452
  my ($self) = @_;
453 453

  
454
  my $errors = $self->save();
454
  my $is_final_version = $::instance_conf->get_lock_oe_subversions    ?  # conf enabled
455
                         $self->order->id                             ?  # is saved
456
                         $self->order->is_final_version               :  # is final
457
                         undef                                        :  # is not final
458
                         undef;                                          # conf disabled
455 459

  
456
  if (scalar @{ $errors }) {
457
    $self->js->flash('error', $_) foreach @{ $errors };
458
    return $self->js->render();
459
  }
460
  if (!$is_final_version) {
461
    my $errors = $self->save();
460 462

  
461
  $self->js_reset_order_and_item_ids_after_save;
463
    if (scalar @{ $errors }) {
464
      $self->js->flash('error', $_) foreach @{ $errors };
465
      return $self->js->render();
466
    }
467

  
468
    $self->js_reset_order_and_item_ids_after_save;
469
  }
462 470

  
463 471
  my $cv_method = $self->cv;
464 472

  
......
506 514
                                  is_customer   => $self->cv eq 'customer',
507 515
                                  ALL_EMPLOYEES => \@employees_with_email,
508 516
                                  ALL_PARTNER_EMAIL_ADDRESSES => $all_partner_email_addresses,
517
                                  is_final_version => $is_final_version,
509 518
  );
510 519

  
511 520
  $self->js
......
518 527
sub action_send_email {
519 528
  my ($self) = @_;
520 529

  
521
  my $errors = $self->save();
530
  my $is_final_version = $::instance_conf->get_lock_oe_subversions    ?  # conf enabled
531
                         $self->order->id                             ?  # is saved
532
                         $self->order->is_final_version               :  # is final
533
                         undef                                        :  # is not final
534
                         undef;                                          # conf disabled
522 535

  
523
  if (scalar @{ $errors }) {
524
    $self->js->run('kivi.Order.close_email_dialog');
525
    $self->js->flash('error', $_) foreach @{ $errors };
526
    return $self->js->render();
527
  }
536
  if (!$is_final_version) {
537
    my $errors = $self->save();
528 538

  
529
  $self->js_reset_order_and_item_ids_after_save;
539
    if (scalar @{ $errors }) {
540
      $self->js->run('kivi.Order.close_email_dialog');
541
      $self->js->flash('error', $_) foreach @{ $errors };
542
      return $self->js->render();
543
    }
544

  
545
    $self->js_reset_order_and_item_ids_after_save;
546
  }
530 547

  
531 548
  my @redirect_params = (
532 549
    action => 'edit',
......
575 592
                                 print_variant => $::form->{formname});
576 593
  }
577 594

  
578
  if ($::form->{attachment_policy} ne 'no_file' && !($::form->{attachment_policy} eq 'old_file' && $attfile)) {
595
  if ($is_final_version && $::form->{attachment_policy} eq 'old_file' && !$attfile) {
596
    $::form->error(t8('Re-sending a final version was requested, but the latest version of the document could not be found'));
597
  }
598

  
599
  if (!$is_final_version && $::form->{attachment_policy} ne 'no_file' && !($::form->{attachment_policy} eq 'old_file' && $attfile)) {
579 600
    my $doc;
580 601
    my @errors = $self->generate_doc(\$doc, {media      => $::form->{media},
581 602
                                             format     => $::form->{print_options}->{format},
......
620 641
    $self->order->update_attributes(intnotes => $intnotes);
621 642
  }
622 643

  
623
  if ($::instance_conf->get_lock_oe_subversions) {
644
  if ($::instance_conf->get_lock_oe_subversions && !$is_final_version) {
624 645
    my $file_id;
625 646
    if ($::instance_conf->get_doc_storage && $::form->{attachment_policy} ne 'no_file') {
626 647
      # self is generated on the fly. form is a file from the dms
......
2403 2424
                    : $is_final_version ? t8('This record is the final version. Please create a new sub-version') : undef,
2404 2425
        ],
2405 2426
        action => [
2406
          t8('Save and E-mail'),
2427
          ($is_final_version ? t8('E-mail') : t8('Save and E-mail')),
2407 2428
          id       => 'save_and_email_action',
2408 2429
          call     => [ 'kivi.Order.save', { action             => 'save_and_show_email_dialog',
2409 2430
                                             warn_on_duplicates => $::instance_conf->get_order_warn_duplicate_parts,
......
2411 2432
          ],
2412 2433
          disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.')
2413 2434
                    : !$self->order->id ? t8('This object has not been saved yet.')
2414
                    : $is_final_version ? t8('This record is the final version. Please create a new sub-version') : undef,
2435
                    : undef,
2415 2436
        ],
2416 2437
        action => [
2417 2438
          t8('Download attachments of all parts'),

Auch abrufbar als: Unified diff