{servizio.decorrenza !== null
? `${dec_txt} - ${end_txt}`
: "In attesa di attivazione"}
);
};
const Main = () => {
const { servizio, isAdmin } = useServizio();
const { t } = useTranslation();
const utils = api.useUtils();
const { mutate: attivazioneSenzaPagamento } =
api.servizio.attivazioneSenzaPagamento.useMutation({
onError: () => {
toast.error("Errore durante l'attivazione del servizio");
},
onSuccess: async () => {
toast.success("Servizio modificato con successo");
await utils.servizio.invalidate();
},
});
// se interrotto, mostra avvisos
if (servizio.isInterrotto) {
return (
<>
{t.servizio.servizio_interrotto}
{t.servizio.servizio_interrotto_desc}
>
);
}
// mostra onboarding
if (!servizio.onboardOk) {
return (
{t.servizio.non_attivo}
{isAdmin && }
);
}
// se non ok acconto, mostra invito a completare pagamento acconto o ad attivare se acconto già inserito
if (!servizio.isOkAcconto || servizio.decorrenza === null) {
const acconti = servizio.ordini.filter(
(o) => o.type === OrderTypeEnum.Acconto,
);
const activeAcconto = acconti.find((a) => a.isActive);
return (
Parametri di ricerca salvati
{activeAcconto ? (
Attivazione del Servizio
Procedendo all'attivazione del servizio, confermi che i
parametri di ricerca salvati sono corretti e accetti di
essere contattato per eventuali verifiche.
{activeAcconto?.testo_condizioni && (
Riceverai copia delle condizioni anche via email
)}
{t.annulla} {
attivazioneSenzaPagamento({
ordineId: activeAcconto.ordine_id,
});
}}
>
Attiva il servizio
) : (
)}
{isAdmin && }
);
}
//servizio scaduto se decorrenza + 60 giorni è passato e non è ok saldo
if (
new Date() >
add(servizio.decorrenza, {
days: DEFAULT_SERVIZIO_DURATION_DAYS,
}) &&
!servizio.isOkSaldo
) {
//todo capire come fare con saldo quando scade
return (
<>
{t.servizio.scaduto}
{t.servizio.scaduto_desc}
>
);
}
const annuncioConfermato = servizio.annunci.filter(
(a) => a.accettato_conferma_at !== null,
);
// in conferma, mostra solo annunci confermati
if (servizio.isOkSaldo && annuncioConfermato.length > 0) {
return (
<>
{annuncioConfermato.map((data) => {
return (
);
})}
>
);
}
// se superato periodo interruzione, ma non interrotto, non scaduto e non in conferma, mostra avviso
if (
!servizio.acceptedInterr &&
isBefore(
new Date(),
add(servizio.decorrenza, { days: servizio.interruzioneDays }),
) &&
isAfter(
new Date(),
add(servizio.decorrenza, { days: servizio.interruzioneDays - 5 }),
)
) {
return ;
}
// normal case
return (
<>
{annuncioConfermato.length > 0 && (