87 lines
2.4 KiB
Plaintext
87 lines
2.4 KiB
Plaintext
COMPILE SUBROUTINE Create_Note( SendTo, SentFrom, Subject, Message, AttachWindow, AttachKeys, SendToGroupName )
|
|
|
|
DECLARE FUNCTION Next_Key, Msg, FieldCount
|
|
DECLARE SUBROUTINE Record_Lock, obj_Notes_Sent
|
|
|
|
$INSERT LOGICAL
|
|
$INSERT NOTES_EQU
|
|
$INSERT NOTE_PTRS_EQU
|
|
|
|
StCnt = FieldCount( SendTo, @VM )
|
|
HoldSendTo = SendTo
|
|
NewSendTo = ''
|
|
|
|
* LET'S STRIP OFF THE DUPLICATE NAMES
|
|
|
|
FOR I = 1 TO StCnt
|
|
ThisSendTo = SendTo<1,I>
|
|
LOCATE ThisSendTo IN NewSendTo USING @VM SETTING DPos ELSE
|
|
NewSendTo<1,-1> = ThisSendTo
|
|
END
|
|
NEXT I
|
|
|
|
TRANSFER NewSendTo TO SendTo
|
|
*
|
|
IF ASSIGNED( SendToGroupName) ELSE
|
|
SendToGroupName = ''
|
|
* the only intent of the group parameter is for traceability for the sender
|
|
* group names will be hidden on the read if you are not the owner
|
|
* any system generated message will not pass this parameter
|
|
* notes and notes_attach will do its own stripping of dups
|
|
END
|
|
|
|
OPEN 'NOTES' TO NotesTable ELSE
|
|
Void = msg( '', 'Unable to open NOTES...' )
|
|
RETURN
|
|
END
|
|
OPEN 'NOTE_PTRS' TO NotePtrTable ELSE
|
|
Void = Msg( '', 'Unable to open NOTES_PTRS...' )
|
|
RETURN
|
|
END
|
|
|
|
NextNoteKey = next_key( 'NOTES', NotesTable, 'NEXT', '' )
|
|
|
|
NoteRec = ''
|
|
NoteRec<notes_message_type$> = 'I'
|
|
NoteRec<notes_entry_date$> = date()
|
|
NoteRec<notes_entry_time$> = time()
|
|
NoteRec<notes_send_to$> = SendTo
|
|
NoteRec<notes_from$> = SentFrom
|
|
NoteRec<notes_message$> = Message
|
|
NoteRec<notes_entry_id$> = @user4
|
|
NoteRec<notes_subject$> = Subject
|
|
NoteRec<notes_attach_window$> = AttachWindow
|
|
NoteRec<notes_attach_keys$> = AttachKeys
|
|
NoteRec<notes_msg_groups_ids$> = SendToGroupName
|
|
|
|
WRITE NoteRec ON NotesTable, NextNoteKey ELSE
|
|
void = Msg( '', 'Unable to write ':NextNoteKey:' on NOTES...' )
|
|
RETURN
|
|
END
|
|
|
|
UNLOCK NotesTable, NextNoteKey ELSE
|
|
Void = msg( '', 'Unable to unlock ':NextNoteKey:' on NOTES...' )
|
|
RETURN
|
|
END
|
|
|
|
Void = Next_Key( 'NOTES', NotesTable, 'UPDATE', NextNoteKey )
|
|
|
|
Attachment = 'No'
|
|
|
|
IF AttachWindow AND AttachKeys THEN Attachment = 'Yes'
|
|
|
|
FOR I = 1 TO StCnt
|
|
ThisSendTo = SendTo<1,I>
|
|
IF LEN(ThisSendTo) THEN
|
|
|
|
Recipient = ThisSendTo
|
|
NoteID = NextNoteKey
|
|
CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS')
|
|
|
|
obj_Notes_Sent('Create',Recipient:@RM:NoteID:@RM:CurrDTM)
|
|
|
|
END
|
|
NEXT I
|
|
|
|
|