| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- 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: <none>
- 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: <none>
- 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.
|