Files
apollinare-catering-software/docs/packages/README.md
2025-12-17 13:02:12 +01:00

3.5 KiB

Packages Database

Questa cartella contiene la documentazione di tutti i 17 packages del database.

Packages Business

Package Descrizione
MAIL_PKG Gestione invio email automatiche (solleciti, reminder)

Packages Utility

Package Descrizione
UTL_BASE64 Encoding/decoding Base64

Packages JasperReports (XLIB)

Package Descrizione
XLIB_JASPERREPORTS Integrazione con JasperReports server
XLIB_JASPERREPORTS_IMG Gestione immagini nei report
XLIB_HTTP Chiamate HTTP/REST
XLIB_COMPONENT Gestione componenti
XLIB_LOG Sistema di logging

Packages JSON (PLJSON Library)

Libreria esterna per parsing e generazione JSON. In .NET può essere sostituita con System.Text.Json o Newtonsoft.Json.

Package Descrizione
PLJSON_DYN Query dinamiche JSON
PLJSON_EXT Estensioni JSON
PLJSON_HELPER Helper functions
PLJSON_ML Multi-line JSON
PLJSON_OBJECT_CACHE Cache oggetti JSON
PLJSON_PARSER Parser JSON
PLJSON_PRINTER Output JSON formattato
PLJSON_UT Unit test JSON
PLJSON_UTIL_PKG Utility JSON
PLJSON_XML Conversione JSON ↔ XML

Dettaglio Package MAIL_PKG

Procedures Disponibili

Procedura Descrizione
send_custom_mail Invio email generica
send_richiesta_riscontro_preventivo Sollecito per preventivi in stato 100/200
send_richiesta_riscontro_preventivo_job Job: 10 giorni dopo DATA_DOC
send_richiesta_riscontro_post_degustazione Sollecito post-degustazione
send_richiesta_riscontro_post_degustazione_job Job: 15 giorni dopo prima degustazione
send_reminder_seconda_caparra Reminder pagamento seconda caparra
send_reminder_seconda_caparra_job Job: ogni 5 giorni da 65gg prima evento

Configurazione Email

  • From: noreply@apollinarecatering.it
  • BCC: monia@apollinarecatering.it, matrimonio@apollinarecatering.it
  • Usa APEX_MAIL per invio
  • Richiede CMN_MAIL_HTMLUTILS per costruzione body HTML

Migrazione .NET

// Esempio implementazione con SendGrid o SMTP
public interface IMailService
{
    Task SendCustomMailAsync(string recipients, string subject, string body);
    Task SendRichiestaRiscontroPreventivo(int eventoId);
    Task SendReminderSecondaCaparra(int eventoId);
}

// Jobs con Hangfire
[RecurringJob("0 9 * * *")]
public async Task SendReminderSecondaCaparraJob()
{
    var eventi = await GetEventiDaPagareEntro65gg();
    foreach (var evento in eventi.Where(e => ShouldSendReminder(e)))
    {
        await _mailService.SendReminderSecondaCaparra(evento.Id);
    }
}

Note per Migrazione

  1. MAIL_PKG: Sostituire con servizio email .NET (SendGrid, SMTP, Azure Communication Services)

  2. PLJSON_*: Non necessari in .NET, usare System.Text.Json

  3. XLIB_JASPERREPORTS: Valutare alternative:

    • SSRS (SQL Server Reporting Services)
    • DevExpress Reports
    • Telerik Reporting
    • QuestPDF / iTextSharp per PDF
  4. XLIB_HTTP: Sostituire con HttpClient

  5. UTL_BASE64: Usare Convert.ToBase64String / Convert.FromBase64String