controller.MencatatPembayaran.java Source code

Java tutorial

Introduction

Here is the source code for controller.MencatatPembayaran.java

Source

/*
 * 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 controller;

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 java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import model.Pembayaran;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.io.output.*;

/**
 *
 * @author Michael Donny Kusuma
 */
@WebServlet(name = "MencatatPembayaran", urlPatterns = { "/MencatatPembayaran" })
public class MencatatPembayaran extends HttpServlet {
    String timeStamp = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(Calendar.getInstance().getTime());
    String timeStamp2 = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime());
    private final String UPLOAD_DIRECTORY = "C:\\Apache\\";
    private String fileType = ".csv";

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        Pembayaran p = new Pembayaran();
        DatabaseManager db = new DatabaseManager();

        //Menyimpan file ke dalam sistem
        if (ServletFileUpload.isMultipartContent(request)) {

            try {
                List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
                for (FileItem item : multiparts) {
                    if (!item.isFormField()) {
                        String fileNameSource = new File(item.getName()).getName();//Mengambil nama sumber file
                        String name = "DataPembayaran_" + timeStamp + ".csv"; //Membuat nama file untuk disimpan
                        item.write(new File(UPLOAD_DIRECTORY + File.separator + name));
                        if (fileNameSource.isEmpty()) { //Mengecek apakah ada file yang diupload
                            throw new Exception("Tidak ada file yang diupload");
                        }
                        if (!fileNameSource.contains(".csv")) { //Mengecek apakah file bertipe .csv
                            throw new Exception("Format file salah");
                        }

                    }
                }
            } catch (Exception ex) {
                returnError(request, response, ex);
            }

        } else {
            returnError(request, response, new Exception("Error mengupload file"));
        }

        //Membaca file dari dalam sistem
        String csvFile = UPLOAD_DIRECTORY + "DataPembayaran_" + timeStamp + ".csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = ",";

        try {

            br = new BufferedReader(new FileReader(csvFile));
            int counter = 1;
            while ((line = br.readLine()) != null) {

                // use comma as separator
                String[] dataSet = line.split(cvsSplitBy);

                p.setID(timeStamp2 + "_" + counter);
                p.setWaktuPembayaran(dataSet[0]);
                p.setNoRekening(dataSet[1]);
                p.setJumlahPembayaran(Double.parseDouble(dataSet[2]));
                p.setNis(dataSet[3].substring(0, 5)); // Mengubah berita acara menjadi NIS
                p.setJenisPembayaran(dataSet[3].substring(6)); // Mengubah berita acara menjadi jenis pembayaran

                db.simpanPembayaran(p);
                counter++;

            }
            this.tampil(request, response, "Data Tersimpan");

        } catch (FileNotFoundException e) {
            returnError(request, response, e);
        } catch (IOException e) {
            returnError(request, response, e);
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void returnError(HttpServletRequest request, HttpServletResponse response, Exception e)
            throws ServletException, IOException {
        RequestDispatcher dispatcher;
        request.setAttribute("error", e.getMessage());
        dispatcher = request.getRequestDispatcher("error.jsp");
        dispatcher.forward(request, response);
    }

    public void tampil(HttpServletRequest request, HttpServletResponse response, String information)
            throws ServletException, IOException {
        RequestDispatcher dispatcher;
        request.setAttribute("info", information);
        dispatcher = request.getRequestDispatcher("info.jsp");
        dispatcher.forward(request, response);
    }
}