示例#1
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
示例#2
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
示例#3
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 ''
示例#4
0
def replymsg(driver, data):    
    if kelas.cekSiap():    
        num = numbers.normalize(data[0])
        tahunID = '20192'
        msg = data[3].lower().split(' ')
        msgreply = ""
        try:
            if kelas.getKodeDosen(num):          
                dosenID = kelas.getKodeDosen(num)
                
                email = kelas.getEmailDosen(dosenID)
                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)
                
                tipe = 'ta'
                
                df = pd.read_excel(f'jadwal_sidang_ta_14.xlsx')
                listPem = ['koor', 'tipe', 'tahun']
                df = df.loc[:, listPem]
                df = df.drop_duplicates()
                df = df.loc[(df["koor"] == dosenID) & (df["tipe"] == tipe) & (df["tahun"] == int(tahunID))]
                
                if df.empty:
                    msgreply = "Harus koornya cuy ato Anda salah tipe sidang..."
                else:
                    if checkStatusSidangKoor(dosenID, tahunID, tipe):
                        data = f"{'dosen'};{dosenID};{tahunID};{email};{tipe}"
                        subprocess.Popen(["python", "run.py", os.path.basename(__file__).split('.')[0],data], cwd=config.cwd)
                        msgreply = ""
                    else:
                        msgreply = "Blm ada tuh..."
                    
            elif kelas.getNpmandNameMahasiswa(num):
                try:
                    npm, nama=kelas.getNpmandNameMahasiswa(num)
                    
                    email = getEmail(npm)
                    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)
                    
                    kategori = getKategoriSidang(npm, tahunID)
                    if checkRevisiStatus(npm, tahunID):
                        if checkStatusSidang(npm, tahunID, kategori):
                            email = getEmail(npm)
                            data = f"{'mahasiswa'};{npm};{tahunID};{email};{kategori}"
                            subprocess.Popen(["python", "run.py", os.path.basename(__file__).split('.')[0],data], cwd=config.cwd)
                            msgreply = ""
                        else:
                            msgreply = "Approve dulu dari semuanya pembimbing, penguji, koordinator, kaprodi..."
                    else:
                        msgreply = "Approve dulu dari semuanya kedua penguji..."
                    
                except Exception as e: 
                    msgreply = f"Errornya: {str(e)}"
            else:
                msgreply = f"Hayoo siapa kamu"
            
        except Exception as e: 
            msgreply = f'Wadaw.. 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 msgreply
def mainPages(kode_dosen, prodi_id, nama_dosen, km_npm, nama_prodi, tipe_kelas,
              catatan, group_name, jmlPesertaPerwalian):
    checkDir()

    namaFile = f"surat_perwalian/SURAT-PERWALIAN-{kode_dosen}-{kelas.getTahunID()}-{prodi_id}-{tipe_kelas}-{kelas.getEmailDosen(kode_dosen)}.pdf"

    # check dir qrcode
    checkDirQrcode()

    # generate dosen barcode
    link = makeLinkVerifiy(kode_dosen)
    makeQrcodeLinkVerifySign(link, 'dosen', kode_dosen)

    # generate km barcode
    link = makeLinkVerifiy(km_npm)
    makeQrcodeLinkVerifySign(link, 'km', kode_dosen)

    # generate kaprodi barcode
    # kaprodinipycode = bkd.getNipyKaProdi(prodi_id)
    # kaprodiDosenID = bkd.getDosenIDfromNIPY(kaprodinipycode)
    # link = makeLinkVerifiy(kaprodiDosenID)
    # makeQrcodeLinkVerifySign(link, 'kaprodi', kode_dosen)

    # generate deputi barcode
    # deputinipycode = bkd.getNipyDeputi(9)
    # deputiDosenID = bkd.getDosenIDfromNIPY(deputinipycode)
    # link = makeLinkVerifiy(deputiDosenID)
    # makeQrcodeLinkVerifySign(link, 'deputi', kode_dosen)

    masukan = catatanToList(catatan)

    # namaDeputi = nama_deputi
    # namaKaprodi = nama_kaprodi

    prodi = nama_prodi

    listMahasiswa = hadirAbsensiData(group_name, 'daring', kode_dosen)

    jumlahMhs = jmlPesertaPerwalian
    jumlahHadir = len(listMahasiswa)
    jumlahTdkHadir = jumlahMhs - jumlahHadir

    cekPerwalianLog(kode_dosen, prodi_id, kelas.getTahunID(), group_name,
                    jumlahMhs, jumlahHadir, jumlahTdkHadir, catatan)

    # statusappove=cekStatusApprovePerwalian(kode_dosen, kelas.getTahunID())

    qrWhiteImage = 'bkdqrcode/whiteimage.png'

    # if statusappove[1] == 'true':
    #     qrDeputi = f'surat_perwalian_qrcode/deputiqrcode-{kelas.getTahunID()}-{kode_dosen}.png'
    #
    # qrKaprodi = 'bkdqrcode/whiteimage.png'
    # if statusappove[0] == 'true':
    #     qrKaprodi = f'surat_perwalian_qrcode/kaprodiqrcode-{kelas.getTahunID()}-{kode_dosen}.png'

    qrKm = f'surat_perwalian_qrcode/kmqrcode-{kelas.getTahunID()}-{kode_dosen}.png'
    qrDosen = f'surat_perwalian_qrcode/dosenqrcode-{kelas.getTahunID()}-{kode_dosen}.png'

    tahunAkademik = f'{int(kelas.getTahunID()[:-1])} - {int(kelas.getTahunID()[:-1]) + 1}'
    hariSekarang = daysEnToInd(datetime.now().strftime('%A'))
    tglSekarang = bkd.sahTanggal()

    listMasukan = masukan

    doc = SimpleDocTemplate(namaFile,
                            pagesize=A4,
                            rightMargin=2.5 * cm,
                            leftMargin=2.5 * cm,
                            topMargin=2.5 * cm,
                            bottomMargin=2.5 * cm)

    contain = []
    styles = getSampleStyleSheet()
    styles.add(
        ParagraphStyle(name='Justify',
                       alignment=TA_JUSTIFY,
                       fontName='Times',
                       fontSize=12))
    styles.add(
        ParagraphStyle(name='Center', alignment=TA_CENTER, fontName='Times'))

    createBeritaAcaraPage(contain, styles, tahunAkademik, hariSekarang,
                          tglSekarang, kode_dosen, prodi, tipe_kelas,
                          jumlahMhs, jumlahHadir, jumlahTdkHadir, listMasukan,
                          qrKm, qrWhiteImage, qrDosen,
                          kelas.getStudentNameOnly(km_npm))
    createAbsensiPage(contain, styles, kode_dosen, prodi, tipe_kelas,
                      listMahasiswa, qrWhiteImage, qrDosen)

    doc.build(contain)

    bkd.mail(
        kelas.getEmailDosen(kode_dosen),
        f'alooooo {config.bot_name} kirim file Absensi Perwalian NICHHHHHHH',
        f'Tolong dicek kembali yaaa datanya, dan jangan lupa buruann minta approvalnya ke KAPRODI dan DEPUTI yaa....',
        bkd.getFilePath(kelas.getEmailDosen(kode_dosen), 'surat_perwalian',
                        kelas.getTahunID()))
示例#6
0
def cekKodeDosen(msg):
    msgs = msg.split(' ')
    for i in msgs:
        if kelas.getEmailDosen(i):
            return i
    return False