From 86cb1939788ca52db71cefb802baf7b80abfeb6b Mon Sep 17 00:00:00 2001
From: Christophorus Dharma Winata <13521009@std.stei.itb.ac.id>
Date: Wed, 3 Apr 2024 20:21:34 +0700
Subject: [PATCH] fix: date formatting

---
 .../ui/settings/SettingsViewModel.kt          | 22 +++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt
index e8f9f1c..81646ae 100644
--- a/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt
+++ b/app/src/main/java/pbd/tubes/exe_android/ui/settings/SettingsViewModel.kt
@@ -10,12 +10,17 @@ import androidx.lifecycle.viewModelScope
 import androidx.lifecycle.viewmodel.CreationExtras
 import kotlinx.coroutines.launch
 import org.apache.poi.hssf.usermodel.HSSFWorkbook
+import org.apache.poi.ss.usermodel.CellStyle
+import org.apache.poi.ss.usermodel.DataFormat
+import org.apache.poi.ss.util.DateFormatConverter
 import org.apache.poi.xssf.usermodel.XSSFWorkbook
 import pbd.tubes.exe_android.BondomanApp
 import pbd.tubes.exe_android.data.database.TransactionsRepository
 import pbd.tubes.exe_android.models.Transaction
 import java.io.File
 import java.io.FileOutputStream
+import java.util.Locale
+
 
 class SettingsViewModel(
     private val transactionsRepository: TransactionsRepository
@@ -27,6 +32,10 @@ class SettingsViewModel(
     fun saveXLSX(){
         val workbook = XSSFWorkbook()
         val workSheet = workbook.createSheet("Daftar Transaksi")
+        val excelFormatPattern = DateFormatConverter.convert(Locale.ENGLISH, "dd MMMM yyyy")
+        val dateCellStyle: CellStyle = workbook.createCellStyle()
+        val poiFormat: DataFormat = workbook.createDataFormat()
+        dateCellStyle.dataFormat = poiFormat.getFormat(excelFormatPattern)
 
         var row = workSheet.createRow(0)
         row.createCell(0).setCellValue("Tanggal")
@@ -34,9 +43,12 @@ class SettingsViewModel(
         row.createCell(2).setCellValue("Nominal Transaksi")
         row.createCell(3).setCellValue("Nama Transaksi")
         row.createCell(4).setCellValue("Lokasi")
+
         for (i in transactionList!!.value!!.indices){
             row = workSheet.createRow(i+1)
-            row.createCell(0).setCellValue(transactionList!!.value!![i].date)
+            val dateCell = row.createCell(0)
+            dateCell.setCellValue(transactionList!!.value!![i].date)
+            dateCell.setCellStyle(dateCellStyle)
             row.createCell(1).setCellValue(transactionList!!.value!![i].category.toString())
             row.createCell(2).setCellValue(transactionList!!.value!![i].nominal)
             row.createCell(3).setCellValue(transactionList!!.value!![i].name)
@@ -57,6 +69,10 @@ class SettingsViewModel(
     fun saveXLS(){
         val workbook = HSSFWorkbook()
         val workSheet = workbook.createSheet("Daftar Transaksi")
+        val excelFormatPattern = DateFormatConverter.convert(Locale.ENGLISH, "dd MMMM yyyy")
+        val dateCellStyle: CellStyle = workbook.createCellStyle()
+        val poiFormat: DataFormat = workbook.createDataFormat()
+        dateCellStyle.dataFormat = poiFormat.getFormat(excelFormatPattern)
 
         var row = workSheet.createRow(0)
         row.createCell(0).setCellValue("Tanggal")
@@ -66,7 +82,9 @@ class SettingsViewModel(
         row.createCell(4).setCellValue("Lokasi")
         for (i in transactionList!!.value!!.indices){
             row = workSheet.createRow(i+1)
-            row.createCell(0).setCellValue(transactionList!!.value!![i].date)
+            val dateCell = row.createCell(0)
+            dateCell.setCellValue(transactionList!!.value!![i].date)
+            dateCell.setCellStyle(dateCellStyle)
             row.createCell(1).setCellValue(transactionList!!.value!![i].category.toString())
             row.createCell(2).setCellValue(transactionList!!.value!![i].nominal)
             row.createCell(3).setCellValue(transactionList!!.value!![i].name)
-- 
GitLab