1import{f as j,m as $,y as T,L as S}from"./vendor-firebase-BTYxWAgh.js";import{q as x}from"./index-BIUvCkHh.js";import"./vendor-react-Dvwkxfce.js";const q=["numero_pratica","data_contratto","cliente","cf_piva","modello","telaio","targa","imponibile","iva","totale","ecobonus","immatricolazione","workflow","data_accettazione","data_ndc","ndc_numero_fic","ndc_fic_id"];function M(i){if(i==null)return"";const o=String(i);return o.includes(";")||o.includes('"')||o.includes(` 2`)?'"'+o.replace(/"/g,'""')+'"':o}function u(i){return i?i!=null&&i.toDate?i.toDate().toISOString().slice(0,10):typeof i=="string"?i.slice(0,10):i instanceof Date?i.toISOString().slice(0,10):"":""}async function Z({dealerId:i,year:o,month:r}){var N,z,O,R,h;if(!i||!o)throw new Error("dealerId e year richiesti");const d=r?new Date(o,r-1,1):new Date(o,0,1),s=r?new Date(o,r,1):new Date(o+1,0,1),I=_=>String(_).padStart(2,"0"),C=r?`${o}-${I(r)}-01`:`${o}-01-01`,v=r?r===12?`${o+1}-01-01`:`${o}-${I(r+1)}-01`:`${o+1}-01-01`,E=new Date(s.getTime()+1440*60*1e3),D=j(x,"practices"),[A,w]=await Promise.all([$(T(D,S("dealerId","==",i),S("contractData.dataContratto",">=",C),S("contractData.dataContratto","<",v))),$(T(D,S("dealerId","==",i),S("createdAt",">=",d),S("createdAt","<",E)))]),b=new Map;for(const _ of[...A.docs,...w.docs])b.set(_.id,_);const t=[];for(const _ of b.values()){const e={id:_.id,..._.data()},a=((N=e.contractData)==null?void 0:N.dataContratto)||u(e.createdAt);if(!a)continue;const l=new Date(a);if(isNaN(l.getTime())||l<d||l>=s)continue;const n=e.contractData||{};Number(n.subTotale);const f=Math.abs(Number(n.ecobonus)||0),g=Number(n.totale)||0,P=Number(n.immatricolazione)||
20,L=g>0?g/1.22:0,U=g-L;t.push({numero_pratica:e.practiceNumber||e.id.slice(-8).toUpperCase(),data_contratto:a,cliente:n.cliente||"",cf_piva:n.cf||n.pivaSocieta||n.piva||"",modello:n.modello||((O=(z=n.righe)==null?void 0:z[0])==null?void 0:O.descrizione)||"",telaio:n.telaio||"",targa:n.targa||"",imponibile:L.toFixed(2),iva:U.toFixed(2),totale:g.toFixed(2),ecobonus:f.toFixed(2),immatricolazione:P.toFixed(2),workflow:e.workflow||"",data_accettazione:u(e.adminVerifiedAt),data_ndc:u(e.ndcEmittedAt),ndc_numero_fic:((R=e.ndcInfo)==null?void 0:R.numero)||"",ndc_fic_id:((h=e.ndcInfo)==null?void 0:h.ficId)||""})}t.sort((_,e)=>_.data_contratto.localeCompare(e.data_contratto));const c=[q.join(";"),...t.map(_=>q.map(e=>M(_[e])).join(";"))].join(` 3`),p=`niu-pratiche-${r?`${o}-${String(r).padStart(2,"0")}`:`${o}`}.csv`;return{csv:c,filename:p,count:t.length}}function Q(i,o=new Map){var I,C,v,E,D,A,w,b;const r=["dealer",...k],d=[];for(const t of i||[]){const c=t.extractedData||{},m=t.contractData||{},p=z=>c[z]||m[z]||"",N=((C=(I=o==null?void 0:o.get)==null?void 0:I.call(o,t.dealerId))==null?void 0:C.ragioneSociale)||t.dealerName||t.dealerId||"";d.push({dealer:N,pratica_id:t.id,numero_pratica:t.practiceNumber||String(t.id||"").slice(-8).toUpperCase(),codice_prenotazione_mise:c.codicePrenotazioneMise||c.numeroPratica||m.numeroPratica||"",data_contratto:m.dataContratto||u(t.createdAt),data_consegna:p("dataConsegna"),data_completamento_mise:c.dataCompletamentoRiepilogo||"",cliente:p("cliente"),cf_cliente:p("cf"),telefono_cliente:m.telefono||m.tel||c.telefono||c.tel||"",email_cliente:m.email||m.mail||c.email||c.mail||"",piva_societa:c.pivaSocieta||c.piva||m.pivaSocieta||m.piva||"",ragione_sociale:p("ragioneSociale"),modello:p("modello")||((E=(v=m.righe)==null?void 0:v[0])==null?void 0:E.descrizione)||"",categoria:p("categoria"),telaio:p("telaio"),targa:p("targa"),colore:p("colore"),importo_ecobonus:Math.abs(Number(c.importoEcobonusMise??c.ecobonus??m.ecobonus)||0).toFixed(2),prezzo_acquisto:Number(c.prezzoAcquisto??((A=(D=m.righe)==null?void 0:D[0])==null?void 0:A.listino))||"",workflow:t.workflow||"",esito_controlli:t.esito||"",data_invio_admin:u(t.sentAt)||u(t.invioAdminAt),data_accettazione:u(t.adminVerifiedAt),data_rifiuto:u(t.adminRejectedAt),data_ndc:u(t.ndcEmittedAt),ndc_numero_fic:((w=t.ndcInfo)==null?void 0:w.numero)||"",ndc_fic_id:((b=t.ndcInfo)==null?void 0:b.ficId)||"",creato_da:t.createdBy||"",data_creazione:u(t.createdAt),erogata_invitalia:t.invitaliaImportedAt?t.erogataInvitalia?"SI":"NO":"non-verificata",importo_erogato:Number(t.importoErogato||0).toFixed(2),data_riconciliazione:u(t.invitaliaImportedAt),no_ecobonus:t.noEcobonus?"SI":""})}return d.sort((t,c)=>{const m=String(t.dealer).localeCompare(String(c.dealer));return m!==0?m:String(t.data_contratto).localeCompare(String(c.data_contratto))}),{csv:[r.join(";"),...d.map(t=>r.map(c=>M(t[c])).join(";"))].join(` 4`),count:d.length}}function J(i,o){const r=new Blob(["\uFEFF"+i],{type:"text/csv;charset=utf-8;"}),d=URL.createObjectURL(r),s=document.createElement("a");s.href=d,s.download=o,document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(d)}const k=["pratica_id","numero_pratica","codice_prenotazione_mise","data_contratto","data_consegna","data_completamento_mise","cliente","cf_cliente","telefono_cliente","email_cliente","piva_societa","ragione_sociale","modello","categoria","telaio","targa","colore","importo_ecobonus","prezzo_acquisto","workflow","esito_controlli","data_invio_admin","data_accettazione","data_rifiuto","data_ndc","ndc_numero_fic","ndc_fic_id","creato_da","data_creazione","erogata_invitalia","importo_erogato","data_riconciliazione","no_ecobonus"],K=[{value:"tutti",label:"Tutte le pratiche",slug:"tutte"},{value:"bozza",label:"Bozza",slug:"bozza"},{value:"in_verifica_admin",label:"Da verificare admin",slug:"da-verificare"},{value:"accettata",label:"Accettate (attesa MISE)",slug:"accettate"},{value:"riepilogo_caricato",label:"Da emettere NDC",slug:"da-ndc"},{value:"ndc_emessa",label:"Completate (NDC emessa)",slug:"completate"},{value:"rifiutata",label:"Rifiutate",slug:"rifiutate"}],H=[{value:"tutti",label:"Tutti gli esiti",slug:"tutti-esiti"},{value:"OK",label:"Solo OK",slug:"ok"},{value:"ATTENZIONE",label:"Solo con avvisi",slug:"attenzione"},{value:"KO",label:"Solo con errori",slug:"ko"},{value:"non-cal",label:"Non ancora verificate (esito vuoto)",slug:"no-esito"}],V=[{value:"tutti",label:"Tutte (erogate / non erogate / non verificate)",slug:"tutte-erog"},{value:"erogata",label:"Solo erogate da Invitalia",slug:"erogate"},{value:"non-erogata",label:"Solo NON erogate (riconciliate)",slug:"non-erogate"},{value:"non-verificata",label:"Solo non ancora verificate contro report",slug:"no-riconc"}];async function Y({dealerId:i,dealerName:o="dealer",workflowFilter:r="tutti",esitoFilter:d="tutti",erogazioneFilter:s="tutti"}){var N,z,O,R,h,_;if(!i)throw new Error("dealerId richiesto");const I=r==="tutti"?T(j(x,"practices"),S("dealerId","==",i)):T(j(x,"practices"),S("dealerId","==",i),S("workflow","==",r)),C=await $(I),v=[];for(const e of C.docs){const a={id:e.id,...e.data()};if(d&&d!=="tutti"){if(d==="non-cal"){if(a.esito)continue}else if(a.esito!==d)continue}if(s&&s!=="tutti"){const g=!!a.invitaliaImportedAt,P=a.erogataInvitalia===!0;if(s==="erogata"&&!P||s==="non-erogata"&&!(g&&!P)||s==="non-verificata"&&g)continue}const l=a.extractedData||{},n=a.contractData||{},f=g=>l[g]||n[g]||"";v.push({pratica_id:a.id,numero_pratica:a.practiceNumber||a.id.slice(-8).toUpperCase(),codice_prenotazione_mise:l.codicePrenotazioneMise||l.numeroPratica||n.numeroPratica||"",data_contratto:n.dataContratto||u(a.createdAt),data_consegna:f("dataConsegna"),data_completamento_mise:l.dataCompletamentoRiepilogo||"",cliente:f("cliente"),cf_cliente:f("cf"),telefono_cliente:n.telefono||n.tel||l.telefono||l.tel||"",email_cliente:n.email||n.mail||l.email||l.mail||"",piva_societa:l.pivaSocieta||l.piva||n.pivaSocieta||n.piva||"",ragione_sociale:f("ragioneSociale"),modello:f("modello")||((z=(N=n.righe)==null?void 0:N[0])==null?void 0:z.descrizione)||"",categoria:f("categoria"),telaio:f("telaio"),targa:f("targa"),colore:f("colore"),importo_ecobonus:Math.abs(Number(l.importoEcobonusMise??l.ecobonus??n.ecobonus)||0).toFixed(2),prezzo_acquisto:Number(l.prezzoAcquisto??((R=(O=n.righe)==null?void 0:O[0])==null?void 0:R.listino))||"",workflow:a.workflow||"",esito_controlli:a.esito||"",data_invio_admin:u(a.sentAt)||u(a.invioAdminAt),data_accettazione:u(a.adminVerifiedAt),data_rifiuto:u(a.adminRejectedAt),data_ndc:u(a.ndcEmittedAt),ndc_numero_fic:((h=a.ndcInfo)==null?void 0:h.numero)||"",ndc_fic_id:((_=a.ndcInfo)==null?void 0:_.ficId)||"",creato_da:a.createdBy||"",data_creazione:u(a.createdAt),erogata_invitalia:a.invitaliaImportedAt?a.erogataInvitalia?"SI":"NO":"non-verificata",importo_erogato:Number(a.importoErogato||0).toFixed(2),data_riconciliazione:u(a.invitaliaImportedAt),no_ecobonus:a.noEcobonus?"SI":""})}v.sort((e,a)=>{const l=(e.data_contratto||"").localeCompare(a.data_contratto||"");return l!==0?l:(e.data_creazione||"").localeCompare(a.data_creazione||"")});const E=[k.join(";"),...v.map(e=>k.map(a=>M(e[a])).join(";"))].join(` 5`),D=String(o).toLowerCase().normalize("NFD").replace(/[Ì-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),A=K.find(e=>e.value===r),w=H.find(e=>e.value===d),b=V.find(e=>e.value===s),t=(A==null?void 0:A.slug)||r,c=["niu-estratto",D||"dealer",t];d&&d!=="tutti"&&c.push((w==null?void 0:w.slug)||d),s&&s!=="tutti"&&c.push((b==null?void 0:b.slug)||s);const m=new Date().toISOString().slice(0,10),p=`${c.join("-")}-${m}.csv`;return{csv:E,filename:p,count:v.length}}export{V as EXPORT_EROGAZIONE_OPTIONS,H as EXPORT_ESITO_OPTIONS,K as EXPORT_WORKFLOW_OPTIONS,Z as buildAccountingCsv,Q as buildCsvFromPractices,Y as buildDealerRiepilogoCsv,J as downloadCsv};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.