def kelasSelesai(driver, data):
    if kelas.cekSiap():
        grp = data[1]
        num = data[0]
        if kelas_mulai.isJadwalID(kelas.getKodeDosen(num), grp.split('-')[0]):
            msg = data[3]
            msg = message.normalize(msg)
            if 'luring' in msg:
                tipe = 'luring'
            else:
                tipe = 'daring'
            try:
                kehadiran = kelas.getKehadiran(grp.split('-')[0])
                rencana_kehadiran = kelas.rencana_kehadiran(grp.split('-')[0])
                if (kehadiran != rencana_kehadiran and
                        kehadiran < rencana_kehadiran) or (kelas.isSudahKelas(
                            jadwalid=grp.split('-')[0],
                            lecturercode=kelas.getKodeDosen(num=num))):
                    wmsg = reply.getWaitingMessage(
                        os.path.basename(__file__).split('.')[0])
                    wa.typeAndSendMessage(driver, wmsg)
                    materi = msg.lower()
                    try:
                        materi = materi.split(' materi ')[1]
                    except:
                        return f'yahhh materinya ngga ada nih tambahin dong materinyaaa.....,\ncontoh: iteung kelas daring selesai materi chapter 1'
                    msgreply = kelas.siapabsensiwithsql(
                        grp=grp,
                        num=numbers.normalize(num),
                        materi=materi,
                        tipe=tipe)
                    if msgreply != '':
                        if msgreply != []:
                            try:
                                msgreply = kelas.beritaAcara(driver=driver,
                                                             num=num,
                                                             groupname=grp,
                                                             data=msgreply,
                                                             msg=msg)
                            except:
                                msgreply = 'aduh materinya ga ada nich, \ncontoh format yang bener gini ya: \niteung kelas daring selesai materi chapter 04'
                        else:
                            msgreply = 'aduh mahasiswanya belum ada yang update nomer hp SIAP nich, \nKalo mau ke absen cocokin dulu dong nomer hp yang ada di SIAP dengan yang kamu pakai di WhatsApp \nIngat ya gunakan format international, contoh: 6282217401448 '
                    else:
                        msgreply = "adohhhh wadohdoh peserta absensinya kosong nih, coba ganti ke jadwal id yang satunya lagi eheeeee.... :-3"
                elif kehadiran == '':
                    msgreply = 'yahhhhh kehadirannya ngga #BOTNAME# temuin coba di cek lagi jadwal idnya yaaa....'
                else:
                    msgreply = 'Mohon maaf Untuk kuliah daring ini sudah memenuhi kuota pertemuan pada jadwal kali ini...'
            except:
                listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
                guide = 'yahh....nama groupnya jangan diubah dong. hihihi ganti lagi ya.jadi JADWALID-KELAS-NAMAMK,contoh : 17312-A-KECERDASAN BUATAN : \n'
                msgreply = guide + listMK
        else:
            listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
            guide = 'aduwww waduwduwwww ini bukan Jadwal ID Bapak/Ibu dosen nihhhh, yang bener yang dibawah ini yaaa.... : \n'
            msgreply = guide + listMK
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
def replymsg(driver, data):
    npm_km = cekNpminStringMessage(data[3].split(' km ')[1])
    if npm_km:
        dosen_data = getDosenDataDictionaryDump(kelas.getKodeDosen(data[0]))
        home_base_prodi = dosen_data['Homebase']
        nama_dosen = capitalizeName(
            kelas.getNamaDosenTanpaGelar(dosen_data['Login']))
        # nama_kaprodi = kelas.getNamaDosen(bkd.getDosenIDfromNIPY(bkd.getNipyKaProdi(home_base_prodi)))
        # nama_deputi = kelas.getNamaDosen(bkd.getDosenIDfromNIPY(bkd.getNipyDeputi(9)))
        nama_prodi = kelas.getNamaProdiFromProdiID(home_base_prodi)['Nama']
        tipe_kelas = data[1].split('-')[2]
        catatan = data[3].split(' catatan ')[1].split(' km ')[0]
        jmlPesertaPerwalian = len(
            perwalian_mulai.getPesertaPerwalian(
                kelas.getKodeDosen(data[0]), f"{data[1].split('-')[3]}1",
                f'{kelas.kodeKelas(data[1].split("-")[2])}'))
        mainPages(
            kelas.getKodeDosen(data[0]),
            home_base_prodi,
            nama_dosen,
            npm_km,
            nama_prodi,
            tipe_kelas,
            catatan,
            data[1],
            jmlPesertaPerwalian,
        )
        msgreply = f'okeeeee sudah yaaa, file PDF sudah {config.bot_name} kirim ke {dosen_data["Email"]}, cepet cepet minta approval ke deputi dan kaprodi yaaa...'
        return msgreply
    return 'aduh ga ada npm kmnya nih coba baca lagi ya panduannya di *iteung panduan dosen perwalian*'
示例#3
0
def replymsg(driver, data):
    if kelas.getKodeDosen(data[0]):
        kode_dosen = kelas.getKodeDosen(data[0])
        dosen_homebase = getHomebaseDosen(kode_dosen)
        nama_file = f'jadwal_sidang_ta_{dosen_homebase}.xlsx'
        status, df = openJadwalExcel(nama_file)
        if status == False:
            msgreply = 'mohon untuk memberikan jadwal sidang dalam bentuk excel ke admin'
        else:
            if 'penguji pendamping' in message.normalize(data[3]):
                msgreply = 'ini dia jadwal sidangnya yaaa....\n\n'
                for i, j in df.iterrows():
                    if j[3] == kode_dosen:
                        msgreply += f'PENGUJI UTAMA: {kelas.getNamaDosen(j[2])}\n' \
                                    f'PENGUJI PENDAMPING: {kelas.getNamaDosen(j[3])}\n' \
                                    f'NPM MAHASISWA: {j[4]}\n' \
                                    f'NAMA MAHASISWA: {kelas.getStudentNameOnly(j[4])}\n' \
                                    f'JADWAL SIDANG: {j[5]}\n' \
                                    f'JAM SIDANG: {j[6]}\n\n'
            elif 'penguji utama' in message.normalize(data[3]):
                msgreply = 'ini dia jadwal sidangnya yaaa....\n\n'
                for i, j in df.iterrows():
                    if j[2] == kode_dosen:
                        msgreply += f'PENGUJI UTAMA: {kelas.getNamaDosen(j[2])}\n' \
                                    f'PENGUJI PENDAMPING: {kelas.getNamaDosen(j[3])}\n' \
                                    f'NPM MAHASISWA: {j[4]}\n' \
                                    f'NAMA MAHASISWA: {kelas.getStudentNameOnly(j[4])}\n' \
                                    f'JADWAL SIDANG: {j[5]}\n' \
                                    f'JAM SIDANG: {j[6]}\n\n'
            else:
                msgreply = 'ini dia jadwal sidangnya yaaa....\n\n'
                for i, j in df.iterrows():
                    if j[2] == kode_dosen or j[3] == kode_dosen:
                        msgreply+=f'PENGUJI UTAMA: {kelas.getNamaDosen(j[2])}\n' \
                                  f'PENGUJI PENDAMPING: {kelas.getNamaDosen(j[3])}\n' \
                                  f'NPM MAHASISWA: {j[4]}\n' \
                                  f'NAMA MAHASISWA: {kelas.getStudentNameOnly(j[4])}\n' \
                                  f'JADWAL SIDANG: {j[5]}\n' \
                                  f'JAM SIDANG: {j[6]}\n\n'
    else:
        mahasiswa_homebase = kelas.getProdiIDwithStudentID(
            kelas.getNpmandNameMahasiswa(data[0])[0])
        nama_file = f'jadwal_sidang_ta_{mahasiswa_homebase}.xlsx'
        status, df = openJadwalExcel(nama_file)
        if status == False:
            msgreply = 'mohon untuk memberikan jadwal sidang dalam bentuk excel ke admin'
        else:
            msgreply = 'ini dia jadwal sidangnya yaaa....\n\n'
            for i, j in df.iterrows():
                if str(j[4]) == str(kelas.getNpmandNameMahasiswa(data[0])[0]):
                    msgreply += f'PENGUJI UTAMA: {kelas.getNamaDosen(j[2])}\n' \
                                f'PENGUJI PENDAMPING: {kelas.getNamaDosen(j[3])}\n' \
                                f'NPM MAHASISWA: {j[4]}\n' \
                                f'NAMA MAHASISWA: {kelas.getStudentNameOnly(j[4])}\n' \
                                f'JADWAL SIDANG: {j[5]}\n' \
                                f'JAM SIDANG: {j[6]}\n\n'
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    msg = data[3].lower()
    num = numbers.normalize(data[0])
    # tahun_id = '20192'
    tahun_id = kelas.getTahunID()
    if kelas.getKodeDosen(num):
        kodeDosen = kelas.getKodeDosen(num)
        try:
            npm = [
                npm for npm in msg.split(' ')
                if npm.isdigit() and len(npm) == 7
            ][0]
        except:
            npm = None

        if npm:
            try:
                if checkMhs(npm):
                    if checkRevisi(npm, tahun_id):
                        msgreply = "Ini revisian dari Anda cuy..." + checkRevisi(
                            npm, tahun_id)
                    else:
                        msgreply = "Emg udh masukin revisi???"
                else:
                    msgreply = "Salah mahasiswa ato npm mungkin..."
            except Exception as e:
                msgreply = f"Error {str(e)}"
        else:
            try:
                if checkRevisiPenguji(tahun_id, kodeDosen):
                    msgreply = "Ini revisian dari anda cuy..." + checkRevisiPenguji(
                        tahun_id, kodeDosen)
                else:
                    msgreply = "Emg udh masukin revisi???"
            except Exception as e:
                msgreply = f"Error {str(e)}"

    elif kelas.getNpmandNameMahasiswa(num):
        npm, nama = kelas.getNpmandNameMahasiswa(num)
        try:
            if checkMhs(npm):
                if checkRevisi(npm, tahun_id):
                    msgreply = "Selamat revisian cuy..., semangat <3<3" + checkRevisi(
                        npm, tahun_id)
                else:
                    msgreply = "Kamu emg udh sidang? jgn ngadi-ngadi deh..., mungkin aja blm dibikin revisinya sama penguji bersangkutan..., semangat <3<3"
            else:
                msgreply = "Kamu emg ikutan sidang? jgn ngadi-ngadi deh..."
        except Exception as e:
            msgreply = f"Error {str(e)}"
    else:
        msgreply = f"Hayoo siapa kamu"

    return msgreply
示例#5
0
def replymsg(driver, data):
    num = numbers.normalize(data[0])
    main(num)
    bkd.mail(
        kelas.getEmailDosen(kelas.getKodeDosen(num)),
        f'yooo watsapppp mennnnn {config.bot_name} kirim file BERITA ACARA PITAK nihhhh',
        f'cek cek dulu ya filenya.....',
        bkd.getFilePath(kelas.getEmailDosen(kelas.getKodeDosen(num)),
                        'beritaacarapitak'))
    msgreply = f"Sampun yo.. coba cek emailnyaa yaaa yang {kelas.getEmailDosen(kelas.getKodeDosen(num))}"
    return msgreply
示例#6
0
def replymsg(driver, data):
    ssl._create_default_https_context = ssl._create_unverified_context
    num = numbers.normalize(data[0])
    tipe_bimbingan = cek_bimbingan_dosen.cekTipeBimbingan(data[3])
    main(num, tipe_bimbingan)
    bkd.mail(
        kelas.getEmailDosen(kelas.getKodeDosen(num)),
        f'yooo watsapppp mennnnn {config.bot_name} kirim file BERITA ACARA PITAK nihhhh',
        f'cek cek dulu ya filenya.....',
        bkd.getFilePath(kelas.getEmailDosen(kelas.getKodeDosen(num)),
                        'beritaacarapitak', kelas.getTahunID()))
    msgreply = f"Sampun yo.. coba cek emailnyaa yaaa yang {kelas.getEmailDosen(kelas.getKodeDosen(num))}"
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)

    msgreply = ""
    try:
        nipyKaBaak = getKaBaak()
        kodeKaBaak = getKodeDosen(nipyKaBaak)

        if (kodeDosen == kodeKaBaak):
            datas = dataSumbitSKMK()
            msgreply = "*Data yang minta SKMK:*\n\n"
            if datas:
                for i, data in enumerate(datas):
                    msgreply += f"{int(i)+1}. {data[0]}\n"
            else:
                msgreply += "Tidak ada yg minta.."
        else:
            msgreply = "Haha.. lucu ya, ternyata anda bukan siapa-siapa..."
    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    msg = message.normalize(data[3])
    npm = msg.split(' ')[-1]
    kodedosen = kelas.getKodeDosen(num)
    if npm == "all":
        msgreply = 'ok sudah di approve semua berkas KAMBING-nya sama #BOTNAME# yyyyaaa'
        sudah, siap, belum = bimbinganCekApprovalBimbingan(kodedosen)
        if siap == []:
            msgreply = 'yah datanya belum ada lagi nih yang siap untuk di approve, coba deh cek dengan cara ketik #BOTNAME# cek approval kambing'
        else:
            for j in siap:
                pembimbing_ke = pembimbingPositionAs(
                    getDataPembimbing(j, kodedosen), kodedosen)
                setSingleApprovalBimbingan(j, kodedosen, pembimbing_ke, 'true')
                nama_mahasiswa = kelas.getStudentNameOnly(j)
                msgreply += f'\n\nNPM: {j}\nNama: {nama_mahasiswa}'
    else:
        data = getDataPembimbing(npm, kodedosen)
        if data == None:
            msgreply = f'npm {npm} tidak ditemukan didata bimbingan Bapak/Ibu dosen'
        else:
            pembimbing_ke = pembimbingPositionAs(data, kodedosen)
            setSingleApprovalBimbingan(npm, kodedosen, pembimbing_ke, 'true')
            nama_mahasiswa = kelas.getStudentNameOnly(npm)
            msgreply = 'oke sudah #BOTNAME# approve untuk KAMBING'
            msgreply += f'\n\nNPM: {npm}\nNama: {nama_mahasiswa}'
    return msgreply
def auth(data):
    if kelas.getNpmandNameMahasiswa(data[0]) != None or kelas.getKodeDosen(
            data[0]) != '':
        ret = True
    else:
        ret = False
    return ret
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)    
    msgreply = ""
    try:
        nipyKaBaak = getKaBaak()
        kodeKaBaak = getKodeDosen(nipyKaBaak)
        
        if(kodeDosen == kodeKaBaak):
            datas = dataSumbitSKMK()
            if datas:
                for npm in datas:
                    approveSKMK(npm[0], kodeDosen)
                    
                msgreply = "Sudah di approve semua yg ada di list.."
            else:
                msgreply = "Gak ada yg di approve.., karena gak ada datanya.."
        else:
            msgreply = "Haha.. lucu ya, ternyata anda bukan siapa-siapa untuknya ya..."
    except Exception as e: 
        msgreply = f"Error {str(e)}"
    
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)
    # tahun_id = '20192'
    tahun_id = kelas.getTahunID()
    try:
        npm = [
            npm for npm in data[3].split(' ')
            if npm.isdigit() and len(npm) == 7
        ][0]
        msg = data[3].split(" id ", 1)[1]
        id = [id for id in msg.split(' ') if npm.isdigit()][0]
        revisi = msg.lstrip(id).strip()
        print(npm, revisi, id)
        if checkRevisi(npm, kodeDosen, id, tahun_id):
            revisiSidang(npm, kodeDosen, revisi, tahun_id, id)
            msgreply = "Sudah update...\n\n" + listRevisi(
                npm, kodeDosen, tahun_id)
        else:
            msgreply = "Salah id ato gak ada akses"
    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)
    # tahun_id = '20192'
    tahun_id = kelas.getTahunID()
    try:
        npm = [
            npm for npm in data[3].split(' ')
            if npm.isdigit() and len(npm) == 7
        ][0]
        if checkMhs(npm, kodeDosen):
            approveRevisiSidang(npm, kodeDosen, tahun_id)
            msgreply = f"Dah diapprove ya {npm} oleh {kodeDosen}"
            if checkRevisiStatus(npm, tahun_id):
                kategori = getKategoriSidang(npm, tahun_id)
                makeBeritaAcara(npm, tahun_id, kategori)
            else:
                pass
                print("Belum boleh boy")
        else:
            msgreply = f"Anda bukan penguji {npm}"

    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
示例#13
0
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', kelas.getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3].lower()

        try:
            data = f"{kelas.getEmailDosen(kodedosen)};{[npm for npm in msg.split(' ') if npm.isdigit() and len(npm) == 7][0]}"
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        except Exception as e:
            wa.typeAndSendMessage(
                driver, 'Mimpam zuzuzu.. anda salah keyword...' + str(e))

    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''
def replymsg(driver, data):
    kode_dosen=kelas.getKodeDosen(data[0])
    tahun_angkatan=f'{data[1].split("-")[3]}1'
    msgreply=f'haiyooooo mari mari kita laksanakan perwalian bersama Bapak/Ibu dosen kita tercintaaa....\nBerikut ITeung berikan untuk peserta absensi Perwaliannya yaaa:\n\n'
    nomor_urut=1
    kelas_number=f'{kelas.kodeKelas(data[1].split("-")[2])}'
    for data in getPesertaPerwalian(kode_dosen, tahun_angkatan, kelas_number):
        msgreply+=f'{nomor_urut}. *{data["MhswID"]}* - *{data["Nama"]}*\n'
        nomor_urut+=1
    return msgreply
示例#15
0
def replymsg(driver, data):
    #fix commit #27
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
        wa.typeAndSendMessage(driver, wmsg)
        num=data[0]
        lecturercode=kelas.getKodeDosen(num)
        msgreply=kelas.getListMK(lecturercode)
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
示例#16
0
def replymsg(driver, data):
    kodedosen = kelas.getKodeDosen(data[0])
    num = numbers.normalize(data[0])
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wmsg = wmsg.replace('#EMAIL#', siap_jadwal.getEmailDosen(kodedosen))
    wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
    subprocess.Popen(
        ["python", "run.py",
         os.path.basename(__file__).split('.')[0], num],
        cwd=config.cwd)
    return wmsg
示例#17
0
def replymsg(driver, data):
    # wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    # wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)
    tahun_id = '20192'

    df = pd.read_excel(f'jadwal_sidang_ta_14.xlsx')
    df.set_index('npm', inplace=True)
    listPem = ['pem3', 'pem4']

    try:
        msg = data[3].replace('\n', '').replace("'", "").replace('"',
                                                                 "").split(';')
        if len(msg) > 1 and msg[1] != "":
            npm = [
                npm for npm in msg[0].split(' ')
                if npm.isdigit() and len(npm) == 7
            ][0]
            print(npm)
            pem = df.loc[int(npm), listPem].values.tolist()
            print(pem)
            if kodeDosen in pem:
                if checkMhs(npm):
                    revisi = ';'.join([
                        data.strip().strip(';') for data in msg[1:]
                        if data != '' and data != ' '
                    ])
                    if revisi:
                        for r in revisi.split(';'):
                            print(r)
                            if checkRevisi(npm, kodeDosen, r, tahun_id):
                                pass
                            else:
                                revisiSidang(npm, kodeDosen, r, tahun_id)
                        msgreply = "Sudah masuk...\n\n" + listRevisi(
                            npm, kodeDosen, tahun_id)
                    else:
                        msgreply = "Revisinya mana, btw jgn lupa pake ; buat misahin revisinya"
                else:
                    msgreply = "Mahasiswanya tdk terdaftar ato salah npm mungkin..."
            else:
                msgreply = "Anda tidak berhak merevisi anak ini....."
        else:
            msgreply = "Revisinya mana, btw jgn lupa pake ; buat misahin revisinya"
    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
def replymsg(driver, data):
    num=numbers.normalize(data[0])
    kodedosen=kelas.getKodeDosen(num)
    sudah, siap, belum = approve_kambing.bimbinganCekApprovalBimbingan(kodedosen)
    msgreply='ini datanya....'
    msgreply += f"\n\nSudah ditandatangani:\n*NPM* | *Nama*"
    for i in sudah:
        msgreply+=f'\n*{i}* | *{kelas.getStudentNameOnly(i)}*'
    msgreply += f"\n\nSiap ditandatangani:\n*NPM* | *Nama*"
    for i in siap:
        msgreply += f'\n*{i}* | *{kelas.getStudentNameOnly(i)}*'
    msgreply += f"\n\nBelum siap ditandatangani:\n*NPM* | *Nama*"
    for i in belum:
        msgreply += f'\n*{i}* | *{kelas.getStudentNameOnly(i)}*'
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])

    kodeDosen = kelas.getKodeDosen(num)
    print(kodeDosen)
    msgreply = ""
    try:
        npm = [
            npm for npm in data[3].split(' ')
            if npm.isdigit() and len(npm) == 7
        ][0]
        prodiMhs, namaMhs = getMahasiswa(npm)
        nipyKaprodi, namaDosen = getKaprodi(prodiMhs)
        kodeKaprodi = getKodeDosen(nipyKaprodi)
        nipyWadirI, namaWadirI = getWadirI()
        kodeWadirI = getKodeDosen(nipyWadirI)
        if (kodeDosen == kodeWadirI):
            approveSKL(npm, "wadirI", kodeDosen)
            msgreply = f"{namaWadirI} sebagai wadir I telah mengapprove SKL milik {npm} - {namaMhs}"
        elif (kodeDosen == kodeKaprodi):
            approveSKL(npm, "kaprodi", kodeDosen)
            msgreply = f"{namaDosen} sebagai kaprodinya telah mengapprove SKL {npm}-{namaMhs}"
        else:
            msgreply = "Anda bukan siapa-siapa untuknya.."
    except IndexError:
        prodi = getProdiDosen(kodeDosen)
        nipyKaprodi, namaDosen = getKaprodi(prodi)
        kodeKaprodi = getKodeDosen(nipyKaprodi)
        nipyWadirI, namaWadirI = getWadirI()
        kodeWadirI = getKodeDosen(nipyWadirI)

        if (kodeDosen == kodeWadirI):
            approveAllSKL("wadirI", kodeDosen)
            msgreply = f"Udh di approve semua yaa"
        elif (kodeDosen == kodeKaprodi):
            approveAllSKL("kaprodi", kodeDosen, prodi)
            msgreply = f"Dah di approve semua yoo"
        else:
            msgreply = "Anda bukan siapa-siapa untuknya.."

    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
def jadwalKuliah(hari, num):
    kelas.dbConnect()
    db = kelas.dbConnectSiap()
    listMK = 'Kode Dosen | Jadwal ID | Mata Kuliah | Kelas | Hari | Jam Mulai | Jam Selesai | Ruangan\n '
    sql = "select DosenID, JadwalID, Nama, NamaKelas, HariID, JamMulai, JamSelesai, RuangID from simak_trn_jadwal where DosenID = '{0}' and TahunID = '".format(
        kelas.getKodeDosen(
            num)) + config.siap_tahun_id + "' and HariID = '{0}'".format(hari)
    with db:
        cur = db.cursor()
        cur.execute(sql)
        rows = cur.fetchall()
        for row in rows:
            listMK = listMK + str(row[0]) + ' | ' + str(
                row[1]) + ' | ' + str(row[2]) + ' | ' + kelas.toKelas(
                    str(row[3])) + ' | ' + kelas.toHari(str(
                        row[4])) + ' | ' + str(row[5]) + ' | ' + str(
                            row[6]) + ' | ' + str(row[7]) + ' \n '
    return listMK
示例#21
0
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = data[0]
    jadwal_id_msg = message.normalize(data[3]).split(' ')[-1]
    dosenid = kelas.getKodeDosen(num=num)
    jadwalID = getJadwalIDfromDosenID(dosenid=dosenid)
    if jadwal_id_msg == 'all':
        msg = allJadwalIDDosen(jadwalID)
        msgreply = msg
    else:
        data = []
        datafix = []
        data.append(jadwal_id_msg)
        data.append(kelas.getMkDetails(jadwal_id_msg)[2])
        datafix.append(data)
        msg = allJadwalIDDosen(datafix)
        msgreply = msg
    return msgreply
示例#22
0
def replymsg(driver, data):
    kode_dosen = cekKodeDosen(data[3])
    if kode_dosen:
        status = approve_bap.cekStatus(data[0])
        update_field = updateField(status)
        if status == 'kaprodi':
            if cekKaprodiAndDosenProdiID(kelas.getKodeDosen(data[0]),
                                         kode_dosen):
                updateApproval(kode_dosen, getProdiIDfromDosenID(kode_dosen),
                               update_field)
                return f'sudah diapprove dengan kode koden {kode_dosen}'
            else:
                return 'eeehhhh kamu mau approve kode dosen dari prodi lain yaaa hihihiih....., harus sama atuh prodinya....'
        else:
            updateApproval(kode_dosen, getProdiIDfromDosenID(kode_dosen),
                           update_field)
            return f'sudah diapprove dengan kode koden {kode_dosen}'
    else:
        return f'yahh kode dosennya mana nihhh, {config.bot_name} perlu kode dosennya nihhh....'
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3]
        msg = normalizeday(msg)
        num = data[0]
        day = dataHari(msg)
        if day != '':
            hariId = kodeHari(day)
            msgreply = jadwalKuliah(hariId, num)
            msgreply = "Ini ya jadwal kuliah yang bapak/ibu minta \n" + msgreply
        else:
            listMK = kelas.getListMK(kelas.getKodeDosen(data[0]))
            msgreply = "Ini ya jadwal kuliah yang bapak/ibu minta \n" + listMK
    else:
        msgreply = 'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
    return msgreply
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num=data[0]
    msg=data[3]
    msg=message.normalize(msg)
    npm=[]
    kodedosen=kelas.getKodeDosen(num)
    tipe_bimbingan=cekTipeBimbingan(msg)
    if tipe_bimbingan:
        for i in getMahasiswaBimbingan(kelas.getTahunID(), tipe_bimbingan):
            if i[1]==kodedosen or i[2]==kodedosen:
                npm.append(i[0])
        try:
            datefromdatabasehomebase=bimbingan_dosen.getStartDate(num, tipe_bimbingan)
            startdate = datetime.date(datefromdatabasehomebase)
            if 'pertemuan' in msg:
                pertemuan=msg.split(' pertemuan ')[1]
            else:
                pertemuan, datemulai, dateakhir=bimbingan_dosen.countPertemuan(startdate)
            try:
                pertemuan=int(pertemuan)
                msgreply=f'Nama Dosen: {kelas.getNamaDosen(kodedosen)}\n' \
                         f'Prodi: {pertemuan_bimbingan.getHomebase(num)}\n' \
                         f'Pertemuan: {pertemuan}\n\n' \
                         f'NPM | Nama | Status Bimbingan\n\n'
                for i in npm:
                    cek=cek_bimbingan(i, kodedosen, pertemuan, tipe_bimbingan)
                    namamahasiswa=kelas.getStudentNameOnly(i)
                    if cek == None:
                        msgreply+=f'*{i}* | {namamahasiswa} | *_BELUM BIMBINGAN_*\n'
                    else:
                        msgreply+=f'*{i}* | {namamahasiswa} | *_SUDAH BIMBINGAN_*\n'
            except Exception as e:
                msgreply=f'wahhh salah di pertemuan nih bosqqqqqqqqqqqq coba pertemuannya make angka yak jangan make hurup....'
        except:
            msgreply='ihhhhh belum diset nih tanggal awal bimbingannya coba deh Bapak/Ibu dosen komunikasi ya sama KAPRODI untuk set tanggal mulai bimbingannnya, tutorial bisa dibaca di panduan iteung yaaa yang bagian *kaprodi* hatur tengkyuuu....'
    else:
        msgreply='eh eh eh mana nihhh tipe bimbingannya harus dimasukin ke keyword yaaaa tipe bimbingannya cek di panduan mahasiswa bimbingan yaaa...'
    return msgreply
示例#25
0
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        num = data[0]
        num = numbers.normalize(num)

        subprocess.Popen([
            "python", "run.py",
            os.path.basename(__file__).split('.')[0], num
        ],
                         cwd=config.cwd)
    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''
示例#26
0
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = data[0]
    msg = data[3]
    msg = message.normalize(msg)
    npm = []
    kodedosen = kelas.getKodeDosen(num)
    for i in getMahasiswaBimbingan(kelas.getTahunID()):
        if i[1] == kodedosen or i[2] == kodedosen:
            npm.append(i[0])
    try:
        datefromdatabasehomebase = bimbingan_dosen.getStartDate(num)
        startdate = datetime.date(datefromdatabasehomebase)
        if 'pertemuan' in msg:
            pertemuan = msg.split(' pertemuan ')[1]
        else:
            pertemuan, datemulai, dateakhir = bimbingan_dosen.countPertemuan(
                startdate)
        try:
            pertemuan = int(pertemuan)
            msgreply = 'Nama Dosen: {lecturername}\nProdi: {prodi}\nPertemuan: {pertemuan}'.format(
                lecturername=kelas.getNamaDosen(kodedosen),
                prodi=pertemuan_bimbingan.getHomebase(num),
                pertemuan=str(
                    pertemuan)) + '\n\nNPM | Nama | Status Bimbingan\n\n'
            for i in npm:
                cek = cek_bimbingan(i, kodedosen, pertemuan)
                namamahasiswa = kelas.getStudentNameOnly(i)
                if cek == None:
                    msgreply += '*' + i + '*' + ' | ' + namamahasiswa + ' | ' + '*_BELUM BIMBINGAN_*' + '\n'
                else:
                    msgreply += '*' + i + '*' + ' | ' + namamahasiswa + ' | ' + '*_SUDAH BIMBINGAN_*' + '\n'
        except:
            msgreply = 'wahhh salah di pertemuan nih bosqqqqqqqqqqqq coba pertemuannya make angka yak jangan make hurup....'
    except:
        msgreply = 'ihhhhh belum diset nih tanggal awal bimbingannya coba deh Bapak/Ibu dosen komunikasi ya sama KAPRODI untuk set tanggal mulai bimbingannnya, tutorial bisa dibaca di panduan iteung yaaa yang bagian *kaprodi* hatur tengkyuuu....'
    return msgreply
示例#27
0
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    print(num)
    kodeDosen = kelas.getKodeDosen(num)
    print(kodeDosen)
    msgreply = ""
    try:

        prodi = getProdiDosen(kodeDosen)
        nipyKaprodi, namaDosen = getKaprodi(prodi)
        kodeKaprodi = getKodeDosen(nipyKaprodi)
        nipyWadirI, namaWadirI = getWadirI()
        kodeWadirI = getKodeDosen(nipyWadirI)
        print()
        if (kodeDosen == kodeWadirI):
            datas = dataSumbitSKL()
            msgreply = "*Data yang minta SKL:*\n\n"
            if datas:
                for i, data in enumerate(datas):
                    msgreply += f"{int(i)+1}. {data[1]} - {data[5]}\n"
            else:
                msgreply += "Tidak ada"
        elif (kodeDosen == kodeKaprodi):
            datas = dataSumbitSKL(prodi)
            msgreply = "*Data yang minta SKL:*\n\n"
            if datas:
                for i, data in enumerate(datas):
                    msgreply += f"{int(i)+1}. {data[1]} - {data[5]}\n"
            else:
                msgreply += "Tidak ada"
        else:
            msgreply = "Anda bukan siapa-siapa untuknya.."
    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
示例#28
0
def replymsg(driver, data):
    wmsg = reply.getWaitingMessage(os.path.basename(__file__).split('.')[0])
    wa.typeAndSendMessage(driver, wmsg)
    num = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)
    msgreply = ""
    try:
        nipyWadir1 = getWadir1()
        kodeWadir1 = getKodeDosen(nipyWadir1)

        nipyDirektur = getDirektur()
        kodeDirektur = getKodeDosen(nipyDirektur)

        if (kodeDosen == kodeWadir1):
            datas = dataPengajuSKPWadir1()
            if datas:
                for npm in datas:
                    approveSKPWadir1(npm[0], kodeDosen)

                msgreply = "Sudah diterima semua data yg ada di list.."
            else:
                msgreply = "Gak ada yg diterima.., karena gak ada datanya.."
        elif (kodeDosen == kodeDirektur):
            datas = dataPengajuSKPDirektur()
            if datas:
                for npm in datas:
                    approveSKPDirektur(npm[0], kodeDosen)

                msgreply = "Sudah diterima semua data yg ada di list.."
            else:
                msgreply = "Gak ada yg diterima.., karena gak ada datanya.."
        else:
            msgreply = "Haha.. lucu ya, ternyata anda bukan siapa-siapa untuknya ya..."
    except Exception as e:
        msgreply = f"Error {str(e)}"

    return msgreply
def replymsg(driver, data):
    msgs=data[3].split(' ')
    npm=''
    for i in msgs:
        if cekIsNpmExist(i):
            npm=i
    if npm == '':
        msgreply='NPM tidak ada/Invalid'
    else:
        if 'catatan' in data[3]:
            sisa_biaya = data[3].split(' sisa pembayaran ')[1].split(' catatan ')[0].replace('.', '')
        else:
            sisa_biaya = data[3].split(' sisa pembayaran ')[1].replace('.', '')
        tipesemester = validTahunID()[-1]
        prodiid = f'{npm[0]}{npm[3]}'
        if app.cekSudahAdaKHS(npm, validTahunID(), 'A'):
            app.updateBiayaKHS(npm, validTahunID(), sisa_biaya)
            msgreply = f'Mahasiswa dengan,\n\nNPM: {npm}\nNama: {kelas.getStudentNameOnly(npm)}\nProdi: {getProdiName(prodiid)}\n\nSudah bisa ambil KRS'
            if cekSudahApprove(npm, validTahunID()):
                data_verif=cekSudahApprove(npm, validTahunID())
                msgreply+=f' dan Sudah diverifikasi oleh,\n\nNama: *{kelas.getNamaDosen(data_verif[2])}*\nTanggal/Waktu: {data_verif[3]}'
        else:
            data_log={}
            data_log['npm']=npm
            data_log['dosen_id']=kelas.getKodeDosen(data[0])
            data_log['session_approval']=datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            data_log['sisa_pembayaran']=sisa_biaya
            data_log['tahun_id']=validTahunID()
            if 'catatan' in data[3]:
                catatan=data[3].split(' catatan ')[1]
            else:
                catatan='-'
            insertLogApproval(data_log)
            app.insertnewKHS(npm, validTahunID(), prodiid, app.cekSesiSemester(tipesemester, npm), sisa_biaya)
            wa.setOutbox(kelas.getStudentPhoneNumberFromNPM(npm), f'hai haiiiiii kamu dengan,{config.whatsapp_api_lineBreak}{config.whatsapp_api_lineBreak}NPM: {npm}{config.whatsapp_api_lineBreak}Nama: {kelas.getStudentNameOnly(npm)}{config.whatsapp_api_lineBreak}Sisa Pembayaran: {app.floatToRupiah(float(sisa_biaya))}{config.whatsapp_api_lineBreak}Catatan: {catatan}{config.whatsapp_api_lineBreak}{config.whatsapp_api_lineBreak}Sudah diverifikasi ya data pembayaran VA kamu oleh,{config.whatsapp_api_lineBreak}Nama: *{kelas.getNamaDosen(kelas.getKodeDosen(data[0]))}*')
            msgreply=f'Sudah {config.bot_name} approve yaaa va dengan data berikut:\n\nNPM: {npm}\nNama: {kelas.getStudentNameOnly(npm)}\nProdi: {getProdiName(prodiid)}\nSisa Pembayaran: {app.floatToRupiah(float(sisa_biaya))}\nCatatan: {catatan}\n\nAkan {config.bot_name} langsung informasikan ke mahasiswanya langsung yaaa'
    return msgreply
def replymsg(driver, data):
    if kelas.cekSiap():
        kodedosen = kelas.getKodeDosen(data[0])
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wmsg = wmsg.replace('#EMAIL#', getEmailDosen(kodedosen))
        wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
        wa.typeAndSendMessage(driver, wmsg)
        msg = data[3].lower()
        if "uas" in msg:
            result = "uas"
            data = kodedosen + ";" + result
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        elif "uts" in msg:
            result = "uts"
            data = kodedosen + ";" + result
            subprocess.Popen([
                "python", "run.py",
                os.path.basename(__file__).split('.')[0], data
            ],
                             cwd=config.cwd)
        else:
            wa.typeAndSendMessage(driver, 'Keyword salah mereun....')
        # result =
        # msg = data[3].split(' ')

    else:
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu hingga beberapa menit kemudian, lalu ulangi kembali, terima kasih....'
        )
    return ''