diff --git a/migration/migration.sql b/migration/migration.sql index 1d5ce6b5c8f9e0626c2c3a31568a9d001c2db7ac..2bc878815cc3f5f1c97dcbcc8f694c03a40a30d0 100644 --- a/migration/migration.sql +++ b/migration/migration.sql @@ -22,6 +22,7 @@ CREATE TABLE detail_pesanan ( id_pesanan INT, nama_produk VARCHAR(255), quantity INT, + harga INT, FOREIGN KEY (id_pesanan) REFERENCES pesanan(id) ); diff --git a/src/main/java/models/detailPesananModel.java b/src/main/java/models/detailPesananModel.java index f763df8d1cc12f099ddf6a7f3bdcb59ccd719aef..b0441fe238c3619d8732ea4bd7f49758c074f657 100644 --- a/src/main/java/models/detailPesananModel.java +++ b/src/main/java/models/detailPesananModel.java @@ -18,12 +18,12 @@ public class detailPesananModel { private int id_pesanan; private String nama_product; private int quantity; + private int harga; - public ArrayList<detailPesananModel> convertFromString(int id_pesanan, String nama_product, String quantity){ - ArrayList<Integer> list_id_pesanan = new ArrayList<>(); + public ArrayList<detailPesananModel> convertFromString(int id_pesanan, String nama_product, String quantity, String harga){ ArrayList<String> list_nama_product = new ArrayList<>(); ArrayList<Integer> list_quantity = new ArrayList<>(); - + ArrayList<Integer> list_harga = new ArrayList<>(); String[] nama_product_items = nama_product.split(","); @@ -36,12 +36,39 @@ public class detailPesananModel { list_quantity.add(Integer.parseInt(item.trim())); } + String[] hargas = harga.split(","); + for(String item: hargas){ + list_harga.add(Integer.parseInt(item.trim())); + } + ArrayList<detailPesananModel> detailPesanan = new ArrayList<>(); for(int i = 0; i < list_quantity.size(); i++){ - detailPesananModel temp = new detailPesananModel(id_pesanan, list_nama_product.get(i), list_quantity.get(i)); + detailPesananModel temp = new detailPesananModel(id_pesanan, list_nama_product.get(i), list_quantity.get(i), list_harga.get(i)); detailPesanan.add(temp); } return detailPesanan; } + + public int getTotalHarga(String harga, String quantity){ + ArrayList<Integer> list_quantity = new ArrayList<>(); + ArrayList<Integer> list_harga = new ArrayList<>(); + + String[] quantity_items = quantity.split(","); + for(String item: quantity_items){ + list_quantity.add(Integer.parseInt(item.trim())); + } + + String[] hargas = harga.split(","); + for(String item: hargas){ + list_harga.add(Integer.parseInt(item.trim())); + } + + int total = 0; + for(int i=0; i<list_harga.size(); i++){ + total += list_harga.get(i)*list_quantity.get(i); + } + + return total; + } } diff --git a/src/main/java/repo/detailPesananRepo.java b/src/main/java/repo/detailPesananRepo.java index c65caf25feb59cc02c5215c129d7d7942aafa0c6..7d22dc54744c94abe85ada89a9039dafc8866828 100644 --- a/src/main/java/repo/detailPesananRepo.java +++ b/src/main/java/repo/detailPesananRepo.java @@ -35,8 +35,9 @@ public class detailPesananRepo extends repository{ int idPesanan = resultSet.getInt("id_pesanan"); String namaProduk = resultSet.getString("nama_produk"); int quantity = resultSet.getInt("quantity"); + int harga = resultSet.getInt("harga"); - detailPesananModel detailPesanan = new detailPesananModel(idPesanan, namaProduk, quantity); + detailPesananModel detailPesanan = new detailPesananModel(idPesanan, namaProduk, quantity, harga); listDetailPesanan.add(detailPesanan); } System.out.println(listDetailPesanan); @@ -55,13 +56,13 @@ public class detailPesananRepo extends repository{ // detailPesanan.add(model); // } - String query = "INSERT INTO detail_pesanan(id_pesanan, nama_produk, quantity) VALUES"; + String query = "INSERT INTO detail_pesanan(id_pesanan, nama_produk, quantity, harga) VALUES"; for(int i = 0; i < detailPesanan.size(); i++){ String temp; if(i == 0){ - temp = "(?, ?, ?)"; + temp = "(?, ?, ?, ?)"; }else{ - temp = ", (?, ?, ?)"; + temp = ", (?, ?, ?, ?)"; } query += temp; @@ -79,6 +80,8 @@ public class detailPesananRepo extends repository{ paramIndex++; addDetailPesanan.setString(paramIndex, Integer.toString(detailPesanan.get(i).getQuantity())); paramIndex++; + addDetailPesanan.setString(paramIndex, Integer.toString(detailPesanan.get(i).getHarga())); + paramIndex++; } addDetailPesanan.execute(); diff --git a/src/main/java/ws/PesananWS.java b/src/main/java/ws/PesananWS.java index 7fa3868c4d997b6652cc5d25d30d83ed432249dd..bc987c1839e0511823b1491f7b0e56c69fa08f3d 100644 --- a/src/main/java/ws/PesananWS.java +++ b/src/main/java/ws/PesananWS.java @@ -14,7 +14,7 @@ import models.pesananModel; public interface PesananWS { @WebMethod public List<pesananModel> getPesananByKurir(int id_kurir); @WebMethod public List<pesananModel> getPesananNoKurir(); - @WebMethod public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, int harga, int biaya_pengiriman, String nama_product, String quantity); + @WebMethod public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, String harga, int biaya_pengiriman, String nama_product, String quantity); @WebMethod public String ambilPesanan(int id_pesanan, int id_kurir); @WebMethod public String updatePesanan(int id_pesanan, int id_kurir, String status, String keterangan); } diff --git a/src/main/java/ws/PesananWSImpl.java b/src/main/java/ws/PesananWSImpl.java index d6a196216375d3ce81574dc7b313030f7ca2d914..d4d677648090f3bd52eae3e970eea81096d8ea1f 100644 --- a/src/main/java/ws/PesananWSImpl.java +++ b/src/main/java/ws/PesananWSImpl.java @@ -51,18 +51,22 @@ public class PesananWSImpl implements PesananWS{ } @WebMethod - public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, int harga, int biaya_pengiriman, String nama_product, String quantity){ + public String addPesanan(int idPemesan, String alamat, String nama_penerima, String keterangan, String harga, int biaya_pengiriman, String nama_product, String quantity){ detailPesananModel dp = new detailPesananModel(); try{ pesananRepo pr = new pesananRepo(); - String result = pr.addPesanan(idPemesan, alamat, nama_penerima, keterangan, harga, biaya_pengiriman); + + int total_harga = dp.getTotalHarga(harga, quantity); + + String result = pr.addPesanan(idPemesan, alamat, nama_penerima, keterangan, total_harga, biaya_pengiriman); System.out.println(result); int lastId = pr.getLastId(); if(lastId == -1){ return "Gagal"; } - ArrayList<detailPesananModel> detailPesanan = dp.convertFromString(lastId, nama_product, quantity); + + ArrayList<detailPesananModel> detailPesanan = dp.convertFromString(lastId, nama_product, quantity, harga); detailPesananRepo dpr = new detailPesananRepo(); result = dpr.addDetailPesanan(detailPesanan); return result;