Projekt

Allgemein

Profil

Unterstützung #279

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

Von Jan Büren vor mehr als 7 Jahren hinzugefügt. Vor etwa 6 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
-
Zielversion:
-
Beginn:
30.07.2017
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

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).

Historie

#1

Von Jan Büren vor mehr als 7 Jahren aktualisiert

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

Von Jan Büren vor mehr als 7 Jahren aktualisiert

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

Von Jan Büren vor etwa 6 Jahren aktualisiert

  • Status wurde von Neu zu Erledigt geändert

Ist mittlerweile schon im Standard erledigt.

Auch abrufbar als: Atom PDF