Membuat Format Nomor Mengandung Bulan dan Tanggal

// Tambahkan method baru untuk generate nomor rujukan dengan format yang diinginkan
private void generateNoRujukan() {
try {
// Ambil tanggal saat ini
Calendar cal = Calendar.getInstance();
int tahun = cal.get(Calendar.YEAR);
int bulan = cal.get(Calendar.MONTH) + 1; // Calendar.MONTH dimulai dari 0

// Konversi bulan ke angka romawi
String bulanRomawi = convertToRoman(bulan);

// Query untuk mencari nomor urut terakhir dalam bulan dan tahun yang sama
String sql = “SELECT MAX(CAST(SUBSTRING_INDEX(no_rujuk, ‘/’, 1) AS UNSIGNED)) as max_no ” +
“FROM rujuk ” +
“WHERE YEAR(tgl_rujuk) = ? AND MONTH(tgl_rujuk) = ?”;

PreparedStatement ps = koneksi.prepareStatement(sql);
ps.setInt(1, tahun);
ps.setInt(2, bulan);

ResultSet rs = ps.executeQuery();

int nomorUrut = 1; // Default nomor urut
if (rs.next()) {
Integer maxNo = rs.getInt(“max_no”);
if (!rs.wasNull()) {
nomorUrut = maxNo + 1;
}
}

// Format nomor urut dengan leading zero (3 digit)
String nomorUrutFormatted = String.format(“%03d”, nomorUrut);

// Buat nomor rujukan dengan format: 001/SR/VIII/2025
String noRujukan = nomorUrutFormatted + “/SR/” + bulanRomawi + “/” + tahun;

TNoRj.setText(noRujukan);

rs.close();
ps.close();

} catch (Exception e) {
System.out.println(“Error generating nomor rujukan: ” + e);
// Fallback ke nomor default jika ada error
TNoRj.setText(“001/SR/I/” + Calendar.getInstance().get(Calendar.YEAR));
}
}

// Method untuk konversi bulan ke angka romawi
private String convertToRoman(int bulan) {
String[] bulanRomawi = {
“I”, “II”, “III”, “IV”, “V”, “VI”,
“VII”, “VIII”, “IX”, “X”, “XI”, “XII”
};

if (bulan >= 1 && bulan <= 12) {
return bulanRomawi[bulan – 1];
}
return “I”; // Default ke Januari jika ada error
}

// Modifikasi method emptTeks() untuk menggunakan format baru
public void emptTeks() {
TNoRj.setText(“”);
TTmpRujuk.setText(“”);
TNoRw.setText(“”);
TNoRM.setText(“”);
TPasien.setText(“”);
KdDok.setText(“”);
TDokter.setText(“”);
TDiagnosa.setText(“”);
DTPRujuk.setDate(new Date());

// Ganti baris ini:
// Valid.autoNomer(“rujuk”,”R”,9,TNoRj);
// Dengan:
generateNoRujukan();

TNoRj.requestFocus();
ktrujuk.setSelectedIndex(0);
ambulance.setSelectedIndex(0);
ket.setText(“”);
}

// Jika Anda ingin nomor rujukan juga ter-generate saat tanggal rujukan berubah,
// tambahkan modifikasi pada DTPRujukKeyPressed atau buat listener untuk DTPRujuk:
private void DTPRujukKeyPressed(java.awt.event.KeyEvent evt) {
Valid.pindah(evt,TNoRj,CmbJam);

// Regenerate nomor rujukan jika tanggal berubah
if (evt.getKeyCode() == KeyEvent.VK_ENTER || evt.getKeyCode() == KeyEvent.VK_TAB) {
generateNoRujukan();
}
}

// Atau bisa tambahkan ActionListener untuk DTPRujuk di constructor:
// Tambahkan ini di constructor DlgRujuk setelah inisialisasi komponen:
/*
DTPRujuk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
generateNoRujukan();
}
});
*/

Tulisan ini dipublikasikan di Tak Berkategori. Tandai permalink.
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments