XMFAX ;ISC-SF/GMB-Fax ;04/08/2002 14:46
;;8.0;MailMan;;Jun 28, 2002
FAX(XMZ) ; Fax a message
N XMABORT,XMCNT,XMFIEN,XMQUIET
S XMQUIET=1 ; "quiet flag"
S XMABORT=0
D CRE8FAX(XMZ,XMQUIET,.XMCNT,.XMABORT) Q:XMABORT
D SENDFAX(XMQUIET,XMFIEN,XMCNT)
Q
CRE8FAX(XMZ,XMQUIET,XMCNT,XMABORT) ;
N XMFID
D RECORD(XMQUIET,.XMFID,.XMFIEN,.XMABORT) Q:XMABORT
L +^AKF("FAX",XMFIEN)
D RECIPS(XMZ,XMFID,XMFIEN,.XMCNT)
D BODY(XMZ,XMFIEN)
L -^AKF("FAX",XMFIEN)
Q
RECORD(AKQ,AKFAX,AKIEN,XMABORT) ; Add record to fax file
; AKFAX Fax ID
; AKIEN Record number in ^AKF("FAX",
D NE^AKFAX0 I '$D(AKFAX) S XMABORT=1 Q ; Add record to fax file
S $P(^AKF("FAX",AKIEN,0),U,4)=1 ; This is a MailMan-generated fax
Q
RECIPS(XMZ,XMFID,XMFIEN,XMCNT) ; Add recipients to fax record and update recipient record in mail msg.
N I,XMREC,XMIENS,XMFDA
S I="",XMCNT=0
F S I=$O(^XMB(3.9,XMZ,1,"AFAX",I)) Q:I="" D
. S XMREC=$G(^AKF("FAXR",I,0)) Q:XMREC=""
. S XMCNT=XMCNT+1
. S XMIENS="+1,"_XMFIEN_","
. S XMFDA(589500.01,XMIENS,.01)=I ; Pointer to recipient
. S XMFDA(589500.01,XMIENS,1)=$$EZBLD^DIALOG(39303.7) ;Awaiting Transmission Path
. S XMFDA(589500.01,XMIENS,2)=$P(XMREC,U,2) ; Recipient fax phone
. S XMFDA(589500.01,XMIENS,3)=$P(XMREC,U,3) ; Recipient physical location
. S XMFDA(589500.01,XMIENS,4)=$P(XMREC,U,4) ; Recipient voice phone
. D UPDATE^DIE("","XMFDA") ; Add recipient to fax record
. S XMIENS=$O(^XMB(3.9,XMZ,1,"AFAX",I,""))_","_XMZ_","
. S XMFDA(3.91,XMIENS,4)=$$NOW^XLFDT() ; Current date/time
. S XMFDA(3.91,XMIENS,5)="@" ; get rid of status
. S XMFDA(3.91,XMIENS,13)="@" ; get rid of xref
. S XMFDA(3.91,XMIENS,14)=XMFID ; fax id
. D FILE^DIE("","XMFDA") ; Update mail msg recipient
Q
BODY(XMZ,XMFIEN) ; Copy the msg text to the fax text
N XMTEXT,XMREC,I,XMDATE,XMFROM
S XMREC=^XMB(3.9,XMZ,0)
S I=1,XMTEXT(I)=$$EZBLD^DIALOG(34536,$P(XMREC,U,1))_" "_$$EZBLD^DIALOG(34537,XMZ) ; Subj: |1| [#|1|]
S XMDATE=$$MMDT^XMXUTIL1($P(XMREC,U,3))
I $L(XMTEXT(I))+$L(XMDATE)+1>79 S I=I+1,XMTEXT(I)=XMDATE
E S XMTEXT(I)=XMTEXT(I)_" "_XMDATE
S I=I+1,XMTEXT(I)=$$EZBLD^DIALOG(39330,^XMB("NETNAME")) ;Site: |1|
S I=I+1,XMTEXT(I)=$$EZBLD^DIALOG(34538,$$NAME^XMXUTIL($P(XMREC,U,2),1)) ; From: |1|
I DUZ'=$P(XMREC,U,2) S I=I+1,XMTEXT(I)=$$EZBLD^DIALOG(39331,$$NAME^XMXUTIL(DUZ,1)) ;Sender: |1|
S I=I+1,XMTEXT(I)="-------------------------------------------------------------------------------"
S I=I+1,XMTEXT(I)=""
D WP^DIE(589500,XMFIEN_",",7,"","XMTEXT")
D WP^DIE(589500,XMFIEN_",",7,"A","^XMB(3.9,"_XMZ_",2)")
Q
SENDFAX(AKQ,AKIEN,AKML) ;
W !,$$EZBLD^DIALOG(39332) ;Sending to fax
D QUE^AKFAX0
Q
FAXHDR(XMFID,XMFTO) ; Print the fax header
W !,$$EZBLD^DIALOG(39333,XMFTO) ;MailMan FAX for |1|
N XMPARM S XMPARM(1)=XMFID,XMPARM(2)=$$FMTE^XLFDT($$NOW^XLFDT,5)
W !,$$EZBLD^DIALOG(39334,.XMPARM),! ;FAXmail ID: |1|, Faxed: |2|
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMFAX 2932 printed Nov 22, 2024@17:21:42 Page 2
XMFAX ;ISC-SF/GMB-Fax ;04/08/2002 14:46
+1 ;;8.0;MailMan;;Jun 28, 2002
FAX(XMZ) ; Fax a message
+1 NEW XMABORT,XMCNT,XMFIEN,XMQUIET
+2 ; "quiet flag"
SET XMQUIET=1
+3 SET XMABORT=0
+4 DO CRE8FAX(XMZ,XMQUIET,.XMCNT,.XMABORT)
if XMABORT
QUIT
+5 DO SENDFAX(XMQUIET,XMFIEN,XMCNT)
+6 QUIT
CRE8FAX(XMZ,XMQUIET,XMCNT,XMABORT) ;
+1 NEW XMFID
+2 DO RECORD(XMQUIET,.XMFID,.XMFIEN,.XMABORT)
if XMABORT
QUIT
+3 LOCK +^AKF("FAX",XMFIEN)
+4 DO RECIPS(XMZ,XMFID,XMFIEN,.XMCNT)
+5 DO BODY(XMZ,XMFIEN)
+6 LOCK -^AKF("FAX",XMFIEN)
+7 QUIT
RECORD(AKQ,AKFAX,AKIEN,XMABORT) ; Add record to fax file
+1 ; AKFAX Fax ID
+2 ; AKIEN Record number in ^AKF("FAX",
+3 ; Add record to fax file
DO NE^AKFAX0
IF '$DATA(AKFAX)
SET XMABORT=1
QUIT
+4 ; This is a MailMan-generated fax
SET $PIECE(^AKF("FAX",AKIEN,0),U,4)=1
+5 QUIT
RECIPS(XMZ,XMFID,XMFIEN,XMCNT) ; Add recipients to fax record and update recipient record in mail msg.
+1 NEW I,XMREC,XMIENS,XMFDA
+2 SET I=""
SET XMCNT=0
+3 FOR
SET I=$ORDER(^XMB(3.9,XMZ,1,"AFAX",I))
if I=""
QUIT
Begin DoDot:1
+4 SET XMREC=$GET(^AKF("FAXR",I,0))
if XMREC=""
QUIT
+5 SET XMCNT=XMCNT+1
+6 SET XMIENS="+1,"_XMFIEN_","
+7 ; Pointer to recipient
SET XMFDA(589500.01,XMIENS,.01)=I
+8 ;Awaiting Transmission Path
SET XMFDA(589500.01,XMIENS,1)=$$EZBLD^DIALOG(39303.7)
+9 ; Recipient fax phone
SET XMFDA(589500.01,XMIENS,2)=$PIECE(XMREC,U,2)
+10 ; Recipient physical location
SET XMFDA(589500.01,XMIENS,3)=$PIECE(XMREC,U,3)
+11 ; Recipient voice phone
SET XMFDA(589500.01,XMIENS,4)=$PIECE(XMREC,U,4)
+12 ; Add recipient to fax record
DO UPDATE^DIE("","XMFDA")
+13 SET XMIENS=$ORDER(^XMB(3.9,XMZ,1,"AFAX",I,""))_","_XMZ_","
+14 ; Current date/time
SET XMFDA(3.91,XMIENS,4)=$$NOW^XLFDT()
+15 ; get rid of status
SET XMFDA(3.91,XMIENS,5)="@"
+16 ; get rid of xref
SET XMFDA(3.91,XMIENS,13)="@"
+17 ; fax id
SET XMFDA(3.91,XMIENS,14)=XMFID
+18 ; Update mail msg recipient
DO FILE^DIE("","XMFDA")
End DoDot:1
+19 QUIT
BODY(XMZ,XMFIEN) ; Copy the msg text to the fax text
+1 NEW XMTEXT,XMREC,I,XMDATE,XMFROM
+2 SET XMREC=^XMB(3.9,XMZ,0)
+3 ; Subj: |1| [#|1|]
SET I=1
SET XMTEXT(I)=$$EZBLD^DIALOG(34536,$PIECE(XMREC,U,1))_" "_$$EZBLD^DIALOG(34537,XMZ)
+4 SET XMDATE=$$MMDT^XMXUTIL1($PIECE(XMREC,U,3))
+5 IF $LENGTH(XMTEXT(I))+$LENGTH(XMDATE)+1>79
SET I=I+1
SET XMTEXT(I)=XMDATE
+6 IF '$TEST
SET XMTEXT(I)=XMTEXT(I)_" "_XMDATE
+7 ;Site: |1|
SET I=I+1
SET XMTEXT(I)=$$EZBLD^DIALOG(39330,^XMB("NETNAME"))
+8 ; From: |1|
SET I=I+1
SET XMTEXT(I)=$$EZBLD^DIALOG(34538,$$NAME^XMXUTIL($PIECE(XMREC,U,2),1))
+9 ;Sender: |1|
IF DUZ'=$PIECE(XMREC,U,2)
SET I=I+1
SET XMTEXT(I)=$$EZBLD^DIALOG(39331,$$NAME^XMXUTIL(DUZ,1))
+10 SET I=I+1
SET XMTEXT(I)="-------------------------------------------------------------------------------"
+11 SET I=I+1
SET XMTEXT(I)=""
+12 DO WP^DIE(589500,XMFIEN_",",7,"","XMTEXT")
+13 DO WP^DIE(589500,XMFIEN_",",7,"A","^XMB(3.9,"_XMZ_",2)")
+14 QUIT
SENDFAX(AKQ,AKIEN,AKML) ;
+1 ;Sending to fax
WRITE !,$$EZBLD^DIALOG(39332)
+2 DO QUE^AKFAX0
+3 QUIT
FAXHDR(XMFID,XMFTO) ; Print the fax header
+1 ;MailMan FAX for |1|
WRITE !,$$EZBLD^DIALOG(39333,XMFTO)
+2 NEW XMPARM
SET XMPARM(1)=XMFID
SET XMPARM(2)=$$FMTE^XLFDT($$NOW^XLFDT,5)
+3 ;FAXmail ID: |1|, Faxed: |2|
WRITE !,$$EZBLD^DIALOG(39334,.XMPARM),!
+4 QUIT