The way We handle Order Acks is kind of simular.
we use the salesperson fields
so that when OE adds salespersons they also get the Order Ack
SO in my situation we use a free field on the Account card that has the option of Email, Fax or Prompt.
If Email is selected. then An Ack goes to the Main Email on the Account Card.
If Fax is selected then a Fax is sent to the Main Fax number on the Account card.
If the option is set to Prompt then before the OE Order is saved it Prompts the OE person to put in either a Email or Fax number to send the Ack to.
This is usefull for Sales people whom allways sell to different End Users.
Now to make this work I have Some Flex code built into Macola ES I will share some of that with you.
Private Sub macForm_ModeChange(ByVal ModeType As MacMode)
' Driving force for order acknowledgements.
If ModeType = 12 Or ModeType = 13 Then
' If it is a new order or change order, I need the order number
strOrderNo = OE0101.macForm.Order.Text
End If
If ModeType = 11 Then
' If I'm saving the order, I need might need to send an acknowledgement.
Dim strInsComment As String
Dim strpadordno As String * 8
Dim myDate As Date
intResponse = MsgBox("Would you like to send an acknowledgement?", vbYesNo, "Order Acknowledgement")
If intResponse = vbYes Then
' Call the code to send the acknowledgement
SendAck
' Write to Order Notes that the user wants an acknowledgement sent.
strpadordno = " "
formatorderno = Mid(strpadordno, 1, 8 - Len(Trim(strOrderNo))) & Trim(strOrderNo)
strInsComment = "Name: " & macForm.ConnInfo.User & " Nature: Auto Date: " & Now() & vbCrLf & macForm.ConnInfo.User & " requested that an acknowledgement be sent."
Dim myAdo1 As ADODB.Connection
Dim myRecordset1 As ADODB.Recordset
Set myAdo1 = macForm.ConnInfo.OpenADOConn
Set myRecordset1 = myAdo1.Execute("Insert into OECOMMENTS_SQL(Ord_no,comment,com_nature,usr_name,ent_date,rec_count,misc,salesman,contact,problem,cause,results,datebuilt,serialnumber,exp_flag,exp_date) Values ('" & formatorderno & "','" & strInsComment & "',7,'" & macForm.ConnInfo.User & "','" & Now() & "',5,' ',1,1,1,1,1,' ',' ',0,0)")
Set myRecordset1 = myAdo1.Execute("EXSW_Insert_WF_Auto_Note '" & formatorderno & "','" & strInsComment & "'")
Set myRecordset1 = myAdo1.Execute("select item_no from oeordlin_sql where ord_no = '" & formatorderno & "' and item_no like 'Pend%'")
If myRecordset1.EOF Then
myRecordset1.Close
myAdo1.Close
Set myRecordset1 = Nothing
Set myAdo1 = Nothing
Else
strTempPend = "OE Line Comments " & vbCrLf
Set myRecordset1 = myAdo1.Execute("select ord_no, line_seq_no, cmt from OELINCMT_SQL where ord_no = '" & formatorderno & "' order by ID ASC")
While Not myRecordset1.EOF
strTempPend = strTempPend & RTrim(myRecordset1("cmt")) & vbCrLf
myRecordset1.MoveNext
Wend
Set myRecordset1 = myAdo1.Execute("EXSW_Insert_WF_Auto_Note '" & formatorderno & "','" & strTempPend & "'")
myAdo1.Close
Set myRecordset1 = Nothing
Set myAdo1 = Nothing
strTempPend = ""
End If
Else
' Write to the Order Notes that the user did not want to send an acknowledgement
strpadordno = " "
formatorderno = Mid(strpadordno, 1, 8 - Len(Trim(strOrderNo))) & Trim(strOrderNo)
strInsComment = "Name: " & macForm.ConnInfo.User & " Nature: Auto Date: " & Now() & vbCrLf & macForm.ConnInfo.User & " selected not to send an acknowledgement."
Dim myAdo2 As ADODB.Connection
Dim myRecordset2 As ADODB.Recordset
Set myAdo2 = macForm.ConnInfo.OpenADOConn
Set myRecordset2 = myAdo2.Execute("Insert into OECOMMENTS_SQL(Ord_no,comment,com_nature,usr_name,ent_date,rec_count,misc,salesman,contact,problem,cause,results,datebuilt,serialnumber,exp_flag,exp_date) Values ('" & formatorderno & "','" & strInsComment & "',7,'" & macForm.ConnInfo.User & "','" & Now() & "',5,' ',1,1,1,1,1,' ',' ',0,0)")
Set myRecordset2 = myAdo2.Execute("EXSW_Insert_WF_Auto_Note '" & formatorderno & "','" & strInsComment & "'")
Set myRecordset2 = myAdo2.Execute("select item_no from oeordlin_sql where ord_no = '" & formatorderno & "' and item_no like 'Pend%'")
If myRecordset2.EOF Then
myRecordset2.Close
myAdo2.Close
Set myRecordset2 = Nothing
Set myAdo2 = Nothing
Else
strTempPend = "OE Line Comments " & vbCrLf
Set myRecordset2 = myAdo2.Execute("select ord_no, line_seq_no, cmt from OELINCMT_SQL where ord_no = '" & formatorderno & "' order by ID ASC")
While Not myRecordset2.EOF
strTempPend = strTempPend & RTrim(myRecordset2("cmt")) & vbCrLf
myRecordset2.MoveNext
Wend
Set myRecordset2 = myAdo.Execute("EXSW_Insert_WF_Auto_Note '" & formatorderno & "','" & strTempPend & "'")
myAdo2.Close
Set myRecordset2 = Nothing
Set myAdo2 = Nothing
strTempPend = ""
End If
End If
Here is the Event That we run
SELECT dbo.npOEORDACK.ord_no AS "ord_no", dbo.npOEORDACK.cus_send AS "cus_send", dbo.npOEORDACK.sls_1_email AS "sls_1_email", dbo.npOEORDACK.sls_2_email AS "sls_2_email", dbo.npOEORDACK.sls_3_email AS "sls_3_email", dbo.npOEORDACK.Id AS "Id", rtrim(dbo.npOEORDACK.sls_1_email) + '; ' + rtrim(dbo.npOEORDACK.sls_2_email) + '; ' + rtrim(dbo.npOEORDACK.sls_3_email) + '; ' + 'acknowledgements@igoergo.com' AS "Combined_email", dbo.npOEORDACK.cus_send + '; ' + rtrim(dbo.npOEORDACK.sls_1_email) + '; ' + rtrim(dbo.npOEORDACK.sls_2_email) + '; ' + rtrim(dbo.npOEORDACK.sls_3_email) + '; ' + 'acknowledgements@igoergo.com' AS "Combined_email2" FROM (dbo.npOEORDACK JOIN dbo.oeordhdr_sql ON dbo.npOEORDACK.ord_no = dbo.oeordhdr_sql.ord_no) WHERE dbo.npOEORDACK.cus_ack_pref = 'Email ' AND dbo.oeordhdr_sql.selection_cd = 'C' AND dbo.npOEORDACK.Syscreated >= '{%Current Date YYYY-MM-DD%}' ORDER BY dbo.npOEORDACK.ord_no ASC
What this does It determines what to send to a CustomTable that we use to prep the email address in a format that can be used.
then it also writes information to our Order notes workflows on who ack'd the order and when.
The Custom Table takes all of the emails and fax numbers and validates them and puts them in to a format that can be used by event manager to send the email.
Event manager then recieves this info from the Custom Table and runs a Crystal report and outputs it as a PDF attached to an email or faxes the attachment to the desired people.
which in our case is Myself(for archiveing),(Customer account Preference),Salesperson1,Salesperson2,Salesperson3.
In our industry we some times like to link certain reps to certain dealers for ACK reasons
we do this by using free number field on the account card that you can put a resource number in. This allows us to associate an account with a salesperson.
When this link is made we automaticaly add that sales person to orders made by that account.
automates things a bit as well.
You can CC as well but becarefull You have to have a Main email as well or Eventmanager will freak out.
The otherthing you can do by using an event is send them each one a different email.