infoalloggi-monorepo/apps/infoalloggi/typst/annuncio.typ
Marco Pedone f52dd96c11 feat: implement Stripe reports management for admin panel
- Add new page for managing Stripe reports with functionality to generate and view reports.
- Create API router for handling Stripe report operations including listing, setting up, and generating reports.
- Introduce caching service for managing cache invalidation related to reports.
- Update Typst templates for formatting financial reports in EUR.
- Enhance utility functions for price formatting and error handling.
- Implement a script to check for unused tRPC procedures in the codebase.
2026-04-03 18:57:39 +02:00

137 lines
5.7 KiB
Typst

#import "@preview/iconic-salmon-fa:1.1.0": fa-location-pin, fa-whatsapp
#import "utils.typ": format-eur
#import "@preview/oxifmt:1.0.0": strfmt
#let data_file = sys.inputs.at("data_path", default: "none")
#let data = if data_file != "none" { json(data_file) } else {
(
codice: "3786B",
nominativo: "INFOALLOGGI (delegato)",
numero: "+393453944827",
indirizzo: "VIA MONTE ASOLONE, 21 int 1 Bassano del Grappa 36061 (VI)",
lat: "45.7705",
lon: "11.74959",
tipo: "Transitorio",
prezzo: 54000,
titolo_it: "BASSANO S. VITO MONOLOCALE A USO TRANSITORIO - 01/05/26",
desc_it: "CODICE: 3786B - LIBERO DA MAGGIO - AFFITTO TRANSITORIO -\n\nConfortevole monolocale situato nella tranquilla zona di San Vito, a Bassano del Grappa. Libero da giugno, questo appartamento è la soluzione ideale per chi cerca un affitto transitorio. Completamente ammobiliato e arredato con gusto, il monolocale si trova al piano terra e offre un soggiorno luminoso con un angolo cottura recente. La camera, dotata di un comodo letto alla francese, è separata da una parete per garantire privacy. Classe energetica F.\n\nIl bagno è completo di doccia e lavatrice nuova, perfetto per le esigenze quotidiane. Inoltre, è disponibile un posto auto scoperto riservato, rendendo la vita ancora più comoda. Le utenze sono attive, e il contratto di affitto prevede una permanenza da 6 a 12 mesi, con un canone mensile di 540,00 € e spese condominiali di 80,00 €/mese.\n\nQuesto monolocale è ideale per single e si trova in un contesto tranquillo, lontano dal caos cittadino. Non è consentito fumare all'interno dei locali e si preferiscono inquilini senza animali. Non perdere l'occasione di vivere in un ambiente accogliente e funzionale! Contattaci per maggiori informazioni e per organizzare una visita.\n\nRICHIESTE DEL PROPRIETARIO:\n\nTipologia contratto di locazione: TRANSITORIO (No stabile)\nRegime fiscale: CEDOLARE SECCA (Senza imposte di registro e bolli)\nData disponibilità: 1 MAGGIO\nPermanenza: DA 6 a 12 MESI\nPreferenza: SINGLE\nContratto di lavoro: A TEMPO DETERMINATO (o altra motivazione prevista per legge)\nCanone mensile: 540,00 €\nSpese condominiali e accessorie: 80,00 €/MESE\nDeposito cauzionale: IN BASE ALLA PERMANENZA\nConsumi utenze: Gas/Riscaldamento - Luce - Acqua (Rimborso a CONSUMO)\nFumatori: NON E' CONSENTITO FUMARE ALL'INTERNO DEI LOCALI\nAnimali: NON E' CONSENTITO\n\nCOSA FARE PER VISITARE L'IMMOBILE\n \nInfoalloggi.it è una piattaforma immobiliare che ti consente di avere un contatto diretto con i proprietari previa attivazione del servizio. La piattaforma e i nostri referenti sono a tua disposizione per assisterti nella tua ricerca. \nLa geo-localizzazione indica la zona dell'immobile, l'indirizzo esatto lo ricevi con l'attivazione del servizio.\n",
disponibile_da: "01/05/2026",
caratteristiche: (
("Tipo Impianto", "Radiatori"),
("Riscaldamento", "Autonomo"),
("Arredi", "Arredato"),
("Piani Edificio", "Uno"),
("Internet", "No"),
),
)
}
#set page(
paper: "a4",
margin: (bottom: 1.5cm, rest: 1cm),
)
#set text(font: "Inter 18pt", size: 10pt, lang: "it", fill: rgb("#1f1f1f"))
#set par(justify: true, leading: 0.65em)
// --- HEADER ---
#grid(
columns: (1fr, 1fr),
align: (left, right),
image("../public/Infoalloggi.png", width: 150pt, height: auto),
[
*Arcenia Srl* \
Via Beata Giovanna, 1 a Bassano del Grappa (VI) \
Tel. +39 0424529869 \
Email: arca\@infoalloggi.it
],
)
#v(0.5em)
#align(center)[#text(
size: 14pt,
weight: "semibold",
fill: rgb("#63493f"),
)[#data.titolo_it]]
#v(0.5em)
#align(center)[#text(
size: 13pt,
)[Riferimento: *#data.codice*]]
#v(.5em)
#box(stroke: (paint: rgb("#25d366"), thickness: 1.5pt), width: 100%, inset: 16pt, radius: 10pt, fill: rgb("#fcfcfc"))[
#grid(
columns: 1fr,
gutter: 14pt,
[#fa-whatsapp(size: 16pt, fill: rgb("#25d366"))#h(1em)#text(
size: 14pt,
weight: "semibold",
fill: rgb("#63493f"),
)[Contatti]#h(.5em)#text(size: 12pt, fill: rgb("#63493f"))[(mandare un messaggio WhatsApp prima di chiamare)]],
[#data.nominativo],
[*Tel. #data.numero*]
)
]
#v(.5em)
#text(weight: "semibold")[Indirizzo]
#line(length: 100%, stroke: 0.5pt + luma(200))
#text(weight: "semibold")[#data.indirizzo]#h(3em)#link(
strfmt(
"https://www.google.com/maps/dir/?api=1&travelmode=driving&layer=traffic&destination={},{}",
data.lat,
data.lon,
),
)[#fa-location-pin(size: 18pt, fill: red)#text(fill: blue)[Apri in Google Maps]]
#v(1em)
// --- KEY DETAILS TABLE ---
#table(
columns: (1fr, 1fr, 1fr),
stroke: none,
//inset: 10pt,
[#box(
inset: 0.8em,
fill: luma(245),
height: auto,
width: 100%,
)[Tipologia \ #text(weight: "semibold", size: 12pt)[Affitto #data.tipo]] ],
[#box(
inset: 0.8em,
fill: luma(245),
height: auto,
width: 100%,
)[Canone Mensile \ #text(weight: "semibold", size: 12pt)[#format-eur(data.prezzo)]]],
[#box(
inset: 0.8em,
fill: luma(245),
height: auto,
width: 100%,
)[Disponibile da \ #text(weight: "semibold", size: 12pt)[#data.disponibile_da]]],
)
#v(.5em)
// --- FEATURES ---
#text(size: 12pt, weight: "semibold")[Dotazioni e Servizi]
#v(0.5em)
#grid(
columns: (1fr, 1fr, 1fr),
gutter: 14pt,
..data.caratteristiche.map(pair => [- *#pair.at(0)*: #pair.at(1)])
)
#v(1.5em)
// --- DESCRIPTION ---
#text(size: 12pt, weight: "semibold")[Descrizione]
#line(length: 100%, stroke: 0.5pt + luma(200))
#text(size: 9pt)[#data.desc_it]
#v(1.5em)
#text(size: 8pt, fill: rgb("#636363"))[
Informazione strettamente riservata ed indirizzata all'Utente Arca-Infoalloggi nel rispetto dell' Art. F. Precisazione dei Tuoi Obblighi e responsabilità delle Condizioni Generali di Contratto (CGC) accettate
]