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

📄 frmadjustcost2.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
        recDetail.Close
    End If
    Me.MousePointer = vbDefault
    Exit Function

ErrorHandle:

    gclsBase.BaseWorkSpace.RollBack
    Dim edtBill As ErrDealType
    
    clsBill.lngNowID = 0
    For i = 1 To grdCol.Rows - 1
        grdCol.TextMatrix(i, 0) = 0
    Next i
    
    edtBill = Errors.ErrorsDeal
    ShowMsg Me.hwnd, "单据保存失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
    If edtBill = edtResume Then
       Resume EndProc
    End If
    If edtBill = edtCanNotKnown Then
       Resume EndProc
    End If
    If edtBill = edtCanNotResume Then
       Resume EndProc
    End If
    If edtBill = edtResumeNext Then
       Resume EndProc
    End If
    Resume EndProc
End Function
Private Function SaveModifyBill(ByVal lngOldActivityID As Long) As Boolean
    Dim recActivity As Recordset
    Dim recDetail As Recordset
    Dim dtmDate1 As Date
    Dim strAlpha As String
    Dim lngDigit As Long
    Dim i As Integer
    Dim blnDelete As Boolean
'    On Error GoTo ErrorHandle
    Dim recTemp As Recordset
    '制单日合法性校验
    If gclsBase.PeriodClosed(lblField(2).Caption) Then
        ShowMsg Me.hwnd, "制单日不能在已结帐期间内!", MB_ICONEXCLAMATION + MB_OK + MB_SYSTEMMODAL, "保存单据"
        lblField(2).Caption = Format(gclsBase.BaseDate, "yyyy-mm-dd")
        SaveModifyBill = False
        Exit Function
    End If
    
    If clsBill.blnIsChanged = False Then
        SaveModifyBill = True
        Exit Function
    Else
        SaveModifyBill = False
    End If
'    If clsBill.DataValid() = False Then
'        Exit Function
'    End If
    Me.MousePointer = vbHourglass
    gclsBase.BaseWorkSpace.BeginTrans
    
    '修改商品业务表
    Set recActivity = gclsBase.BaseDB.OpenRecordset( _
                        "SELECT * FROM itemActivity " & _
                        "where lngActivityID=" & lngOldActivityID, _
                        dbOpenDynaset)
    If recActivity.RecordCount = 0 Then
        gclsBase.BaseWorkSpace.RollBack
        GoTo EndProc
    End If
    With recActivity
        .MoveFirst
        .Edit
            SaveActivity recActivity
            '取出重用信息
            dtmDate1 = !strDate
            strAlpha = !strReceiptNo
            lngDigit = !lngReceiptNo
        .Update
    End With
    clsBill.intAccountYear = gclsBase.FYearOfDate(dtmDate1)   '会计年度
    clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(dtmDate1)   '会计期间
    '修改最大编号表
    If blnModifyMaxNO(clsBill.intAccountYear, clsBill.bytAccountPeriod, _
                C2Lng(lblHead(3 - 1).Tag), strAlpha, CStr(lngDigit)) = False Then
        gclsBase.BaseWorkSpace.RollBack
        GoTo EndProc
    End If
    '修改商品业务明细表
    Set recDetail = gclsBase.BaseDB.OpenRecordset( _
            "SELECT * FROM ItemActivityDetail " & _
            " WHERE lngActivityID=" & lngOldActivityID, _
            dbOpenDynaset)
    With recDetail
            .MoveFirst
            Do While .RecordCount > 0 And (Not .EOF)
                    blnDelete = True
                    For i = 1 To grdCol.Rows - 1
                        If grdCol.TextMatrix(i, 0) = !lngActivityDetailID Then
                            blnDelete = False
                            Exit For
                        End If
                    Next i
                    If blnDelete Then
'                        If clsBill.DeletePositionInfo(!lngActivityDetailID) = False Then
'                            gclsBase.BaseWorkSpace.Rollback
'                            GoTo Endproc
'                        End If
                        .Delete
                        .MovePrevious
                    Else
                        .MoveNext
                    End If
            Loop
            
            For i = 1 To grdCol.Rows - 1
                If clsBill.blnNotNullRow(i) Then
                    If grdCol.TextMatrix(i, 0) = "" Or grdCol.TextMatrix(i, 0) = "0" Then
                        .AddNew
                        !lngActivityID = lngOldActivityID
                        grdCol.TextMatrix(i, 0) = !lngActivityDetailID
                    Else
                        .FindFirst "lngActivityDetailID = " & C2Lng(grdCol.TextMatrix(i, 0))
                        If .NoMatch Then
                            gclsBase.BaseWorkSpace.RollBack
                            ShowMsg Me.hwnd, "保存单据失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
                            GoTo EndProc
                        Else
                            .Edit
                        End If
                    End If
                    SaveActivityDetailBody recDetail, i
                    .Update
                End If
            Next i
    End With
    
    gclsBase.BaseWorkSpace.CommitTrans
    clsBill.blnIsChanged = False
    gclsSys.SendMessage Me.hwnd, 30 + C2Lng(lblHead(2).Tag)
    SaveModifyBill = True
EndProc:
    If Not recActivity Is Nothing Then
        recActivity.Close
    End If
    If Not recDetail Is Nothing Then
        recDetail.Close
    End If
    Me.MousePointer = vbDefault
    Exit Function
ErrorHandle:
    gclsBase.BaseWorkSpace.RollBack
    Dim edtBill As ErrDealType
    edtBill = Errors.ErrorsDeal
    ShowMsg Me.hwnd, "单据保存失败! ", MB_ICONEXCLAMATION + MB_SYSTEMMODAL, "保存单据"
    If edtBill = edtResume Then
       Resume EndProc
    End If
    If edtBill = edtCanNotKnown Then
       Resume EndProc
    End If
    If edtBill = edtCanNotResume Then
       Resume EndProc
    End If
    If edtBill = edtResumeNext Then
       Resume EndProc
    End If
    Resume EndProc
End Function
Private Sub LoadBill(ByVal lngOldActivityID As Long)
    Dim recActivity As Recordset
    Dim recDetail As Recordset
    Dim i As Integer
    Dim strSql As String
    Dim recTemp As Recordset
'    On Error GoTo ErrorHandle
    Me.MousePointer = vbHourglass
    
    strSql = "SELECT * FROM ItemActivity WHERE lngActivityID=" & lngOldActivityID
    Set recActivity = gclsBase.BaseDB.OpenRecordset(strSql, dbOpenSnapshot)
    If recActivity Is Nothing Then
        GoTo EndProc
    End If
    If recActivity.RecordCount = 0 Then
        GoTo EndProc
    End If
    With recActivity
        .MoveFirst
        lblHead(0).Tag = !lngCustomerID
        lblHead_Change 1
        Dim lngTmp As Long
        Dim strTmp As String
        lngTmp = IIf(IsNull(!lngTemplateID), 0, !lngTemplateID)
        blnTemplateIsUsed C2Lng(lblHead(2).Tag), lngTmp, strTmp
        lblHead(4).Tag = lngTmp
        clsBill.blnChangeEvent = False
        chkPrint(0).Value = IIf(!blnIsPrint, 1, 0)
        chkPrint(1).Value = IIf(!blnIsVoid, 1, 0)
        clsBill.blnChangeEvent = True
        If !blnIsVoid Then
            chkPrint(1).Enabled = False
        Else
            chkPrint(1).Enabled = True
        End If
        lblmemo(3).Tag = !lngOperatorID
        lblmemo(1).Caption = !strNote
        clsBill.setFieldID 0, !lngCustomerID

        lblField(1).Caption = !strReceiptNo & " " & Format(!lngReceiptNo, "0000")
        lblField(2).Caption = !strDate
        
        clsBill.setFieldID 3, !lngEmployeeID
        clsBill.setFieldID 4, !lngDepartmentID
        clsBill.setFieldID 7, !lngClassID2
        clsBill.setFieldID 8, !lngClassID1
        Dim intCurDec As Integer
        Dim intRateDec As Integer
        CurRateDec !lngCurrencyID, intCurDec, intRateDec
        clsBill.strCurDec = FormatString(intCurDec)
        clsBill.intCurDecS = intCurDec
        clsBill.strRateDec = FormatString(intRateDec)
        clsBill.intRateDecS = intRateDec
        lblField(5).Caption = Format(!dblRate, FormatString(intRateDec))
        clsBill.setFieldID 6, !lngCurrencyID
        
        clsBill.intAccountYear = gclsBase.FYearOfDate(!strDate)   '会计年度
        clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(!strDate)   '会计期间
    End With
    
'    strSQL = "" & lngOldActivityID
    
'strSql = "SELECT ItemActivityDetail.lngActivityID AS 业务明细ID, " _
'& "Item.strItemCode+' '+Item.strItemName+' '+Item.strItemStyle AS 商品编码名称及规格," _
'& "ItemUnit.strUnitName AS 计量单位,ItemActivityDetail.dblQuantity AS 调价数量, " _
'& "ItemActivityDetail.dblCurrPrice AS 原币原价, ' ' AS 本币原价, ' ' AS 原币现价, ' ' AS 本币现价, " _
'& "ItemActivityDetail.dblCurrAmount AS 原币调价金额, ItemActivityDetail.dblAmount AS 本币调价金额, " _
'& "Tax.strTaxName AS 税率, ItemActivityDetail.dblCurrTaxAmount AS 原币调价税额, ItemActivityDetail.dblTaxAmount " _
'& "AS 本币调价税额, JOb.strJobCode+' '+JOb.strJobName AS 工程, Custom0.strCustomCode+' '+Custom0.strCustomName " _
'& "AS 自定义项目1, Custom1.strCustomCode+' '+Custom1.strCustomName AS 自定义项目2, " _
'& "Custom2.strCustomCode+' '+Custom2.strCustomName AS 自定义项目3, Custom3.strCustomCode+' '+" _
'& "Custom3.strCustomName AS 自定义项目4, Custom4.strCustomCode+' '+Custom4.strCustomName AS 自定义项目5,"
strSql = "SELECT ItemActivityDetail.lngActivityDetailID AS 业务明细ID, " _
& "Item.strItemCode+' '+Item.strItemName+' '+Item.strItemStyle AS 商品编码名称及规格," _
& "IIF(ISNULL(ItemUnit.strUnitName),'',ItemUnit.strUnitName) AS 计量单位,ItemActivityDetail.dblQuantity AS 调价数量, " _
& "ItemActivityDetail.dblCurrPrice AS 原币原价, ' ' AS 本币原价, ' ' AS 原币含税原价, ' ' AS 本币含税原价,ItemActivityDetail.dblCurrNewPrice  AS 原币现价," _
& "' ' AS 本币现价, ' ' AS 原币含税现价, ' ' AS 本币含税现价, ItemActivityDetail.dblCurrAmount AS 原币调价金额, " _
& "ItemActivityDetail.dblAmount AS 本币调价金额, ' ' AS 原币含税调价金额, ' ' AS 本币含税调价金额," _
& "Tax.strTaxName AS 税率, ItemActivityDetail.dblCurrTaxAmount AS 原币调价税额, " _
& "ItemActivityDetail.dblTaxAmount AS 本币调价税额, IIF(ISNULL(JOb.strJobCode+' '+JOb.strJobName),'',JOb.strJobCode+' '+JOb.strJobName) AS 工程, " _
& "IIF(ISNULL(Custom0.strCustomCode+' '+Custom0.strCustomName),'',Custom0.strCustomCode+' '+Custom0.strCustomName) AS 自定义项目1, IIF(ISNULL(Custom1.strCustomCode+' '+Custom1.strCustomName),'',Custom1.strCustomCode+' '+Custom1.strCustomName) " _
& "AS 自定义项目2, IIF(ISNULL(Custom2.strCustomCode+' '+Custom2.strCustomName),'',Custom2.strCustomCode+' '+Custom2.strCustomName) AS 自定义项目3, " _
& "IIF(ISNULL(Custom3.strCustomCode+' '+Custom3.strCustomName),'',Custom3.strCustomCode+' '+Custom3.strCustomName) AS 自定义项目4, IIF(ISNULL(Custom4.strCustomCode+' '+Custom4.strCustomName),'',Custom4.strCustomCode+' '+Custom4.strCustomName) AS 自定义项目5, "
strSql = strSql & "IIF(ISNULL(Custom5.strCustomCode+' '+Custom5.strCustomName),'',Custom5.strCustomCode+' '+Custom5.strCustomName) AS 自定义项目6, ItemActivityDetail.lngItemID AS 商品ID, " _
& "ItemActivityDetail.lngUnitID AS 计量单位ID, ItemActivityDetail.lngTaxID AS 税率ID, ItemActivityDetail.lngJobID " _
& "AS 工程ID,ItemActivityDetail.lngCustomID0 AS 自定义项目1ID, ItemActivityDetail.lngCustomID1 " _
& "AS 自定义项目2ID,ItemActivityDetail.lngCustomID2 AS 自定义项目3ID,ItemActivityDetail.lngCustomID3 " _
& "AS 自定义项目4ID, ItemActivityDetail.lngCustomID4 AS 自定义项目5ID,ItemActivityDetail.lngCustomID5 AS 自定义项目6ID "
strSql = strSql & "FROM (((((((((ItemActivityDetail LEFT JOIN Item ON ItemActivityDetail.lngItemID = Item.lngItemID) " _
& "LEFT JOIN Tax ON ItemActivityDetail.lngTaxID = Tax.lngTaxID) LEFT JOIN JOb ON ItemActivityDetail.lngJobID = JOb.lngJobID) " _
& "LEFT JOIN Custom0 ON ItemActivityDetail.lngCustomID0 = Custom0.lngCustomID) LEFT JOIN Custom1 ON " _
& "ItemActivityDetail.lngCustomID1 = Custom1.lngCustomID) LEFT JOIN Custom2 ON " _
& "ItemActivityDetail.lngCustomID2 = Custom2.lngCustomID) LEFT JOIN Custom3 ON " _
& "ItemActivityDetail.lngCustomID3 = Custom3.lngCustomID) LEFT JOIN Custom4 ON " _
& "ItemActivityDetail.lngCustomID4 = Custom4.lngCustomID) LEFT JOIN Custom5 ON " _
& "ItemActivityDetail.lngCustomID5 = Custom5.lngCustomID) LEFT JOIN ItemUnit ON " _
& "ItemActivityDetail.lngUnitID = ItemUnit.lngUnitID "
strSql = strSql & "WHERE ItemActivityDetail.lngActivityID=" & lngOldActivityID & " ORDER BY ItemActivityDetail.lngrowid"

        Set recDetail = gclsBase.BaseDB.OpenRecordset(strSql, dbOpenSnapshot)
        If recDetail Is Nothing Then
            grdCol.Rows = 1
'            grdCol.Rows = 2
            GoTo EndProc
        End If
        clsBill.setGrdAlign
        If recDetail.RecordCount > 0 Then
            recDetail.MoveLast
            recDetail.MoveFirst
            grdCol.Rows = recDetail.RecordCount + 1
            Dim j As Long
            For i = 1 To grdCol.Rows - 1
                For j = 0 To grdCol.Cols - 2
                    grdCol.TextMatrix(i, j) = IIf(IsNull(recDetail.Fields(j)), "", recDetail.Fields(j))
                Next
                recDetail.MoveNext
            Next
        End If
        recDetail.Close
        clsBill.setAllItemproperty
        'Grid数据调整
        For i = 1 To grdCol.Rows - 1
            Dim dblOldFactor As Double
            Dim dblQuantity As Double
            Dim dblCurPrice As Double
            Dim dblCurOldPrice As Double
            Dim dblCurAmount As Double
            Dim dblRate As Double
            Dim dblTax As Double
            
            dblOldFactor = ConvertFactor(C2Lng(grdCol.TextMatrix(i, xlngColItemUnitID)), C2Lng(grdCol.TextMatrix(i, xlngColItemID)))
            dblQuantity = C2Dbl(grdCol.TextMatrix(i, xlngColNumber))
             '取汇率
            If blnCurrencyInDirect(clsBill.getFieldID(6)) Then
                dblRate = 1 / C2Dbl(lblField(5).Caption)
            Else
                dblRate = C2Dbl(lblField(5).Caption)
            End If
            dblTax = C2Dbl(grdCol.TextMatrix(i, xlngColTaxAmount)) / C2Dbl(grdCol.TextMatrix(i, xlngColAmount))
            grdCol.TextMatrix(i, xlngColNumber) = DisplayData(Me.hwnd, NumberConvert(dblQuantity, dblOldFactor, False), dblOldFactor)
            dblCurPrice = C2Dbl(grdCol.TextMatrix(i, xlngColCurPrice)) * dblOldFactor
            dblCurOldPrice = C2Dbl(grdCol.TextMatrix(i, xlngColCurOldPrice)) * dblOldFactor
            dblCurAmount = C2Dbl(grdCol.TextMatrix(i, xlngColCurAmount))
            
            grdCol.TextMatrix(i, xlngColCurOldPrice) = dblCurOldPrice
            grdCol.TextMatrix(i, xlngColOldPrice) = dblCurOldPrice * dblRate
            grdCol.TextMatrix(i, xlngColCurOldPriceTax) = dblCurOldPrice * (1 + dblTax)
            grdCol.TextMatrix(i, xlngColOldPriceTax) = dblCurOldPrice * (1 + dblTax) * dblRate
            grdCol.TextMatrix(i, xlngColCurPrice) = dblCurPrice
            grdCol.TextMatrix(i, xlngColPrice) = dblCurPrice * dblRate
            grdCol.TextMatrix(i, xlngColCurPriceTax) = dblCurPrice * (1 + dblTax)
            grdCol.TextMatrix(i, xlngColPriceTax) = dblCurPrice * (1 + dblTax) * dblRate
            grdCol.TextMatrix(i, xlngColCurAmountTax) = dblCurAmount * (1 + dblTax)
            grdCol.TextMatrix(i, xlngColAmountTax) = dblCurAmount * (1 + dblTax) * dblRate
        Next
        
        '写红字
        For i = 1 To grdCol.Rows - 1
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColNumber), i, xlngColNumber
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurOldPrice), i, xlngColCurOldPrice
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColOldPrice), i, xlngColOldPrice
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurOldPriceTax), i, xlngColCurOldPriceTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColOldPriceTax), i, xlngColOldPriceTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurPrice), i, xlngColCurPrice
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColPrice), i, xlngColPrice
            clsBill.WriteGrd grdCol.TextMatrix(i,

⌨️ 快捷键说明

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