def verifyDigitalSign(resultpasscode):
    kodedosen = resultpasscode.split(';')[1]
    tglttd = resultpasscode.split(';')[2]
    blnttd = resultpasscode.split(';')[3]
    thnttd = resultpasscode.split(';')[4]
    jamttd = resultpasscode.split(';')[5]
    mntttd = resultpasscode.split(';')[6]
    dtkttd = resultpasscode.split(';')[7]
    jnsdkm = resultpasscode.split(';')[8]
    datadosen = kelas.getAllDataDosens(kodedosen)
    penerbitantandatangan = f'{jamttd}:{mntttd}:{dtkttd} {tglttd} {bkd.bulanSwitcher(blnttd)} {thnttd}'
    if datadosen:
        namadosen = kelas.getNamaDosen(kodedosen)
        datalahirdosen = datadosen[7].strftime('%d-%m-%Y')
        tahunlahirdosen = datalahirdosen.split('-')[2]
        bulanlahirdosen = bkd.bulanSwitcher(datalahirdosen.split('-')[1])
        tanggallahirdosen = datalahirdosen.split('-')[0]
        datalahirdosen = tanggallahirdosen + ' ' + bulanlahirdosen + ' ' + tahunlahirdosen
        msgreply = f'Ini yaaa data yang Akang/Teteh minta\n\nKode Dosen: {kodedosen}\nNama Dosen: {namadosen}\nNIDN: {datadosen[2]}\nTempat/Tgl Lahir: {datadosen[6]}/{datalahirdosen}\nHandphone: {datadosen[12]}\nE-mail: {datadosen[13]}\n\nJenis Dokumen: {jnsdkm}\nPenerbitan Tanda Tangan: {penerbitantandatangan}'
        return msgreply
    km_data = kelas.getDataMahasiswa(kodedosen)
    nama_km = capitalizeName(km_data[1])
    handphone_km = km_data[2]
    email_km = km_data[3]
    return f"Ini yaaa data yang Akang/Teteh minta" \
           f"\n\nNPM KM: {kodedosen}" \
           f"\nNama KM: {nama_km}" \
           f"\nHandphone KM: {handphone_km}" \
           f"\nE-Mail KM: {email_km}" \
           f"\n\nJenis Dokumen: {jnsdkm}" \
           f"\nPenerbitan Tanda Tangan: {penerbitantandatangan}"
示例#2
0
def verifyDigitalSign(resultpasscode):
    resultpasscode=resultpasscode.split(';')
    tanggal=resultpasscode[1].split('-')[0]
    bulan=bkd.bulanSwitcher(resultpasscode[1].split('-')[1])
    tahun=resultpasscode[1].split('-')[2]
    sah_jam=resultpasscode[2]
    nama_dosen=getDataDosen(resultpasscode[3])
    nama_mahasiswa=  getDataMahasiswa(resultpasscode[4])
    kategori_bimbingan= tipeSidang(resultpasscode[5])
    judul = getJudul(resultpasscode[4], resultpasscode[7])
    role= tipeDosen(resultpasscode[6])
    msgreply = f"Tanda tangan pengesahan sidang *{kategori_bimbingan}* atas nama *{nama_mahasiswa}* oleh *{nama_dosen}* sebagai *{role}* dengan judul {kategori_bimbingan} *{judul}*\nPenerbitan Tanda Tangan: {sah_jam} {tanggal} {bulan} {tahun}"
    return msgreply
def verifyDigitalSign(resultpasscode):
    resultpasscode=resultpasscode.split(';')
    tanggal=resultpasscode[1].split('-')[0]
    bulan=bkd.bulanSwitcher(resultpasscode[1].split('-')[1])
    tahun=resultpasscode[1].split('-')[2]
    sah_jam=resultpasscode[2]
    nama_dosen=kelas.getNamaDosen(resultpasscode[3])
    npm_mahasiswa=resultpasscode[4]
    kode_tipe_bimbingan=switcherTipeBimbingantoKode(resultpasscode[5])
    total_nilai=resultpasscode[6]
    msgreply = f"Ini data yang diminta yaaaa\n\nNama Dosen: {nama_dosen}\nPenerbitan Tanda Tangan: {sah_jam} {tanggal} {bulan} {tahun}"
    for i in getDataBimbinganForReply(npm_mahasiswa, resultpasscode[3]):
        msgreply+=f"\n\nPertemuan: {i[0]}\nTanggal: {i[1].strftime('%d-%m-%Y')}\nSudah Dikerjakan: {i[2].split(';')[0]}\nPekerjaan Selanjutnya: {i[2].split(';')[1]}\nNilai: {i[3]}"
    msgreply+=f'\n\n*Nilai Rata-Rata _{total_nilai}_*'
    return msgreply
示例#4
0
def makePdfAndSendToEmail(npm):
    checkDir()
    foldername = 'suratva'
    doc = SimpleDocTemplate(f'./{foldername}/SURAT-{npm}.pdf',
                            pagesize=A4,
                            rightMargin=30,
                            leftMargin=30,
                            topMargin=30,
                            bottomMargin=18)
    doc.pagesize = portrait(A4)
    elements = []
    for i in range(2):
        namaOrtu = kelas.getParentNamefromStudentID(npm)[i]
        noTelp = kelas.getParentTelpNumberandHandphoneNumber(npm)[0]
        noHandphone = kelas.getParentTelpNumberandHandphoneNumber(npm)[1]
        emailOrtu = kelas.getParentEmailfromStudentID(npm)
        if i == 0:
            pekerjaanOrtu = getPekerjaanOrtuAyah(npm)
        else:
            pekerjaanOrtu = getPekerjaanOrtuIbu(npm)
        alamatLengkapOrtu = getAlamatLengkapOrtu(npm)
        hari = datetime.now().strftime('%d')
        bulan = bkd.bulanSwitcher(datetime.now().strftime('%m'))
        tahun = datetime.now().strftime('%Y')

        logo = Image("logo.png", 7.3 * inch, 1 * inch)
        logo.hAlign = "CENTER"
        elements.append(logo)

        pdfmetrics.registerFont(TTFont('TNR', 'timesdownload.ttf'))
        pdfmetrics.registerFont(TTFont('TNRB', 'timesdownloadbd.ttf'))

        styles = getSampleStyleSheet()
        styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY))
        styles.add(ParagraphStyle(name='Center', alignment=TA_CENTER))
        styles.add(ParagraphStyle(name='Right', alignment=TA_RIGHT))
        styles.add(
            ParagraphStyle(name='surat_pernyataan_style',
                           fontName="TNRB",
                           fontSize=16,
                           alignment=TA_CENTER))
        styles.add(ParagraphStyle(name='Times', fontName="TNR"))

        ptext = '<font>SURAT PERNYATAAN</font>'
        elements.append(
            Paragraph(f'<u>{ptext}</u>', styles["surat_pernyataan_style"]))
        elements.append(Spacer(1, 35))

        ptext = f'<font name="Times" size="10">Yang bertanda tangan di bawah ini :</font>'
        elements.append(Paragraph(ptext, styles["Justify"]))
        elements.append(Spacer(1, 8))

        data = [
            [
                f'<font name="Times" size="10">Nama</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{namaOrtu}</font>'
            ],
            [
                f'<font name="Times" size="10">KTP</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10"> </font>'
            ],
            [
                f'<font name="Times" size="10">No. Telepon</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{noTelp}</font>'
            ],
            [
                f'<font name="Times" size="10">No. HP/WA</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{noHandphone}</font>'
            ],
            [
                f'<font name="Times" size="10">Alamat E-mail</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{emailOrtu}</font>'
            ],
            [
                f'<font name="Times" size="10">Pekerjaan</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{pekerjaanOrtu}</font>'
            ],
            [
                f'<font name="Times" size="10">Alamat</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{alamatLengkapOrtu}</font>'
            ],
            [
                f'<font name="Times" size="10">Lampiran</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">FC KTP dan KK orang tua/Wali (Wajib)</font>'
            ]
        ]
        style = TableStyle([
            ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ('ALIGN', (0, 0), (-1, -1), 'LEFT'),
        ])
        s = getSampleStyleSheet()
        s = s["BodyText"]
        s.wordWrap = 'CJK'
        data1 = [[Paragraph(cell, s) for cell in row] for row in data]
        tab = Table(data1, hAlign='LEFT', colWidths=[3 * cm, .5 * cm, 10 * cm])
        tab.setStyle(style)

        elements.append(tab)
        elements.append(Spacer(1, 0.35 * inch))

        ptext = f'<font name="Times" size="10">Adalah orang tua/wali dari Mahasiswa Politeknik Pos Indonesia :</font>'
        elements.append(Paragraph(ptext, styles["Justify"]))
        elements.append(Spacer(1, 8))

        data = [
            [
                f'<font name="Times" size="10">Nama</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{kelas.getStudentNameOnly(npm)}</font>'
            ],
            [
                f'<font name="Times" size="10">NPM</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{npm}</font>'
            ],
            [
                f'<font name="Times" size="10">No. HP</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{kelas.getStudentPhoneNumberFromNPM(npm)}</font>'
            ],
            [
                f'<font name="Times" size="10">Alamat E-mail</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{kelas.getStudentEmail(npm)}</font>'
            ],
            [
                f'<font name="Times" size="10">Prodi/Kelas</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{kelas.getProdiNameWithStudentID(npm)}/{kelas.getKelasMahasiswabyStudentID(npm)}</font>'
            ],
            [
                f'<font name="Times" size="10">Angkatan</font>',
                '<font name="Times" size="10">:</font>',
                f'<font name="Times" size="10">{kelas.getTahunAngkatanWithStudentID(npm)}</font>'
            ],
        ]
        style = TableStyle([
            ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ('ALIGN', (0, 0), (-1, -1), 'LEFT'),
        ])
        s = getSampleStyleSheet()
        s = s["BodyText"]
        s.wordWrap = 'CJK'
        data1 = [[Paragraph(cell, s) for cell in row] for row in data]
        tab = Table(data1, hAlign='LEFT', colWidths=[3 * cm, .5 * cm, 10 * cm])
        tab.setStyle(style)

        elements.append(tab)
        elements.append(Spacer(1, 0.25 * inch))

        ptext = f'<font name="Times" size="10">Dengan ini telah melakukan pembayaran sebesar Rp. .................................................................... (.............................................................................) serta menyatakan akan melunasi sisa kewajiban pembayaran uang SPP/Variabel/Tugas Akhir/PKL sebesar Rp. (...............................................................................) Paling lambat tanggal ...........................................................................</font>'
        elements.append(Paragraph(ptext, styles["Justify"]))
        elements.append(Spacer(1, 6))

        ptext = f'<font name="Times" size="10">Demikian surat pernyataan ini saya buat dengan sebenarnya untuk dipergunakan sebagaimana mestinya. Apabila saya melalaikan surat pernyataan ini, maka saya bersedia menerima sanksi sesuai dengan ketentuan yang berlaku di Politeknik Pos Indonesia.</font>'
        elements.append(Paragraph(ptext, styles["Justify"]))
        elements.append(Spacer(1, 12.5))

        data = [
            [
                '', '',
                Paragraph(
                    f'<font name="Times">Bandung, {hari} {bulan} {tahun}</font>',
                    styles["Center"])
            ],
            [
                Paragraph(f'<font name="Times">Mengetahui,</font>',
                          styles["Justify"]), '',
                Paragraph(
                    f'<font name="Times">Yang Membuat Pernyataan,</font>',
                    styles["Center"])
            ],
            [
                Paragraph('<font name="Times">Dosen Wali</font>',
                          styles["Justify"]), '',
                Paragraph('<font name="Times">Orang Tua/Wali</font>',
                          styles["Center"])
            ],
            ['', '', ''],
            [
                '', '',
                Paragraph('<font name="Times">Materai</font>',
                          styles["Center"])
            ],
            ['', '', ''],
            [
                Paragraph(
                    f'<font name="Times">{kelas.getNamaDosen(kelas.getPenasehatAkademik(npm))}</font>',
                    styles["Justify"]), '',
                Paragraph(f'<font name="Times">{namaOrtu}</font>',
                          styles["Center"])
            ],
            [
                '',
                Paragraph('<font name="Times">Menyetujui,</font>',
                          styles["Center"]), ''
            ],
            [
                '',
                Paragraph('<font name="Times">Wadir 2 / Ka. BAUK</font>',
                          styles["Center"]), ''
            ],
            ['', '', ''],
            [
                '',
                Paragraph(
                    '<font name="Times">...........................................</font>',
                    styles["Center"]), ''
            ],
        ]
        table = Table(data, [7 * cm, 4.3 * cm, 7 * cm], [
            1 * cm, .5 * cm, .5 * cm, .65 * cm, .4 * cm, .65 * cm, .5 * cm,
            .5 * cm, .5 * cm, 1.7 * cm, .5 * cm
        ])
        table.setStyle(
            TableStyle([
                ('FONT', (0, 0), (-1, -1), 'Times-Roman', 12),
                ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
            ]))
        elements.append(table)
    doc.build(elements)
    bkd.mail(
        kelas.getStudentEmail(npm),
        f'eyyyyooww {config.bot_name} kirim file SURAT PERNYATAAN PENGANGGUHAN SPP/VARIABEL nihhh',
        f'coba dicek dulu ya datanya, jika belum benar, coba cek SIAP-nya ya ubah lagi datanya, terus minta lagi ke {config.bot_name}, untuk surat pernyataannya',
        getFilePath(npm, foldername))