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

📄 frmmainvis.frm

📁 Billing Internet Cafe
💻 FRM
📖 第 1 页 / 共 5 页
字号:
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    If Val(Format(durasi(i), "nn")) / intervalpel >= ataspel(i) And Val(Format(durasi(i), "nn")) / intervalpel <= bawahpel(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_pelajar * 60 / intervalpel) + (bawahpel(i) * harga_pelajar), 2)
                        biaya_disc(i) = Round(((Val(Mid(Format(durasi_disc(i), "hh:nn:ss"), 1, 2)) * harga_pelajar * 60 / intervalpel) + (bawahpel(i) * harga_pelajar)) * Discount / 100, 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    If Val(Format(durasi(i), "nn")) / intervalmem >= atasmem(i) And Val(Format(durasi(i), "nn")) / intervalmem <= bawahmem(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_member * 60 / intervalmem) + (bawahmem(i) * harga_member), 2)
                        biaya_disc(i) = Round(((Val(Mid(Format(durasi_disc(i), "hh:nn:ss"), 1, 2)) * harga_member * 60 / intervalmem) + (bawahmem(i) * harga_member)) * Discount / 100, 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = "admin" Then
                    biaya(i) = 0
                    biaya_disc(i) = 0
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    If Val(Format(durasi(i), "nn")) / intervalgam >= atasgam(i) And Val(Format(durasi(i), "nn")) / intervalgam <= bawahgam(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_game * 60 / intervalgam) + (bawahgam(i) * harga_game), 2)
                        biaya_disc(i) = Round(((Val(Mid(Format(durasi_disc(i), "hh:nn:ss"), 1, 2)) * harga_game * 60 / intervalgam) + (bawahgam(i) * harga_game)) * Discount / 100, 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    If Val(Format(durasi(i), "nn")) / intervalmen >= atasmen(i) And Val(Format(durasi(i), "nn")) / intervalmen <= bawahmen(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_ketik * 60 / intervalmen) + (bawahmen(i) * harga_ketik), 2)
                        biaya_disc(i) = Round(((Val(Mid(Format(durasi_disc(i), "hh:nn:ss"), 1, 2)) * harga_ketik * 60 / intervalmen) + (bawahmen(i) * harga_ketik)) * Discount / 100, 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                End If
                total(i) = biaya(i) - biaya_disc(i)
                GridBilling.TextMatrix(i, 5) = Format(durasi(i), "hh:nn:ss")
                GridBilling.TextMatrix(i, 6) = Format(biaya(i), "##,##0.00")
                GridBilling.TextMatrix(i, 8) = Format(biaya_disc(i), "##,##0.00")
                GridBilling.TextMatrix(i, 9) = Format(total(i), "##,##0.00")
            End If
        Next i
    Else
        For i = 1 To ClientMax
            If GridBilling.TextMatrix(i, 3) = setAktif Then
                durasi(i) = Now - mulai(i)
                atas(i) = Int(Val(Format(durasi(i), "nn")) / interval)
                ataspel(i) = Int(Val(Format(durasi(i), "nn")) / intervalpel)
                atasmem(i) = Int(Val(Format(durasi(i), "nn")) / intervalmem)
                atasgam(i) = Int(Val(Format(durasi(i), "nn")) / intervalgam)
                atasmen(i) = Int(Val(Format(durasi(i), "nn")) / intervalmen)
                bawah(i) = atas(i) + 1
                bawahpel(i) = ataspel(i) + 1
                bawahmem(i) = atasmem(i) + 1
                bawahgam(i) = atasgam(i) + 1
                bawahmen(i) = atasmen(i) + 1
                If GridBilling.TextMatrix(i, 7) = setPersonal Then
                    If Val(Format(durasi(i), "nn")) / interval >= atas(i) And Val(Format(durasi(i), "nn")) / interval <= bawah(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_personal * 60 / interval) + (bawah(i) * harga_personal), 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    If Val(Format(durasi(i), "nn")) / intervalpel >= ataspel(i) And Val(Format(durasi(i), "nn")) / intervalpel <= bawahpel(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_pelajar * 60 / intervalpel) + (bawahpel(i) * harga_pelajar), 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    If Val(Format(durasi(i), "nn")) / intervalmem >= atasmem(i) And Val(Format(durasi(i), "nn")) / intervalmem <= bawahmem(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_member * 60 / intervalmem) + (bawahmem(i) * harga_member), 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = "admin" Then
                    biaya(i) = 0
                    biaya_disc(i) = 0
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    If Val(Format(durasi(i), "nn")) / intervalgam >= atasgam(i) And Val(Format(durasi(i), "nn")) / intervalgam <= bawahgam(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_game * 60 / intervalgam) + (bawahgam(i) * harga_game), 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    If Val(Format(durasi(i), "nn")) / intervalmen >= atasmen(i) And Val(Format(durasi(i), "nn")) / intervalmen <= bawahmen(i) Then
                        biaya(i) = Round((Val(Mid(Format(durasi(i), "hh:nn:ss"), 1, 2)) * harga_ketik * 60 / intervalmen) + (bawahmen(i) * harga_ketik), 2)
                    End If
                    If biaya(i) <= harga_awal Then
                        biaya(i) = harga_awal
                    End If
                End If
                total(i) = biaya(i) - biaya_disc(i)
                GridBilling.TextMatrix(i, 5) = Format(durasi(i), "hh:nn:ss")
                GridBilling.TextMatrix(i, 6) = Format(biaya(i), "#,###")
                GridBilling.TextMatrix(i, 8) = Format(biaya_disc(i), "#,###")
                GridBilling.TextMatrix(i, 9) = Format(total(i), "#,###")
                
            End If
        Next i
    End If
End Sub

Private Sub TimerPindah_Timer()
On Error Resume Next
    For i = 1 To ClientMax
        If GridBilling.TextMatrix(i, 3) = "pindah" Then
            cn.Open
            cmd.ActiveConnection = cn
            cmd.CommandType = adCmdText
            cmd.CommandText = "SELECT proses.* FROM proses WHERE proses.no_client = " & i
            cmd.Execute
            rs.ActiveConnection = cn
            rs.Open "SELECT proses.* FROM proses WHERE proses.no_client = " & i, cn, adOpenStatic, adLockOptimistic
            If Not rs.RecordCount = 0 Then
                mulai(i) = rs(4)
                If mulai(i) >= startdis Then
                    disc_mulai(i) = mulai(i)
                Else
                    disc_mulai(i) = startdis
                End If
            End If
            cn.Close
            GridBilling.TextMatrix(i, 4) = Format(mulai(i), "hh:nn:ss")
            GridBilling.TextMatrix(i, 3) = setAktif
        End If
    Next i
End Sub

Private Sub TimerStart_Timer()
On Error Resume Next
    For i = 1 To ClientMax
        If GridBilling.TextMatrix(i, 3) = "start" Then
            GridBilling.TextMatrix(i, 4) = Format(Now, "hh:nn:ss")
            durasi(i) = CDate("00:00:00")
            durasi_disc(i) = CDate("00:00:00")
            mulai(i) = Now
            If Now >= startdis Then
                disc_mulai(i) = Now
            Else
                disc_mulai(i) = startdis
            End If
            'tulis proses dalam db
            cn.Open
            cmd.ActiveConnection = cn
            cmd.CommandType = adCmdText
            cmd.CommandText = "SELECT proses.* FROM proses WHERE proses.no_client = " & i
            cmd.Execute
            rs.ActiveConnection = cn
            rs.Open "SELECT proses.* FROM proses WHERE proses.no_client = " & i, cn, adOpenStatic, adLockOptimistic
            If Not rs.RecordCount = 0 Then
                rs(0) = i 'no client
                rs(3) = GridBilling.TextMatrix(i, 2) 'user
                rs(1) = "aktif" 'status
                If GridBilling.TextMatrix(i, 7) = setPersonal Then
                    rs(2) = "personal"
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    rs(2) = "member"
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    rs(2) = "pelajar"
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    rs(2) = "game"
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    rs(2) = "ketik"
                End If
                rs(4) = Now
                rs.Update
            Else
                rs.AddNew
                rs(0) = i 'no client
                rs(3) = GridBilling.TextMatrix(i, 2) 'user
                rs(1) = "aktif" 'status
                If GridBilling.TextMatrix(i, 7) = setPersonal Then
                    rs(2) = "personal"
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    rs(2) = "pelajar"
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    rs(2) = "member"
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    rs(2) = "game"
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    rs(2) = "ketik"
                End If
                rs(4) = Now
                rs.Update
            End If
            cn.Close
            GridBilling.TextMatrix(i, 3) = setAktif
        End If
    Next i
End Sub

Private Sub TimerStop_Timer()
On Error Resume Next
    For i = 1 To ClientMax
        If GridBilling.TextMatrix(i, 3) = "stop" Then
            'tulis billing dalam db
            cn.Open
            cmd.ActiveConnection = cn
            cmd.CommandType = adCmdText
            cmd.CommandText = "SELECT billing.* FROM billing"
            cmd.Execute
            rs.ActiveConnection = cn
            rs.Open "SELECT billing.* FROM billing", cn, adOpenStatic, adLockOptimistic
            rs.AddNew
            rs(1) = Format(Date, "dd-mm-yyyy") 'tanggal
            rs(2) = i 'no client
            rs(3) = GridBilling.TextMatrix(i, 2) 'user
            rs(4) = Format(mulai(i), "hh:nn:ss") ' mulai
            rs(5) = Format(Now, "hh:nn:ss") ' selesai
            rs(6) = Format(durasi(i), "hh:nn:ss") ' durasi
            rs(7) = total(i) 'total
            rs(8) = Format(Date, "mm") 'bulan
            rs(9) = Format(Date, "yyyy") 'tahun
            If GridBilling.TextMatrix(i, 7) = setPersonal Then 'jenis
                rs(10) = "personal"
            ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                rs(10) = "pelajar"
            ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                rs(10) = "member"
            ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                rs(10) = "game"
            ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                rs(10) = "ketik"
            End If
            rs.Update
            cn.Close
            'tulis proses dalam db
            cn.Open
            cmd.ActiveConnection = cn
            cmd.CommandType = adCmdText
            cmd.CommandText = "SELECT proses.* FROM proses WHERE proses.no_client = " & i
            cmd.Execute
            rs.ActiveConnection = cn
            rs.Open "SELECT proses.* FROM proses WHERE proses.no_client = " & i, cn, adOpenStatic, adLockOptimistic
            If Not rs.RecordCount = 0 Then
                rs(0) = i 'no client
                rs(3) = GridBilling.TextMatrix(i, 2) 'user
                rs(1) = "bebas"
                rs(4) = Now
                If GridBilling.TextMatrix(i, 7) = setPersonal Then 'jenis
                    rs(2) = "personal"
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    rs(2) = "pelajar"
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    rs(2) = "member"
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    rs(2) = "game"
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    rs(2) = "ketik"
                End If
                rs.Update
            Else
                rs.AddNew
                rs(0) = i 'no client
                rs(3) = GridBilling.TextMatrix(i, 2) 'user
                rs(1) = "bebas"
                rs(4) = Now
                If GridBilling.TextMatrix(i, 7) = setPersonal Then 'jenis
                    rs(2) = "personal"
                ElseIf GridBilling.TextMatrix(i, 7) = setMember Then
                    rs(2) = "member"
                ElseIf GridBilling.TextMatrix(i, 7) = setPelajar Then
                    rs(2) = "pelajar"
                ElseIf GridBilling.TextMatrix(i, 7) = setGame Then
                    rs(2) = "game"
                ElseIf GridBilling.TextMatrix(i, 7) = setKetik Then
                    rs(2) = "ketik"
                End If
                rs.Update
            End If
            cn.Close
            If GridBilling.TextMatrix(i, 7) = setMember Then
                'update deposit member
                cn.Open
                cmd.ActiveConnection = cn
                cmd.CommandType = adCmdText
                cmd.CommandText = "SELECT member.* FROM member WHERE member.user = '" & GridBilling.TextMatrix(i, 2) & "'"
                cmd.Execute
                rs.ActiveConnection = cn
                rs.Open "SELECT member.* FROM member WHERE member.user = '" & GridBilling.TextMatrix(i, 2) & "'", cn, adOpenStatic, adLockOptimistic
                If Not rs.RecordCount = 0 Then
                    rs(5) = rs(5) - total(i)
                    rs.Update
                End If
                cn.Close
            End If
            GridBilling.TextMatrix(i, 3) = setBebas
        End If
    Next i
End Sub

Private Sub TimerUtama_Timer()
    tgl.Caption = Format(Date, "dddd, dd mmmm yyyy")
    jam.Caption = Format(Time, "hh:nn:ss")
End Sub
Private Sub AturGrid()
On Error Resume Next
    GridBilling.Rows = ClientMax + 1
    GridBilling.ColWidth(0) = 300
    For i = 1 To ClientMax
        GridBilling.TextMatrix(i, 0) = i
    Next i
    GridBilling.TextMatrix(0, 0) = "No."
    GridBilling.TextMatrix(0, 1) = setClient
    GridBilling.TextMatrix(0, 2) = setNamaUser
    GridBilling.TextMatrix(0, 3) = setStatus
    GridBilling.TextMatrix(0, 4) = setMulai
    GridBilling.TextMatrix(0, 5) = setDurasi
    GridBilling.TextMatrix(0, 6) = setBiaya
    GridBilling.TextMatrix(0, 7) = setJenis
    GridBilling.TextMatrix(0, 8) = setDiscount
    GridBilling.TextMatrix(0, 9) = setTotal
    GridBilling.ColWidth(0) = 480
    GridBilling.ColWidth(1) = 1500
    GridBilling.ColWidth(2) = 2000
    GridBilling.ColWidth(3) = 1600
    GridBilling.ColWidth(4) = 1500
    GridBilling.ColWidth(5) = 1600
    GridBilling.ColWidth(6) = 1400
    GridBilling.ColWidth(7) = 1200
    GridBilling.ColWidth(8) = 1200
    GridBilling.ColWidth(9) = 1750
    
End Sub
Private Sub CekTemp()
On Error Resume Next
    startdis = CDate(Format(Time, "hh:mm:ss") & " " & jam_awal)
    If CDate(jam_akhir) < CDate(jam_awal) Then
        findis = CDate(Format(Time + 1, "hh:mm:ss") & " " & jam_akhir)
    Else
        findis = CDate(Format(Time, "hh:mm:ss") & " " & jam_akhir)
    End If
    For i = 1 To ClientMax
        cn.Open
        cmd.ActiveConnection = cn
        cmd.CommandType = adCmdText
        cmd.CommandText = "SELECT proses.* FROM proses WHERE proses.no_client = " & i & " AND proses.status = 'aktif'"
        cmd.Execute
        rs.ActiveConnection = cn
        rs.Open "SELECT proses.* FROM proses WHERE proses.no_client = " & i & " AND proses.status = 'aktif'", cn, adOpenStatic, adLockOptimistic
        If Not rs.RecordCount = 0 Then
            mulai(i) = CDate(rs(4))
            If mulai(i) >= startdis Then
                disc_mulai(i) = mulai(i)
            Else
                disc_mulai(i) = startdis
            End If
            GridBilling.TextMatrix(i, 1) = setClient & rs(0) ' no client
            GridBilling.TextMatrix(i, 2) = rs(3) 'user
            If rs(1) = "aktif" Then
                GridBilling.TextMatrix(i, 3) = setAktif 'status
            ElseIf rs(1) = "bebas" Then
            GridBilling.TextMatrix(i, 1) = setClient
            
            End If
            GridBilling.Col = 1
            GridBilling.Row = i
            GridBilling.CellBackColor = &H3CFFA7
            GridBilling.Col = 2
            GridBilling.Row = i
            GridBilling.CellBackColor = &H3CFFA7
            GridBilling.Col = 3
            GridBilling.Row = i
            GridBilling.CellBackColor = &H3CFFA7
            GridBilling.Col = 4
            GridBilling.Row = i
            GridBilling.CellBackColor = &H3CFFA7
            GridBilling.Col = 5
            GridBilling.Row = i
            GridBilling.CellBackColor = &H3CFFA7
            Grid

⌨️ 快捷键说明

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