Ejemplo n.º 1
0
def replymsg(driver, data):
    if kelas.cekSiap():
        wmsg = reply.getWaitingMessage(
            os.path.basename(__file__).split('.')[0])
        wa.typeAndSendMessage(driver, wmsg)
        num = data[0]
        num = numbers.normalize(num)
        msg = data[3]
        data = msg.split(' ')
        # error ketika uas
        try:
            if 'matkul' in data and 'jadwal' not in data:
                matkul = data[data.index('matkul') + 1] if any(
                    char.isdigit()
                    for char in data[data.index('matkul') + 1]) else False
                kelass = data[data.index('kelas') +
                              1].upper() if len(data[data.index('kelas') +
                                                     1]) < 2 else False

                if matkul and kelass:
                    datas = {
                        'tahun': kelas.getTahunID(),
                        'kode_matkul': matkul,
                        'kelas': convertKelas(kelass),
                        'jadwal': 0
                    }

                    msgreply = mainCekNilai(num, datas)

                    msgreply = "Ini nilai ujian yang Bapak/Ibu minta\n\n" + msgreply
                else:
                    msgreply = 'Salah keyword beb...................'
            elif 'jadwal' in data and 'matkul' not in data:
                jadwal = data[data.index('jadwal') + 1] if all(
                    char.isdigit()
                    for char in data[data.index('jadwal') + 1]) else False
                if jadwal:
                    datas = {
                        'tahun': kelas.getTahunID(),
                        'kode_matkul': 0,
                        'kelas': 0,
                        'jadwal': jadwal
                    }

                    msgreply = mainCekNilai(num, datas)

                    msgreply = "Ini nilai ujian yang Bapak/Ibu minta\n\n" + msgreply
                else:
                    msgreply = 'Salah keyword beb...............................'
            else:
                msgreply = 'Salah keyword beb......'
        except:
            msgreply = 'Salah keyword beb....., atau salah masukin jadwal uas atau uts'
    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
Ejemplo n.º 2
0
def makeQrcodeLinkVerifySign(link, status, kodedosen):
    tahunid = str(int(kelas.getTahunID()) -
                  1) if kelas.getTahunID()[-1] == '3' else kelas.getTahunID()
    if status == 'dosen':
        img = qrcode.make(link)
        img.save(f'./bkdqrcode/dosenqrcode-{tahunid}-{kodedosen}.png')
    elif status == 'kaprodi':
        img = qrcode.make(link)
        img.save(f'./bkdqrcode/kaprodiqrcode-{tahunid}-{kodedosen}.png')
    else:
        img = qrcode.make(link)
        img.save(f'./bkdqrcode/deputiqrcode-{tahunid}-{kodedosen}.png')
Ejemplo n.º 3
0
def run(num):
    link = {}
    dmy = datetime.now().strftime("%d-%m-%Y")
    hms = datetime.now().strftime("%H:%M:%S")
    prodiidandsingkatan = getProdiIDAndSingkatan()
    for prodiID, singkatan in prodiidandsingkatan:
        mkkodelist = []
        for i in getJadwalIDFullApproval(prodiID):
            mkkode = getMkKodeFromJadwalID(i[0])
            if mkkode not in mkkodelist:
                mkkodelist.append(mkkode)
            else:
                continue
        foldername = 'bkd'
        pathperprodi = []
        for i in mkkodelist:
            abc = bkd.getFilePath(
                i, foldername,
                str(int(kelas.getTahunID()) - 1)
                if kelas.getTahunID()[-1] == '3' else kelas.getTahunID())
            for i in abc:
                pathperprodi.append(i)
        with ZipFile(f'{singkatan}.zip', 'w') as zip:
            for file in pathperprodi:
                try:
                    zip.write(file)
                except:
                    print(f'file: {file}, ngga ada')
                    continue
        gauth = GoogleAuth()
        gauth.LoadCredentialsFile("mycreds.txt")
        if gauth.credentials is None:
            gauth.LocalWebserverAuth()
        elif gauth.access_token_expired:
            gauth.Refresh()
        else:
            gauth.Authorize()
        gauth.SaveCredentialsFile("mycreds.txt")
        drive = GoogleDrive(gauth)
        file1 = drive.CreateFile({'title': f'{singkatan} {dmy} {hms}.zip'})
        file1.SetContentFile(f'{os.getcwd()}\\{singkatan}.zip')
        file1.Upload()
        file1.InsertPermission({
            'type': 'anyone',
            'value': 'anyone',
            'role': 'reader'
        })
        link[f'{singkatan}'] = file1['alternateLink']
    msgreply = f'ini yaaa link berdasarkan prodinyaa....{config.whatsapp_api_lineBreak}{config.whatsapp_api_lineBreak}'
    for data in link.items():
        msgreply += f'{data[0]}: {data[1]}{config.whatsapp_api_lineBreak}'
    wa.setOutbox(num, msgreply)
Ejemplo n.º 4
0
def makePDFFooter(matkuldetails, lecturercode, pdf):
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = int(tahunid) - 1
    pdf.output(
        f'bkd/{matkuldetails[1]}-{tahunid}-{matkuldetails[2]}-{getLecturerMail(lecturercode)}.pdf',
        'F')
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
Ejemplo n.º 6
0
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.getNpmandNameMahasiswa(num):
        npm, nama=kelas.getNpmandNameMahasiswa(num)
        try:
            if checkMhs(npm):
                if checkRevisi(npm, tahun_id):
                    msgreply = checkRevisi(npm, tahun_id)
                    msgreply += f'\n{checkSidang(npm, tahun_id)}'
                else:
                    msgreply = "Revisi dulu gih sana...."
                
            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
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
def run(data):
    data = data.split(';')
    jenis, nomor, filename = data[0], data[1], data[2]
    try:
        if jenis == 'uts':
            sleep(2)
            moveFiles(filename)
            print(inputNilaiByExcel(filename, 'uts', kelas.getTahunID(), nomor))
            removeFile(filename)
        elif jenis == 'uas':
            sleep(2)
            moveFiles(filename)
            print(inputNilaiByExcel(filename, 'uas', kelas.getTahunID(), nomor))
            removeFile(filename)
    except Exception as e: 
        print(str(e))
Ejemplo n.º 9
0
def updateApproval(kode_dosen,
                   prodi_id,
                   field_update,
                   tahun_id=kelas.getTahunID()):
    db = kelas.dbConnect()
    sql = f"UPDATE `wanda`.`perwalian_log` SET `{field_update}` = 'true' WHERE `KodeDosen` = '{kode_dosen}' and `ProdiID` = {prodi_id} and `TahunID` = {tahun_id}"
    with db:
        cur = db.cursor()
        cur.execute(sql)
Ejemplo n.º 10
0
def replymsg(driver, data):
    npm, nama = kelas.getNpmandNameMahasiswa(data[0])
    judul = data[3].split(' pitak ')[1]
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = str(int(tahunid) - 1)
    updateJudulPitak(npm, judul, tahunid)
    msgreply = f'oke sudah #BOTNAME# update judulnya menjadi {judul}'
    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
def cekBimbinganData(npm, tahun_id=kelas.getTahunID()):
    db=kelas.dbConnect()
    sql=f"select * from bimbingan_data where npm={npm} and tahun_id={tahun_id}"
    with db:
        cur=db.cursor()
        cur.execute(sql)
        if cur.fetchone() is not None:
            return True
        else:
            return False
Ejemplo n.º 13
0
def getListStudent(jadwalid):
    db = kelas.dbConnectSiap()
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = int(tahunid) - 1
    sql = f"select j.JadwalID, j.TahunID, j.MKKode, j.Nama, j.DosenID, krs.MhswID from simak_trn_jadwal as j join simak_trn_krs as krs where j.jadwalid = krs.jadwalid and j.tahunid={tahunid} and j.JadwalID = '{jadwalid}'"
    with db:
        cur = db.cursor()
        cur.execute(sql)
        rows = cur.fetchall()
    return rows
Ejemplo n.º 14
0
def getPresensiDosen(jadwalid, rangepertemuan1, rangepertemuan2):
    db = kelas.dbConnectSiap()
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = int(tahunid) - 1
    sql = f"select PresensiID from simak_trn_presensi_dosen where TahunID={tahunid} and JadwalID={jadwalid} and Pertemuan > {rangepertemuan1} and Pertemuan < {rangepertemuan2} ORDER BY Pertemuan ASC"
    with db:
        cur = db.cursor()
        cur.execute(sql)
        row = cur.fetchall()
    return row
def makeQrcodeLinkVerifySign(link, status, kodedosen):
    tahunid = kelas.getTahunID()
    if status == 'dosen':
        img = qrcode.make(link)
        img.save(
            f'./surat_perwalian_qrcode/dosenqrcode-{tahunid}-{kodedosen}.png')
    # elif status == 'kaprodi':
    #     img = qrcode.make(link)
    #     img.save(f'./surat_perwalian_qrcode/kaprodiqrcode-{tahunid}-{kodedosen}.png')
    else:
        img = qrcode.make(link)
        img.save(
            f'./surat_perwalian_qrcode/kmqrcode-{tahunid}-{kodedosen}.png')
Ejemplo n.º 16
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
Ejemplo n.º 17
0
def run(data):
    data = data.split(';')
    kodedosen, jenis = data[0], data[1]
    jenis = jenis.lower()
    try:
        if jenis == 'uts':
            param = {
                'dosen': kodedosen,
                'tahun': kelas.getTahunID(),
                'jenis': convertJenisNum(jenis),  # "2"
                'program': config.jalur_program,
            }
            makeExcelAndSend(param)
        elif jenis == 'uas':
            param = {
                'dosen': kodedosen,
                'tahun': kelas.getTahunID(),
                'jenis': convertJenisNum(jenis),  # "2"
                'program': config.jalur_program,
            }
            makeExcelAndSend(param)
    except Exception as e:
        print(str(e))
Ejemplo n.º 18
0
def getJadwalID(mkkode, lecturercode):
    db = kelas.dbConnectSiap()
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = int(tahunid) - 1
    sql = f"select JadwalID from simak_trn_jadwal where TahunID={tahunid} and MKKode='{mkkode}' and DosenID='{lecturercode}'"
    with db:
        cur = db.cursor()
        cur.execute(sql)
        rows = cur.fetchall()
        if rows is not None:
            return rows
        else:
            return ''
Ejemplo n.º 19
0
def getAllNilaiBimbingan(npm, dosenid):
    db = kelas.dbConnectSiap()
    tahunid=kelas.getTahunID()
    if tahunid[-1] == "3":
        tahunid=int(tahunid)-1
    sql = f"select Nilai from simak_croot_bimbingan where MhswID={npm} and DosenID='{dosenid}' and TahunID={tahunid} ORDER BY Pertemuan_ ASC"
    with db:
        cur = db.cursor()
        cur.execute(sql)
        rows = cur.fetchall()
        if rows is not None:
            return rows
        else:
            return None
Ejemplo n.º 20
0
def getMkKode(lecturercode):
    db = kelas.dbConnectSiap()
    tahunid = kelas.getTahunID()
    if tahunid[-1] == '3':
        tahunid = int(tahunid) - 1
    sql = f"select DISTINCT (MKKode) from simak_trn_jadwal where TahunID={tahunid} and DosenID='{lecturercode}'"
    with db:
        cur = db.cursor()
        cur.execute(sql)
        row = cur.fetchall()
        if row is not None:
            ret = row
        else:
            ret = ''
    return ret
Ejemplo n.º 21
0
def countSemester(jadwalid):
    jadwalserial = kelas.getJadwalSerial(jadwalid=jadwalid)
    if jadwalserial == '0':
        jadwalid = jadwalid
    else:
        jadwalid = jadwalserial
    data = kelas.pesertaAbsensi(jadwalid)
    middleDataLength = len(data) // 2
    npm = data[middleDataLength][-1]
    tahunAngkatan = 2000 + int(npm[1:3])
    tahunAjaran = kelas.getTahunID()
    if tahunAjaran[-1] == '3':
        tahunAjaran = str(int(tahunAjaran) - 1)
    semester = (int(tahunAjaran[:-1]) - tahunAngkatan) * 2 + int(
        tahunAjaran[-1])
    return semester
Ejemplo n.º 22
0
def insertBimbingan(studentid, lecturerid, tipe, pertemuan, nilai, topik,
                    logmsg):
    db = kelas.dbConnectSiap()
    sql = "INSERT INTO `simpati`.`simak_croot_bimbingan`(`kodepertemuan`, `MhswID`, `DosenID`, `TahunID`, `Tipe`, `Pertemuan_`, `Nilai`, `Topik`, `Tanggal`, `Penilai`, `Log`) VALUES (DEFAULT, '{studentid}', '{lecturerid}', '{tahunid}', '{tipe}', {pertemuan}, {nilai}, '{topik}', '{tanggal}', '{penilai}', '{logmsg}')".format(
        studentid=studentid,
        lecturerid=lecturerid,
        penilai=lecturerid,
        tahunid=kelas.getTahunID(),
        tipe=tipe,
        nilai=nilai,
        topik=topik,
        tanggal=datetime.now(),
        pertemuan=pertemuan,
        logmsg=logmsg)
    with db:
        cur = db.cursor()
        cur.execute(sql)
def cekPerwalianLog(kode_dosen, prodi_id, tahun_id, group_name, jumlah_peserta,
                    jumlah_hadir, jumlah_tidak_hadir, catatan):
    db = kelas.dbConnect()
    sql = f'select * from perwalian_log where KodeDosen="{kode_dosen}" and TahunID={tahun_id}'
    with db:
        cur = db.cursor()
        cur.execute(sql)
        row = cur.fetchone()
        if row:
            id = row[0]
            updateLogPerwalian(id, jumlah_hadir, jumlah_tidak_hadir, catatan)
        else:
            insertLogPerwalian(kode_dosen, prodi_id,
                               ord(group_name.split('-')[2].lower()) - 96,
                               kelas.getTahunID(),
                               f"{group_name.split('-')[3]}1", jumlah_peserta,
                               jumlah_hadir, jumlah_tidak_hadir, catatan)
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()
    
    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
Ejemplo n.º 25
0
def replymsg(driver, data):
    msgreply = ""
    if kelas.cekSiap():
        num = numbers.normalize(data[0])
        try:
            if kelas.getNpmandNameMahasiswa(num):
                npm, nama = kelas.getNpmandNameMahasiswa(num)
                # print(npm, nama)
                tahunID = kelas.getTahunID()
                namaMhs, prodiMhs, singkatan, prodiID, email = getMahasiswaByNpm(
                    npm)
                # print(namaMhs, prodiMhs, singkatan, prodiID, email)
                noSurat = insertMhs(npm, prodiID, tahunID)
                # print(noSurat)
                if checkApproveMhs(npm, prodiID, tahunID):
                    data = f"{npm};{singkatan};{noSurat}"
                    subprocess.Popen([
                        "python", "run.py",
                        os.path.basename(__file__).split('.')[0], data
                    ],
                                     cwd=config.cwd)
                    wmsg = reply.getWaitingMessage(
                        os.path.basename(__file__).split('.')[0])
                    wmsg = wmsg.replace('#EMAIL#', email)
                    wmsg = wmsg.replace('#BOTNAME#', config.bot_name)
                    wa.typeAndSendMessage(driver, wmsg)
                else:
                    msgreply = "SKMK anda telah diajukan, silahkan hubungi Ka. Baak untuk minta approve SKMK yang telah diajukan"
            else:
                msgreply = f"Ikan teri pake saos.. anda siapa bos..\nSebenarnya ada beberapa kemungkinan, pertama kamu bukan mahasiswa yg udh wisuda.. Mungkin no hp di SIAP salah kali... apalagi ya.. kyknya itu aja.."

        except Exception as e:
            msgreply = f'Ikan hiu makan tomat.. ada error mat... {str(e)}'

    else:
        # pass
        wa.typeAndSendMessage(
            driver,
            'Mohon maaf server Akademik SIAP sedang dalam kondisi DOWN, mohon untuk menginformasikan ke ADMIN dan tunggu'
        )
    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
Ejemplo n.º 27
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
Ejemplo n.º 28
0
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]
        num = data[0]
        nomor = numbers.normalize(num)
        data = msg.split(' ')

        try:
            filename = downloadFile(driver)
            sleep(2)
            moveFiles(filename)
            msgreply = inputByExcel(filename, kelas.getTahunID(), nomor)
            removeFile(filename)
        except FileNotFoundError:
            msgreply = 'Gak ada filenya....'
        except:
            msgreply = 'Ada masalah di kodingannya...'
    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 = numbers.normalize(data[0])
    kodeDosen = kelas.getKodeDosen(num)
    # print(kodeDosen)
    # tahunID = '20192'
    tahunID = kelas.getTahunID()
    try:
        npm = [
            npm for npm in data[3].split(' ')
            if npm.isdigit() and len(npm) == 7
        ][0]
        if checkMhs(npm, kodeDosen):
            if checkRevisiStatus(npm, tahunID):
                df = pd.read_excel(f'jadwal_sidang_ta_14.xlsx')
                listPem = ['pem1', 'pem2', 'pem3', 'pem4', 'koor']
                pem = df.loc[(df["npm"] == int(npm)) &
                             (df["tahun"] == int(tahunID)),
                             listPem].values.tolist()[0]

                peran = f"{kodeDosen} sebagai "
                nip = getKaProdi('14')
                kaprodiID = getDosenIDfromNIPY(nip)

                kategori = getKategoriSidang(npm, tahunID)
                # kategori = "ta"

                if pem[0] == kodeDosen:
                    role = "pembimbing_utama"
                    approveBASidang(kodeDosen, role, tahunID, kategori, npm)
                    peran += 'Pembimbing Utama '

                if pem[1] == kodeDosen:
                    role = "pembimbing_pendamping"
                    approveBASidang(kodeDosen, role, tahunID, kategori, npm)
                    peran += 'Pembimbing Pendamping '

                if pem[2] == kodeDosen:
                    role = "penguji_utama"
                    approveBASidang(kodeDosen, role, tahunID, kategori, npm)
                    peran += 'Penguji Utama '

                if pem[3] == kodeDosen:
                    role = "penguji_pendamping"
                    approveBASidang(kodeDosen, role, tahunID, kategori, npm)
                    peran += 'Penguji Pendamping '

                if pem[4] == kodeDosen:
                    if checkKoor(npm, tahunID, kategori):
                        role = "koordinator"
                        approveBASidang(kodeDosen, role, tahunID, kategori,
                                        npm)
                        peran += 'Koordinator '

                if kaprodiID == kodeDosen:
                    if checkKaprodi(npm, tahunID, kategori):
                        role = "kaprodi"
                        approveBASidang(kodeDosen, role, tahunID, kategori,
                                        npm)
                        peran += 'Kepala Prodi '
                    else:
                        pass

                if 'Koordinator' in peran or 'Kepala Prodi' in peran or 'Penguji Pendamping' in peran or 'Penguji Utama' in peran or 'Pembimbing Pendamping' in peran or 'Pembimbing Utama' in peran:
                    msgreply = f"Dah diapprove ya {npm} oleh {peran}"
                else:
                    msgreply = f"Harus approve dulu dari penguji -> pembimbing -> koordinator -> kepala prodi"
            else:
                msgreply = f"Blm acc revisi {npm} dari kedua penguji nih......"
        else:
            msgreply = f"Anda bukan siapa-siapa untuk {npm}"

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

    return msgreply
Ejemplo n.º 30
0
def run(num):
    param = {
        'nomor': num,
        'tahun': kelas.getTahunID(),
    }
    makeExcelAndSend(param)