DEF VAR cBody AS CHAR NO-UNDO. DEF VAR cMailBody AS CHAR NO-UNDO. DEF VAR cAnrede AS CHAR NO-UNDO. DEF VAR cMailTo AS CHAR NO-UNDO. DEF VAR cDateiName AS CHAR NO-UNDO. DEF VAR iAnzMail AS INT NO-UNDO. DEF VAR Firma AS CHAR INIT '1000' NO-UNDO. DEF VAR cInstallation AS CHAR INIT 'Huber' NO-UNDO. DEF VAR cParam AS CHAR NO-UNDO. DEF TEMP-TABLE tPDF FIELD iFaknr AS INT FIELD dFakdat AS DATE FIELD cKunde AS CHAR . DEF TEMP-TABLE tSendMail FIELD iKnr AS INT FIELD cKunde AS CHAR FIELD cMail AS CHAR FIELD iFaknr AS INT . DEF BUFFER bAdresse FOR Adresse. DEF BUFFER bDebst FOR Debst. { properties.i } { super/funktionen.i } cParam = SUBSTITUTE('&2&1&3&1&4', CHR(01), 'wari', '', '1000'). RUN ANMELDUNG ( cParam ). INPUT FROM 'P:\TEMP\Faknr.csv' NO-ECHO NO-MAP NO-CONVERT. REPEAT TRANSACTION ON STOP UNDO, LEAVE: CREATE tPDF. IMPORT DELIMITER ';' tPDF. END. INPUT CLOSE. FOR EACH tPDF: FIND FIRST Savko NO-LOCK WHERE Savko.Firma = Firma AND Savko.Faknr = tPDF.iFaknr. FIND Adresse NO-LOCK WHERE Adresse.Firma = Firma AND Adresse.Knr = Savko.Fak_Knr. ASSIGN tPDF.dFakdat = Savko.Fak_Datum tPDF.cKunde = Adresse.Anzeig_Br. END. /* OUTPUT TO 'P:\TEMP\Faknr_Kunden.csv' NO-MAP NO-CONVERT. FOR EACH tPDF BY tPDF.cKunde: EXPORT DELIMITER ';' tPDF. END. OUTPUT CLOSE. */ FOR EACH tPDF: FIND FIRST Savko NO-LOCK WHERE Savko.Firma = Firma AND Savko.Faknr = tPDF.iFaknr. FIND bAdresse NO-LOCK WHERE bAdresse.Firma = Firma AND bAdresse.Knr = Savko.Fak_Knr. FIND bDebst NO-LOCK WHERE bDebst.Firma = Savko.Firma AND bDebst.Knr = bAdresse.Knr. ASSIGN cMailTo = '' cAnrede = ''. FOR EACH Ansprech NO-LOCK WHERE Ansprech.Firma = Firma AND Ansprech.Knr = bDebst.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 = bAdresse.Mail. cAnrede = bAdresse.BriefAnr. END. RUN getMailBody ( bAdresse.Sprcd, OUTPUT cMailBody ). cMailBody = SUBSTITUTE(cMailBody, bAdresse.BriefAnr, Savko.Faknr). CREATE tSendMail. ASSIGN tSendMail.iKnr = bDebst.Knr tSendMail.cKunde = bAdresse.Anzeig_Br tSendMail.cMail = (IF cMailTo = '' THEN 'Keine Mailadresse' ELSE cMailTo) tSendmail.iFaknr = tPDF.iFaknr. IF cMailTo = '' THEN NEXT. cDateiName = SUBSTITUTE('Rechnungen\&1-&2_&3.pdf', STRING(Savko.Knr ,'999999'), STRING(Savko.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. 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'. */ RETURN. PROCEDURE getMailBody: /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF INPUT PARAMETER ipiSprcd AS CHAR NO-UNDO. DEF OUTPUT PARAMETER opcBody AS CHAR NO-UNDO. DEF VAR cBodyDatei AS CHAR INIT ? NO-UNDO. DEF VAR cBody AS CHAR INIT '' NO-UNDO. DEF VAR lBody AS LONGCHAR NO-UNDO. DO WHILE cBodyDatei = ?: cBodyDatei = SUBSTITUTE('druckprogramme/&1/Mail-Rechnung-&2.html', cInstallation, ipiSprcd). 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. opcBody = cBody. END PROCEDURE. PROCEDURE createMailBodyProtokoll: /*------------------------------------------------------------------------------ Purpose: Parameters: Notes: ------------------------------------------------------------------------------*/ DEF OUTPUT PARAMETER opcBody AS CHAR NO-UNDO. DEF VAR cBodyDatei AS CHAR INIT ? NO-UNDO. DEF VAR cBody AS CHAR INIT '' NO-UNDO. DEF VAR cBodyProtokoll AS CHAR INIT '' NO-UNDO. DEF VAR cString AS CHAR INIT '' NO-UNDO. DEF VAR 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). 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. 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.