| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- 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: <none>
- 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: <none> */
- /* 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.
|