UAS_Pemrograman2_NursaFitriah
Nama : Nursa fitriah
NIM : 181011401715
Aplikasi web Penjualan Kerudung
1. Buatlah project baru
2. Buatlah file CSS
#menu{
color:blue;
background-color: whitesmoke;
}
#menu a:link, a:visited{
width: 120px;
text-decoration:
none;
background-color:
#EEEEEE;
color: #333333;
padding: 2px 6px
2px 6px;
border-top: 1px
solid #CCCCCC;
border-right: 1px
solid #333333;
border-bottom:
1px solid #333333;
border-left: 1px
solid #CCCCCC;
display:
inline-block;
}
#menu a:hover, a:active {
background-color: red;
}
nav ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow:
hidden;
background-color: #333;
}
nav li {
float: left;
}
nav li a, nav a:visited, .dropbtn {
display:
inline-block;
color: white;
text-align:
center;
padding: 14px
16px;
text-decoration: none;
}
nav li a:hover, .dropdown:hover .dropbtn {
background-color: red;
}
nav li.dropdown {
display:
inline-block;
}
.dropdown-content {
display: none;
position:
absolute;
background-color: #f9f9f9;
min-width:
160px;
box-shadow: 0px
8px 16px 0px rgba(0,0,0,0.2);
}
.dropdown-content a, .dropdown-content a:visited {
color: black;
padding: 12px
16px;
text-decoration: none;
display: block;
text-align:
left;
}
.dropdown-content a:hover {background-color: #00;}
.dropdown:hover .dropdown-content {
display: block;
}
table#t01 tr:nth-child(even) {
background-color: #eee;
}
table#t01 tr:nth-child(odd) {
background-color:#fff;
}
table#t01 th{
background-color: black;
color: white;
}
3. Buatlah menu
<link href='style.css' rel='stylesheet'
type='text/css' />
<title>Aplikasi Penjualan Kerudung</title>
</head>
<body
bgcolor="#808080">
<%
String
menu="<br><b>Master Data</b><br>"
+ "<a href=DataBarangController>Data
Barang</a><br>"
+ "<a href=DataCustomerController>Data
Customer</a><br>"
+ "<a href=DataUserController>Data
User</a><br><br>"
+ "<b>Transaksi</b><br>"
+ "<a
href=PenjualanController>Penjualan</a><br><br>"
+ "<b>Laporan</b><br>"
+ "<a
href=LaporanPenjualanController>Penjualan</a><br>"
+ "<a href=StokBarangController>Stok
Barang</a><br><br>"
+ "<a
href=LoginController>Login</a><br><br>";
String
topMenu="<nav><ul>"
+"<li><a
href=.>Home</a></li>"
+"<li class='dropdown'><a href=# class='dropbtn'>Master
Data</a>"
+"<div class='dropdown-content'>"
+"<a href=DataBarangController>Data Barang</a>"
+"<a
href=DataCustomerController>Data Customer</a>"
+ "<a href=DataUserController>Data User</a>"
+"</div>"
+"</li>"
+"<li class='dropdown'><a href=# class='dropbtn'>Transaksi</a>"
+"<div class='dropdown-content'>"
+"<a href=PenjualanController>Penjualan</a>"
+"</div>"
+"</li>"
+"<li class='dropdown'><a href=# class='dropbtn'>Laporan</a>"
+"<div class='dropdown-content'>"
+"<a
href=LaporanPenjualanController>Penjualan</a>"
+ "<a href=StokBarangController>Stok Barang</a>"
+"</div>"
+"</li>"
+"<li><a href=LoginController
style='text-align:right'>Login</a></li>"
+"</ul>"
+"</nav>";
String
konten="<br><h1>Selamat Datang</h1>";
String
userName="";
if
(!session.isNew()){
try
{
userName = session.getAttribute("userName").toString();
}
catch (Exception ex){}
if
(!((userName == null) || userName.equals(""))){
konten += "<h2>"+userName+"</h2>";
try {
menu = session.getAttribute("menu").toString();
} catch (Exception ex){}
try {
topMenu = session.getAttribute("topMenu").toString();
} catch (Exception ex){}
}
}
%>
<center>
<table
width="80%" bgcolor="#eeeeee">
<tr>
<td colspan="2" align="center">
<br>
<h2 Style="margin-bottom:0px; margin-top:0px;">
Aplikasi Penjualan Kerudung
</h2>
<h1 Style="margin-bottom:0px; margin-top:0px;">
TOKO KERUDUNG
</h1>
<h4 Style="margin-bottom:0px; margin-top:0px;">
Jl. Raya Dago Kp Asem
</h4>
<br>
</td>
</tr>
<tr
height="400">
<td width="200" align="center"
valign="top" bgcolor="#eeffee">
<br>
<div id='menu'>
<%=menu %>
</div>
</td>
<td align="center" valign="top"
bgcolor="#ffffff">
<%=topMenu%>
<br>
<%=konten %>
</td>
</tr>
<tr>
<td colspan="2" align="center"
bgcolor="#eeeeff">
<small>
Copyright © 2019 TOKO KERUDUNG<br>
Jl. Raya Dago Kp Asem<br>
</small>
</td>
</tr>
</table>
</center>
4. Fitur/fasilitas login
package com.kerudung.controller;
import com.kerudung.model.Enkripsi;
import com.kerudung.model.DataUser;
import com.kerudung.view.MainForm;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name = "LoginController",
urlPatterns = {"/LoginController"})
public class LoginController extends HttpServlet {
/**
* Processes
requests for both HTTP <code>GET</code> and
<code>POST</code>
* methods.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
protected void
processRequest(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
HttpSession
session = request.getSession(true);
String
userName = "";
try {
userName = session.getAttribute("userName").toString();
} catch
(Exception ex) {
}
if
(((userName == null) || userName.equals(""))) {
String
username = request.getParameter("username");
String
password = request.getParameter("password");
String
konten = "<br><form action=LoginController method=post>"
+ "<table>"
+ "<tr>"
+ "<td>Username</td><td><input type=text
name=username></td>"
+ "</tr>"
+ "<tr>"
+ "<td>Password</td><td><input type=password
name=password></td>"
+ "</tr>"
+ "<tr>"
+ "<td colspan=2 align=center><input type=submit
value=Login><td>"
+ "</tr>"
+ "</table>"
+ "</form>";
String
pesan = "";
if
(username == null) {
} else
if (username.equals("")) {
pesan = "<br><br><font style='color:red'>Username
harus diisi</font>";
} else
{
DataUser dataUser = new DataUser();
Enkripsi enkripsi = new Enkripsi();
pesan = "<br><br><font style='color:red'>Username
atau password salah</font>";
if
(dataUser.baca(username)) {
String passwordEncrypted = "";
try {
passwordEncrypted = enkripsi.hashMD5(password);
} catch (Exception ex) {
}
if (passwordEncrypted.equals(dataUser.getPassword())) {
pesan = "";
session.setAttribute("userName",
dataUser.getUsername().equals("") ? "No Name" :
dataUser.getUsername());
String menu =
"<br><b>Master Data</b><br>"
+ "<a
href=DataBarangController>Data Barang</a><br>"
+ "<a
href=DataCustomerController>Data Customer</a><br>"
+ "<a
href=DataUserController>Data User</a><br><br>"
+
"<b>Transaksi</b><br>"
+ "<a
href=PenjualanController>Penjualan</a><br><br>"
+
"<b>Laporan</b><br>"
+ "<a
href=LaporanPenjualanController>Penjualan</a><br>"
+ "<a
href=StokBarangController>Stok Barang</a><br><br>"
+ "<a
href=LogoutController>Logout</a><br><br>";
session.setAttribute("menu", menu);
String topMenu = "<nav><ul>"
+
"<li><a href=.>Home</a></li>"
+ "<li
class='dropdown'><a href=# class='dropbtn'>Master Data</a>"
+ "<div
class='dropdown-content'>"
+ "<a
href=DataBarangController>Data Barang</a>"
+ "<a
href=DataCustomerController>Data Customer</a>"
+ "<a
href=DataUserController>Data User</a>"
+
"</div>"
+
"</li>"
+ "<li
class='dropdown'><a href=# class='dropbtn'>Transaksi</a>"
+ "<div
class='dropdown-content'>"
+ "<a
href=PenjualanController>Penjualan</a>"
+
"</div>"
+
"</li>"
+ "<li
class='dropdown'><a href=# class='dropbtn'>Laporan</a>"
+ "<div
class='dropdown-content'>"
+ "<a
href=LaporanPenjualanController>Penjualan</a>"
+ "<a
href=StokBarangController>Stok Barang</a>"
+
"</div>"
+
"</li>"
+
"<li><a
href=LogoutController>Logout</a></li>"
+
"</ul>"
+
"</nav>";
session.setAttribute("topMenu", topMenu);
session.setMaxInactiveInterval(15 * 60); // 15 x 60 detik = 15 menit
konten = "";
}
}
else if (!dataUser.getPesan().substring(0, 3).equals("username")) {
pesan = "<br><br><font style='color:red'>" +
dataUser.getPesan().replace("\n", "<br>") +
"</font>";
}
}
new MainForm().tampilkan(konten + pesan,
request, response);
} else {
response.sendRedirect(".");
}
}
// <editor-fold
defaultstate="collapsed" desc="HttpServlet methods. Click on the
+ sign on the left to edit the code.">
/**
* Handles the
HTTP <code>GET</code> method.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
@Override
protected void
doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the
HTTP <code>POST</code> method.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
@Override
protected void
doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a
short description of the servlet.
*
* @return a
String containing servlet description
*/
@Override
public String
getServletInfo() {
return
"Short description";
}//
</editor-fold>
}
5. Buatlah data master
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package com.kerudung.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import com.o5kerudung.view.PesanDialog;
import java.io.ByteArrayOutputStream;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import
net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
public class DataBarang {
private String
kodeBarang, namaBarang, satuanBarang;
private int
stokBarang;
private long
hargaBarang;
private String
pesan;
private
Object[][] list;
private final
koneksi conn = new koneksi();
private final
PesanDialog pesanDialog = new PesanDialog();
private byte[]
pdfasbytes;
public byte[]
getPdfasbytes() {
return
pdfasbytes;
}
public String
getKodeBarang() {
return
kodeBarang;
}
public void
setKodeBarang(String kodeBarang) {
this.kodeBarang = kodeBarang;
}
public String
getNamaBarang() {
return
namaBarang;
}
public void
setNamaBarang(String namaBarang) {
this.namaBarang = namaBarang;
}
public String
getSatuanBarang() {
return
satuanBarang;
}
public void
setSatuanBarang(String satuanBarang) {
this.satuanBarang = satuanBarang;
}
public int
getStokBarang() {
return
stokBarang;
}
public void
setStokBarang(int stokBarang) {
this.stokBarang = stokBarang;
}
public long
getHargaBarang() {
return
hargaBarang;
}
public void
setHargaBarang(long hargaBarang) {
this.hargaBarang = hargaBarang;
}
public String
getPesan() {
return
pesan;
}
public
Object[][] getList() {
return
list;
}
public void
setList(Object[][] list) {
this.list =
list;
}
public boolean
baca(String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
Statement sta;
ResultSet rset;
try {
String SQLStatemen = "select * from barang where kode='" +
kodeBarang + "'";
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
this.kodeBarang = rset.getString("kode");
this.namaBarang = rset.getString("nama");
this.hargaBarang = rset.getLong("harga");
this.stokBarang = rset.getInt("stok");
this.satuanBarang = rset.getString("satuan");
}
else {
adaKesalahan = true;
pesan = "Kode barang \"" + kodeBarang + "\"
tidak ditemukan";
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
bacaData(int mulai, int jumlah) {
boolean
adaKesalahan = false;
Connection connection;
list = new
Object[0][0];
if
((connection = conn.getConnection()) != null) {
String
SQLStatemen;
Statement sta;
ResultSet rset;
try {
SQLStatemen = "select kode,nama,harga,stok,satuan from barang
"
+ " limit
"+mulai+", "+jumlah;
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
list = new Object[rset.getRow()][5];
if
(rset.getRow() > 0) {
rset.first();
int i = 0;
do {
list[i] = new Object[]{rset.getString("kode"),
rset.getString("nama"),
rset.getInt("stok"), rset.getString("satuan")};
i++;
} while (rset.next());
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
simpan() {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahSimpan = 0;
boolean
simpan = false;
try {
String SQLStatemen = "select * from barang where kode='" +
kodeBarang + "'";
Statement sta = connection.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
try{
simpan = true;
SQLStatemen = "update barang set nama='" + namaBarang +
"', harga='" + hargaBarang
+ "',
stok='" + stokBarang + "', satuan='" + satuanBarang + "'
where kode='" + kodeBarang + "'";
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}catch(SQLException ex){}
}
else {
simpan = true;
SQLStatemen = "insert into barang(kode, nama, harga, stok, satuan)
values ('"
+ kodeBarang +
"','" + namaBarang + "','" + hargaBarang + "','"
+ stokBarang + "','" + satuanBarang + "')";
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
if
(simpan) {
if (jumlahSimpan < 1) {
adaKesalahan = true;
pesan = "Gagal menyimpan data
barang";
}
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
hapus(String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahHapus;
Statement
sta;
try {
String SQLStatemen = "delete from barang where kode='" +
kodeBarang + "'";
sta
= connection.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if (jumlahHapus
< 1) {
pesan = "Data barang dengan kode " + kodeBarang + " tidak
ditemukan";
adaKesalahan = true;
}
sta.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
cetakLaporanStokBarang() {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
String
SQLStatement;
ResultSet resultSet = null;
try {
Statement statement = connection.createStatement();
SQLStatement = "SELECT\n"
+ "\n"
+ " barang.`nama` AS
barang_nama,\n"
+ " barang.`harga` AS
barang_harga,\n"
+ " barang.`stok` AS
barang_stok,\n"
+ " barang.`satuan` AS barang_satuan,\n"
+ " barang.`kode` AS
barang_kode\n"
+ "FROM\n"
+ " `barang`
barang\n"
+ "ORDER BY\n"
+ "`barang`.`stok` ASC,\n"
+ "`barang`.`kode` ASC";
System.out.println("Query: " + SQLStatement);
resultSet = statement.executeQuery(SQLStatement);
} catch (SQLException ex) {
pesan = "Tidak dapat membaca data\n" + ex;
}
if
(resultSet != null) {
try
{
JasperDesign disain =
JRXmlLoader.load("src/report/stokbarang.jrxml");
JasperReport
stokBarangLaporan = JasperCompileManager.compileReport(disain);
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);
System.out.println("Cetak Laporan");
JasperPrint cetak =
JasperFillManager.fillReport(stokBarangLaporan, new HashMap(),
resultSetDataSource);
JasperViewer.viewReport(cetak, false);
}
catch (JRException ex) {
pesan = "Tidak dapat mencetak laporan\n" + ex;
}
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
cetakLaporanStokBarang(String fileExt, String namaFile) {
boolean
adaKesalahan = false;
Connection
connection;
pdfasbytes
= null;
if
((connection = conn.getConnection()) != null) {
String
SQLStatement = null;
ResultSet resultSet = null;
try {
Statement statement = connection.createStatement();
SQLStatement =
"SELECT\n"
+ "\n"
+ " barang.`nama` AS barang_nama,\n"
+ " barang.`harga` AS
barang_harga,\n"
+ " barang.`stok` AS
barang_stok,\n"
+ " barang.`satuan` AS
barang_satuan,\n"
+ " barang.`kode` AS barang_kode\n"
+ "FROM\n"
+ " `barang`
barang\n"
+ "ORDER BY\n"
+ "`barang`.`stok` ASC,\n"
+ "`barang`.`kode` ASC";
resultSet = statement.executeQuery(SQLStatement);
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membaca data\n" + ex;
}
if
((!adaKesalahan) && (resultSet != null)) {
try
{
JasperDesign disain = JRXmlLoader.load(namaFile);
JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);
JRResultSetDataSource resultSetDataSource
= new JRResultSetDataSource(resultSet);
JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new
HashMap(), resultSetDataSource);
ByteArrayOutputStream byteArrayOutputStream = new
ByteArrayOutputStream();
JRExporter exporter = null;
if (fileExt.equalsIgnoreCase("PDF")) {
exporter = new JRPdfExporter();
} else if (fileExt.equalsIgnoreCase("XLSX")) {
exporter = new JRXlsxExporter();
} else if (fileExt.equalsIgnoreCase("XLS")) {
exporter = new JRXlsExporter();
} else if (fileExt.equalsIgnoreCase("DOCX")) {
exporter = new JRDocxExporter();
} else if (fileExt.equalsIgnoreCase("ODT")) {
exporter = new JROdtExporter();
} else if (fileExt.equalsIgnoreCase("RTF")) {
exporter = new JRRtfExporter();
} else {
adaKesalahan = true;
pesan = "Format file dengan ektensi " + fileExt + " tidak
terdaftar";
}
if (!adaKesalahan && (exporter != null)) {
exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
byteArrayOutputStream);
exporter.exportReport();
pdfasbytes = byteArrayOutputStream.toByteArray();
}
}
catch (JRException ex) {
adaKesalahan = true;
pesan = "Tidak dapat mencetak laporan\n" + ex;
}
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
}
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package com.kerudung.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import com.kerudung.view.PesanDialog;
import java.io.ByteArrayOutputStream;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import
net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
public class DataBarang {
private String
kodeBarang, namaBarang, satuanBarang;
private int
stokBarang;
private long
hargaBarang;
private String
pesan;
private
Object[][] list;
private final
koneksi conn = new koneksi();
private final
PesanDialog pesanDialog = new PesanDialog();
private byte[]
pdfasbytes;
public byte[]
getPdfasbytes() {
return
pdfasbytes;
}
public String
getKodeBarang() {
return
kodeBarang;
}
public void
setKodeBarang(String kodeBarang) {
this.kodeBarang = kodeBarang;
}
public String
getNamaBarang() {
return
namaBarang;
}
public void
setNamaBarang(String namaBarang) {
this.namaBarang = namaBarang;
}
public String
getSatuanBarang() {
return
satuanBarang;
}
public void setSatuanBarang(String
satuanBarang) {
this.satuanBarang = satuanBarang;
}
public int
getStokBarang() {
return
stokBarang;
}
public void
setStokBarang(int stokBarang) {
this.stokBarang = stokBarang;
}
public long
getHargaBarang() {
return
hargaBarang;
}
public void
setHargaBarang(long hargaBarang) {
this.hargaBarang = hargaBarang;
}
public String
getPesan() {
return
pesan;
}
public
Object[][] getList() {
return
list;
}
public void
setList(Object[][] list) {
this.list =
list;
}
public boolean
baca(String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
Statement sta;
ResultSet rset;
try {
String SQLStatemen = "select * from barang where kode='" +
kodeBarang + "'";
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
this.kodeBarang = rset.getString("kode");
this.namaBarang = rset.getString("nama");
this.hargaBarang = rset.getLong("harga");
this.stokBarang = rset.getInt("stok");
this.satuanBarang = rset.getString("satuan");
}
else {
adaKesalahan = true;
pesan = "Kode barang
\"" + kodeBarang + "\" tidak ditemukan";
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
bacaData(int mulai, int jumlah) {
boolean
adaKesalahan = false;
Connection
connection;
list = new
Object[0][0];
if
((connection = conn.getConnection()) != null) {
String
SQLStatemen;
Statement sta;
ResultSet rset;
try {
SQLStatemen = "select kode,nama,harga,stok,satuan from barang
"
+ " limit
"+mulai+", "+jumlah;
sta = connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
list = new Object[rset.getRow()][5];
if
(rset.getRow() > 0) {
rset.first();
int i = 0;
do {
list[i] = new Object[]{rset.getString("kode"),
rset.getString("nama"),
rset.getInt("stok"), rset.getString("satuan")};
i++;
} while (rset.next());
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
simpan() {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahSimpan = 0;
boolean
simpan = false;
try {
String SQLStatemen = "select * from barang where kode='" +
kodeBarang + "'";
Statement sta = connection.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
try{
simpan = true;
SQLStatemen = "update barang set nama='" + namaBarang +
"', harga='" + hargaBarang
+ "',
stok='" + stokBarang + "', satuan='" + satuanBarang + "'
where kode='" + kodeBarang + "'";
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}catch(SQLException ex){}
}
else {
simpan = true;
SQLStatemen = "insert into barang(kode, nama, harga, stok, satuan)
values ('"
+ kodeBarang + "','" +
namaBarang + "','" + hargaBarang + "','" + stokBarang +
"','" + satuanBarang + "')";
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
if (simpan) {
if (jumlahSimpan < 1) {
adaKesalahan = true;
pesan = "Gagal menyimpan data barang";
}
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
hapus(String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahHapus;
Statement sta;
try {
String SQLStatemen = "delete from barang where kode='" +
kodeBarang + "'";
sta
= connection.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if
(jumlahHapus < 1) {
pesan = "Data barang dengan kode " + kodeBarang + " tidak
ditemukan";
adaKesalahan = true;
}
sta.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel barang\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
cetakLaporanStokBarang() {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
String
SQLStatement;
ResultSet resultSet = null;
try {
Statement statement = connection.createStatement();
SQLStatement = "SELECT\n"
+ "\n"
+ " barang.`nama` AS
barang_nama,\n"
+ " barang.`harga` AS barang_harga,\n"
+ " barang.`stok` AS
barang_stok,\n"
+ " barang.`satuan` AS
barang_satuan,\n"
+ " barang.`kode` AS
barang_kode\n"
+ "FROM\n"
+ " `barang`
barang\n"
+ "ORDER BY\n"
+ "`barang`.`stok` ASC,\n"
+ "`barang`.`kode` ASC";
System.out.println("Query: " +
SQLStatement);
resultSet = statement.executeQuery(SQLStatement);
} catch
(SQLException ex) {
pesan = "Tidak dapat membaca data\n" + ex;
}
if
(resultSet != null) {
try
{
JasperDesign disain =
JRXmlLoader.load("src/report/stokbarang.jrxml");
JasperReport stokBarangLaporan =
JasperCompileManager.compileReport(disain);
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);
System.out.println("Cetak Laporan");
JasperPrint cetak = JasperFillManager.fillReport(stokBarangLaporan, new
HashMap(), resultSetDataSource);
JasperViewer.viewReport(cetak,
false);
}
catch (JRException ex) {
pesan = "Tidak dapat mencetak laporan\n" + ex;
}
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
cetakLaporanStokBarang(String fileExt, String namaFile) {
boolean
adaKesalahan = false;
Connection connection;
pdfasbytes
= null;
if
((connection = conn.getConnection()) != null) {
String
SQLStatement = null;
ResultSet resultSet = null;
try {
Statement statement = connection.createStatement();
SQLStatement =
"SELECT\n"
+ "\n"
+ " barang.`nama` AS
barang_nama,\n"
+ " barang.`harga` AS
barang_harga,\n"
+ " barang.`stok` AS barang_stok,\n"
+ " barang.`satuan` AS
barang_satuan,\n"
+ " barang.`kode` AS
barang_kode\n"
+ "FROM\n"
+ " `barang` barang\n"
+ "ORDER BY\n"
+ "`barang`.`stok` ASC,\n"
+ "`barang`.`kode` ASC";
resultSet = statement.executeQuery(SQLStatement);
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membaca data\n" + ex;
}
if
((!adaKesalahan) && (resultSet != null)) {
try
{
JasperDesign disain = JRXmlLoader.load(namaFile);
JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);
JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new
HashMap(), resultSetDataSource);
ByteArrayOutputStream byteArrayOutputStream = new
ByteArrayOutputStream();
JRExporter exporter = null;
if (fileExt.equalsIgnoreCase("PDF")) {
exporter = new JRPdfExporter();
} else if (fileExt.equalsIgnoreCase("XLSX")) {
exporter = new JRXlsxExporter();
} else if (fileExt.equalsIgnoreCase("XLS")) {
exporter = new JRXlsExporter();
} else if (fileExt.equalsIgnoreCase("DOCX")) {
exporter = new JRDocxExporter();
} else if (fileExt.equalsIgnoreCase("ODT")) {
exporter = new JROdtExporter();
} else if (fileExt.equalsIgnoreCase("RTF")) {
exporter = new JRRtfExporter();
} else {
adaKesalahan = true;
pesan = "Format file dengan ektensi " + fileExt + " tidak
terdaftar";
}
if (!adaKesalahan && (exporter != null)) {
exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
byteArrayOutputStream);
exporter.exportReport();
pdfasbytes = byteArrayOutputStream.toByteArray();
}
}
catch (JRException ex) {
adaKesalahan = true;
pesan = "Tidak dapat mencetak laporan\n" + ex;
}
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
}
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package com.o5tplen.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.o5tplen.view.PesanDialog;
public class DataUser {
private String
username, password;
private String
pesan;
private Object[][]
list;
private final
koneksi conn = new koneksi();
private final
PesanDialog pesanDialog = new PesanDialog();
public String
getUsername() {
return
username;
}
public void
setUsername(String username) {
this.username
= username;
}
public String
getPassword() {
return
password;
}
public void
setPassword(String password) {
this.password = password;
}
public String
getPesan() {
return
pesan;
}
public
Object[][] getList() {
return
list;
}
public void
setList(Object[][] list) {
this.list =
list;
}
public boolean
baca(String username) {
boolean
adaKesalahan = false;
Connection
connection;
if ((connection = conn.getConnection()) !=
null) {
Statement sta;
ResultSet rset;
try {
String SQLStatemen = "select * from user where username='" +
username + "'";
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
this.username = rset.getString("username");
this.password = rset.getString("password");
// this.telpCustomer=rset.getString("telp");
}
else {
adaKesalahan = true;
pesan = "Username \"" + username + "\" tidak
ditemukan";
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel user\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
bacaData(int mulai, int jumlah) {
boolean
adaKesalahan = false;
Connection
connection;
list = new
Object[0][0];
if
((connection = conn.getConnection()) != null) {
String
SQLStatemen;
Statement sta;
ResultSet rset;
try {
SQLStatemen = "select username,password from user limit "
+ mulai + "," + jumlah;
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
list = new Object[rset.getRow()][2];
if
(rset.getRow() > 0) {
rset.first();
int i = 0;
do {
list[i] = new Object[]{rset.getString("username"),
rset.getString("password")};
i++;
} while (rset.next());
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel user" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
simpan() {
boolean
adaKesalahan = false;
Connection
connection;
if ((connection
= conn.getConnection()) != null) {
int
jumlahSimpan = 0;
boolean
simpan = false;
try {
String SQLStatemen = "select * from user where username='" +
username + "'";
Statement sta = connection.createStatement();
ResultSet rset = sta.executeQuery(SQLStatemen);
rset.next();
if
(rset.getRow() > 0) {
try {
simpan = true;
SQLStatemen = "update user set password='" + password
+ "' where
username='" + username + "'";
System.out.println(SQLStatemen);
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
} catch (SQLException ex) {
}
}
else {
simpan = true;
SQLStatemen = "insert into user(username, password) values ('"
+ username +
"','" + password + "')";
sta = connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
}
if (simpan) {
if (jumlahSimpan < 1) {
adaKesalahan = true;
pesan = "Gagal menyimpan data user";
}
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel user\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
hapus(String username) {
boolean
adaKesalahan = false;
Connection connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahHapus;
Statement sta;
try {
String SQLStatemen = "delete from user where username='" +
username + "'";
sta
= connection.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if
(jumlahHapus < 1) {
pesan = "Data user dengan username " + username + " tidak
ditemukan";
adaKesalahan = true;
}
sta.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel user\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
}
6. Buatlah from data transaksi
/*
* To change this
template, choose Tools | Templates
* and open the
template in the editor.
*/
package com.kerudung.model;
import java.io.ByteArrayOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.oasis.JROdtExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRDocxExporter;
import
net.sf.jasperreports.engine.export.ooxml.JRXlsxExporter;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
public class Penjualan {
private
DataBarang dataBarang = new DataBarang();
private String
kodePenjualan;
private int
idCustomer;
private Date
tanggal = new Date();
private String
pesan;
private
Object[][] listPenjualan;
private byte[]
pdfasbytes;
private final
SimpleDateFormat bentuk = new SimpleDateFormat("yyyy-MM-dd");
private final
koneksi conn = new koneksi();
private String
tanggalStr = bentuk.format(tanggal);
public String
getKodePenjualan() {
return
kodePenjualan;
}
public void
setKodePenjualan(String kodePenjualan) {
this.kodePenjualan = kodePenjualan;
}
public String
getPesan() {
return
pesan;
}
public void
setPesan(String pesan) {
this.pesan
= pesan;
}
public
Object[][] getListPenjualan() {
return
listPenjualan;
}
public void
setListPenjualan(Object[][] listPenjualan) {
this.listPenjualan = listPenjualan;
}
public byte[]
getPdfasbytes() {
return pdfasbytes;
}
public boolean
simpan() {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahSimpan = 0;
String
kode = listPenjualan[0][4].toString();
int
stok = (int) listPenjualan[0][5],
idCustomer=(int)listPenjualan[0][2];
String
SQLStatemen;
Statement sta;
/*
try {
SQLStatemen = "update penjualan set kodeBarang='" + kode +
"', qty='" + listPenjualan[0][5]
+ "', tanggal='" + tanggalStr + "', kasir='"
+ listPenjualan[0][3] + "' where kodepenjualan='" + kodePenjualan
+ "'";
sta
= connection.createStatement();
jumlahSimpan = sta.executeUpdate(SQLStatemen);
} catch
(SQLException ex) {
}
*/
if
(jumlahSimpan < 1) {
try {
SQLStatemen = "insert into penjualan (`kodepenjualan`, "
+ "`tanggal`,
`idcustomer`, `kasir`, `kodebarang`,"
+ " `qty`)
values ('" + kodePenjualan + "','"
+ tanggalStr +
"','" + idCustomer + "','" + listPenjualan[0][3] +
"','"
+
listPenjualan[0][4] + "','" + listPenjualan[0][5] + "')";
sta = connection.createStatement();
jumlahSimpan +=
sta.executeUpdate(SQLStatemen);
}
catch (SQLException ex) {
}
if
(dataBarang.baca(kode)) {
stok = dataBarang.getStokBarang() - stok;
try {
SQLStatemen = "update
`barang` set `stok`=" + stok
+ " where `kode`='" + kode + "'";
System.out.println("update tabel barang: " + SQLStatemen);
sta = connection.createStatement();
stok = sta.executeUpdate(SQLStatemen);
System.out.println(stok);
} catch (SQLException e) {
}
}
}
if
(jumlahSimpan > 0) {
adaKesalahan = false;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
baca(String kodePenjualan, String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
this.kodePenjualan = kodePenjualan;
listPenjualan = null;
if ((connection = conn.getConnection()) !=
null) {
String
SQLStatemen;
Statement sta;
ResultSet rset;
if
(kodeBarang != null || kodeBarang.length() > 0) {
SQLStatemen = "select * from penjualan where kodepenjualan='"
+ kodePenjualan
+ "' and kodebarang='" + kodeBarang + "'";
} else
{
SQLStatemen = "select * from penjualan where kodepenjualan='"
+ kodePenjualan + "'";
}
try {
sta
= connection.createStatement();
rset = sta.executeQuery(SQLStatemen);
rset.next();
rset.last();
listPenjualan = new Object[rset.getRow()][6];
rset.first();
int
i = 0;
do
{
if (!rset.getString("kodepenjualan").equals("")) {
listPenjualan[i] = new
Object[]{rset.getString("kodepenjualan"),
rset.getDate("tanggal"),
rset.getInt("idcustomer"),
rset.getString("kasir"),
rset.getString("kodebarang"),
rset.getInt("qty")};
}
i++;
}
while (rset.next());
if
(listPenjualan.length > 0) {
adaKesalahan = false;
}
sta.close();
rset.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membaca data penjualan\n" +
ex.getMessage();
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
cetakLaporan(String opsi, String kodePenjualan, String awalStr, String
akhirStr, String fileExt, String namaFile) {
boolean
adaKesalahan = false;
Connection
connection;
pdfasbytes
= null;
if
((connection = conn.getConnection()) != null) {
String
SQLStatement = null;
ResultSet resultSet = null;
try {
Statement statement = connection.createStatement();
SQLStatement = "SELECT"
+ "
penjualan.`kodepenjualan` AS penjualan_kodepenjualan,"
+ " penjualan.`tanggal`
AS penjualan_tanggal,"
+ "
penjualan.`idcustomer` AS penjualan_idcustomer,"
+ " penjualan.`kasir` AS
penjualan_kasir,"
+ "
penjualan.`kodebarang` AS penjualan_kodebarang,"
+ " penjualan.`qty` AS
penjualan_qty,"
+ " customer.`nama` AS
customer_nama,"
+ " barang.`nama` AS
barang_nama,"
+ " barang.`harga` AS
barang_harga,"
+ " barang.`stok` AS
barang_stok,"
+ " barang.`satuan` AS
barang_satuan,"
+ " customer.`alamat` AS
customer_alamat,"
+ " customer.`telp` AS
customer_telp,"
+ " (barang.`harga` * penjualan.`qty`) AS penjualan_jumlah "
+ "FROM"
+ " `penjualan` penjualan
INNER JOIN `customer` customer ON penjualan.`idcustomer` = customer.`id`"
+ " INNER JOIN `barang`
barang ON penjualan.`kodebarang` = barang.`kode`";
if
(opsi.equals("kodepenjualan")) {
SQLStatement = SQLStatement + " where
penjualan.`kodepenjualan`='" + kodePenjualan + "'";
}
else if (opsi.equals("tanggal")) {
SQLStatement = SQLStatement + " where
DATE_FORMAT(penjualan.`tanggal`,'%Y-%m-%d')>='" + awalStr + "' AND
"
+
"DATE_FORMAT(penjualan.`tanggal`,'%Y-%m-%d')<='" + akhirStr +
"'";
}
resultSet = statement.executeQuery(SQLStatement);
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membaca
data\n" + ex;
}
if
((!adaKesalahan) && (resultSet != null)) {
try
{
JasperDesign disain = JRXmlLoader.load(namaFile);
JasperReport nilaiLaporan = JasperCompileManager.compileReport(disain);
JRResultSetDataSource resultSetDataSource = new
JRResultSetDataSource(resultSet);
JasperPrint cetak = JasperFillManager.fillReport(nilaiLaporan, new
HashMap(), resultSetDataSource);
ByteArrayOutputStream byteArrayOutputStream = new
ByteArrayOutputStream();
JRExporter exporter = null;
if (fileExt.equalsIgnoreCase("PDF")) {
exporter = new JRPdfExporter();
} else if (fileExt.equalsIgnoreCase("XLSX")) {
exporter = new JRXlsxExporter();
} else if (fileExt.equalsIgnoreCase("XLS")) {
exporter = new JRXlsExporter();
} else if (fileExt.equalsIgnoreCase("DOCX")) {
exporter = new JRDocxExporter();
} else if (fileExt.equalsIgnoreCase("ODT")) {
exporter = new
JROdtExporter();
} else if (fileExt.equalsIgnoreCase("RTF")) {
exporter = new JRRtfExporter();
} else {
adaKesalahan = true;
pesan = "Format file dengan ektensi " + fileExt + " tidak
terdaftar";
}
if (!adaKesalahan && (exporter != null)) {
exporter.setParameter(JRExporterParameter.JASPER_PRINT, cetak);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
byteArrayOutputStream);
exporter.exportReport();
pdfasbytes = byteArrayOutputStream.toByteArray();
}
} catch
(JRException ex) {
adaKesalahan = true;
pesan = "Tidak dapat mencetak laporan\n" + ex;
}
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" +
conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
public boolean
hapus(String kodePenjualan, String kodeBarang) {
boolean
adaKesalahan = false;
Connection
connection;
if
((connection = conn.getConnection()) != null) {
int
jumlahHapus;
Statement sta;
try {
String SQLStatemen = "delete from penjualan where
kodepenjualan='" + kodePenjualan + "' and kodebarang='" +
kodeBarang + "'";
sta
= connection.createStatement();
jumlahHapus = sta.executeUpdate(SQLStatemen);
if
(jumlahHapus < 1) {
pesan = "Data penjualan untuk kode penjualan " + kodePenjualan
+ " dan kode barang " +
kodeBarang + " tidak ditemukan";
adaKesalahan = true;
}
sta.close();
connection.close();
} catch
(SQLException ex) {
adaKesalahan = true;
pesan = "Tidak dapat membuka tabel penjualan\n" + ex;
}
} else {
adaKesalahan = true;
pesan =
"Tidak dapat melakukan koneksi ke server\n" + conn.getPesanKesalahan();
}
return
!adaKesalahan;
}
}
7. buatlah laporan
/*
* To change this
license header, choose License Headers in Project Properties.
* To change this
template file, choose Tools | Templates
* and open the
template in the editor.
*/
package com.kerudung.controller;
import com.kerudung.model.Penjualan;
import com.kerudung.view.MainForm;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet(name =
"LaporanPenjualanController", urlPatterns =
{"/LaporanPenjualanController"})
public class LaporanPenjualanController extends
HttpServlet {
/**
* Processes
requests for both HTTP <code>GET</code> and
<code>POST</code>
* methods.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
protected void
processRequest(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String[][] formatTypeData = {{"PDF (Portable
Document Format)","pdf","application/pdf"},
{"XLSX (Microsoft
Excel)","xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},
{"XLS (Microsoft Excel
97-2003)","xls","application/vnd.ms-excel"},
{"DOCX (Microsoft
Word)","docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"},
{"ODT (OpenDocument
Text)","odt","application/vnd.oasis.opendocument.text"},
{"RTF (Rich Text
Format)","rtf","text/rtf"}};
Date
tgl=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
HttpSession
session = request.getSession(true);
String
userName = "";
String
tombol = request.getParameter("tombol");
String opsi
= request.getParameter("opsi");
String
kodePenjualan = request.getParameter("kodepenjualan");
String
awalStr = request.getParameter("awal");
String
akhirStr=request.getParameter("akhir");
String
kelas = request.getParameter("kelas");
String
formatType = request.getParameter("formatType");
if
(tombol==null) tombol="";
if
(kodePenjualan==null) kodePenjualan="";
if
(opsi==null) opsi="";
if
(awalStr==null) awalStr="0";
if
(akhirStr==null) akhirStr="0";
if
(formatType==null) kelas="";
String
keterangan = "<br>";
int noType
= 0;
for (int
i=0; i<formatTypeData.length; i++){
if
(formatTypeData[i][0].equals(formatType)){
noType = i;
}
}
try {
userName = session.getAttribute("userName").toString();
} catch
(Exception ex){}
if
(!((userName == null) || userName.equals(""))){
boolean
opsiSelected = false;
if
(tombol.equals("Cetak")){
Penjualan penjualan = new Penjualan();
Date awal=new Date(), akhir=new Date();
if (penjualan.cetakLaporan(opsi,
kodePenjualan, awalStr, akhirStr, formatTypeData[noType][1],
getServletConfig().getServletContext().getRealPath("reports/penjualan.jrxml"))){
byte[] pdfasbytes = penjualan.getPdfasbytes();
try (OutputStream outStream =
response.getOutputStream()) {
response.setHeader("Content-Disposition","inline;
filename=LaporanPenjualan."+formatTypeData[noType][1]);
response.setContentType(formatTypeData[noType][2]);
response.setContentLength(pdfasbytes.length);
outStream.write(pdfasbytes,0,pdfasbytes.length);
outStream.flush();
outStream.close();
}
}
else {
keterangan += penjualan.getPesan();
}
}
String
konten = "<h2>Mencetak Laporan Penjualan</h2>";
konten
+= "<form action='LaporanPenjualanController' method='post'>";
konten
+= "<table>";
konten
+= "<tr>";
if
(opsi.equalsIgnoreCase("kodepenjualan")){
konten += "<td align='right'><input type='radio' checked
name='opsi' value='kodepenjualan'></td>";
opsiSelected = true;
} else
{
konten += "<td align='right'><input type='radio' name='opsi'
value='kodepenjualan'></td>";
}
konten
+= "<td align='left'>Kode Penjualan</td>";
konten
+= "<td align='left'><input type='text'
value='"+kodePenjualan+"' name='kodepenjualan' maxlength='15'
size='15'></td>";
konten
+= "</tr>";
konten
+= "<tr>";
if(opsi.equalsIgnoreCase("tanggal")){
konten+="<td align='right'><input type='radio' checked
name='opsi' value='tanggal'></td>";
opsiSelected=true;
}else{
konten+="<td align='right'><input type='radio' name='opsi'
value='tanggal'></td>";
}
konten+="<td align='left'>Tanggal</td>";
konten+="<td align='left'>"
+ "<input type='date'
name='awal' value='"+sdf.format(tgl)+"'> - "
+ "<input type='date' name='akhir'
value='"+sdf.format(tgl)+"'>"
+ "</td>";
konten
+= "</tr>";
konten
+= "<tr>";
if
(!opsiSelected){
konten += "<td align='right'><input type='radio' checked
name='opsi' value='Semua'></td>";
} else
{
konten += "<td align='right'><input type='radio' name='opsi'
value='Semua'></td>";
}
konten
+= "<td align='left'>Semua</td>";
konten
+= "<td><br></td>";
konten
+= "</tr>";
konten
+= "<tr>";
konten
+= "<td colspan='3'><br></td>";
konten
+= "</tr>";
konten
+= "<tr>";
konten
+= "<td>Format Laporan</td>";
konten
+= "<td colspan=2>";
konten
+= "<select name='formatType'>";
for
(String[] formatLaporan : formatTypeData){
if
(formatLaporan[0].equals(formatType)){
konten += "<option selected
value='"+formatLaporan[0]+"'>"+formatLaporan[0]+"</option>";
}
else {
konten += "<option
value='"+formatLaporan[0]+"'>"+formatLaporan[0]+"</option>";
}
}
konten
+= "</select>";
konten
+= "</td>";
konten
+= "</tr>";
konten
+= "<tr>";
konten
+= "<td
colspan='3'><b>"+keterangan.replaceAll("\n",
"<br>").replaceAll(";",
",")+"</b></td>";
konten
+= "</tr>";
konten
+= "<tr>";
konten
+= "<td colspan='3' align='center'><input type='submit'
name='tombol' value='Cetak' style='width: 100px'></td>";
konten
+= "</tr>";
konten
+= "</table>";
konten
+= "</form>";
new
MainForm().tampilkan(konten, request, response);
} else {
response.sendRedirect(".");
} }
//
<editor-fold defaultstate="collapsed" desc="HttpServlet
methods. Click on the + sign on the left to edit the code.">
/**
* Handles the
HTTP <code>GET</code> method.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
@Override
protected void
doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the
HTTP <code>POST</code> method.
*
* @param
request servlet request
* @param
response servlet response
* @throws
ServletException if a servlet-specific error occurs
* @throws
IOException if an I/O error occurs
*/
@Override
protected void
doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a
short description of the servlet.
*
* @return a
String containing servlet description
*/
@Override
public String
getServletInfo() {
return
"Short description";
}//
</editor-fold>
}
Komentar
Posting Komentar