Anda di halaman 1dari 3

/*

* SlipGiroAction.java
* Part of project Vega
*
* Author: Tantowi Mustofa. tantowi@spjbaut.com
*/
package com.tantowi.vega.finance;

import com.tantowi.vega.absen.*;
import com.tantowi.nebula.*;
import com.tantowi.nebula.DbConnection;
import com.tantowi.vega.VegaAction;
import static com.tantowi.vega.VegaAction.format;
import static com.tantowi.vega.finance.GiroEditAction.getBankItems;
import java.io.IOException;
import java.sql.SQLException;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.text.DecimalFormat;
import javax.servlet.ServletOutputStream;

/**
*
* @author dhanang
*/
public class SlipGiroAction extends VegaAction {

int fid = 0;
String fnomor = "";
LocalDate ftanggal = LocalDate.now();
String fkepada = "";
String fbank = "";
LocalDate fjthtempo = LocalDate.now();
double fjumlah = 0;
String fmtu = "";
String fket = "";
String fnorek = "";
String fcabang = "";

@Override
protected void doInit() throws ServletException, SQLException, IOException {
authorize("finance");
}

@Override
protected void doGet() throws ServletException, SQLException, IOException {
try (DbConnection db = this.getDbConnection()) {
String cnomor = (String) request.getAttribute("nomor");
if (cnomor == null || cnomor.isEmpty()) {
throw new HttpNotFoundException("");
}
if (!cnomor.equals("~")) {
db.query("SELECT
A.ID,A.NOMOR,A.TANGGAL,A.KEPADA,A.JTEMPO,A.JUMLAH,A.KETERANGAN,B.BANK,B.CABANG,B.NO
MOR_REK FROM FINANCE_GIRO_REQ AS A\n"
+ "LEFT JOIN FINANCE_BANK AS B ON A.BANK_ID=B.ID where
A.NOMOR=?");
db.setString(1, cnomor);
db.execute();
if (!db.next()) {
throw new HttpNotFoundException("Nomor Not Found :" + cnomor);
}
fid = db.getInt(1);
fnomor = db.getString(2);
ftanggal = db.getLocalDate(3);
fkepada = db.getString(4);
fjthtempo = db.getLocalDate(5);
fjumlah = db.getInt(6);
fket = db.getString(7);
fbank = db.getString(8);
fcabang = db.getString(9);
fnorek = db.getString(10);

}
byte[] pdf = doSlip();
String filename = "Slip Giro -" + ".pdf";
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment; filename=" +
filename);
response.setContentLength(pdf.length);
ServletOutputStream out = response.getOutputStream();
out.write(pdf);
}
}

byte[] doSlip() throws SQLException, IOException {


float ly = 0;
final float col1 = 35;
final float col2 = 175;
final float col3 = 250;
PDFDocument doc = new PDFDocument();
PDFPage pg = null;
pg = doc.newPage(8.5f * 72f, 5.5f * 72f);
ly = pg.getPageHeight() - 50;
pg.setFont(PDType1Font.HELVETICA_BOLD_OBLIQUE,19);
pg.write(col2,ly -25,"SLIP GIRO KELUAR");
pg.setFont(PDType1Font.HELVETICA,9);
pg.write(col1, ly - 50, "Nomor Giro");
pg.write(col2, ly - 50, ":");
pg.writeR(col3, ly - 50, 50, fnomor);
pg.write(col1, ly - 75, "Kepada");
pg.write(col2, ly - 75, ":");
pg.writeR(col3, ly - 75, 50, fkepada);
pg.write(col1, ly - 100, "Tanggal");
pg.write(col2, ly - 100, ":");
pg.writeR(col3, ly - 100, 50, ftanggal.format(DateTimeFormatter.ISO_DATE));
pg.write(col1, ly - 125, "Tgl.Jth Tempo");
pg.write(col2, ly - 125, ":");
pg.writeR(col3, ly - 125, 50, fjthtempo.format(DateTimeFormatter.ISO_DATE));
pg.write(col1, ly - 150, "Bank ");
pg.write(col2, ly - 150, ":");
pg.writeR(col3, ly - 150, 50, fbank);
pg.write(col1, ly - 200, "Cabang");
pg.write(col2, ly - 200, ":");
pg.writeR(col3, ly - 200, 50, fcabang);
pg.write(col1, ly - 225, "No.Rekening");
pg.write(col2, ly - 225, ":");
pg.writeR(col3, ly - 225, 50, fnorek);
pg.write(col1, ly - 250, "Jumlah ");
pg.write(col2, ly - 250, ":");
pg.writeR(col3, ly - 250, 50, format(fjumlah));

pg.write(col1, ly - 275, "Keterangan");


pg.write(col2, ly - 275, ":");
pg.writeR(col3, ly - 275, 50, fket);

pg.close();
byte[] pdf = doc.build();
doc.close();
return pdf;
}

Anda mungkin juga menyukai