Пример #1
0
function DftrAkdLapKRSMhsw()
{
    global $_HeaderPrn, $_lf;
    $whr = array();
    if (!empty($_SESSION['prodi'])) {
        $whr[] = "m.ProdiID='{$_SESSION['prodi']}'";
    }
    if (!empty($_SESSION['prid'])) {
        $whr[] = "m.ProgramID='{$_SESSION['prid']}'";
    }
    if (!empty($_SESSION['DariNPM']) && !empty($_SESSION['SampaiNPM'])) {
        $whr[] = " '{$_SESSION['DariNPM']}' <= m.MhswID and m.MhswID <= '{$_SESSION['SampaiNPM']}' ";
    }
    $_whr = implode(" and ", $whr);
    if (!empty($_whr)) {
        $_whr = " and " . $_whr;
    }
    // query
    $s = "select krs.KRSID, krs.MKID, krs.StatusKRSID, mk.MKKode, j.JenisJadwalID, \r\n    LEFT(mk.Nama, 25) as NamaMK, mk.SKS,\r\n    krs.MhswID, LEFT(m.Nama, 15) as NamaMhsw,\r\n    m.ProdiID, m.ProgramID, prd.Nama as PRD, m.TotalSKS\r\n    from krstemp krs\r\n      left outer join mhsw m on krs.MhswID=m.MhswID\r\n      left outer join prodi prd on m.ProdiID=prd.ProdiID\r\n      left outer join mk mk on krs.MKID=mk.MKID\r\n      left outer join jadwal j on krs.JadwalID=j.JadwalID\r\n    where krs.StatusKRSID='A' and krs.TahunID='{$_SESSION['tahun']}' {$_whr}\r\n    order by m.ProdiID, m.MhswID, mk.MKKode";
    $r = _query($s);
    // Buat file
    $nmf = "tmp/{$_SESSION['_Login']}.dwoprn";
    $f = fopen($nmf, 'w');
    // parameter2
    $brs = 55;
    $maxbrs = 55;
    $maxcol = 90;
    $div = str_pad('-', $maxcol, '-') . $_lf;
    $tgl = date('d-m-Y h:i');
    fwrite($f, chr(18) . chr(27) . chr(15));
    fwrite($f, chr(27) . chr(67) . chr(66));
    // --> set 66 baris (kuarto)
    // Buat header
    $RentangNPM = !empty($_SESSION['DariNPM']) && !empty($_SESSION['SampaiNPM']) ? "Dari NPM: {$_SESSION['DariNPM']} s/d {$_SESSION['SampaiNPM']} " : '';
    $_npm = '';
    $prd = '';
    $first = 1;
    $hal = 0;
    $jumlahrec = _num_rows($r);
    $jumhal = ceil($jumlahrec / $maxbrs);
    while ($w = _fetch_array($r)) {
        // Tampilkan Prodi
        $brs++;
        $_prodi = GetaField('prodi', 'ProdiID', $w['ProdiID'], 'Nama');
        $_prid = GetaField('program', 'ProgramID', $w['ProgramID'], 'Nama');
        if ($brs > $maxbrs) {
            if ($first == 0) {
                fwrite($f, $div . chr(12));
            }
            $hd = HeaderKrs($_SESSION['tahun'], $_prid, $_prodi, $div, $maxcol, $hal, $RentangNPM);
            fwrite($f, $hd);
            $brs = 0;
            $first = 0;
            $prodi = $w['ProdiID'];
        } elseif ($prodi != $w['ProdiID']) {
            $prodi = $w['ProdiID'];
            if ($first == 0) {
                fwrite($f, $div);
            }
            fwrite($f, chr(12));
            fwrite($f, HeaderKrs($_SESSION['tahun'], $_prid, $_prodi, $div, $maxcol, $hal, $RentangNPM));
            $brs = 0;
            $_n = 0;
        }
        if ($_npm != $w['MhswID']) {
            $_npm = $w['MhswID'];
            $_mhswid = $w['MhswID'];
            $_mhswnm = $w['NamaMhsw'];
            $_TOTSKS = $w['TotalSKS'];
            $_n++;
            $_strn = str_pad($_n, 3, '0', STR_PAD_LEFT);
            $_SKS = GetaField('krs left outer join jadwal j on j.JadwalID = krs.JadwalID', "krs.TahunID='{$_SESSION['tahun']}' and j.JenisJadwalID = 'K' and krs.MhswID", $w['MhswID'], "sum(krs.SKS)") + 0;
            $_IPS = GetIPSLalu($w['MhswID']);
        } else {
            $_mhswid = '';
            $_mhswnm = '';
            $_str = '';
            $_strn = '   ';
            $_SKS = '  ';
            $_IPS = '    ';
            $_TOTSKS = ' ';
        }
        // Tuliskan
        $jj = $w['JenisJadwalID'] != 'K' ? " ({$w['JenisJadwalID']})" : '';
        $isi = $_strn . ' ';
        $isi .= str_pad($_mhswid, 12, ' ') . ' ';
        $isi .= str_pad($_mhswnm, 15, ' ') . ' ';
        $isi .= str_pad($_TOTSKS, 3, ' ', STR_PAD_LEFT) . ' ';
        $isi .= str_pad($_SKS, 3, ' ', STR_PAD_LEFT) . ' ';
        $isi .= str_pad($_IPS, 4, ' ', STR_PAD_LEFT) . ' ';
        $isi .= str_pad($w['MKKode'], 7) . ' ';
        $isi .= str_pad($w['NamaMK'] . $jj, 30) . ' ';
        $isi .= str_pad($w['SKS'], 2, ' ', STR_PAD_LEFT) . ' ';
        $isi .= $_lf;
        fwrite($f, $isi);
    }
    fwrite($f, $div);
    fwrite($f, str_pad("Dicetak oleh: " . $_SESSION['_Login'] . ", " . date("d-m-Y H:i"), 50, ' '));
    // str_pad("(Akhir Laporan) Hal. : ".$hal.'/'.$jumhal, 29, ' ', STR_PAD_LEFT));
    // Tutup & tampilkan
    fwrite($f, chr(12));
    fclose($f);
    TampilkanFileDWOPRN($nmf, 'akd.lap');
}
Пример #2
0
function Cetak()
{
    global $_lf;
    echo "<body bgcolor=#EEFFFF>";
    // Parameters
    $pos = $_SESSION['BLANKO-POS'];
    $max = $_SESSION['BLANKO-MAX'];
    $nmf = $_SESSION['BLANKO-FILE'];
    $_khsid = $_SESSION['khsid'];
    $khsid = $_khsid[$pos];
    if ($pos < $max) {
        $grs = str_pad("-", 150, '-') . $_lf;
        // Buat file
        $f = fopen($nmf, 'a');
        $brs = 0;
        $maxbrs = 40;
        $hal = 1;
        fwrite($f, chr(27) . chr(77) . chr(15) . chr(27) . chr(108) . chr(8) . $_lf);
        $namathn = NamaTahun($_SESSION['tahun']);
        //$khsid = $_REQUEST['khsid'];
        $khs = GetFields('khs', 'KHSID', $khsid, '*');
        $mhsw = GetFields("mhsw m\r\n      left outer join program prg on m.ProgramID=prg.ProgramID\r\n      left outer join prodi prd on m.ProdiID=prd.ProdiID", 'MhswID', $khs['MhswID'], "m.*, prg.Nama as PRG, prd.Nama as PRD");
        $tahun = GetFields('tahun', "KodeID='{$khs['KodeID']}' and TahunID='{$khs['TahunID']}' and ProdiID", $khs['ProdiID'], '*');
        $PA = GetaField('dosen', 'Login', $mhsw['PenasehatAkademik'], "concat(Nama, ', ', Gelar)");
        if ($khs['Sesi'] > 1) {
            $ipslalu = GetIPSLalu($mhsw);
        } else {
            $ipslalu = 0;
        }
        $kecuali = KecualiMK($khs, $mhsw);
        $sqlkecuali = empty($kecuali) ? '' : "and not (j.MKKode in ({$kecuali}))";
        $maxsks = GetaField("maxsks", "INSTR(ProdiID, '.{$mhsw['ProdiID']}.') > 0 and DariIP <= {$ipslalu} or SampaiIP >", $ipslalu, 'SKS');
        $peringatan = "    Anda masih memiliki utang semester lalu + denda 5% sebesar Rp.{$_bal}. {$_lf} \r\n    Anda tidak akan mendapat KHS dan juga tidak dapat mendaftar KRS {$_lf}\r\n    sebelum utang ini anda lunasi. {$_lf}\r\n    Lakukan pembayaran di Bank sesuai dengan prosedur yang berlaku.";
        $hdr = str_pad("FORM LEMBAR RENCANA STUDI", 150, ' ', STR_PAD_BOTH) . $_lf . $_lf;
        $hdr .= str_pad($namathn, 150, ' ', STR_PAD_BOTH) . $_lf . $_lf;
        $hdr .= str_pad("NPM           : {$mhsw['MhswID']}", 115, ' ') . $_lf;
        $hdr .= str_pad("Mahasiswa     : {$mhsw['Nama']}", 115, ' ') . str_pad("SKS Maksimal  : {$maxsks}", 18, ' ') . $_lf;
        $hdr .= str_pad("Program       : {$mhsw['PRG']}", 115, ' ') . str_pad("IPS           : {$ipslalu}", 18, ' ') . $_lf;
        $hdr .= str_pad("Prodi         : {$mhsw['PRD']}", 115, ' ') . str_pad("Total SKS     : {$mhsw['TotalSKS']}", 18, ' ') . $_lf;
        $hdr .= str_pad("P.A           : {$PA}", 115, ' ') . str_pad("IPK           : {$mhsw['IPK']}", 18, ' ') . $_lf;
        $hdr .= $grs . "NO. KODE         MATA KULIAH                         SKS JEN KEL TAR ISI AMBIL HARI      JAM      PRASYARAT                            PARAF PA  " . $_lf . $grs . $_lf;
        fwrite($f, $hdr);
        //$isi = GetIsiBlanko($khsid, $khs, $mhsw);
        $s = "select j.*, h.Nama as HR, time_format(j.JamMulai, '%H:%i') as JM,\r\n    time_format(j.JamSelesai, '%H:%i') as JS, LEFT(j.Nama,45) as JNama, mod(mk.Sesi,2) as Sesi\r\n      from jadwal j\r\n    left outer join hari h on j.HariID=h.HariID\r\n\t  left outer join mk on mk.MKID = j.MKID\r\n      where j.KodeID='{$khs['KodeID']}'\r\n    and j.TahunID='{$_SESSION['tahun']}'\r\n    and INSTR(j.ProdiID, '.{$mhsw['ProdiID']}.')>0\r\n\t  {$sqlkecuali}\r\n    and j.JadwalSer=0\r\n    order by j.MKKode";
        //echo "<pre>$s</pre>";
        //exit;
        $r = _query($s);
        $jumlahrec = _num_rows($r);
        $jumhal = ceil($jumlahrec / $maxbrs);
        $n = 0;
        //$isi = array();
        //if (empty($bal)) {
        while ($w = _fetch_array($r)) {
            $brs++;
            if ($brs > $maxbrs) {
                $hal++;
                $brs = 1;
                fwrite($f, $grs);
                fwrite($f, str_pad("Hal. : " . $hal . '/' . $jumhal, $maxcol, ' ', STR_PAD_LEFT) . $_lf);
                fwrite($f, chr(12));
                fwrite($f, $hdr);
            }
            if ($w['JumlahKelasSerial'] > 0) {
                $serial = GetSerial($w);
            } else {
                $serial = '';
            }
            if ($kdmk != $w['MKKode']) {
                $kdmk = $w['MKKode'];
                $_kdmk = $kdmk;
                $n++;
            } else {
                $_kdmk = '';
            }
            if ($n_ != $n) {
                $n_ = $n;
                $_n_ = $n_ . ".";
                $titik = "......";
            } else {
                $_n_ = '';
                $titik = '';
            }
            $pra = BuatNilai($w, $mhsw);
            $arrPra = array();
            $apa = array();
            $apa2 = array();
            $arrPra = explode(', ', $pra);
            if (Sizeof($arrPra) > 3) {
                for ($i = 0; $i < 3; $i++) {
                    $apa[] = $arrPra[$i];
                }
                for ($j = 3; $j < sizeof($arrPra); $j++) {
                    $apa2[] = $arrPra[$j];
                }
            } else {
                $__pra = $pra;
            }
            $__pra = empty($apa) ? $__pra : implode(", ", $apa);
            $_pra_ = empty($apa2) ? '' : implode(", ", $apa2);
            if ($mk != $w['JNama']) {
                $mk = $w['JNama'];
                $_mk = $mk;
                $_sks = $w['SKS'];
                $_pra = $__pra;
                $_pra2 = $_pra_;
            } else {
                $_mk = '';
                $_sks = '';
                $_pra = '';
                $_pra2 = '';
            }
            $_pra2_ = empty($_pra2) ? '' : str_pad(" ", 98, ' ') . str_pad($_pra2, 30, ' ') . $_lf;
            $as = $_n_ % 2 == 0 ? 11 : 18;
            $isi = str_pad($_n_, 4, ' ') . str_pad($_kdmk, 7) . str_pad($_mk, 41) . str_pad($_sks, 4, ' ', STR_PAD_Left) . str_pad($w['JenisJadwalID'], 2, ' ', STR_PAD_LEFT) . str_pad($w['NamaKelas'], 4, ' ', STR_PAD_LEFT) . str_pad($w['Kapasitas'], 6, ' ', STR_PAD_LEFT) . ' ' . str_pad($w['JumlahKRSMhsw'], 3, ' ', STR_PAD_LEFT) . ' ' . str_pad(".....", 4, ' ') . ' ' . str_pad($w['HR'], 7, ' ') . str_pad($w['JM'] . "-" . $w['JS'], 11, ' ') . ' ' . str_pad($_pra, 28, ' ') . str_pad($titik, $as, ' ', STR_PAD_LEFT) . $_lf . $_pra2_;
            fwrite($f, $isi);
            fwrite($f, $serial);
            //}
            //} else {
            //fwrite($f, $peringatan . $_lf);
        }
        $tgl = date('d-m-Y H:i');
        $isi_ .= $grs;
        $isi_ .= str_pad("Jumlah", 139, ' ', STR_PAD_LEFT) . str_pad(":", 4, ' ') . str_pad(".......", 5, ' ') . $_lf . $grs;
        $isi_ .= str_pad("Hal. : " . $hal . '/' . $jumhal, $maxcol, ' ', STR_PAD_LEFT) . $_lf;
        $isi_ .= str_pad("Dicetak oleh : ", 4, ' ') . $_SESSION['_Login'] . ', ' . $tgl . $_lf;
        fwrite($f, $isi_);
        fwrite($f, chr(12) . $_lf);
        fclose($f);
        // refresh page
        echo "<p>Proses Lembar Rencana Studi: <font size=+2>{$pos}/{$max}</font><br />\r\n\t{$khsid} &raquo; {$khs['NamaMhsw']}</p>";
        echo "<script type='text/javascript'>window.onload=setTimeout('window.location.reload()', 2);</script>";
    } else {
        echo "<p>Pembuatan file Cetak Lembar Rencana Studi telah selesai.<br />\r\n\t  Untuk memulai mencetak klik: <a href='{$nmf}'><img src='img/printer.gif' border=0></a></p>";
        echo "<p>Untuk melihat preview klik <a href=blanko.preview.php?nmf={$nmf} target=_blank><img src='img/view.png' border=0></a></p>";
    }
    $_SESSION['BLANKO-POS']++;
}