| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- { properties.i }
- DEF VAR cMailTo AS CHAR NO-UNDO.
- DEF VAR cAnrede AS CHAR NO-UNDO.
- DEF VAR Firma AS CHAR NO-UNDO INIT '1000'.
- DEF VAR dFakDat AS DATE NO-UNDO INIT 04/23/2021.
- DEF VAR cMailBody AS CHAR NO-UNDO.
- DEF VAR cDateiName AS CHAR NO-UNDO.
- DEF VAR cInstallation AS CHAR NO-UNDO INIT 'huber'.
- DEF BUFFER bAdresse FOR Adresse.
- DEF BUFFER bDebst FOR Debst.
- DEFINE TEMP-TABLE tSendMail
- FIELD iKnr AS INTEGER
- FIELD cKunde AS CHARACTER
- FIELD cMail AS CHARACTER
- FIELD iFaknr AS INTEGER
- FIELD rDebst AS RECID
- FIELD rAdresse AS RECID
- .
- FOR EACH Debop NO-LOCK
- WHERE Debop.Firma = Firma
- AND Debop.Fakdat = dFakDat:
-
- FIND Debst NO-LOCK
- WHERE Debst.Firma = Debop.Firma
- AND Debst.Knr = Debop.Knr.
- IF Debst.DokumentStatus = 0 THEN NEXT.
-
- FIND Adresse NO-LOCK
- WHERE Adresse.Firma = Debop.Firma
- AND Adresse.Knr = Debop.Knr.
-
- CREATE tSendMail.
- ASSIGN tSendMail.iKnr = Debop.KNr
- tSendMail.cKunde = Adresse.Anzeig_Br
- tSendMail.iFaknr = Debop.Faknr
- tSendMail.rDebst = RECID(Debst)
- tSendMail.rAdresse = RECID(Adresse)
- .
- END.
- FOR EACH tSendMail:
- ASSIGN
- cMailTo = ''
- cAnrede = ''.
-
- FIND bAdresse NO-LOCK WHERE RECID(bAdresse) = tSendMail.rAdresse.
- FIND bDebst NO-LOCK WHERE RECID(bDebst) = tSendMail.rDebst.
-
- FIND FIRST Savko NO-LOCK
- WHERE Savko.Firma = Debop.Firma
- AND Savko.Fak_Knr = Debop.Knr
- AND Savko.Faknr = Debop.Faknr.
-
- 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, tSendMail.iFaknr).
- cDateiName = SUBSTITUTE(cMailVersandPath,
- STRING(tSendMail.iKnr ,'999999'),
- STRING(tSendMail.iFaknr ,'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 = 04/23/2021
- ASMutation.Firma = Firma
- ASMutation.cFeld_1 = SUBSTITUTE('TO:&1;CC:&2', cMailTo, cKopieRechnung)
- ASMutation.cFeld_2 = SUBSTITUTE('Rechnung Nr &1', tSendMail.iFaknr )
- ASMutation.cFeld_3 = cMailBody
- ASMutation.cKey_1 = STRING(Savko.Fak_Art,'99')
- ASMutation.cKey_2 = cDateiName.
- RELEASE ASMutation.
- END.
- PROCEDURE getMailBody :
- DEFINE INPUT PARAMETER ipiSprcd 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, ipiSprcd).
- 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.
- FUNCTION getDokumentArt RETURNS CHARACTER
- ( ipFakart AS INTEGER ) :
- /*------------------------------------------------------------------------------
- Purpose:
- 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.
|