Foxtable(狐表)用户栏目专家坐堂 → 订单录入窗口点提交后,希望通过代码进行条件判断拦截针对其它客服最近60天有过成交的客户提交的订单。


  共有2758人关注过本帖树形打印复制链接

主题:订单录入窗口点提交后,希望通过代码进行条件判断拦截针对其它客服最近60天有过成交的客户提交的订单。

帅哥哟,离线,有人找我吗?
温馨的大树
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
订单录入窗口点提交后,希望通过代码进行条件判断拦截针对其它客服最近60天有过成交的客户提交的订单。  发帖心情 Post By:2020/12/24 6:53:00 [只看该作者]

Dim Result As DialogResult
Result = MessageBox.Show("确定提交新增订单吗?【是:确定提交; 否:返回修改; 取消:取消提交】","确认提示",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim cmd As new SQLCommand
    Dim dt As Date
    cmd.C
    cmd.CommandText = "select getdate()"
    dt = cmd.ExecuteScalar
    Tables("订单明细表").current.DataRow("订单内容_上单时间") = dt
    Tables("订单明细表").current.DataRow("订单状态") = "待进行"
    
    If r IsNot Nothing Then
        Dim dr5 As DataRow
        If r.IsNull("客户_电话") = False
            Dim dhs() As String = r("客户_电话").trim().split("/")
            For Each dh As String In dhs
                dr5 = DataTables("客户数据表") .SQLFind("'/'+客户电话+'/' like '%/" & dh & "/%'")
                If dr5 IsNot Nothing Then Exit For
            Next
            If dr5 IsNot Nothing Then
                Dim lst As new List(of String)
                For Each d As String In dr5("客户电话").trim().split("/")
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                For Each d As String In dhs
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                dr5("客户电话") = String.Join("/",lst.ToArray)
                If dr5.IsNull("客户QQ")
                    dr5("客户QQ")=r("客户_QQ")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户QQ").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_QQ").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户QQ") = String.Join("/",lst.ToArray)
                End If
                
                If dr5.IsNull("客户微信")
                    dr5("客户微信")= r("客户_微信")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户微信").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_微信").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户微信") = String.Join("/",lst.ToArray)
                End If
            End If
        End If
        If dr5 Is Nothing AndAlso r.IsNull("客户_QQ") = False
            Dim dhs() As String = r("客户_QQ").trim().split("/")
            For Each dh As String In dhs
                dr5 = DataTables("客户数据表") .SQLFind("'/'+客户QQ+'/' like '%/" & dh & "/%'")
                If dr5 IsNot Nothing Then Exit For
            Next
            If dr5 IsNot Nothing Then
                Dim lst As new List(of String)
                For Each d As String In dr5("客户QQ").trim().split("/")
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                For Each d As String In dhs
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                dr5("客户QQ") = String.Join("/",lst.ToArray)
                If dr5.IsNull("客户电话")
                    dr5("客户电话")=r("客户_电话")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户电话").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_电话").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户电话") = String.Join("/",lst.ToArray)
                End If
                
                If dr5.IsNull("客户微信")
                    dr5("客户微信")= r("客户_微信")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户微信").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_微信").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户微信") = String.Join("/",lst.ToArray)
                End If
            End If
        End If
        
        If dr5 Is Nothing AndAlso r.IsNull("客户_微信") = False
            Dim dhs() As String = r("客户_微信").trim().split("/")
            For Each dh As String In dhs
                dr5 = DataTables("客户数据表") .SQLFind("'/'+客户微信+'/' like '%/" & dh & "/%'")
                If dr5 IsNot Nothing Then Exit For
            Next
            If dr5 IsNot Nothing Then
                Dim lst As new List(of String)
                For Each d As String In dr5("客户微信").trim().split("/")
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                For Each d As String In dhs
                    If lst.Contains(d) = False Then lst.Add(d)
                Next
                dr5("客户微信") = String.Join("/",lst.ToArray)
                If dr5.IsNull("客户电话")
                    dr5("客户电话")=r("客户_电话")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户电话").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_电话").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户电话") = String.Join("/",lst.ToArray)
                End If
                
                If dr5.IsNull("客户QQ")
                    dr5("客户QQ")= r("客户_QQ")
                Else
                    lst.Clear
                    For Each d As String In dr5("客户QQ").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    For Each d As String In r("客户_QQ").trim().split("/")
                        If lst.Contains(d) = False Then lst.Add(d)
                    Next
                    dr5("客户QQ") = String.Join("/",lst.ToArray)
                End If
            End If
        End If
        
        If dr5 IsNot Nothing Then
            Dim dr As DataRow
            dr = CurrentTable.DataTable.find("客户_编号 = '" & dr5("客户编号") & "' and 订单日期 >= '" & Date.Today & "'")
            If dr IsNot Nothing Then
                If dr("客服类型_主客服") <> user.name Then
                    MessageBox.Show("对不起,此客户最近四天其它客服有上单,不能重复安排!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                    dr5.Reject()
                    r .Reject()
                    e.Form.close()
                    Return
                Else
                    Dim Result1 As DialogResult
                    Result1 = MessageBox.Show("此客户你最近四天有上单,是否还需要继续?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
                    If Result1 = DialogResult.No Then
                        dr5.Reject()
                        r.Reject()
                        e.Form.close()
                        Return
                    End If
                End If
            End If
            dr = CurrentTable.DataTable.find("客户_编号 = '" & dr5("客户编号") & "' and 订单日期 < '" & Date.Today & "' and 调度操作_订单结果 = '成功' ","订单日期 desc")
            If dr IsNot Nothing Then
                Dim dr50 As  String = "202020220"
                msgbox(dr50)
                Dim d1 As Date = dr("订单日期")
                Dim d2 As Date = Date.Today
                Dim t As TimeSpan = d2-d1
                If t.TotalDays < 60 Then
                    If  dr("客服类型_主客服") <> user.name Then
                        Dim dr100 As DataRow = CurrentTable.DataTable.find("客户_编号 = '" & dr5("客户编号") & "' and 订单日期 < '" & Date.Today & "' and 调度操作_订单结果 = '成功' and 价格收款_单位 = 'YZ'","订单日期 desc")
                        If dr100 Is Nothing Then
                            MessageBox.Show("对不起,其它客服60天专属保护期内客户不能安排,请提交申请批准后方可安排!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                            dr5.Reject()
                            r.Reject()
                            e.Form.close()
                            Return
                        Else
                            If dr100("客服类型_主客服") <> user.name Then
                                MessageBox.Show("对不起,其它客服60天专属保护期内客户不能安排,请提交申请批准后方可安排!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                                dr5.Reject()
                                r.Reject()
                                e.Form.close()
                                Return
                            End If
                        End If
                    End If
                End If
            End If
            
            
            If dr5.IsNull("客户网名")
                dr5("客户网名")= r("客户_网名")
            Else
                Dim qqs As new List(of String)
                For Each d As String In dr5("客户网名").trim().split("/")
                    If qqs.Contains(d) = False Then qqs.Add(d)
                Next
                For Each d As String In r("客户_网名").trim().split("/")
                    If qqs.Contains(d) = False Then qqs.Add(d)
                Next
                dr5("客户网名") = String.Join("/",qqs.ToArray)
            End If
            r("客户_编号") = dr5("客户编号")
            If r("客户_编号") IsNot Nothing And r("员工_姓名") IsNot Nothing Then
                Dim sr As DataRow = DataTables("订单明细表").Find(" 客户_编号 = '" & r("客户_编号") &"' And 员工_姓名 = '" & r("员工_姓名") &"' and 调度操作_订单结果 = '成功'")
                If sr IsNot Nothing Then
                    If sr("客服类型_主客服") = r("客服类型_主客服") Then
                        r("客户_回头约") = True
                    Else
                        MessageBox.show("对不起,你所选择的员工已经约过此客人,请返回修改或取消!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                        r("客户_回头约") = False
                        Return
                    End If
                End If
            End If
        Else
            dr5 = DataTables("客户数据表").AddNew()
            Dim bh2 As String
            Dim Inx2 As Integer
            bh2 = DataTables("客户数据表").SQLCompute("Max(客户编号)")
            Inx2 = CInt(bh2.SubString(3,5) + 1)
            
            dr5("客户编号") = "KH" & "-" & Format(Inx2,"00000")
            r("客户_编号") = dr5("客户编号")
            dr5("客户网名") = r("客户_网名")
            dr5("网名备注") = r("客户_网名备注")
            dr5("客户电话")= r("客户_电话")
            dr5("客户QQ") = r("客户_QQ")
            dr5("WT") = r("价格收款_WT")
            dr5("客户微信") = r("客户_微信")
            dr5("客户类型") = r("客户_类型")
            dr5("YZ") = r("客户_YZ")
            dr5("首单日期") = r("订单日期")
            dr5("尾单日期") = r("订单日期")
        End If
        r.Save()
        dr5.Save()
    End If
    DataTables("客户数据表").load
    QQClient.Send("调度部.倩倩","收到一份 & '" & user.name &"'新的订单,请处理",True)
    e.Form.close()
Else If Result = DialogResult.Cancel Then
    CurrentTable.Current.Reject()
    e.Form.Close()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
温馨的大树
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:238 积分:1807 威望:0 精华:0 注册:2020/2/3 11:16:00
回复:(温馨的大树)订单录入窗口点提交后,希望通过...  发帖心情 Post By:2020/12/24 7:02:00 [只看该作者]

希望通过以上代码实现以下功能:
1、对客户电话、微信、QQ在提交订单时间识别客户是否有记录,有过记录的,在本订单中自动写入客户编号。以前记录中没有的联系方式,补充计入客户数据表中相应的客户资料。这个功能以上代码能正常执行。
2、对于60天内成功的订单,出于保护原有客服对客户的管理权限,其它客服60天内不能针对该客户提交订单目前这个功能一直找不出代码问题在哪里,一直没有执行。
3、订单提交成功后,希望能够发送openQQ发送一条信息给调度,运行中也不能收到信息。

麻烦老师给看看,代码是哪里有问题,谢谢

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110763 积分:563747 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/24 9:20:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

           dr = CurrentTable.DataTable.find("客户_编号 = '" & dr5("客户编号") & "' and 订单日期 < '" & Date.Today & "' and 调度操作_订单结果 = '成功' ","订单日期 desc")
            If dr IsNot Nothing Then
msgbox(1) ‘能不能弹出提示
                Dim dr50 As  String = "202020220"
                msgbox(dr50)
                Dim d1 As Date = dr("订单日期")
                Dim d2 As Date = Date.Today
                Dim t As TimeSpan = d2-d1
                If t.TotalDays < 60 Then
msgbox(“TotalDays=” & t.TotalDays) ‘能不能弹出提示
                    If  dr("客服类型_主客服") <> user.name Then
msgbox(“主客服=” & dr("客服类型_主客服")) ‘能不能弹出提示
                        Dim dr100 As DataRow = CurrentTable.DataTable.find("客户_编号 = '" & dr5("客户编号") & "' and 订单日期 < '" & Date.Today & "' and 调度操作_订单结果 = '成功' and 价格收款_单位 = 'YZ'","订单日期 desc")
                        If dr100 Is Nothing Then
msgbox(2) ‘能不能弹出提示
                            MessageBox.Show("对不起,其它客服60天专属保护期内客户不能安排,请提交申请批准后方可安排!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                            dr5.Reject()
                            r.Reject()
                            e.Form.close()
                            Return
                        Else
msgbox(3) ‘能不能弹出提示
                            If dr100("客服类型_主客服") <> user.name Then
msgbox(“dr100主客服=” & dr100("客服类型_主客服"))‘能不能弹出提示
                                MessageBox.Show("对不起,其它客服60天专属保护期内客户不能安排,请提交申请批准后方可安排!","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
                                dr5.Reject()
                                r.Reject()
                                e.Form.close()
                                Return

 回到顶部