Attribute VB_Name = "modOrders"
Option Explicit

' 赢单转订单：商机阶段改赢单，订单表建档并预铺回款公式
Public Sub WinDealToOrder()
    Dim wsO As Worksheet, wsD As Worksheet, f As Range
    Dim key As String, r As Long
    On Error GoTo ErrH
    key = InputBox("赢单的商机编号：", "赢单转订单")
    If StrPtr(key) = 0 Then Exit Sub
    Set wsO = Sh("商机")
    Set f = wsO.Columns(1).Find(UCase(Trim(key)), LookAt:=xlWhole)
    If f Is Nothing Then MsgBox "找不到该商机。": Exit Sub
    If f.Cells(1, 5).Value = "输单" Then MsgBox "输单商机不能转订单。": Exit Sub
    f.Cells(1, 5).Value = "赢单"
    Set wsD = Sh("订单")
    r = NextRow(wsD, 1)
    wsD.Cells(r, 1).Value = NextId(wsD, 1, "D")
    wsD.Cells(r, 2).Value = f.Cells(1, 1).Value
    wsD.Cells(r, 3).Value = f.Cells(1, 2).Value
    wsD.Cells(r, 4).Value = Date
    wsD.Cells(r, 5).Value = f.Cells(1, 6).Value
    wsD.Cells(r, 6).Value = f.Cells(1, 9).Value
    wsD.Cells(r, 7).Formula = "=SUMIFS(回款!$E$2:$E$1000,回款!$C$2:$C$1000,A" & r & ")"
    wsD.Cells(r, 8).Formula = "=E" & r & "-G" & r
    wsD.Cells(r, 9).Formula = "=IF(G" & r & "=0,""未回款"",IF(H" & r & "<=0,""已结清"",""部分回款""))"
    wsD.Cells(r, 10).Value = "履行中"
    wsD.Activate
    wsD.Cells(r, 1).Select
    MsgBox "商机 " & key & " 已赢单并建立订单，请及时跟进回款。"
    Exit Sub
ErrH:
    Fail "赢单转订单"
End Sub

' 登记回款：逐笔追加回款流水，订单公式自动汇总
Public Sub LogPayment()
    Dim wsR As Worksheet, wsD As Worksheet, f As Range
    Dim oid As String, amtRaw As String, way As String, owner As String, r As Long
    On Error GoTo ErrH
    oid = InputBox("订单编号：", "登记回款")
    If StrPtr(oid) = 0 Then Exit Sub
    Set wsD = Sh("订单")
    Set f = wsD.Columns(1).Find(UCase(Trim(oid)), LookAt:=xlWhole)
    If f Is Nothing Then MsgBox "找不到订单 " & oid & "。": Exit Sub
    amtRaw = InputBox("回款金额："): If StrPtr(amtRaw) = 0 Then Exit Sub
    way = InputBox("方式（对公转账/现金/银行承兑）：", , "对公转账")
    If StrPtr(way) = 0 Then Exit Sub
    owner = InputBox("经手人编号："): If StrPtr(owner) = 0 Then Exit Sub
    Set wsR = Sh("回款")
    r = NextRow(wsR, 1)
    wsR.Cells(r, 1).Value = NextId(wsR, 1, "R")
    wsR.Cells(r, 2).Value = Date
    wsR.Cells(r, 3).Value = UCase(Trim(oid))
    wsR.Cells(r, 4).Value = way
    wsR.Cells(r, 5).Value = CDbl(amtRaw)
    wsR.Cells(r, 6).Value = owner
    wsR.Activate
    wsR.Cells(r, 1).Select
    MsgBox "回款已登记，请到订单表核对未回款余额。"
    Exit Sub
ErrH:
    Fail "登记回款"
End Sub
