⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmsaleorder.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    SetHelpID Me.HelpContextID
    Dim strMsg(5) As String, strMsg1(5) As String
    Dim intYesNo As Integer
    Dim i%, j%
    strMsg(0) = "您确实要删除全部销售订单的分录吗?"
    strMsg(1) = "您确实要删除全部已经作废销售订单的分录吗?"
    strMsg(2) = "您确实要删除全部已经关闭销售订单的分录吗?"
    strMsg(2) = "您确实要删除全部已经执行销售订单的分录吗?"
    strMsg1(0) = "您确实要删除该条销售订单的分录吗?"
    strMsg1(1) = "您确实要删除该条已经作废销售订单的分录吗?"
    strMsg1(2) = "您确实要删除该条已经关闭销售订单的分录吗?"
    strMsg1(3) = "该条销售订单的分录已经执行,不能删除!"
    Select Case intIndex
        Case 0  '插入记录
            If Not clsBill.SaveInput2Form() Then
                Exit Sub
            End If
            clsBill.InsertARow
            GrdCol.col = 1
            clsBill.grdCol_EnterCell
        Case 1  '删除记录
            If clsBill.rowIsDone(GrdCol.Row) Then
                clsBill.ShowMsgOther Me.hwnd, strMsg1(3), MB_OK + MB_ICONEXCLAMATION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "删除分录"
                Exit Sub
            End If
            If chkPrint(1).Value = 1 Then
                intYesNo = clsBill.ShowMsgOther(Me.hwnd, strMsg1(1), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "删除分录")
            ElseIf GrdCol.TextMatrix(GrdCol.Row, 12) <> "" Then
                intYesNo = clsBill.ShowMsgOther(Me.hwnd, strMsg1(2), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "删除分录")
            Else
                intYesNo = clsBill.ShowMsgOther(Me.hwnd, strMsg1(0), MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "删除分录")
            End If
            If intYesNo = IDYES Then
                clsBill.blnCtrlBinding = False
'                If Not clsBill.blnDeleteARow(grdCol.Row) Then
'                    clsbill.showmsgother Me.hwnd, "删除当前记录失败!", MB_OK + MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "删除分录"
'                    Exit Sub
'                End If
                If GrdCol.Row >= 1 And GrdCol.Rows > 2 Then

                    clsBill.blnDeleteARow GrdCol.Row

                    GrdCol.RemoveItem GrdCol.Row
                    clsBill.setAllItemproperty
                    If clsBill.rowIsDone(GrdCol.Row) Then
                        If GrdCol.col = 1 Then
                           GrdCol.col = 2
                        End If
                    Else
                        GrdCol.col = 1
                    End If
                ElseIf GrdCol.Row = 1 Then

                    clsBill.blnDeleteARow GrdCol.Row

                    GrdCol.Rows = 1
                    clsBill.InsertARow False
                    GrdCol.Row = 1
                    GrdCol.col = 1
                    clsBill.setAllItemproperty
                End If
                clsBill.blnIsChanged = True
                clsBill.blnCtrlBinding = True
                clsBill.InputCtrInvisible
                clsBill.grdCol_EnterCell
                clsBill.BuildNoteMsg True
           End If
        Case 2  'bar
        Case 3  '复制记录
            clsBill.CopyARow
        Case 4  '粘贴记录
            clsBill.PasteARow
        Case 5  'Bar
        Case 6  '搜索
            frmTreeFind.ShowFind
        Case 7  '查询缺号
            Dim frmTmp As Form
            Set frmTmp = New frmBillNo
            frmTmp.ShowTypeID C2lng(lblHead(2).Tag)
            Set frmTmp = Nothing
            
    End Select
    '合计行计算
    clsBill.WriteTotal
End Sub

Private Sub mclsMainControl_ListEditMenu(ByVal intIndex As Integer)
    Dim dtmDate1 As Date
                
    Select Case intIndex
        Case 0  '插入单据
'            clsBill.GetANewBill lblHead(5 - 1).Tag, lblHead(3 - 1).Tag, lblField(2).Caption
            If clsBill.lngNowID = 0 And clsBill.blnIsChanged = False Then
                Exit Sub
            End If
            ShowANewBill
        Case 1  '删除单据
            If clsBill.lngNowID = 0 And clsBill.blnIsChanged = False Then
                Exit Sub
            End If
            If chkPrint(2).Value = 1 Then
                clsBill.ShowMsgOther Me.hwnd, "本张销售订单已关闭,不能删除!", MB_OK + MB_SYSTEMMODAL + MB_ICONEXCLAMATION, "删除单据"
                Exit Sub
            End If
            If clsBill.blnIsPrinted Then
               If clsBill.blnModifyPrintedBill Then
                  If clsBill.ShowMsgOther(Me.hwnd, "本张" & lblCaption.Caption & "已经打印,您确实要删除吗?", MB_YESNO + MB_ICONQUESTION + MB_SYSTEMMODAL + MB_DEFBUTTON2, "删除单据") = vbNo Then
                     Exit Sub
                  End If
               Else
                  clsBill.ShowMsgOther Me.hwnd, "本张" & lblCaption.Caption & "已经打印,不能删除!", MB_OK + MB_ICONEXCLAMATION + MB_SYSTEMMODAL + MB_DEFBUTTON2, "删除单据"
                  Exit Sub
               End If
            End If
            
            If clsBill.lngNowID <> 0 Then
                
                Dim recTmp As rdoResultset
                Dim i As Integer
                For i = 1 To GrdCol.Rows - 1
                    If clsBill.rowIsDone(i) Then Exit For
                Next
                If i = GrdCol.Rows Then
                    i = clsBill.ShowMsgOther(Me.hwnd, "您确实要删除本张销售订单的全部分录吗?", MB_YESNO + MB_ICONQUESTION + MB_SYSTEMMODAL + MB_DEFBUTTON2, "删除单据")
                Else
                    If clsBill.ShowMsgOther(Me.hwnd, "本张销售订单已经执行,您确实要删除吗?", MB_YESNO + MB_ICONQUESTION + MB_SYSTEMMODAL, "删除单据") = vbNo Then
                        Exit Sub
                    End If
                End If
                If i = vbNo Then Exit Sub
                On Error GoTo errhandle1
                gclsBase.BaseWorkSpace.BeginTrans
                If chkPrint(1).Value <> 1 Then
'                    strSql = "SELECT SaleOrderDetail.lngSaleOrderDetailID AS lngDetailID " _
'                    & "FROM SaleOrder LEFT JOIN SaleOrderDetail ON SaleOrder.lngSaleOrderID = SaleOrderDetail.lngSaleOrderID " _
'                    & "WHERE SaleOrder.lngSaleOrderID=" & clsBill.lngNowID
                    strSql = "SELECT SaleOrderDetail.lngSaleOrderDetailID AS lngDetailID " _
                    & "FROM SaleOrder,SaleOrderDetail WHERE SaleOrder.lngSaleOrderID = SaleOrderDetail.lngSaleOrderID " _
                    & "AND SaleOrder.lngSaleOrderID=" & clsBill.lngNowID
                    Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
                    If Not (recTmp.BOF And recTmp.EOF) Then
                        While Not recTmp.EOF
                            clsBill.DeleteOrderDetail recTmp!lngDetailID
                            recTmp.MoveNext
                        Wend
                    End If
                    recTmp.Close
                    Set recTmp = Nothing
                End If
                strSql = "DELETE FROM SaleOrder WHERE lngSaleOrderID=" & clsBill.lngNowID
                gclsBase.ExecSQL strSql
                strSql = "DELETE FROM SaleOrderDetail WHERE lngSaleOrderID=" & clsBill.lngNowID
                gclsBase.ExecSQL strSql
                dtmDate1 = C2Date(lblField(3).Caption)
'                clsBill.intAccountYear = gclsBase.FYearOfDate(dtmDate1)   '会计年度
'                clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(dtmDate1)   '会计期间
                blnMaxNODecrease gclsBase.FYearOfDate(NewReceiptDate), gclsBase.PeriodOfDate(NewReceiptDate), C2lng(lblHead(2).Tag), _
                    SubStr(strAlphaOfStr(LTrim(strNewReceiptNO)), 1, 6), _
                    strDigitOfStr(LTrim(strNewReceiptNO))

'                    strNewReceiptNO = lblField(2).Caption
'                    NewReceiptDate = gclsBase.BaseDate
'                    blnModifyMaxNO gclsBase.FYearOfDate(NewReceiptDate), gclsBase.PeriodOfDate(NewReceiptDate), C2lng(lblHead(2).Tag), _
'                       SubStr(strAlphaOfStr(LTrim(strNewReceiptNO)), 1, 6), _
'                       strDigitOfStr(LTrim(strNewReceiptNO))


                gclsBase.BaseWorkSpace.CommitTrans
                gclsSys.SendMessage Me.hwnd, 30 + C2lng(lblHead(2).Tag)
''                clsBill.lngNowID = 0
                clsBill.blnIsChanged = False
                clsBill.lngNowID = 0
                cmdNext_Click
'                ShowANewBill , False
                Exit Sub
errhandle1:
                gclsBase.BaseWorkSpace.RollBacktrans
'                clsBill.GetANewBill lblHead(5 - 1).Tag, lblHead(3 - 1).Tag, lblField(2).Caption                ShowANewBill
            Else
                If clsBill.ShowMsgOther(Me.hwnd, "您确实要删除本张销售订单的全部分录吗?", MB_YESNO + MB_ICONQUESTION + MB_SYSTEMMODAL + MB_DEFBUTTON2, "删除单据") = vbYes Then
'                    clsBill.GetANewBill lblHead(5 - 1).Tag, lblHead(3 - 1).Tag, lblField(2).Caption
                    dtmDate1 = C2Date(lblField(3).Caption)
'                    clsBill.intAccountYear = gclsBase.FYearOfDate(dtmDate1)   '会计年度
'                    clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(dtmDate1)   '会计期间
                    blnMaxNODecrease gclsBase.FYearOfDate(NewReceiptDate), gclsBase.PeriodOfDate(NewReceiptDate), C2lng(lblHead(2).Tag), _
                        SubStr(strAlphaOfStr(LTrim(strNewReceiptNO)), 1, 6), _
                        strDigitOfStr(LTrim(strNewReceiptNO))

                    strNewReceiptNO = lblField(2).Caption
                    NewReceiptDate = gclsBase.BaseDate
                    blnModifyMaxNO gclsBase.FYearOfDate(NewReceiptDate), gclsBase.PeriodOfDate(NewReceiptDate), C2lng(lblHead(2).Tag), _
                       SubStr(strAlphaOfStr(LTrim(strNewReceiptNO)), 1, 6), _
                       strDigitOfStr(LTrim(strNewReceiptNO))


                    clsBill.lngNowID = 0
                    clsBill.blnIsChanged = False
                    ShowANewBill , False
                End If
            End If
        Case 2  'BAR
        Case 3  '复制单据
            clsBill.SaveBillToCollection
        Case 4  '粘贴单据
            clsBill.LoadBillFromCollection
        Case 5  'BAR
        Case 6  '搜索
            frmTreeFind.ShowFind
        Case 7  '查询单据缺号
            Dim frmTmp As Form
            Set frmTmp = New frmBillNo
            frmTmp.ShowTypeID C2lng(lblHead(2).Tag)
            Set frmTmp = Nothing
        Case 9  '模板表体列宽恢复
            ModifyColWidthDefault Me
            clsBill.TemplateChange C2lng(lblHead(4).Tag)
        Case 10  '自动报警
            m_blnAlertMenuChecked = Not m_blnAlertMenuChecked
            SetAlertStatus C2lng(lblHead(2).Tag), m_blnAlertMenuChecked
        Case 12
            CallBillList 12, True
        Case 13
            CallBillList 12, False
        Case 14
            GotoOldBill
        Case 15
            mclsMainControl_FilePrintReceipt
        Case 17
            CmdNote_Click
        Case 18
            clsBill.ShowCalcDisc
    End Select
    '合计行计算
    clsBill.WriteTotal
End Sub
Private Sub refTmpID_Change()
    clsBill.TemplateChange C2lng(lblHead(4).Tag)
End Sub

Private Sub SaveActivity(recTmp As rdoResultset)
    Dim strTmp As String
    With recTmp
        !blnIsPrinted = 0
        !intYear = gclsBase.FYearOfDate(C2Date(lblField(3).Caption))
        !bytPeriod = gclsBase.PeriodOfDate(C2Date(lblField(3).Caption))
        strTmp = SubStr(BillPublic.strAlphaOfStr(LTrim(lblField(2).Caption)), 1, 6)      '文本,销售订单编号
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strReceiptNo = strTmp
        !lngReceiptNo = C2lng(BillPublic.strDigitOfStr(LTrim(lblField(2).Caption)))         '数字,销售订单编号
        !lngClassID2 = clsBill.getFieldID(6)                           '统计(项目)ID
        !lngClassID1 = clsBill.getFieldID(7)                           '统计ID
        !lngTemplateID = C2lng(lblHead(5 - 1).Tag)                     '数字,模版ID
        BillPublic.setPrevPlateAndBillNo 12, !lngTemplateID, !strReceiptNo
        !lngCustomerID = C2lng(lblHead(0).Tag)
        !lngCustomerAddressID = C2lng(lblTitle(0).Tag)                   '单位地址ID
'        !lngBusinessAddressID = C2Lng(lblTitle(2).Tag)                  '企业地址ID
        !lngDepartmentID = clsBill.getFieldID(5)
        !lngEmployeeID = clsBill.getFieldID(4)
        !lngTermID = clsBill.getFieldID(12)
        strTmp = lblField(11).Caption
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strReceiptDate = strTmp
        strTmp = lblField(10).Caption
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strDueDate = strTmp
        strTmp = lblField(3).Caption
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strDate = strTmp
        !lngOperatorID = IIf(C2lng(LblMemo(LblMemo.Count - 1).Tag) > 0, C2lng(LblMemo(LblMemo.Count - 1).Tag), gclsBase.OperatorID)
        !lngCurrencyID = clsBill.getFieldID(9)
        !dblRate = C2Dbl(lblField(8).Caption)
        Dim strT As String
        strT = Trim(LblMemo(1).Caption)
        strTmp = IIf(StrLen(strT) < 40, strT, SubStr(strT, 1, 40))  '文本,备注
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strNote = strTmp
        !blnIsPrint = chkPrint(0).Value          '是/否,打印标志
'        !blnIsVoid = IIf(chkPrint(1).Value = 0, False, True)           '是/否,作废标志
        If chkPrint(1).Value = 1 Then
           !blnIsVoid = 1
'           !dblSendQuantity = 0
        Else
            !blnIsVoid = 0
        End If
    End With
End Sub
Private Sub SaveActivityDetailBody(recTmp As rdoResultset, ByVal i As Integer)
    Dim strTmp As String
    With recTmp
        !lngRowID = i
        !lngItemID = C2lng(clsBill.strGrdCell(i, 24))      '商品ID
        !lngUnitID = C2lng(clsBill.strGrdCell(i, 25))      '计量单位ID
'        !dblQuantity = C2Dbl(clsBill.strGrdCell(i, 35))
        !dblQuantity = C2Dbl(NumberConvert(GrdCol.TextMatrix(i, 3), C2Dbl(GrdCol.TextMatrix(i, 34)), True))
        If chkPrint(1).Value = 1 Then
         !dblSendQuantity = 0
        End If
'        !dblPrice = C2Dbl(clsBill.strGrdCell(i, 4)) / ConvertFactor(!lngUnitID, !lngItemID)
        !dblDiscountRate = C2Dbl(clsBill.strGrdCell(i, 6))
        !dblCurrAmount = C2Dbl(clsBill.strGrdCell(i, 7))
'        If !dblQuantity <> 0 Then
'            !dblPrice = !dblCurrAmount * 100 / (!dblQuantity * !dblDiscountRate)
'        Else
            Dim dblFactor As Double
            dblFactor = ConvertFactor(!lngUnitID, !lngItemID)
            !dblPrice = C2Dbl(clsBill.strGrdCell(i, 4)) / dblFactor
            !dblPriceTax = C2Dbl(clsBill.strGrdCell(i, 5)) / dblFactor
'        End If
        !dblAmount = C2Dbl(clsBill.strGrdCell(i, 8))
        !lngTaxID = C2lng(clsBill.strGrdCell(i, 26))
        !dblCurrTaxAmount = C2Dbl(clsBill.strGrdCell(i, 14))
        !dblTaxAmount = C2Dbl(clsBill.strGrdCell(i, 15))
        strTmp = clsBill.strGrdCell(i, 16)
        strTmp = IIf(strTmp = "", " ", strTmp)
        !strPromiseDate = strTmp
'        !strPromiseDate = "1998-07-31"
        !lngJobID = C2lng(clsBill.strGrdCell(i, 27))
        !lngCustomID0 = C2lng(clsBill.strGrdCell(i, 28))
        !lngCustomID1 = C2lng(clsBill.strGrdCell(i, 29))
        !lngCustomID2 = C2lng(clsBill.strGrdCell(i, 30))
        !lngCustomID3 = C2lng(clsBill.strGrdCell(i, 31))
        !lngCustomID4 = C2lng(clsBill.strGrdCell(i, 32))
        !lngCustomID5 = C2lng(clsBill.strGrdCell(i, 33))
        !blnIsClose = IIf(clsBill.strGrdCell(i, 12) = "", 0, 1)
        '设已存储标志
        GrdCol.TextMatrix(i, 0) = !lngSaleOrderDetailID
'        strSql = "UPDATE Item SET dblSOQuantity=dblSOQuantity + " & !dblQuantity & " WHERE lngItemid=" & !lngItemID
'        gclsBase.BaseDB.Execute strSql
        Dim dblRate As Double
        If blnCurrencyInDirect(clsBill.getFieldID(9)) Then
            dblRate = 1 / C2Dbl(lblField(8).Caption)
        Else
            dblRate = C2Dbl(lblField(8).Caption)
        End If
        clsBill.setMaxItemProperty i, !dblPrice * dblRate, !dblPriceTax * dblRate
    End With
End Sub
Private Function SaveNewBill() As Boolean
    Dim recActivity As rdoResultset
    Dim recDetail As rdoResultset
    Dim lngNewActivityID As Long
    Dim dtmDate1 As Date
    Dim strAlpha As String
    Dim lngDigit As Long
    Dim i As Long
    Dim blnTransBegin As Boolean    '错误处理中是否作事务回滚标志
    Dim strTmp As String
    
    SaveNewBill = False
    Dim recTemp As rdoResultset
    
    '制单日合法性校验
'    If gclsBase.PeriodClosed(lblField(3).Caption) Then
'        clsBill.ShowMsgOther Me.hwnd, "制单日不能在已结帐期间内!", MB_ICONEXCLAMATION + MB_OK + MB_SYSTEMMODAL, "保存单据"
'        lblField(3).Caption = Format(gclsBase.BaseDate, "yyyy-mm-dd")
'        SaveNewBill = False
'        Exit Function
'    End If
    
    #If conDebug Then
    #Else
        On Error GoTo ErrorHandle
    #End If
    If Not clsBill.DataValid Then
        Exit Function
    End If
    Me.MousePoin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -