PageSourceSearch

https://app.propri.io/chunk-4P7VFCQI.js

js propri.io collected 2026-09-24 15:04:08 UTC 10,830 bytes, 1 lines download raw bytes

1import{b as Z}from"./chunk-GCVNARKA.js";import{a as ee}from"./chunk-LO5NYL64.js";import{b as Y,c as z,f as $,h as j,j as H,k as U,l as J,m as K,r as X}from"./chunk-DB2WROE2.js";import"./chunk-XQCGFZYT.js";import{d as V,f as B,g as W}from"./chunk-KCCK2WU4.js";import{Db as O,Ea as o,Fb as s,Gb as Q,Hb as y,I as G,Jb as N,Lb as M,Mb as P,N as p,Nb as S,Pb as F,Qb as L,Ra as I,S as b,T as f,Vb as v,ab as k,bb as m,cb as g,da as c,eb as E,fb as h,gb as x,hb as _,ib as r,jb as a,kb as A,l as C,ob as T,qb as q,sb as u,tc as R}from"./chunk-HSUOA5WL.js";import"./chunk-2MNUHUXA.js";var D="/api",w=class n{http=p(R);async generate(e){return(await C(this.http.post(`${D}/quittance/generate`,e))).data}async getHistory(e){return(await C(this.http.get(`${D}/quittance/history/${e}`))).data}async downloadAnnualSummary(e,t){return C(this.http.get(`${D}/quittance/annual-summary/${e}/${t}`,{responseType:"blob"}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=G({token:n,factory:n.\u0275fac,providedIn:"root"})};var oe=n=>["/gestion/biens",n],se=()=>[1,2,3],de=(n,e)=>e.value,le=(n,e)=>e.id;function ce(n,e){if(n&1&&s(0),n&2){let t=u();y(" \xB7 Locataire : ",t.tenantName," ")}}function ue(n,e){if(n&1&&(r(0,"p",5),s(1),m(2,ce,1,1),a()),n&2){let t=e;o(),y(" ",t.address," "),o(),g(t.tenantName?2:-1)}}function pe(n,e){n&1&&(r(0,"div",6),A(1,"div",8)(2,"div",9),a())}function me(n,e){n&1&&(r(0,"section",7)(1,"p",10),s(2," Bien introuvable. "),a()())}function ge(n,e){if(n&1&&(r(0,"option",16),s(1),a()),n&2){let t=e.$implicit;_("value",t.value),o(),Q(t.label)}}function ye(n,e){if(n&1&&(r(0,"option",16),s(1),a()),n&2){let t=e.$implicit;_("value",t),o(),Q(t)}}function _e(n,e){n&1&&s(0," G\xE9n\xE9ration en cours\u2026 ")}function be(n,e){n&1&&s(0," G\xE9n\xE9rer la quittance ")}function fe(n,e){n&1&&A(0,"div",32)}function he(n,e){n&1&&(r(0,"div",29),h(1,fe,1,0,"div",32,E),a()),n&2&&(o(),x(F(0,se)))}function xe(n,e){n&1&&(r(0,"p",30),s(1," Aucune quittance g\xE9n\xE9r\xE9e pour ce bien. "),a())}function ve(n,e){n&1&&s(0," \xB7 paiement partiel ")}function Ce(n,e){if(n&1&&(r(0,"li",33)(1,"div",34)(2,"p",35),s(3),a(),r(4,"p",36),s(5),m(6,ve,1,0),a()(),r(7,"span",37),s(8),a()()),n&2){let t=e.$implicit,i=u(3);o(3),y(" ",i.formatPeriod(t.periodeDebut)," "),o(2),y(" ",i.formatCents(t.totalAmountCents)," "),o(),g(t.isPartial?6:-1),o(),O("ds-chip-success",t.status==="paid"||t.status==="sent")("ds-chip-warn",t.status==="partial")("ds-chip-cream",t.status!=="paid"&&t.status!=="sent"&&t.status!=="partial"),o(),y(" ",i.statusLabel(t.status)," ")}}function Me(n,e){if(n&1&&(r(0,"ul",31),h(1,Ce,9,10,"li",33,le),a()),n&2){let t=u(2);o(),x(t.history())}}function Pe(n,e){if(n&1){let t=T();r(0,"section",11)(1,"h2",12),s(2," P\xE9riode et montant "),a(),r(3,"div",13)(4,"div")(5,"label",14),s(6," Mois "),a(),r(7,"select",15),S("ngModelChange",function(d){b(t);let l=u();return P(l.selectedMonth,d)||(l.selectedMonth=d),f(d)}),h(8,ge,2,2,"option",16,de),a()(),r(10,"div")(11,"label",17),s(12," Ann\xE9e "),a(),r(13,"select",18),S("ngModelChange",function(d){b(t);let l=u();return P(l.selectedYear,d)||(l.selectedYear=d),f(d)}),h(14,ye,2,2,"option",16,E),a()()(),r(16,"div",19)(17,"label",20),s(18," Montant per\xE7u (\u20AC) "),r(19,"span",21),s(20,"\u2014 laissez vide pour le montant complet"),a()(),r(21,"input",22),S("ngModelChange",function(d){b(t);let l=u();return P(l.paidAmount,d)||(l.paidAmount=d),f(d)}),a(),r(22,"p",23),s(23),a()(),r(24,"div",24)(25,"button",25),q("click",function(){b(t);let d=u();return f(d.onGenerate())}),m(26,_e,1,0)(27,be,1,0),a(),r(28,"span",26),s(29),a()()(),r(30,"section",27)(31,"h2",28),s(32," Historique "),a(),m(33,he,3,1,"div",29)(34,xe,2,0,"p",30)(35,Me,3,0,"ul",31),a()}if(n&2){let t,i=u();o(7),M("ngModel",i.selectedMonth),o(),x(i.monthOptions()),o(5),M("ngModel",i.selectedYear),o(),x(i.yearOptions()),o(7),M("ngModel",i.paidAmount),_("placeholder",i.totalAmountLabel()),k("aria-describedby","quittance-amount-hint"),o(2),N(" Loyer ",i.formatCents((t=i.property())==null?null:t.rentAmountCents)," + charges ",i.formatCents((t=i.property())==null?null:t.chargesAmountCents)," = ",i.totalAmountLabel()," "),o(2),_("disabled",i.generating(
1)),o(),g(i.generating()?26:27),o(3),y(" ",i.statusMessage()," "),o(4),g(i.historyLoading()?33:i.history().length===0?34:35)}}var te=["janvier","f\xE9vrier","mars","avril","mai","juin","juillet","ao\xFBt","septembre","octobre","novembre","d\xE9cembre"],ne=class n{route=p(V);router=p(B);propertyStore=p(Z);api=p(w);toast=p(ee);propertyId=c("");loading=c(!0);historyLoading=c(!0);generating=c(!1);statusMessage=c("");history=c([]);selectedMonth=c(new Date().getMonth());selectedYear=c(new Date().getFullYear());paidAmount=c(null);property=v(()=>{let e=this.propertyId();return this.propertyStore.properties().find(t=>t.id===e)??null});monthOptions=v(()=>te.map((e,t)=>({value:t,label:this.capitalize(e)})));yearOptions=v(()=>{let e=new Date().getFullYear();return[e-2,e-1,e,e+1]});totalAmountLabel=v(()=>{let e=this.property();if(!e)return"\u2014";let t=(e.rentAmountCents??0)+(e.chargesAmountCents??0);return this.formatCents(t)});async ngOnInit(){let e=this.route.snapshot.paramMap.get("propertyId")??this.route.snapshot.paramMap.get("id")??"";if(this.propertyId.set(e),this.propertyStore.hasProperties()||await this.propertyStore.loadProperties(),this.loading.set(!1),e)try{let t=await this.api.getHistory(e);this.history.set(t)}catch{this.toast.error("Impossible de charger l'historique")}finally{this.historyLoading.set(!1)}else this.historyLoading.set(!1)}async onGenerate(){let e=this.property();if(!e)return;let t=this.selectedYear(),i=this.selectedMonth(),d=new Date(Date.UTC(t,i,1)).toISOString().slice(0,10),l=new Date(Date.UTC(t,i+1,0)).toISOString().slice(0,10),ie=this.paidAmount()!=null?Math.round(this.paidAmount()*100):void 0;this.generating.set(!0),this.statusMessage.set("Cr\xE9ation en cours\u2026");try{await this.api.generate({propertyId:e.id,periodeDebut:d,periodeFin:l,paidAmountCents:ie}),this.toast.success("Quittance g\xE9n\xE9r\xE9e avec succ\xE8s"),this.statusMessage.set("Quittance g\xE9n\xE9r\xE9e.");let ae=await this.api.getHistory(e.id);this.history.set(ae)}catch{this.toast.error("Erreur lors de la g\xE9n\xE9ration"),this.statusMessage.set("Erreur. R\xE9essayez.")}finally{this.generating.set(!1)}}formatCents(e){return e==null?"\u2014":`${(e/100).toLocaleString("fr-FR",{minimumFractionDigits:0,maximumFractionDigits:2})} \u20AC`}formatPeriod(e){let t=new Date(e);return`${this.capitalize(te[t.getUTCMonth()])} ${t.getUTCFullYear()}`}statusLabel(e){switch(e){case"paid":return"Pay\xE9e";case"partial":return"Partielle";case"pending":return"En attente";case"sent":return"Envoy\xE9e";default:return e}}capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=I({type:n,selectors:[["app-quittance-generate"]],decls:11,vars:5,consts:[[1,"mx-auto","max-w-3xl","px-6","py-10"],["aria-label","Fil d'ariane",1,"mb-6","text-[13px]"],[1,"font-semibold",2,"color","var(--p-600)",3,"routerLink"],[1,"mb-8"],[1,"text-[32px]","font-extrabold","m-0",2,"color","var(--n-900)","letter-spacing","-0.02em"],[1,"mt-2","text-[15px]","m-0",2,"color","var(--n-600)"],[1,"ds-card"],["role","alert",1,"ds-card"],[1,"ds-skeleton-line",2,"width","50%"],[1,"ds-skeleton-line","mt-3",2,"width","70%"],[1,"text-[15px]","font-bold","m-0",2,"color","var(--error-700)"],["aria-labelledby","quittance-form-title",1,"ds-card"],["id","quittance-form-title",1,"text-[18px]","font-bold","m-0",2,"color","var(--n-900)"],[1,"mt-5","grid","gap-4","sm:grid-cols-2"],["for","quittance-month",1,"block","text-[13px]","font-semibold","mb-1.5",2,"color","var(--n-700)"],["id","quittance-month",1,"ds-input",3,"ngModelChange","ngModel"],[3,"value"],["for","quittance-year",1,"block","text-[13px]","font-semibold","mb-1.5",2,"color","var(--n-700)"],["id","quittance-year",1,"ds-input",3,"ngModelChange","ngModel"],[1,"mt-4"],["for","quittance-amount",1,"block","text-[13px]","font-semibold","mb-1.5",2,"color","var(--n-700)"],[1,"font-normal",2,"color","var(--n-500)"],["id","quittance-amount","type","number","inputmode","decimal","min","0","step","0.01",1,"ds-input",3,"ngModelChange","ngModel","placeholder"],["id","quittance-amount-hint",1,"mt-1.5","text-[12px]","m-0",2,"color","var(--n-500)"],[1,"mt-6","flex","flex-wrap","items-center","gap-3"],["type","button",1,"ds-btn","ds-btn-primary",3,"click","disabled"],["aria-live","polite",1,"text-[12px]",2,"color","var(--n-500)"],["aria-labelledby","quittance-history-title",1,"mt-8"],["id","quittance-history-title",1,"text-[18px]","font-bold","m-0","mb-4",2,"color","var(--n-900)"],[1,"grid","gap-2"],[1,"ds-card","text-center",2,"padding","32px","color","var(--n-500)","border-style","dashed"],[1,"grid","gap-2","list-none","p-0","m-0"],["aria-hidden","true",1,"ds-skeleton-card-sm"],[1,"ds-quittance-row"],[1,"flex-1","min-w-0"],[1,"text-[15px]","font-bold","m-0",2,"color","var(--n-900)"],[1,"mt-0.5","text-[12px]","m-0",2,"color","var(--n-500)"],[1,"ds-chip"]],template:function(t,i){if(t&1&&(r(0,"main",0)(1,"nav",1)(2,"a",2),s(3," \u2190 Retour au bien "),a()(),r(4,"header",3)(5,"h1",4),s(6," G\xE9n\xE9rer une quittance "),a(),m(7,ue,3,2,"p",5),a(),m(8,pe,3,0,"div",6)(9,me,3,0,"section",7)(10,Pe,3
16,12),a()),t&2){let d;o(2),_("routerLink",L(3,oe,i.propertyId())),o(5),g((d=i.property())?7:-1,d),o(),g(i.loading()?8:i.property()?10:9)}},dependencies:[X,U,J,Y,j,H,z,K,$,W],styles:["[_nghost-%COMP%]{display:block}.ds-input[_ngcontent-%COMP%]{width:100%;height:44px;padding:0 12px;border:1px solid var(--n-200);border-radius:var(--r);background:#fff;color:var(--n-900);font-size:16px;transition:border-color .15s,box-shadow .15s}.ds-input[_ngcontent-%COMP%]:focus-visible{outline:none;border-color:var(--p-500);box-shadow:0 0 0 3px #4f46e52e}.ds-quittance-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:16px;padding:14px 18px;background:#fff;border:1px solid var(--n-100);border-radius:var(--r-md);box-shadow:var(--sh-sm)}.ds-skeleton-line[_ngcontent-%COMP%]{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--n-100) 0%,var(--n-50) 50%,var(--n-100) 100%);background-size:200% 100%;animation:_ngcontent-%COMP%_ds-shimmer 1.4s ease-in-out infinite}.ds-skeleton-card-sm[_ngcontent-%COMP%]{height:60px;background:linear-gradient(90deg,var(--n-100) 0%,var(--n-50) 50%,var(--n-100) 100%);background-size:200% 100%;border-radius:var(--r-md);animation:_ngcontent-%COMP%_ds-shimmer 1.4s ease-in-out infinite}@keyframes _ngcontent-%COMP%_ds-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.ds-skeleton-line[_ngcontent-%COMP%], .ds-skeleton-card-sm[_ngcontent-%COMP%]{animation:none}}"],changeDetection:0})};export{ne as QuittanceGeneratePage};

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.