- 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.
137 lines
5.7 KiB
Typst
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
|
|
]
|