DEFINE VARIABLE cBody AS CHARACTER NO-UNDO. DEFINE VARIABLE cMailBody AS CHARACTER NO-UNDO. DEFINE VARIABLE cAnrede AS CHARACTER NO-UNDO. DEFINE VARIABLE cMailTo AS CHARACTER NO-UNDO. DEFINE VARIABLE cDateiName AS CHARACTER NO-UNDO. DEFINE VARIABLE iAnzMail AS INTEGER NO-UNDO. DEFINE VARIABLE cInstallation AS CHARACTER NO-UNDO INIT 'huber'. DEFINE VARIABLE Firma AS CHARACTER NO-UNDO INIT '1000'. DEFINE TEMP-TABLE tSendMail FIELD iKnr AS INTEGER FIELD cKunde AS CHARACTER FIELD cMail AS CHARACTER FIELD iFaknr AS INTEGER . { properties.i } { ttsendmail.i } FOR EACH Debop NO-LOCK WHERE Debop.Firma = '1000' AND Debop.Fakdat = 06/10/2021, FIRST Debst NO-LOCK WHERE Debst.Firma = Debop.Firma AND Debst.Knr = Debop.Knr AND Debst.DokumentStatus > 0, FIRST Savko NO-LOCK WHERE Savko.Firma = Debop.Firma AND Savko.Faknr = Debop.Faknr: ASSIGN cMailTo = '' cAnrede = ''. FIND Adresse NO-LOCK WHERE Adresse.Firma = Debop.Firma AND Adresse.Knr = Debop.Knr. FOR EACH Ansprech NO-LOCK WHERE Ansprech.Firma = Firma AND Ansprech.Knr = Debst.Knr AND Ansprech.Debitoren = TRUE AND Ansprech.Mail <> '': cMailTo = cMailTo + (IF cMailTo = '' THEN '' ELSE ';') + Ansprech.Mail. cAnrede = cAnrede + (IF cAnrede = '' THEN '' ELSE ', ') + Ansprech.BriefAnr. END. IF cMailTo = '' THEN DO: cMailTo = Adresse.Mail. cAnrede = Adresse.BriefAnr. END. RUN getMailBody ( TRIM(STRING(Adresse.Sprcd,'>9')), OUTPUT cMailBody ). cMailBody = SUBSTITUTE(cMailBody, Adresse.BriefAnr, Debop.Faknr). CREATE tSendMail. ASSIGN tSendMail.iKnr = Debst.Knr tSendMail.cKunde = Adresse.Anzeig_Br tSendMail.cMail = (IF cMailTo = '' THEN 'Keine Mailadresse' ELSE cMailTo) tSendmail.iFaknr = Debop.Faknr. IF cMailTo = '' THEN NEXT. cDateiName = SUBSTITUTE(cMailVersandPath, STRING(Debop.Knr ,'999999'), STRING(Debop.Faknr,'9999999'), DYNAMIC-FUNCTION('getDokumentArt':U, Savko.Fak_Art) ). CREATE ASMutation. ASSIGN ASMutation.asmutation_id = NEXT-VALUE(asmutation_id) ASMutation.MutArt = 'MAIL' ASMutation.Aktiv = TRUE ASMutation.cStatus = '' ASMutation.Datum = TODAY ASMutation.Firma = Firma ASMutation.cFeld_1 = SUBSTITUTE('TO:&1;CC:&2', cMailTo, cKopieRechnung) ASMutation.cFeld_2 = SUBSTITUTE('Rechnung Nr &1', Savko.Faknr ) ASMutation.cFeld_3 = cMailBody ASMutation.cKey_1 = STRING(Savko.Fak_Art,'99') ASMutation.cKey_2 = cDateiName. RELEASE ASMutation. iAnzMail = iAnzMail + 1. END. RUN createMailBodyProtokoll ( OUTPUT cMailBody ). REPEAT TRANSACTION: CREATE ASMutation. ASSIGN ASMutation.asmutation_id = NEXT-VALUE(asmutation_id) ASMutation.MutArt = 'MAIL' ASMutation.Aktiv = TRUE ASMutation.cStatus = '' ASMutation.Datum = TODAY ASMutation.Firma = Firma ASMutation.cFeld_1 = SUBSTITUTE('TO:&1', cProtokollRechnungen) ASMutation.cFeld_2 = SUBSTITUTE('Protokoll Mailversand Rechnung &1 &2', STRING(TODAY,'99.99.9999'), STRING(TIME,'HH:MM:SS') ) ASMutation.cFeld_3 = cMailBody ASMutation.cKey_1 = 'Protokoll' ASMutation.cKey_2 = ''. RELEASE ASMutation. LEAVE. END. /* RUN 'SendMailStart.p'. */ PROCEDURE getMailBody : DEFINE INPUT PARAMETER ipcSprcd AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAMETER opcBody AS CHARACTER NO-UNDO. DEFINE VARIABLE cBodyDatei AS CHARACTER INIT ? NO-UNDO. DEFINE VARIABLE cBody AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE lBody AS LONGCHAR NO-UNDO. DO WHILE cBodyDatei = ?: cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Rechnung-&2.html', cInstallation, ipcSprcd). cBodyDatei = SEARCH(cBodyDatei). LEAVE. END. IF cBodydatei = ? THEN cBody = ''. ELSE DO: FILE-INFO:FILE-NAME = cBodyDatei. cBodyDatei = FILE-INFO:FULL-PATHNAME. COPY-LOB FILE cBodydatei TO lBody NO-CONVERT. cBody = lBody. END. opcBody = cBody. END PROCEDURE. PROCEDURE createMailBodyProtokoll : /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEFINE OUTPUT PARAMETER opcBody AS CHARACTER NO-UNDO. DEFINE VARIABLE cBodyDatei AS CHARACTER INIT ? NO-UNDO. DEFINE VARIABLE cBody AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cBodyProtokoll AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE cString AS CHARACTER INIT '' NO-UNDO. DEFINE VARIABLE lBody AS LONGCHAR NO-UNDO. DO WHILE cBodyDatei = ?: cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Protokoll.html', cInstallation). cBodyDatei = SEARCH(cBodyDatei). IF cBodyDatei <> ? THEN LEAVE. END. IF cBodydatei = ? THEN cBody = ''. ELSE DO: FILE-INFO:FILE-NAME = cBodyDatei. cBodyDatei = FILE-INFO:FULL-PATHNAME. COPY-LOB FILE cBodydatei TO lBody NO-CONVERT. cBody = lBody. END. cBodyDatei = ?. DO WHILE cBodyDatei = ?: cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Protokoll-Tabelle.html', cInstallation). cBodyDatei = SEARCH(cBodyDatei). LEAVE. END. IF cBodydatei = ? THEN cBody = ''. ELSE DO: /* FILE-INFO:FILE-NAME = cBodyDatei. */ /* cBodyDatei = FILE-INFO:FULL-PATHNAME.*/ COPY-LOB FILE cBodydatei TO lBody NO-CONVERT. cBodyProtokoll = lBody. END. FOR EACH tSendMail: cString = cString /* + (IF cString = '' THEN '' ELSE CHR(10)) */ + SUBSTITUTE(cBodyProtokoll, tSendMail.iKnr, tSendMail.cKunde, tSendMail.cMail, tSendMail.iFaknr). END. cBody = SUBSTITUTE(cBody, cString). opcBody = cBody. END PROCEDURE. FUNCTION getDokumentArt RETURNS CHARACTER ( ipFakart AS INTEGER ) : /*------------------------------------------------------------------------------*/ /* Purpose: */ /* Parameters: */ /* Notes: */ /*------------------------------------------------------------------------------*/ FIND Tabel NO-LOCK USE-INDEX Tabel-k2 WHERE Tabel.Firma = Firma AND Tabel.RecArt = 'FAKART' AND Tabel.CodeI = ipFakart AND Tabel.CodeC = '' AND Tabel.Sprcd = 1 NO-ERROR. IF AVAILABLE Tabel THEN RETURN Tabel.Bez2. ELSE RETURN "??????????". END FUNCTION.