EN · DE · RU · FR · ES

#192: AddressCampaignValueExport.kt

plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/AddressCampaignValueExport.kt Type : Kotlin · Rôle : Enregistrement de plugin · Source : plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/AddressCampaignValueExport.kt 77 lignes · 40 code · 28 commentaires · 9 vides
Utilitaire d'export Excel/CSV pour les données AddressCampaignValue. Configure les en-têtes de colonnes (i18n), les formatteurs de champs (devise, date) et remplit les lignes à partir des collections de données.

Structure du code

Annotations : author, Suppress, Service, micromata

Classes : AddressCampaignValueExport

Supertype(s) : AddressExport

Fonctions (4) : export, registerAdditionalCols, handleAddressCampaign, configureSheet

Propriétés (3) : addressCampaignSupported, addressCampaignValue, sheetTitle

Importations : 7 paquetages

Paquetage : org.projectforge.plugins.marketing

Code source (abrégé)

package org.projectforge.plugins.marketing

import de.micromata.merlin.excel.ExcelRow
import de.micromata.merlin.excel.ExcelSheet
import mu.KotlinLogging
import org.projectforge.business.address.AddressDO
import org.projectforge.business.address.AddressExport
import org.projectforge.business.address.PersonalAddressDO
import org.springframework.stereotype.Service

private val log = KotlinLogging.logger {}

/**
 * Pour l'export Excel. export doit être appelé avec deux paramètres : le premier est la map AddressCampaignValue et le second le
 * titre de la campagne d'adresses.
 *
 * @author Kai Reinhard (k.reinhard@micromata.de)
 */
@Service("addressCampaignValueExport")
open class AddressCampaignValueExport : AddressExport() {
  override val addressCampaignSupported = true

  override fun export(
    origList: List<AddressDO>,
    personalAddressMap: Map<Long, PersonalAddressDO>,
    vararg params: Any
  ): ByteArray? {
    log.info { "Export de la campagne '${params[1]}'..." }
    return super.export(origList, personalAddressMap, *params)
  }

  override fun registerAdditionalCols(sheet: ExcelSheet) {
    register(sheet, "value", "campaignValue")
    register(sheet, "comment", "campaignComment")
  }

  override fun handleAddressCampaign(row: ExcelRow, address: AddressDO, vararg params: Any) {
    @Suppress("UNCHECKED_CAST")
    val addressCampaignValue = (params[0] as Map<Long, AddressCampaignValueDO>).get(address.id)
    row.getCell("campaignValue")?.setCellValue(addressCampaignValue?.value)
    row.getCell("campaignComment")?.setCellValue(addressCampaignValue?.comment)
  }

  override val sheetTitle = "plugins.marketing.addressCampaign"

  override fun configureSheet(sheet: ExcelSheet, vararg params: Any) {
    sheet.setMergedRegion(
      0, 0,
      sheet.getColNumber("campaignValue")!!,
      sheet.getColNumber("campaignComment")!!,
      params[1]
    )
  }
}

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
4c04cfd65 CHANGEMENT-MAJEUR ! Migration des identifiants entiers vers des identifiants Long (y compris les clés étrangères, etc.)
b1560ca43 Migration en cours...
b6092df09 Copyright 2023 -> 2024