TransaksiPinjam.java

TransaksiPinjam.java

package com.ipi.myweb.pages.transaksi;

import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRMapCollectionDataSource;

import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.ApplicationGlobals;
import org.slf4j.Logger;

import com.ipi.myweb.annotation.ProtectedPage;
import com.ipi.myweb.base.BasePage;
import com.ipi.myweb.beans.Anggota;
import com.ipi.myweb.beans.Buku;
import com.ipi.myweb.beans.Konfigurasi;
import com.ipi.myweb.beans.Pinjam;
import com.ipi.myweb.config.ConfigUtil;
import com.ipi.myweb.pages.master.MasterAnggota;
import com.ipi.myweb.pages.master.MasterBuku;
import com.ipi.myweb.util.Generate;

@ProtectedPage
public class TransaksiPinjam extends BasePage {

@Inject
private ApplicationGlobals globals;

@Inject
private Logger logger;

@SuppressWarnings("unused")
@Persist
@Property
private boolean ada;

@Persist
private boolean nis_list;

@Persist
@Property
private String nis;

@Persist
@Property
private String kodebuku;

@Persist
private Anggota anggota;

@Persist
private Buku buku;

@Persist
private Date currentDate;

private Pinjam pinjam;

@Component
private Form form;

@SuppressWarnings("unused")
@Inject
private ComponentResources _resource;

@SuppressWarnings("unused")
private List listPinjam;

@InjectPage
private MasterAnggota masterAnggota;

@InjectPage
private MasterBuku masterBuku;

void pageReset(){
onSelectedFromReset();
}

void onSelectedFromCariNis(){

Konfigurasi konf = getMasterFacade().getKonfigurasiDao().getKonfigurasiByKode(ConfigUtil.MAXPINJAM);
if (konf == null){
form.recordError("Konfigurasi maxpinjam pada tabel konfigurasi belum disetting");
return;
}

Anggota a = getMasterFacade().getAnggotaDao().getAnggotaByNis(nis);
if (a == null){
form.recordError("Anggota tidak ditemukan");
return;
}
this.anggota = a;
int jmlPinjam = getMasterFacade().getPinjamDao().getJumlahTerpinjamByNim(a.getId_anggota());

if(jmlPinjam >= getMaxPinjam()){
form.recordError("Nis ini sudah meminjam jumlah maksimal peminjaman");
return;
}
}

void onSelectedFromCariBuku(){
int jmlPinjam = getMasterFacade().getPinjamDao().getJumlahTerpinjamByNim(getAnggota().getId_anggota());

Konfigurasi konf = getMasterFacade().getKonfigurasiDao().getKonfigurasiByKode(ConfigUtil.MAXPINJAM);
if (konf == null){
form.recordError("Konfigurasi maxpinjam pada tabel konfigurasi belum disetting");
return;
}

if(jmlPinjam >= getMaxPinjam()){
form.recordError("Nis ini sudah meminjam jumlah maksimal peminjaman");
return;
}
Buku b = getMasterFacade().getBukuDao().getBukuByKode(kodebuku);
if (b == null){
form.recordError("Buku tidak ditemukan");
return;
}
int ready = getMasterFacade().getPinjamDao().getReadyStok(b.getId_buku());
if (ready = getMaxPinjam()){
form.recordError("Nis ini sudah meminjam jumlah maksimal peminjaman");
return;
}

if (getAnggota().getId_anggota() == null){
form.recordError("Anggota masih kosong");
return;
}

if (getBuku().getId_buku() == null){
form.recordError("Buku masih kosong");
return;
}

logger.info("| Start save pinjam buku");
getPinjam().setId_pinjam(Generate.getId());
getPinjam().setId_user(getVisit().getMyUserId());
getPinjam().setId_anggota(getAnggota().getId_anggota());
getPinjam().setId_buku(getBuku().getId_buku());
getPinjam().setTgl_pinjam(getCurrentDate());
Calendar cal = Calendar.getInstance();
cal.setTime(getCurrentDate());
cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 7);
getPinjam().setTgl_kembali(cal.getTime());
getPinjam().setStatus(ConfigUtil.OUT_STATUS);
getMasterFacade().getPinjamDao().insert(getPinjam());
logger.info("| End save n sukses insert ke tbl pinjam");
clear();
}

void onSelectedFromReset(){
nis = null;
buku = new Buku();
anggota = new Anggota();
kodebuku = null;
ada = false;
nis_list = false;
setCurrentDate(new Date());
}

void onSelectedFromNota(){
ada = true;
makeReport();
}

void clear(){
buku = new Buku();
anggota = getMasterFacade().getAnggotaDao().getAnggotaByNis(nis);
kodebuku = new String();
}

@SuppressWarnings("unchecked")
public List getListPinjam() {
return getMasterFacade().getPinjamDao().getPinjamByNis(nis);
}

@SuppressWarnings({ "rawtypes", "unchecked" })
void makeReport(){
String outputFile = "tempnota.pdf";
String uploadDir = globals.getServletContext().getRealPath("/WEB-INF/Report/");
String fileLap = uploadDir + "notapinjam.jasper";

List list = getMasterFacade().getPinjamDao().getNotaPinjamByNis(nis);

if (list.size()< 1){
form.recordError("List kosong");
return;
}
JasperPrint jasperPrint = null;
JRMapCollectionDataSource ds = new JRMapCollectionDataSource(list);

String petugas = (getVisit().get_firstName()+" "+getVisit().get_lastName()).toUpperCase();

Map map = new HashMap();
map.put("petugas", petugas );

try {
jasperPrint = JasperFillManager.fillReport(fileLap, map , ds);
} catch (JRException e) {
e.printStackTrace();
}
try {
JasperExportManager.exportReportToPdfFile(jasperPrint, setExportLocation(outputFile));
} catch (JRException e) {
e.printStackTrace();
}
}

public String setExportLocation(String file){
String uploadDir = globals.getServletContext().getRealPath("/Images/");
String fileLap = uploadDir + file;
return fileLap;
}

public void setListPinjam(List listPinjam) {
this.listPinjam = listPinjam;
}

public Date getCurrentDate() {
if (currentDate == null)
currentDate = new Date();
return currentDate;
}

public void setCurrentDate(Date currentDate) {
this.currentDate = currentDate;
}

public Anggota getAnggota() {
if (anggota == null)
anggota = new Anggota();
return anggota;
}

public void setAnggota(Anggota anggota) {
this.anggota = anggota;
}

public Buku getBuku() {
if (buku == null)
buku = new Buku();
return buku;
}

public void setBuku(Buku buku) {
this.buku = buku;
}

public Pinjam getPinjam() {
if (pinjam == null)
pinjam = new Pinjam();
return pinjam;
}

public void setPinjam(Pinjam pinjam) {
this.pinjam = pinjam;
}

Object onActionFromGotoAnggota(String id_anggota){
Anggota angg = getMasterFacade().getAnggotaDao().findByPrimaryKey(id_anggota);
masterAnggota.setAngg(angg);
return masterAnggota;
}

Object onActionFromGotoBuku(String id_buku){
Buku book = getMasterFacade().getBukuDao().findByPrimaryKey(id_buku);
masterBuku.setBook(book);
return masterBuku;
}

private int i = 0;
public String getEvenOdd(){
i++;
return i % 2 == 0 ? "odd" : "even";
}

public boolean isNis_list() {
nis_list = false;
if (nis != null && getListPinjam().size() > 0 ){
nis_list = true;
}
return nis_list;
}

public void setNis_list(boolean nis_list) {
this.nis_list = nis_list;
}

public int getMaxPinjam(){
Konfigurasi k = getMasterFacade().getKonfigurasiDao().getKonfigurasiByKode(ConfigUtil.MAXPINJAM);
int max = Integer.parseInt(k.getValue());
return max;
}

}

Published by

saifiahmada

Begin a big Process with a bit trying

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s