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

📄 frmadjustcost.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
    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 Long
    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 = IIf(IsNull(!lngCustomerID), 0, !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 = IIf(IsNull(!lngOperatorID), 0, !lngOperatorID)
        lblmemo(1).Caption = IIf(IsNull(!strNote), "", !strNote)
        clsBill.setFieldID 0, IIf(IsNull(!lngCustomerID), 0, !lngCustomerID)
        lblField(1).Caption = IIf(IsNull(!strReceiptNo), "", !strReceiptNo) & " " & Format(!lngReceiptNo, "0000")
        lblField(2).Caption = IIf(IsNull(!strDate), gclsBase.BaseDate, !strDate)
        
        clsBill.setFieldID 3, IIf(IsNull(!lngEmployeeID), 0, !lngEmployeeID)
        clsBill.setFieldID 4, IIf(IsNull(!lngDepartmentID), 0, !lngDepartmentID)
        clsBill.setFieldID 7, IIf(IsNull(!lngClassID2), 0, !lngClassID2)
        clsBill.setFieldID 8, IIf(IsNull(!lngClassID1), 0, !lngClassID1)
        Dim intCurDec As Integer
        Dim intRateDec As Integer
        CurRateDec IIf(IsNull(!lngCurrencyID), 1, !lngCurrencyID), intCurDec, intRateDec
        clsBill.strCurDec = FormatString(intCurDec)
        clsBill.intCurDecS = intCurDec
        clsBill.strRateDec = FormatString(intRateDec)
        clsBill.intRateDecS = intRateDec
        lblField(5).Caption = Format(IIf(IsNull(!dblRate), 1, !dblRate), FormatString(intRateDec))
        clsBill.setFieldID 6, IIf(IsNull(!lngCurrencyID), 1, !lngCurrencyID)
        
        clsBill.intAccountYear = gclsBase.FYearOfDate(IIf(IsNull(!strDate), gclsBase.BaseDate, !strDate)) '会计年度
        clsBill.bytAccountPeriod = gclsBase.PeriodOfDate(IIf(IsNull(!strDate), gclsBase.BaseDate, !strDate)) '会计期间
    End With
    
'    strSQL = "" & lngOldActivityID
    
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 本币含税调价金额," _
& "IIF(ISNULL(Tax.strTaxName),'',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, IIF(ISNULL(Custom5.strCustomCode+' '+Custom5.strCustomName),'',Custom5.strCustomCode+' '+Custom5.strCustomName) AS 自定义项目6, ItemActivityDetail.lngItemID AS "
strSql = strSql & "商品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 " _
& "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
'        Set Data1.Recordset = recDetail
        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
            If C2Dbl(grdCol.TextMatrix(i, xlngColAmount)) = 0 Then
                dblTax = 0
            Else
                dblTax = C2Dbl(grdCol.TextMatrix(i, xlngColTaxAmount)) / C2Dbl(grdCol.TextMatrix(i, xlngColAmount))
            End If
            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, xlngColCurPriceTax), i, xlngColCurPriceTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColPriceTax), i, xlngColPriceTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurAmount), i, xlngColCurAmount
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColAmount), i, xlngColAmount
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurAmountTax), i, xlngColCurAmountTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColAmountTax), i, xlngColAmountTax
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColCurTaxAmount), i, xlngColCurTaxAmount
            clsBill.WriteGrd grdCol.TextMatrix(i, xlngColTaxAmount), i, xlngColTaxAmount
        Next
        
'        clsBill.ColIsGray xlngColItemUnit
'        clsBill.ColIsGray xlngColCurOldPrice
'        clsBill.ColIsGray xlngColOldPrice
        
        If grdCol.Rows = 1 Then
'            grdCol.Rows = 2
        End If
        If grdCol.Cols < 37 Then
            grdCol.Cols = 37
        End If
        clsBill.writeTotal
        
'        For i = 1 To grdCol.Rows - 1
'            If clsBill.rowIsDone(i) Then
'                chkPrint(1).Enabled = False
'                Exit For
'                GoTo Endproc
'            End If
'        Next
'        chkPrint(1).Enabled = True
EndProc:
    If Not recActivity Is 

⌨️ 快捷键说明

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