Project

General

Profile

Unterstützung #279

Datenmodell der verknüpften Belege um E-Mail Verknüpfung erweitern

Added by Jan Büren over 3 years ago. Updated about 2 years ago.

Status:
Erledigt
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
07/30/2017
Due date:
% Done:

0%

Estimated time:

Description

Das Thema wird mittlerweile immer runder, ich hab jetzt ein Angebot mit zusätzlichen Anhang (DMS) per E-Mail verschickt. Perfekt!

Jetzt wäre es sehr gut dieses Angebot auch noch mit der E-Mail aus dem Journal automatisch zu verknüpfen.

P.S.: Der Anhang des Angebots kommt aus kivi selber, ein Pflichtenheft vom Typ Konzept, auch hier wäre mehr Verknüpfung sicher sinnvoll (ggf. geht das schon, nur ich kenn die Funktion nicht).

History

#1 Updated by Jan Büren over 3 years ago

In Common.pm

sub save_email_status {

Die Funktion hat alle Informationen die notwendig sind.

Mir ist der Zusammenhang noch nicht klar, in send_sales_purchase_email gibt es diesen Fallunterschied:


  if (($::form->{attachment_policy} // '') =~ m{^(?:old_file|no_file)$}) {
    $::form->send_email(\%::myconfig, 'pdf');

  } else {
    print_form("return");
    Common->save_email_status(\%::myconfig, $::form);
  }


Die obere Funktion versendet die Mail und verknüpft die mit dem Mail-Journal.
Die untere Funktion verknüpft nicht mit dem Mail-Journal, setzt aber die internen Bemerkungen mit der Mail-Nachricht.

Dennoch wird die interne Bemerkung immer gesetzt, falls ein Beleg neu generiert wird.
Falls ich keinen Beleg mitschicke oder den Beleg nicht neu generiere, wird die interne Bemerkung nicht gesetzt.

Im E-Mail-Journal werden alle Mails angezeigt.

Vielleicht sollte das Verhalten konzeptionell einmal abgestimmt werden.

#2 Updated by Jan Büren over 3 years ago

Die sinnvollste Stelle wäre in Mailer.pm _store_in_journal

Hier mein erster Wurf, ich bin nicht sicher, ob

a) das so Transaktionssicher ist.
b) Table nach script ist kopiert aus einer anderen Funktion, sollte besser generell ausgelagert werden, ggf. gibt es hier schon was?

  my ($table, $dbh, $jentry);
  SL::DB->client->with_transaction(sub {
    $dbh = SL::DB->client->dbh;

  $jentry = SL::DB::EmailJournal->new(
    sender          => SL::DB::Manager::Employee->current,
    from            => $self->{from}    // '',
    recipients      => join(', ', $self->_all_recipients),
    subject         => $self->{subject} // '',
    headers         => $headers,
    body            => $self->{message} // '',
    sent_on         => DateTime->now_local,
    attachments     => \@{ $self->{mail_attachments} },
    status          => $status,
    extended_status => $extended_status,
  )->save;
  if ($::form->{script} eq 'oe.pl') {
    $table = 'oe';

  } elsif ($::form->{script} eq 'is.pl') {
    $table = 'ar';

  } elsif ($::form->{script} eq 'ir.pl') {
    $table = 'ap';

  } elsif ($::form->{script} eq 'do.pl') {
    $table = 'delivery_orders';
  }
  RecordLinks->create_links('dbh'  => $dbh,
                            'mode'       => 'ids',
                            'from_table' => $table,
                            'from_ids'   => $::form->{id},
                            'to_table'   => 'email_journal',
                            'to_id'      => $jentry->{id},
                           );
  });
  return $jentry->id;

#3 Updated by Jan Büren about 2 years ago

  • Status changed from Neu to Erledigt

Ist mittlerweile schon im Standard erledigt.

Also available in: Atom PDF