Professional Documents
Culture Documents
As cRecordset As cCommand
06 07
Dim objConstants
As ASmsCtrl.Constants
08 09
As String As String
10 11
Dim smsBalasan
As String
12 13
14 15
16 17
"FROM sms_in " & _ "WHERE status = 0 " & _ "ORDER BY id" Set rsSend = conn.OpenRecordset(strSql)
18 19
20 21
22 23
24 25 26 27 28 29
30 31
32 33
39
objGsmOut.Send
41
42 43
strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _ "WHERE id = ?" Set cmd = conn.CreateCommand(strSql)
44 45
46 47 48 49
50 51 .Execute
52 53
54 55
'insert ke tabel sms_out, untuk histori sms keluar
56
strSql = "INSERT INTO sms_out (phone_number, replay_msg, date_out, time_out) VALUES (?, ?, ?, ?)"
57
58 59 60 61 62 63
With cmd .SetText 1, phoneNumber .SetText 2, smsBalasan .SetDate 3, Format(Now, "yyyy/MM/dd") .SetTime 4, Format(Now, "hh:mm:ss")
64 65
66 67
68 69
70
'ini masih bisa dikembangkan lagi dengan menambah kolom max_jumlah_kirim di tabel sms_in
71
72
'jadi bisa diberi aturan sms yg gagal dikirim > 3x baru status smsnya diupdate menjadi 1
73
strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _ "WHERE id = ?"
74
75
76 77 78 79
80 81 .Execute
82 83
84 85
End If
86 87
Call Wait(5000)
88 89 Loop
rsSend.MoveNext
90 91
92
End If
93
94 95
96 97
Prosedur sendSMS akan mengolah sms masuk yg belum di proses (ditandai dengan status = 0), mengupdate statusnya menjadi 1 jika berhasil mengirimkan sms, kemudian menyimpannya ke tabel sms_out sebagai histori pengiriman sms.
1 2
3 4 rep0to62 = phoneNumber
If Left(phoneNumber, 1) = "0" Then rep0to62 = "+62" & Right(phoneNumber, Len(phoneNumber) - 1) End Function
Sesuai namanya fungsi ini berguna untuk mengganti prefix nomor hp 0 menjadi +62 (kode indonesia). Terakhir fungsi untuk memproses keyword sms yang masuk dan sekaligus sebagai balasan untuk sms keluar.
00 1 00 2
Dim rs
As cRecordset
003
Dim param1
As String
004
Dim arrKeyword()
As String
007 008
As String As String
011 012
Dim semester
As String
013 014
If Len(keywordSms) > 0 Then If InStr(1, keywordSms, "#") > 0 Then 'karakter # -> separator keyword arrKeyword = Split(keywordSms, "#") If Not (Len(arrKeyword(0)) > 0) Then getBalasanSms = "Keyword sms salah" Exit Function
015 016
017 018
'do nothing
022
End If
025 026
027 028
End If
029 030
031 032
037
038
039
'untuk pengembangan lebih lanjut tahun ajaran dan semester dibuat settingan tersendiri
043 044
045
046
If Not isValidHPSiswa(param1, phoneNumber) Then getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta") getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): ExitFunction
051
052
053 054
End If
055
strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'" nama = CStr(dbGetValue(strSql, ""))
056
057 058
'mulai proses pencarian nilai
059 060
strSql = "SELECT matapelajaran_kode, nilai " & _ "FROM nilai_tugas " & _
061
"WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _ "ORDER BY matapelajaran_kode"
062
063 064
065
Do While Not rs.EOF nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", " rs.MoveNext Loop
066
067 068
069 070
End If
071 072
073 074
getBalasanSms = "Nilai tugas (" & nama & ") : " & nilai
075
Else getBalasanSms = "Nilai tugas (" & nama & ") sedang dalam proses pendataan"
076
077 078
End If
079 080
Case "UH"
'validasi nis siswa
081
082
083 084
'validasi no hp siswa
085
If Not isValidHPSiswa(param1, phoneNumber) Then getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta") getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): ExitFunction End If
086
087
088
089 strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'" nama = CStr(dbGetValue(strSql, ""))
090
091
092
093 094
095
"FROM nilai_ulangan " & _ "WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _ "ORDER BY matapelajaran_kode" Set rs = conn.OpenRecordset(strSql)
096
097 098
099 100
If Not rs.EOF Then Do While Not rs.EOF nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", " rs.MoveNext Loop End If
101
105 106 If Len(nilai) > 0 Then nilai = Left(nilai, Len(nilai) - 2) getBalasanSms = "Nilai ulangan (" & nama & ") : " & nilai
107 108
109
110
Else
111
getBalasanSms = "Nilai ulangan (" & nama & ") sedang dalam proses pendataan" End If
112
113 114 Case Else getBalasanSms = "Keyword sms salah" End Select
115 116
117
End Function