{"id":1892,"date":"2026-07-06T07:53:49","date_gmt":"2026-07-06T07:53:49","guid":{"rendered":"https:\/\/www.gestioneindustriale.it\/?page_id=1892"},"modified":"2026-09-01T12:53:19","modified_gmt":"2026-09-01T12:53:19","slug":"product-portfolio","status":"publish","type":"page","link":"https:\/\/www.gestioneindustriale.it\/it_it\/product-portfolio\/","title":{"rendered":"Product portfolio"},"content":{"rendered":"\n<div class=\"gi-pdf-viewer\">\n  <div class=\"gi-pdf-filtri\">\n    <button class=\"gi-pdf-filtro attivo\" data-categoria=\"tutti\">Tutti<\/button>\n    <button class=\"gi-pdf-filtro\" data-categoria=\"Cataloghi\">Cataloghi<\/button>\n    <button class=\"gi-pdf-filtro\" data-categoria=\"Schemi elettrici\">Schemi elettrici<\/button>\n    <button class=\"gi-pdf-filtro\" data-categoria=\"Brochure\">Brochure<\/button>\n    <button class=\"gi-pdf-filtro\" data-categoria=\"Altro\">Altro<\/button>\n  <\/div>\n\n  <div class=\"gi-pdf-menu-orizzontale\" id=\"gi-pdf-menu\">\n    <p class=\"gi-pdf-caricamento\">Caricamento elenco&#8230;<\/p>\n  <\/div>\n\n  <div class=\"gi-pdf-azioni\">\n    <button class=\"gi-pdf-azione\" id=\"gi-pdf-scarica\" disabled=\"\">Scarica<\/button>\n    <button class=\"gi-pdf-azione\" id=\"gi-pdf-stampa\" disabled=\"\">Stampa<\/button>\n  <\/div>\n\n  <div class=\"gi-pdf-cornice\">\n    <iframe id=\"gi-pdf-frame\" src=\"\" title=\"Visualizzatore documenti\"><\/iframe>\n    <p class=\"gi-pdf-placeholder\" id=\"gi-pdf-placeholder\">Seleziona un documento dal menu qui sopra.<\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .gi-pdf-viewer{ max-width:1200px; margin:0 auto; padding:20px 0; }\n  .gi-pdf-filtri{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }\n  .gi-pdf-filtro{\n    font-family:inherit !important; font-size:13px !important; padding:8px 14px !important;\n    border:1px solid #ccc !important; background:#ffffff !important; color:#333333 !important;\n    cursor:pointer; border-radius:4px !important; line-height:normal !important;\n  }\n  .gi-pdf-filtro.attivo{ background:#1f6feb !important; color:#ffffff !important; border-color:#1f6feb !important; }\n\n  .gi-pdf-menu-orizzontale{\n    display:flex; gap:10px; overflow-x:auto; padding-bottom:10px; margin-bottom:10px;\n    border-bottom:1px solid #eee;\n  }\n  .gi-pdf-voce{\n    flex:0 0 auto !important; white-space:nowrap !important;\n    padding:10px 16px !important; border:1px solid #ddd !important; border-radius:6px !important;\n    background:#ffffff !important; color:#333333 !important; cursor:pointer; font-size:14px !important;\n    line-height:normal !important;\n  }\n  .gi-pdf-voce:hover{ background:#f2f6fc !important; border-color:#1f6feb !important; }\n  .gi-pdf-voce.selezionata{ background:#1f6feb !important; color:#ffffff !important; border-color:#1f6feb !important; font-weight:600 !important; }\n\n  .gi-pdf-azioni{ display:flex; gap:10px; margin-bottom:14px; }\n  .gi-pdf-azione{\n    font-family:inherit !important; font-size:13px !important; padding:9px 18px !important;\n    border:1px solid #1f6feb !important; background:#ffffff !important; color:#1f6feb !important;\n    cursor:pointer; border-radius:4px !important; line-height:normal !important;\n  }\n  .gi-pdf-azione:hover:not(:disabled){ background:#1f6feb !important; color:#ffffff !important; }\n  .gi-pdf-azione:disabled{\n    border-color:#cccccc !important; color:#999999 !important; cursor:not-allowed; opacity:0.6;\n  }\n\n  .gi-pdf-cornice{\n    position:relative; width:100%;\n    height:80vh; max-height:850px; min-height:420px;\n    border:1px solid #ddd; border-radius:6px;\n  }\n  .gi-pdf-cornice iframe{ width:100%; height:100%; border:0; display:none; }\n  .gi-pdf-placeholder{ display:flex; align-items:center; justify-content:center; height:100%; color:#888; font-size:14px; }\n\n  @media (max-width:700px){\n    .gi-pdf-cornice{ height:65vh; }\n  }\n<\/style>\n\n<script>\n(function(){\n  var elencoCompleto = [];\n  var categoriaAttiva = 'tutti';\n  var urlDocumentoAttivo = '';\n\n  fetch('https:\/\/www.gestioneindustriale.it\/wp-json\/gi\/v1\/pdf-links')\n    .then(function(risposta){ return risposta.json(); })\n    .then(function(dati){\n      elencoCompleto = dati;\n      disegnaMenu();\n    })\n    .catch(function(){\n      document.getElementById('gi-pdf-menu').innerHTML = '<p class=\"gi-pdf-caricamento\">Errore nel caricamento dell\\'elenco.<\/p>';\n    });\n\n  function disegnaMenu(){\n    var contenitore = document.getElementById('gi-pdf-menu');\n    contenitore.innerHTML = '';\n\n    var elencoFiltrato = elencoCompleto.filter(function(voce){\n      if (categoriaAttiva === 'tutti') { return true; }\n      return voce.categoria === categoriaAttiva;\n    });\n\n    if (elencoFiltrato.length === 0) {\n      contenitore.innerHTML = '<p class=\"gi-pdf-caricamento\">Nessun documento in questa categoria.<\/p>';\n      return;\n    }\n\n    elencoFiltrato.forEach(function(voce){\n      var pulsante = document.createElement('button');\n      pulsante.className = 'gi-pdf-voce';\n      pulsante.textContent = voce.titolo ? voce.titolo : voce.nome_file;\n      pulsante.addEventListener('click', function(){\n        document.querySelectorAll('.gi-pdf-voce').forEach(function(el){ el.classList.remove('selezionata'); });\n        pulsante.classList.add('selezionata');\n        mostraDocumento(voce.url);\n      });\n      contenitore.appendChild(pulsante);\n    });\n  }\n\n  function mostraDocumento(url){\n    var iframe = document.getElementById('gi-pdf-frame');\n    var placeholder = document.getElementById('gi-pdf-placeholder');\n\n    urlDocumentoAttivo = url;\n\n    iframe.src = url;\n    iframe.style.display = 'block';\n    placeholder.style.display = 'none';\n\n    document.getElementById('gi-pdf-scarica').disabled = false;\n    document.getElementById('gi-pdf-stampa').disabled = false;\n  }\n\n  function svuotaVisualizzatore(){\n    var iframe = document.getElementById('gi-pdf-frame');\n    var placeholder = document.getElementById('gi-pdf-placeholder');\n\n    urlDocumentoAttivo = '';\n\n    iframe.src = '';\n    iframe.style.display = 'none';\n    placeholder.style.display = 'flex';\n\n    document.getElementById('gi-pdf-scarica').disabled = true;\n    document.getElementById('gi-pdf-stampa').disabled = true;\n  }\n\n  document.getElementById('gi-pdf-scarica').addEventListener('click', function(){\n    if (urlDocumentoAttivo === '') { return; }\n\n    var linkTemporaneo = document.createElement('a');\n    linkTemporaneo.href = urlDocumentoAttivo;\n    linkTemporaneo.download = '';\n    document.body.appendChild(linkTemporaneo);\n    linkTemporaneo.click();\n    document.body.removeChild(linkTemporaneo);\n  });\n\n  document.getElementById('gi-pdf-stampa').addEventListener('click', function(){\n    if (urlDocumentoAttivo === '') { return; }\n\n    var iframe = document.getElementById('gi-pdf-frame');\n    iframe.contentWindow.focus();\n    iframe.contentWindow.print();\n  });\n\n  document.querySelectorAll('.gi-pdf-filtro').forEach(function(pulsanteFiltro){\n    pulsanteFiltro.addEventListener('click', function(){\n      document.querySelectorAll('.gi-pdf-filtro').forEach(function(el){ el.classList.remove('attivo'); });\n      pulsanteFiltro.classList.add('attivo');\n      categoriaAttiva = pulsanteFiltro.getAttribute('data-categoria');\n      svuotaVisualizzatore();\n      disegnaMenu();\n    });\n  });\n})();\n<\/script>\n\n\n<p>Devi effettuare il login per accedere a questa sezione. <a href=\"https:\/\/www.gestioneindustriale.it\/wp-login.php?redirect_to=https%3A%2F%2Fwww.gestioneindustriale.it%2Fit_it%2Fproduct-portfolio%2F\">Accedi qui<\/a><\/p>\n\n\n\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Pipeline \u2014 Dal PDF alla dashboard, in un unico flusso<\/title>\n<meta name=\"description\" content=\"Pipeline: acquisizione automatica fatture elettroniche, gestione scadenziario e cashflow, app Android companion. Prototipo in fase beta.\">\n<meta property=\"og:title\" content=\"Pipeline \u2014 Dal PDF alla dashboard, in un unico flusso\">\n<meta property=\"og:description\" content=\"Acquisizione fatture elettroniche multi-provider, scadenziario intelligente, app Android per il controllo del cashflow ovunque tu sia.\">\n<meta property=\"og:type\" content=\"website\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=IBM+Plex+Mono:wght@400;500;600&amp;family=IBM+Plex+Sans:wght@400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<style>\n  :root {\n    --ink: #101c2c;\n    --ink-soft: #1c3050;\n    --paper: #eef0ee;\n    --paper-raised: #ffffff;\n    --steel: #55606b;\n    --steel-light: #8993a0;\n    --copper: #b5651d;\n    --copper-light: #d68a44;\n    --forest: #3e7d4c;\n    --line: #d6d9d2;\n    --line-dark: #2c3d57;\n    --mono: 'IBM Plex Mono', monospace;\n    --sans: 'IBM Plex Sans', sans-serif;\n  }\n\n  * { box-sizing: border-box; }\n\n  html { scroll-behavior: smooth; }\n\n  body {\n    margin: 0;\n    font-family: var(--sans);\n    color: var(--ink);\n    background: var(--paper);\n    line-height: 1.6;\n  }\n\n  a { color: inherit; }\n\n  .wrap {\n    max-width: 1040px;\n    margin: 0 auto;\n    padding: 0 24px;\n  }\n\n  \/* ===================== HERO ===================== *\/\n\n  .hero {\n    background: var(--ink);\n    color: var(--paper);\n    padding: 96px 0 64px;\n    position: relative;\n    overflow: hidden;\n  }\n\n  .eyebrow {\n    font-family: var(--mono);\n    font-size: 13px;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: var(--copper-light);\n    margin: 0 0 20px;\n  }\n\n  .hero h1 {\n    font-family: var(--mono);\n    font-weight: 600;\n    font-size: clamp(48px, 9vw, 96px);\n    letter-spacing: -0.02em;\n    margin: 0 0 20px;\n    line-height: 0.95;\n  }\n\n  .hero p.lede {\n    font-size: clamp(17px, 2.2vw, 21px);\n    color: #c9d2de;\n    max-width: 640px;\n    margin: 0 0 56px;\n  }\n\n  \/* --- diagramma pipeline animato --- *\/\n\n  .pipe-diagram {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    position: relative;\n    padding-top: 8px;\n  }\n\n  .pipe-track {\n    position: absolute;\n    left: 22px;\n    right: 22px;\n    top: 27px;\n    height: 4px;\n    background: var(--line-dark);\n    border-radius: 4px;\n    overflow: hidden;\n  }\n\n  .pipe-pulse {\n    position: absolute;\n    top: 0;\n    left: -20%;\n    width: 20%;\n    height: 100%;\n    background: var(--copper);\n    animation: flow 4.5s linear infinite;\n  }\n\n  @keyframes flow {\n    0%   { left: -20%; }\n    100% { left: 100%; }\n  }\n\n  .pipe-stage {\n    position: relative;\n    z-index: 1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 12px;\n    flex: 1;\n    text-align: center;\n  }\n\n  .pipe-node {\n    width: 46px;\n    height: 46px;\n    border-radius: 50%;\n    background: var(--ink-soft);\n    border: 2px solid var(--steel-light);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-family: var(--mono);\n    font-size: 13px;\n    font-weight: 600;\n    color: var(--paper);\n  }\n\n  .pipe-stage span {\n    font-size: 12px;\n    color: #a6b0bd;\n    max-width: 90px;\n  }\n\n  @media (prefers-reduced-motion: reduce) {\n    .pipe-pulse { animation: none; left: 40%; }\n  }\n\n  @media (max-width: 680px) {\n    .pipe-diagram { flex-direction: column; align-items: flex-start; gap: 28px; }\n    .pipe-track { left: 22px; top: 0; bottom: 0; right: auto; width: 4px; height: auto; }\n    .pipe-pulse { left: 0; top: -20%; width: 100%; height: 20%; animation: flowV 4.5s linear infinite; }\n    @keyframes flowV { 0% { top: -20%; } 100% { top: 100%; } }\n    .pipe-stage { flex-direction: row; text-align: left; padding-left: 4px; }\n  }\n\n  \/* ===================== SEZIONI GENERICHE ===================== *\/\n\n  section { padding: 72px 0; }\n\n  h2 {\n    font-family: var(--mono);\n    font-weight: 600;\n    font-size: clamp(24px, 3.4vw, 34px);\n    letter-spacing: -0.01em;\n    margin: 0 0 12px;\n  }\n\n  .section-lede {\n    color: var(--steel);\n    max-width: 620px;\n    margin: 0 0 48px;\n    font-size: 16px;\n  }\n\n  \/* ===================== COME FUNZIONA ===================== *\/\n\n  .steps { list-style: none; margin: 0; padding: 0; }\n\n  .step {\n    display: grid;\n    grid-template-columns: 64px 1fr;\n    gap: 20px;\n    padding: 28px 0;\n    border-top: 1px solid var(--line);\n  }\n\n  .step:last-child { border-bottom: 1px solid var(--line); }\n\n  .step-num {\n    font-family: var(--mono);\n    font-size: 13px;\n    color: var(--copper);\n  }\n\n  .step h3 {\n    margin: 0 0 6px;\n    font-size: 18px;\n    font-weight: 600;\n  }\n\n  .step p { margin: 0; color: var(--steel); font-size: 15px; }\n\n  \/* ===================== DEMO INTERATTIVA ===================== *\/\n\n  .demo { background: var(--paper-raised); }\n\n  .demo-badge {\n    display: inline-block;\n    font-family: var(--mono);\n    font-size: 11px;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    background: #f4e9dd;\n    color: #8a4a12;\n    border: 1px solid #e3c8a5;\n    border-radius: 4px;\n    padding: 4px 9px;\n    margin-bottom: 20px;\n  }\n\n  .phone {\n    width: 320px;\n    margin: 0 auto;\n    background: var(--paper);\n    border: 1px solid var(--line);\n    border-radius: 22px;\n    padding: 20px 18px;\n  }\n\n  .phone-title {\n    font-family: var(--mono);\n    font-size: 12px;\n    text-align: center;\n    color: var(--steel);\n    margin: 0 0 16px;\n  }\n\n  .toggle {\n    display: flex;\n    border: 1px solid var(--line-dark);\n    border-radius: 8px;\n    overflow: hidden;\n    margin-bottom: 16px;\n  }\n\n  .toggle button {\n    flex: 1;\n    border: none;\n    background: transparent;\n    font-family: var(--sans);\n    font-size: 13px;\n    font-weight: 500;\n    padding: 9px 4px;\n    cursor: pointer;\n    color: var(--steel);\n  }\n\n  .toggle button + button { border-left: 1px solid var(--line); }\n\n  .toggle button[aria-pressed=\"true\"] {\n    background: var(--ink);\n    color: var(--paper);\n  }\n\n  .toggle button:focus-visible,\n  .month-grid button:focus-visible {\n    outline: 2px solid var(--copper);\n    outline-offset: 2px;\n  }\n\n  .ring-wrap { display: flex; justify-content: center; margin: 14px 0; }\n\n  .ring {\n    width: 132px;\n    height: 132px;\n    border-radius: 50%;\n    background: conic-gradient(var(--forest) calc(var(--pct) * 1%), var(--line) 0);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: background 0.5s ease;\n  }\n\n  .ring-inner {\n    width: 104px;\n    height: 104px;\n    border-radius: 50%;\n    background: var(--paper);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-family: var(--mono);\n    font-size: 24px;\n    font-weight: 600;\n  }\n\n  .ring-caption {\n    text-align: center;\n    font-size: 13px;\n    color: var(--steel);\n    margin: 0 0 18px;\n    min-height: 34px;\n  }\n\n  .month-grid {\n    display: grid;\n    grid-template-columns: repeat(4, 1fr);\n    gap: 6px;\n  }\n\n  .month-grid button {\n    font-family: var(--sans);\n    font-size: 11px;\n    padding: 7px 0;\n    border-radius: 6px;\n    border: 1px solid var(--line-dark);\n    background: transparent;\n    color: var(--ink);\n    cursor: pointer;\n  }\n\n  .month-grid button[disabled] {\n    border-color: var(--line);\n    color: var(--steel-light);\n    cursor: not-allowed;\n  }\n\n  .month-grid button[aria-pressed=\"true\"] {\n    background: var(--forest);\n    border-color: var(--forest);\n    color: #fff;\n  }\n\n  \/* ===================== CAPACITA ===================== *\/\n\n  .capacita-grid {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 1px;\n    background: var(--line);\n    border: 1px solid var(--line);\n  }\n\n  .capacita-card {\n    background: var(--paper);\n    padding: 28px;\n  }\n\n  .capacita-card h3 {\n    font-size: 16px;\n    margin: 0 0 8px;\n    font-weight: 600;\n  }\n\n  .capacita-card p {\n    margin: 0;\n    font-size: 14px;\n    color: var(--steel);\n  }\n\n  @media (max-width: 640px) {\n    .capacita-grid { grid-template-columns: 1fr; }\n  }\n\n  \/* ===================== STATO ===================== *\/\n\n  .stato {\n    background: var(--ink);\n    color: var(--paper);\n  }\n\n  .stato h2 { color: var(--paper); }\n\n  .stato-box {\n    border: 1px solid var(--line-dark);\n    border-left: 3px solid var(--copper);\n    padding: 24px 28px;\n    background: var(--ink-soft);\n  }\n\n  .stato-box p { margin: 0 0 12px; color: #c9d2de; font-size: 15px; }\n  .stato-box p:last-child { margin-bottom: 0; }\n\n  .stato-box strong { color: var(--paper); }\n\n  \/* ===================== FOOTER \/ CONTATTI ===================== *\/\n\n  footer {\n    padding: 64px 0 56px;\n    text-align: center;\n  }\n\n  footer h2 { margin-bottom: 8px; }\n\n  footer p.sub { color: var(--steel); margin: 0 0 28px; }\n\n  .cta {\n    display: inline-block;\n    font-family: var(--mono);\n    font-size: 14px;\n    font-weight: 500;\n    background: var(--ink);\n    color: var(--paper);\n    padding: 14px 28px;\n    border-radius: 6px;\n    text-decoration: none;\n  }\n\n  .cta:hover { background: var(--ink-soft); }\n\n  .fill-me {\n    font-family: var(--mono);\n    font-size: 12px;\n    color: var(--copper);\n    margin-top: 14px;\n  }\n<\/style>\n\n\n\n<header class=\"hero\">\n  <div class=\"wrap\">\n    <p class=\"eyebrow\">Gestionale VB6 + app companion Android<\/p>\n    <h1>Pipeline<\/h1>\n    <p class=\"lede\">Dal PDF della fattura elettronica alla dashboard sullo smartphone dell&#8217;imprenditore: un unico flusso, senza inserimenti manuali.<\/p>\n\n    <div class=\"pipe-diagram\">\n      <div class=\"pipe-track\"><div class=\"pipe-pulse\"><\/div><\/div>\n      <div class=\"pipe-stage\"><div class=\"pipe-node\">PDF<\/div><span>Fattura elettronica<\/span><\/div>\n      <div class=\"pipe-stage\"><div class=\"pipe-node\">\u2192<\/div><span>Riconoscimento schema<\/span><\/div>\n      <div class=\"pipe-stage\"><div class=\"pipe-node\">DB<\/div><span>Tabelle SQLite<\/span><\/div>\n      <div class=\"pipe-stage\"><div class=\"pipe-node\">\u2191<\/div><span>Sincronizzazione<\/span><\/div>\n      <div class=\"pipe-stage\"><div class=\"pipe-node\">\ud83d\udcf1<\/div><span>App Android<\/span><\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section class=\"come-funziona\">\n  <div class=\"wrap\">\n    <h2>Come funziona<\/h2>\n    <p class=\"section-lede\">Cinque passaggi reali, nell&#8217;ordine in cui accadono davvero \u2014 non uno schema di marketing.<\/p>\n\n    <ol class=\"steps\">\n      <li class=\"step\">\n        <span class=\"step-num\">01<\/span>\n        <div><h3>Il PDF arriva<\/h3><p>Fattura elettronica scaricata da un qualsiasi portale di conservazione \u2014 Aruba, Buffetti, TeamSystem e altri, ciascuno con un layout diverso dello stesso documento.<\/p><\/div>\n      <\/li>\n      <li class=\"step\">\n        <span class=\"step-num\">02<\/span>\n        <div><h3>Lo schema viene riconosciuto<\/h3><p>Un motore di analisi identifica automaticamente il layout del documento e verifica, campo per campo, se i dati estratti sono completi e attendibili prima di procedere.<\/p><\/div>\n      <\/li>\n      <li class=\"step\">\n        <span class=\"step-num\">03<\/span>\n        <div><h3>I dati entrano nel database<\/h3><p>Numero, importi, scadenze e anagrafica vengono normalizzati e salvati in un database SQLite locale, organizzato per azienda, anno e tipologia documento.<\/p><\/div>\n      <\/li>\n      <li class=\"step\">\n        <span class=\"step-num\">04<\/span>\n        <div><h3>Il riepilogo viaggia verso il cloud<\/h3><p>Ad ogni avvio del gestionale, un riepilogo aggiornato \u2014 scadenziario, estratto conto, proiezione di cassa \u2014 viene inviato in modo sicuro e separato per ciascuna azienda gestita.<\/p><\/div>\n      <\/li>\n      <li class=\"step\">\n        <span class=\"step-num\">05<\/span>\n        <div><h3>L&#8217;imprenditore lo controlla da ovunque<\/h3><p>L&#8217;app Android mostra la situazione aggiornata: fatturato a confronto con l&#8217;anno precedente, scadenze da pagare, liquidit\u00e0 prevista nei mesi successivi.<\/p><\/div>\n      <\/li>\n    <\/ol>\n  <\/div>\n<\/section>\n\n<section class=\"demo\">\n  <div class=\"wrap\">\n    <span class=\"demo-badge\">Dati dimostrativi<\/span>\n    <h2>Prova la dashboard<\/h2>\n    <p class=\"section-lede\">Un estratto reale dell&#8217;interfaccia dell&#8217;app. I numeri qui sotto sono di esempio, la logica \u00e8 quella vera.<\/p>\n\n    <div class=\"phone\">\n      <p class=\"phone-title\">SCADENZIARIO &amp; CASHFLOW<\/p>\n\n      <div class=\"toggle\" role=\"group\" aria-label=\"Modalita' di confronto\">\n        <button id=\"btn-periodo\" aria-pressed=\"true\">Periodo<\/button>\n        <button id=\"btn-mese\" aria-pressed=\"false\">Maggio<\/button>\n      <\/div>\n\n      <div class=\"ring-wrap\">\n        <div class=\"ring\" id=\"ring\" style=\"--pct:0;\">\n          <div class=\"ring-inner\" id=\"ring-value\">\u2014<\/div>\n        <\/div>\n      <\/div>\n      <p class=\"ring-caption\" id=\"ring-caption\"><\/p>\n\n      <div class=\"month-grid\" id=\"month-grid\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"capacita\">\n  <div class=\"wrap\" style=\"padding: 0;\">\n    <div style=\"padding: 0 24px;\">\n      <h2>Cosa fa davvero<\/h2>\n      <p class=\"section-lede\">Nessuna funzione qui sotto \u00e8 teorica: ogni voce \u00e8 stata costruita e verificata su documenti reali.<\/p>\n    <\/div>\n    <div class=\"capacita-grid\">\n      <div class=\"capacita-card\">\n        <h3>Riconoscimento multi-provider<\/h3>\n        <p>Un&#8217;unica logica di lettura riconosce la famiglia di layout del documento, non il singolo marchio commerciale \u2014 si adatta a nuovi provider senza riscrivere il motore ogni volta.<\/p>\n      <\/div>\n      <div class=\"capacita-card\">\n        <h3>Multi-azienda in sicurezza<\/h3>\n        <p>Ogni azienda gestita ha i propri dati separati e protetti, sia lato desktop che lato app \u2014 nessuna sovrapposizione tra clienti diversi.<\/p>\n      <\/div>\n      <div class=\"capacita-card\">\n        <h3>Scadenziario intelligente<\/h3>\n        <p>Clienti da riscuotere e fornitori da pagare, con storico dei pagamenti gi\u00e0 effettuati per un controllo completo, non solo dell&#8217;urgenza del momento.<\/p>\n      <\/div>\n      <div class=\"capacita-card\">\n        <h3>Proiezione di liquidit\u00e0<\/h3>\n        <p>Saldo teorico dei mesi successivi calcolato da un motore di apprendimento sui tempi di pagamento reali di ogni anagrafica, non da una media generica.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"stato\">\n  <div class=\"wrap\">\n    <h2>Stato del progetto<\/h2>\n    <div class=\"stato-box\">\n      <p><strong>Pipeline \u00e8 oggi un prototipo funzionante<\/strong>, sviluppato e testato con dati reali su un&#8217;azienda pilota in fase di beta test.<\/p>\n      <p>Il gestionale desktop gira in produzione; l&#8217;app companion \u00e8 disponibile per <strong>Android<\/strong>, distribuita internamente in questa fase. Non \u00e8 ancora un prodotto commerciale distribuito su larga scala \u2014 \u00e8 un percorso in corso, costruito passo per passo e verificato sul campo prima di ogni estensione.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<footer>\n  <div class=\"wrap\">\n    <h2>Parliamone<\/h2>\n    <p class=\"sub\">Se gestisci fatturazione elettronica multi-provider e vuoi vedere come funziona su un caso reale.<\/p>\n    <a class=\"cta\" href=\"mailto:bonaverof@gmail.com\">Scrivimi \u2192<\/a>\n <\/div>\n<\/footer>\n\n<script>\n  \/\/ Dati dimostrativi: fatturato mensile 2026 vs 2025 (12 valori ciascuno)\n  const corrente   = [11200, 12800, 13100, 14000, 13950, 15200, 14700, 15900, 0, 0, 0, 0];\n  const precedente = [10500, 11900, 12400, 12900, 13100, 13800, 13500, 14200, 13900, 14800, 15100, 16200];\n  const nomiMesi = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];\n  const nomiBrevi = ['gen','feb','mar','apr','mag','giu','lug','ago','set','ott','nov','dic'];\n  const ultimoMeseAttivo = 8; \/\/ agosto, coerente con i dati demo sopra\n\n  let modalita = 'periodo'; \/\/ 'periodo' | 'mese'\n  let meseAncora = 5; \/\/ maggio, come da mockup iniziale\n\n  const ring = document.getElementById('ring');\n  const ringValue = document.getElementById('ring-value');\n  const ringCaption = document.getElementById('ring-caption');\n  const btnPeriodo = document.getElementById('btn-periodo');\n  const btnMese = document.getElementById('btn-mese');\n  const grid = document.getElementById('month-grid');\n\n  function costruisciGriglia() {\n    grid.innerHTML = '';\n    for (let m = 1; m <= 12; m++) {\n      const b = document.createElement('button');\n      b.textContent = nomiBrevi[m - 1];\n      const attivo = m <= ultimoMeseAttivo;\n      b.disabled = !attivo;\n      b.setAttribute('aria-pressed', m === meseAncora ? 'true' : 'false');\n      if (attivo) {\n        b.addEventListener('click', () => { meseAncora = m; aggiorna(); });\n      }\n      grid.appendChild(b);\n    }\n  }\n\n  function calcola() {\n    if (modalita === 'periodo') {\n      const somma = arr => arr.slice(0, meseAncora).reduce((a, b) => a + b, 0);\n      const sc = somma(corrente), sp = somma(precedente);\n      const pct = sp > 0 ? Math.round((sc \/ sp) * 100) : 0;\n      const label = meseAncora === 1 ? nomiMesi[0] : `Gennaio-${nomiMesi[meseAncora - 1]}`;\n      return { pct, descrizione: `${label} 2026 vs ${label} 2025` };\n    } else {\n      const meseMostrato = meseAncora - 1;\n      if (meseMostrato < 1) return { pct: 0, descrizione: 'Dati non disponibili per il periodo richiesto' };\n      const vc = corrente[meseMostrato - 1];\n      const vr = meseMostrato === 1 ? precedente[11] : corrente[meseMostrato - 2];\n      const pct = vr > 0 ? Math.round((vc \/ vr) * 100) : 0;\n      const rifLabel = meseMostrato === 1 ? 'Dicembre 2025' : `${nomiMesi[meseMostrato - 2]} 2026`;\n      return { pct, descrizione: `${nomiMesi[meseMostrato - 1]} 2026 vs ${rifLabel}` };\n    }\n  }\n\n  function aggiorna() {\n    const meseMostrato = meseAncora - 1;\n    btnMese.textContent = meseMostrato >= 1 ? nomiMesi[meseMostrato - 1] : 'N\/D';\n    btnPeriodo.setAttribute('aria-pressed', modalita === 'periodo' ? 'true' : 'false');\n    btnMese.setAttribute('aria-pressed', modalita === 'mese' ? 'true' : 'false');\n\n    const { pct, descrizione } = calcola();\n    const pctClamped = Math.max(0, Math.min(100, pct));\n    ring.style.setProperty('--pct', pctClamped);\n    ringValue.textContent = pct + '%';\n    ringCaption.textContent = descrizione;\n\n    costruisciGriglia();\n  }\n\n  btnPeriodo.addEventListener('click', () => { modalita = 'periodo'; aggiorna(); });\n  btnMese.addEventListener('click', () => { modalita = 'mese'; aggiorna(); });\n\n  aggiorna();\n<\/script>\n\n\n<div id=\"OSMap\" style=\"width: 100%; height:540px;\"><\/div>\n<script language=\"javascript\" type=\"text\/javascript\">\n\t\tjQuery(document).ready(function(){\n\t\t\t\tvar map = L.map( \"OSMap\", {\n\t\t\t\t\tcenter: [34.307144, -8.789062],\n\t\t\t\t\tminZoom: 2,\n\t\t\t\t\tzoom: 2\n\t\t\t\t});\n\t\t\t\tL.tileLayer( \"https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png\", {\n\t\t\t\t\tattribution: \"&copy; <a href=\\\"https:\/\/www.openstreetmap.org\/copyright\\\">OpenStreetMap<\/a>\",\n\t\t\t\t\tsubdomains: [\"a\",\"b\",\"c\"]\n\t\t\t\t}).addTo( map );\n\t\t\t\tL.marker( [35.0000, 105.0000] )\n\t\t\t.bindPopup( '<div style=\"overflow: auto;\"><div class=\"countryMarker\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gestioneindustriale.it\/wp-content\/plugins\/visitors-traffic-real-time-statistics-pro\/images\/flags\/cn.png\" border=\"0\" width=\"20\" height=\"16\" onerror=\"imgFlagError(this)\" \/><\/span><span class=\"countryName\">China&nbsp;&nbsp;<span class=\"countryName\">(3)<\/span><\/div><\/div>').addTo( map ).openPopup();\t\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Tutti Cataloghi Schemi elettrici Brochure Altro Caricamento elenco&#8230; Scarica Stampa Seleziona un documento dal menu qui sopra. Pipeline \u2014 Dal PDF alla dashboard, in un unico flusso Gestionale VB6 + app companion Android Pipeline Dal PDF della fattura elettronica alla dashboard sullo smartphone dell&#8217;imprenditore: un unico flusso, senza inserimenti manuali. PDF Fattura elettronica \u2192 Riconoscimento &#8230; <a title=\"Product portfolio\" class=\"read-more\" href=\"https:\/\/www.gestioneindustriale.it\/it_it\/product-portfolio\/\" aria-label=\"Per saperne di pi\u00f9 su Product portfolio\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1892","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/pages\/1892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/comments?post=1892"}],"version-history":[{"count":10,"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/pages\/1892\/revisions"}],"predecessor-version":[{"id":2075,"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/pages\/1892\/revisions\/2075"}],"wp:attachment":[{"href":"https:\/\/www.gestioneindustriale.it\/it_it\/wp-json\/wp\/v2\/media?parent=1892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}