EN · DE · RU · FR · ES

#192: AddressCampaignValueExport.kt

plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/AddressCampaignValueExport.kt Tipo: Kotlin · Rol: Registro de Plugin · Fuente: plugins/org.projectforge.plugins.marketing/src/main/kotlin/org/projectforge/plugins/marketing/AddressCampaignValueExport.kt 77 líneas · 40 código · 28 comentarios · 9 en blanco
Utilidad de exportación Excel/CSV para datos de AddressCampaignValue. Configura encabezados de columna (i18n), formateadores de campo (moneda, fecha) y llena filas desde colecciones de datos.

Estructura del Código

Anotaciones: author, Suppress, Service, micromata

Clases: AddressCampaignValueExport

Super-tipo(s): AddressExport

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

Propiedades (3): addressCampaignSupported, addressCampaignValue, sheetTitle

Importaciones: 7 paquetes

Paquete: org.projectforge.plugins.marketing

Código Fuente (resumido)

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 {}

/**
 * Para exportación a excel. export debe ser llamado con dos parámetros, el primero es el mapa AddressCampaignValue y el segundo el
 * título de la campaña de direcciones.
 *
 * @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 { "Exportando campaña '${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]
    )
  }
}

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024-> 2025.
4c04cfd65 CAMBIO-MAYOR! Migración de id's enteros a id's Long (incluyendo fk's etc.)
b1560ca43 Migración en progreso...
b6092df09 Derechos de autor 2023 -> 2024