From bc089d1cd7389823d9fa17f1551d2e85a707eafa Mon Sep 17 00:00:00 2001 From: Niko Diamadis Date: Thu, 13 Oct 2022 13:51:37 +0200 Subject: [PATCH] Zeige in PDF abweichende Arbeitszeiten einzelner Techniker an --- .../techniklogger/table/ExportBuilder.kt | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/cyb3rko/techniklogger/table/ExportBuilder.kt b/app/src/main/java/com/cyb3rko/techniklogger/table/ExportBuilder.kt index 81adee5..d576b11 100644 --- a/app/src/main/java/com/cyb3rko/techniklogger/table/ExportBuilder.kt +++ b/app/src/main/java/com/cyb3rko/techniklogger/table/ExportBuilder.kt @@ -13,7 +13,6 @@ import com.cyb3rko.techniklogger.toPrettyString import com.itextpdf.text.* import com.itextpdf.text.pdf.PdfPTable import com.itextpdf.text.pdf.PdfWriter -import com.parse.ParseObject import es.dmoral.toasty.Toasty import java.io.File import java.io.FileNotFoundException @@ -24,16 +23,16 @@ import kotlin.Exception internal class ExportBuilder( private val myContext: Context, - data: MutableList, + missions: MutableList, private val binding: FragmentListingBinding, year: String ) : Document(PageSize.A4.rotate()) { - private val data = data.reversed() + private val missions = missions.reversed() private val destination = "${Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)}/" private val directory = File(destination) private lateinit var file: File private val table = PdfPTable(4) - private val techniker = mutableListOf>() + private val memberNames = mutableListOf>() private val time = SimpleDateFormat("dd.MM.yyyy, HH:mm", Locale.GERMANY).format(Date()) init { @@ -78,16 +77,19 @@ internal class ExportBuilder( } private fun fetchTechniker(index: Int = 0) { - if (index < data.size) { - ParseController.fetchParticipations(data[index].objectId, true) { entries, e -> + if (index < missions.size) { + val mission = missions[index] + ParseController.fetchParticipations(mission.objectId, true) { participations, e -> if (e == null) { - val tempList = mutableListOf() - var aktuellerTechniker: ParseObject - entries.forEach { - aktuellerTechniker = it.getParseObject("von")!! - tempList.add(aktuellerTechniker.getString("name")!!) + val tempMemberNames = mutableListOf() + participations.forEach { + if (it.duration != 0f && mission.duration != it.duration) { + tempMemberNames.add("${it.name} (${it.duration.toPrettyString()} h)") + } else { + tempMemberNames.add(it.name) + } } - techniker.add(tempList.sorted()) + memberNames.add(tempMemberNames) fetchTechniker(index + 1) } } @@ -97,11 +99,11 @@ internal class ExportBuilder( } private fun export() { - data.forEachIndexed { index, mission -> + missions.forEachIndexed { index, mission -> val information = listOf( SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).format(mission.date()), mission.name, - techniker[index].joinToString("\n"), + memberNames[index].joinToString("\n"), mission.duration.toPrettyString()) information.forEachIndexed { _, string -> table.addCell(NormalCell(string))