UNPKG

@rero/rero-ils-ui

Version:

User interface for RERO integrated library system (RERO ILS).

19 lines 111 kB
import{b as nn,c as rn,d as on,f as M,g as Yt,h as Xe,i as Dn,j as In,k as Kt,l as ce,m as X,n as Z,o as Pn,p as qn,r as Bn,s as Vn,t as Nn,u as De}from"./chunk-P63A3PNH.js";import{a as Fn,b as Mn}from"./chunk-HYDLQENX.js";import{a as Gi,b as Ui,c as Hi,d as zi,e as Wi,f as ae,g as re,h as he}from"./chunk-QQFISVFQ.js";import{$ as Ft,A as Dt,Ab as Zi,Ac as k,Ad as Xt,C as Pi,Cb as Yi,Cc as ui,Cd as Ge,Ed as ne,Fb as Ki,Fc as vn,Gb as st,Gc as hn,Ge as Ln,Ha as Ae,Hd as En,I as It,Ib as en,Ic as Cn,Jc as xn,Ka as Mt,L as rt,Ma as ji,Mb as Nt,Mc as ct,Ne as On,Oa as $i,Ob as kt,Oe as He,Qb as tn,Qc as gn,Qd as pt,R as qi,Rd as Rn,S as ot,Sc as yn,T as Pt,U as qt,Vc as Sn,Vd as Le,W as Bi,Wb as jt,Wc as bn,Xb as $t,Xd as F,Y as Bt,Yb as Gt,Yd as Ue,Z as Vt,Zb as Ut,_ as Vi,_b as Ht,_c as fe,ac as $e,ad as Re,bd as Qt,c as Di,ca as Fi,d as Ii,ec as zt,ed as ie,ee as lt,fa as Mi,fc as an,g as je,ga as Ni,gc as sn,ha as ki,ic as cn,id as An,jc as pn,je as dt,kb as Qi,kc as ln,lc as dn,mc as mn,md as Jt,nd as Tn,p as Ot,pb as Ji,pc as H,q as te,qc as I,qd as _e,rc as R,sc as un,tb as at,u as nt,ub as Xi,ue as Zt,vd as P,wb as Te,wc as Wt,wd as ve,xc as fn,xe as wn,y as U,yc as _n,zc as Ee,zd as we,ze as Oe}from"./chunk-6Y5CFLSI.js";import{$ as K,$b as j,$c as y,Ab as ye,Bb as Se,C as Be,Cc as se,Db as _,Dc as c,Ec as A,Fc as h,G as xi,Gc as ge,Ha as Ve,Ic as Et,Jc as Rt,K as We,Kc as wt,Lc as Me,Mc as Ne,Nc as be,Ob as bi,Oc as wi,Pb as Ai,Pc as de,Qc as T,Rc as ke,Sb as u,Sc as Pe,T as gi,Tb as St,Ub as Ti,Vb as Ei,Wb as oe,Wc as Li,Xb as bt,Yb as f,Zb as le,Zc as l,_c as v,a as E,ac as $,ad as ee,b as hi,ba as G,bc as s,bd as qe,cb as ue,cc as a,db as yi,dc as C,dd as V,ec as Qe,fa as N,fc as Je,ga as et,gc as Fe,h as z,hb as o,hc as B,jd as Lt,la as m,m as vt,oc as D,od as Oi,pc as p,qc as At,rc as Tt,s as O,sa as tt,sb as Si,sc as Ri,ta as w,ua as L,w as x,wa as W,x as Ci,xb as g,yb as it}from"./chunk-ZG5LY3H2.js";var kn={amount:0,value:0},fi={self:0,children:0,total:0},ht={name:"",number:"",depth:0,is_active:!1,allocated_amount:0,distribution:0,encumbrance_exceedance:kn,expenditure_exceedance:kn,encumbrance_amount:fi,expenditure_amount:fi,remaining_balance:fi};var Ce=(()=>{class t{constructor(){this.httpClient=m(rt),this.recordService=m(P),this.resourceName="acq_accounts"}getAccount(e){return this.recordService.getRecords(this.resourceName,`pid:${e}`,1,1).pipe(x(i=>this.recordService.totalHits(i.hits.total)===0?[]:i.hits.hits),x(i=>i.map(r=>E(E({},ht),r.metadata))),x(i=>i.find(Boolean)))}getAccounts(e,i,r){let d=["is_active:true",`library.pid:${e}`];if(i!==void 0){let q=i===null?"depth:0":`parent.pid:${i}`;d.push(q)}let S=d.join(" AND ");return r=E({sort:"name"},r),this.recordService.getRecords(this.resourceName,S,1,P.MAX_REST_RESULTS_SIZE,void 0,void 0,{Accept:"application/rero+json"},r.sort).pipe(x(q=>this.recordService.totalHits(q.hits.total)===0?[]:q.hits.hits),x(q=>q.map(Y=>E(E({},ht),Y.metadata))))}delete(e){return this.recordService.delete(this.resourceName,e)}transferFunds(e,i,r){let d="/api/acq_accounts/transfer_funds",S=new It().set("source",e).set("target",i).set("amount",r.toString());return this.httpClient.get(d,{params:S})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var jn=(()=>{class t{transform(e){return 0-Math.abs(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ye({name:"negativeAmount",type:t,pure:!0,standalone:!1})}}return t})();var Ct=t=>({"text-error":t}),Vr=(t,n)=>({"text-success":t,"text-error":n}),Fr=t=>["/acquisition","records","acq_accounts","detail",t];function Mr(t,n){t&1&&(C(0,"p-message",1),l(1,"translate")),t&2&&u("text",v(1,1,"Fiscal year closed"))}function Nr(t,n){t&1&&(s(0,"span",15),c(1,"Details"),a())}function kr(t,n){if(t&1&&(s(0,"dt",5),c(1,"Parent account"),a(),s(2,"dd")(3,"a",16),c(4),l(5,"getRecord"),l(6,"async"),a()()),t&2){let e=p();o(3),u("routerLink",T(9,Fr,e.parent.pid)),o(),h(" ",v(6,7,qe(5,2,e.parent.pid,"acq_accounts","field","name"))," ")}}function jr(t,n){t&1&&(s(0,"span",15),c(1,"Accounting informations"),a())}function $r(t,n){if(t&1&&(_(0,Mr,2,3,"p-message",1),s(1,"h1"),c(2),a(),s(3,"div",2)(4,"p-panel",3),_(5,Nr,2,0,"ng-template",null,0,V),s(7,"dl",4)(8,"dt",5),c(9,"Account number"),a(),s(10,"dd"),c(11),a(),s(12,"dt",5),c(13,"Budget"),a(),s(14,"dd"),c(15),l(16,"getRecord"),l(17,"async"),a(),s(18,"dt",5),c(19,"Library"),a(),s(20,"dd"),c(21),l(22,"getRecord"),l(23,"async"),a(),_(24,kr,7,11),a()(),s(25,"p-panel",3),_(26,jr,2,0,"ng-template",null,0,V),s(28,"div",6)(29,"table",7)(30,"tbody")(31,"tr",8)(32,"td",9),c(33,"Allocated amount"),a(),s(34,"td",10),c(35),l(36,"currency"),a()(),s(37,"tr")(38,"td",9),c(39,"Distribution"),a(),s(40,"td",11),c(41),l(42,"negativeAmount"),l(43,"currency"),a()(),s(44,"tr")(45,"td",12),c(46,"Current encumbrance"),a(),s(47,"td",12),c(48,"Self"),a(),s(49,"td",11),c(50),l(51,"negativeAmount"),l(52,"currency"),a()(),s(53,"tr"),C(54,"td"),s(55,"td",12),c(56,"Children"),a(),s(57,"td",11),c(58),l(59,"negativeAmount"),l(60,"currency"),a()(),s(61,"tr")(62,"td",12),c(63,"Current expenditure"),a(),s(64,"td",12),c(65,"Self"),a(),s(66,"td",11),c(67),l(68,"negativeAmount"),l(69,"currency"),a()(),s(70,"tr"),C(71,"td"),s(72,"td",12),c(73,"Children"),a(),s(74,"td",11),c(75),l(76,"negativeAmount"),l(77,"currency"),a()(),s(78,"tr",13)(79,"td",9),c(80,"Balance"),a(),s(81,"td",11),c(82),l(83,"currency"),a()(),s(84,"tr")(85,"td",9),c(86,"Allowed encumbrance exceedance"),a(),s(87,"td",14),c(88),a(),s(89,"td",14),c(90),l(91,"currency"),a()(),s(92,"tr")(93,"td",9),c(94,"Allowed expenditure exceedance"),a(),s(95,"td",14),c(96),a(),s(97,"td",14),c(98),l(99,"currency"),a()()()()()()()),t&2){let e=n,i=p();f(e.is_active?-1:0),o(2),A(e.name),o(9),A(e.number),o(4),A(v(17,28,qe(16,23,e.budget.pid,"budgets","field","name"))),o(6),A(v(23,35,qe(22,30,e.library.pid,"libraries","field","name"))),o(3),f(e.parent?24:-1),o(11),h(" ",y(36,37,e.allocated_amount,i.organisation.default_currency)," "),o(5),u("ngClass",T(74,Ct,e.distribution>0)),o(),h(" ",y(43,42,v(42,40,e.distribution),i.organisation.default_currency)," "),o(8),u("ngClass",T(76,Ct,e.encumbrance_amount.self>0)),o(),h(" ",y(52,47,v(51,45,e.encumbrance_amount.self),i.organisation.default_currency)," "),o(7),u("ngClass",T(78,Ct,e.encumbrance_amount.children>0)),o(),h(" ",y(60,52,v(59,50,e.encumbrance_amount.children),i.organisation.default_currency)," "),o(8),u("ngClass",T(80,Ct,e.expenditure_amount.self>0)),o(),h(" ",y(69,57,v(68,55,e.expenditure_amount.self),i.organisation.default_currency)," "),o(7),u("ngClass",T(82,Ct,e.expenditure_amount.children>0)),o(),h(" ",y(77,62,v(76,60,e.expenditure_amount.children),i.organisation.default_currency)," "),o(6),u("ngClass",ke(84,Vr,e.remaining_balance.self>0,e.remaining_balance.self<0)),o(),h(" ",y(83,65,e.remaining_balance.self,i.organisation.default_currency)," "),o(6),h("",e.encumbrance_exceedance.value,"%"),o(2),h(" ",y(91,68,e.encumbrance_exceedance.amount,i.organisation.default_currency)," "),o(6),h("",e.expenditure_exceedance.value,"%"),o(2),h(" ",y(99,71,e.expenditure_exceedance.amount,i.organisation.default_currency)," ")}}var Un=(()=>{class t{constructor(){this.acqAccountApiService=m(Ce),this.organisationService=m(re)}get organisation(){return this.organisationService.organisation}ngOnInit(){this.record$.subscribe(e=>{this.esRecord$=this.acqAccountApiService.getAccount(e.metadata.pid)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-acquisition-account-detail-view"]],standalone:!1,decls:2,vars:3,consts:[["header",""],["severity","warn","showTransitionOptions","0ms",3,"text"],[1,"ui:flex","ui:flex-col","ui:gap-y-4","ui:mt-5"],["styleClass","ui:pb-3"],[1,"metadata","ui:mx-4"],["translate",""],[1,"ui:mx-3"],[1,"ui:w-full","ui:border-spacing-0"],[1,"ui:p-2"],["colspan","2","translate","",1,"ui:font-bold"],["colspan","2",1,"text-success","ui:text-right"],["colspan","2",1,"ui:text-right",3,"ngClass"],["translate","",1,"ui:font-bold"],[1,"ui:bg-surface-100"],[1,"ui:text-right"],["translate","",1,"ui:text-xl"],[3,"routerLink"]],template:function(i,r){if(i&1&&(_(0,$r,100,87),l(1,"async")),i&2){let d;f((d=v(1,1,r.organisation&&r.esRecord$))?0:-1,d)}},dependencies:[k,je,ct,st,I,te,U,ve,R,jn],encapsulation:2})}}return t})();var mt=class{constructor(){this.recordService=m(P),this.router=m(Ee)}canActivate(n){throw new Error("Missing canActivate implementation.")}canAdd(n,e){return this.recordService.getRecord(n,e,0,Le.reroJsonheaders).pipe(x(i=>i.metadata),x(i=>!("is_current_budget"in i)||!i.is_current_budget?(this.router.navigate(["/errors/403"],{skipLocationChange:!0}),!1):!0),We(()=>(this.router.navigate(["/errors/404"],{skipLocationChange:!0}),O(!1))))}};var Hn=(()=>{class t extends mt{canActivate(e){let i=e.queryParams.budget;return i?this.canAdd("budgets",i):(this.router.navigate(["/errors/400"],{skipLocationChange:!0}),O(!1))}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var zn=[{label:"CSV",format:"csv",disableMaxRestResultsSize:!0}],ei=class extends ce{constructor(){super(...arguments),this.name="acq_accounts",this.recordType="acq_accounts"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"detail/:pid",component:Ge,canActivate:[X],data:{action:Z.READ}},{path:"edit/:pid",component:ne,canActivate:[X],canDeactivate:[ie],data:{action:Z.UPDATE}},{path:"new",component:ne,canActivate:[ae,Hn],canDeactivate:[ie],data:{permissions:[F.ACAC_CREATE]}}],data:{types:[{key:this.name,label:"Acquisition account",detailComponent:Un,permissions:n=>this.routeToolService.permissions(n,this.recordType),preCreateRecord:n=>this._addDefaultInformation(n),redirectUrl:()=>O("/acquisition/accounts"),formFieldMap:(n,e)=>e.widget?.formlyConfig?.props?.fieldMap==="amount"?this._amountSymbol(n):n}]}}}_addDefaultInformation(n){let{user:e}=this.routeToolService.userService;return n.library={$ref:this.routeToolService.apiService.getRefEndpoint("libraries",e.currentLibrary)},n.budget={$ref:this.routeToolService.apiService.getRefEndpoint("budgets",this.routeToolService.getRouteQueryParam("budget"))},n}_amountSymbol(n){let e=this.routeToolService.getInjectorToken(re);return e.organisation&&(n.props.addonLeft=[He.currencySymbol(this.routeToolService.translateService.currentLang,e.organisation.default_currency)]),n}};var Wn=(()=>{class t{transform(e){return e.allocated_amount-e.distribution}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ye({name:"accountAvailableAmount",type:t,pure:!0,standalone:!1})}}return t})();var Hr=()=>["/acquisition","records","acq_accounts","new"],zr=t=>({budget:t}),Wr=()=>["/","acquisition","accounts","transfer"],Qr=t=>["/acquisition","records","acq_accounts","detail",t],Qn=(t,n)=>({"text-error":t," ui:text-muted-color":n}),Jr=(t,n)=>({" ui:text-muted-color":t,"text-warning":n}),Xr=(t,n,e)=>({"text-success":t," ui:text-muted-color":n,"text-warning":e}),Zr=t=>["/acquisition","records","acq_accounts","edit",t];function Yr(t,n){t&1&&(s(0,"tr")(1,"th",14),c(2,"Name"),a(),s(3,"th",15),c(4,"Amount"),a(),s(5,"th",15),c(6,"Available"),a(),s(7,"th",15),c(8,"Engagement"),a(),s(9,"th",15),c(10,"Expenditure"),a(),s(11,"th",15),c(12,"Balance"),a(),C(13,"th"),a())}function Kr(t,n){if(t&1&&(Qe(0),s(1,"span"),c(2),l(3,"currency"),a(),Je()),t&2){let e=n.ngVar,i=p(4);o(),oe(Pe(6,Xr,e>0,e===0,e<0)),o(),h(" ",y(3,3,e,i.organisation.default_currency)," ")}}function eo(t,n){if(t&1&&(C(0,"p-button",22),l(1,"translate")),t&2){let e=p().rowData;u("title",v(1,2,"Edit account"))("routerLink",T(4,Zr,e.pid))}}function to(t,n){if(t&1&&(C(0,"span",24),l(1,"nl2br")),t&2){let e=p().rowData,i=p(3);u("innerHTML",v(1,1,i.deleteInfoMessage(e.permissions)),ue)}}function io(t,n){if(t&1){let e=B();s(0,"tr")(1,"td",16),C(2,"p-treeTableToggler",17),s(3,"a",18),c(4),a()(),s(5,"td",19),c(6),l(7,"currency"),a(),s(8,"td",19),_(9,Kr,4,10,"ng-container",20),l(10,"accountAvailableAmount"),a(),s(11,"td",19),c(12),l(13,"currency"),a(),s(14,"td",19),c(15),l(16,"currency"),a(),s(17,"td",19),c(18),l(19,"currency"),a(),s(20,"td")(21,"div",21),_(22,eo,2,6,"p-button",22),s(23,"p-button",23),l(24,"translate"),D("onClick",function(){let r=w(e).$implicit,d=p(3);return L(d.accountDelete(r))}),a(),_(25,to,2,3,"ng-template",null,2,V),a()()()}if(t&2){let e=n.$implicit,i=n.rowData,r=se(26),d=p(3);o(2),u("rowNode",e),o(),u("title",i.name+" ("+i.number+")")("routerLink",T(36,Qr,i.pid)),o(),A(i.name),o(2),h(" ",y(7,20,i.allocated_amount,d.organisation.default_currency)," "),o(3),u("ngVar",v(10,23,i)),o(2),oe(ke(38,Qn,i.encumbrance_amount.self>0,i.encumbrance_amount.self<=0)),o(),h(" ",y(13,25,i.encumbrance_amount.self,d.organisation.default_currency)," "),o(2),oe(ke(41,Qn,i.expenditure_amount.self>0,i.expenditure_amount.self<=0)),o(),h(" ",y(16,28,i.expenditure_amount.self,d.organisation.default_currency)," "),o(2),oe(ke(44,Jr,i.remaining_balance.self===0,i.remaining_balance.self<0)),o(),h(" ",y(19,31,i.remaining_balance.self,d.organisation.default_currency)," "),o(4),f(i.permissions&&(i.permissions!=null&&i.permissions.update)&&(!(i==null||i.permissions==null||i.permissions.update==null)&&i.permissions.update.can)?22:-1),o(),u("title",v(24,34,"Delete account"))("pTooltip",r)("disabled",!(!(i.permissions==null||i.permissions.delete==null)&&i.permissions.delete.can))("tooltipDisabled",i.permissions==null||i.permissions.delete==null?null:i.permissions.delete.can)}}function no(t,n){if(t&1){let e=B();s(0,"div",10)(1,"p-button",11),l(2,"translate"),D("onClick",function(){w(e);let r=p(2);return L(r.expandAll())}),a(),s(3,"p-button",12),l(4,"translate"),D("onClick",function(){w(e);let r=p(2);return L(r.collapseAll())}),a()(),s(5,"p-treeTable",13),_(6,Yr,14,0,"ng-template",null,0,V)(8,io,27,47,"ng-template",null,1,V),a()}if(t&2){let e=p(2);o(),u("label",v(2,3,"Expand all")),o(2),u("label",v(4,5,"Collapse all")),o(2),u("value",e.rootAccounts)}}function ro(t,n){t&1&&(s(0,"div",9),c(1,"No account available"),a())}function oo(t,n){if(t&1&&(s(0,"header",3)(1,"h1",4),c(2,"Acquisition accounts"),a(),s(3,"div",5),C(4,"p-button",6),l(5,"translate"),C(6,"ng-core-export-button",7)(7,"p-button",8),l(8,"translate"),a()(),s(9,"section"),_(10,no,10,7)(11,ro,2,0,"div",9),a()),t&2){let e=p();o(4),u("label",v(5,9,"Add"))("routerLink",de(13,Hr))("queryParams",T(14,zr,e.organisation.current_budget_pid))("permissions",e.permissions.ACAC_CREATE),o(2),u("exportOptions",e.exportOptions),o(),u("label",v(8,11,"Transfer funds"))("routerLink",de(16,Wr))("permissions",e.permissions.ACAC_TRANSFER),o(3),f(e.rootAccounts.length>0?10:11)}}var Jn=(()=>{class t{constructor(){this.userService=m(Oe),this.acqAccountApiService=m(Ce),this.organisationService=m(re),this.apiService=m(fe),this.translateService=m(H),this.recordPermissionService=m(he),this.messageService=m(Ae),this.rootAccounts=[],this.permissions=F}get organisation(){return this.organisationService.organisation}get exportInfoMessage(){return this.rootAccounts.length===0?this.translateService.instant("Result list is empty."):this.translateService.instant("Too many items. Should be less than {{max}}.",{max:P.MAX_REST_RESULTS_SIZE})}orderAccountsAsTree(e){let i={};e=this.processAccount(e),e.map(d=>{let S=d?.data?.parent?.pid?d.data.parent.pid:-1;i[S]||(i[S]=[]),i[S].push(d)});let r=i[-1].sort((d,S)=>d.label.localeCompare(S.label));return this.attachChildren(r,i),r}attachChildren(e,i){e.map(r=>{i[r.data.pid]&&(r.children=i[r.data.pid].sort((d,S)=>d.label.localeCompare(S.label)),this.attachChildren(r.children,i))})}ngOnInit(){this._libraryPid=this.userService.user.currentLibrary;let e;this.acqAccountApiService.getAccounts(this._libraryPid,void 0,{sort:"depth"}).pipe(G(i=>e=i),K(i=>{let r=i.map(d=>this.recordPermissionService.getPermission("acq_accounts",d.pid).pipe(G(S=>d.permissions=S)));return Be(r)}),G(()=>this.rootAccounts=this.orderAccountsAsTree(e)),G(()=>this.exportOptions=this._exportFormats())).subscribe()}processAccount(e){return e.map(i=>({data:i,label:i.name,leaf:!(i?.number_of_children>0)}))}accountDelete(e){this.acqAccountApiService.delete(e.node.data.pid).pipe(G(()=>{e.parent?(e.parent.children=e.parent.children.filter(i=>i.data.pid!==e.node.data.pid),e.parent.leaf=!(e.parent.children.length>0)):this.rootAccounts=this.rootAccounts.filter(i=>i.data.pid!==e.node.data.pid),this.rootAccounts=[...this.rootAccounts]})).subscribe(()=>{this.messageService.add({severity:"success",summary:this.translateService.instant("Account"),detail:this.translateService.instant("Account deleted"),life:we.MESSAGE_LIFE})})}deleteInfoMessage(e){return this.recordPermissionService.generateTooltipMessage(e.delete.reasons,"delete")}expandAll(){this.rootAccounts.forEach(e=>{this.expandRecursive(e,!0)}),this.rootAccounts=[...this.rootAccounts]}collapseAll(){this.rootAccounts.forEach(e=>{this.expandRecursive(e,!1)}),this.rootAccounts=[...this.rootAccounts]}expandRecursive(e,i){e.expanded=i,e.children&&e.children.forEach(r=>{this.expandRecursive(r,i)})}_exportFormats(){return zn.map(e=>({label:e.label,url:this.getExportFormatUrl(e),disabled:!this.canExport(e),disabled_message:this.exportInfoMessage}))}getExportFormatUrl(e){let r=["is_active:true",`library.pid:${this._libraryPid}`].join(" AND "),d=e.endpoint||this.apiService.getExportEndpointByType("acq_accounts"),S=new It().set("q",r).set("format",e.format);return e.disableMaxRestResultsSize||S.append("size",String(P.MAX_REST_RESULTS_SIZE)),`${d}?${S.toString()}`}canExport(e){let i=this.rootAccounts.length;return e.hasOwnProperty("disableMaxRestResultsSize")&&e.disableMaxRestResultsSize?i>0:i>0&&i<P.MAX_REST_RESULTS_SIZE}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-account-list"]],standalone:!1,decls:1,vars:1,consts:[["header",""],["body",""],["tooltipContent",""],[1,"ui:flex","ui:items-baseline","ui:justify-between"],["translate",""],[1,"ui:flex","ui:gap-2","ui:flex-wrap"],["icon","fa fa-plus",3,"label","routerLink","queryParams","permissions"],[3,"exportOptions"],["icon","fa fa-exchange","outlined","",3,"label","routerLink","permissions"],["translate","",1,"ui:font-bold","ui:mt-2"],[1,"ui:flex","ui:flex-wrap","ui:gap-1","ui:my-4"],["size","small","outlined","","icon","fa fa-plus",3,"onClick","label"],["size","small","outlined","","icon","fa fa-minus",3,"onClick","label"],["autoLayout","","styleClass","p-treetable-sm",3,"value"],["translate","",1,"ui:min-w-75","ui:max-w-75"],["translate","",1,"ui:!text-right"],[1,"ui:min-w-75","ui:max-w-75","ui:truncate"],[3,"rowNode"],[3,"title","routerLink"],[1,"ui:!text-right"],[4,"ngVar"],[1,"ui:flex","ui:gap-1","ui:justify-end","ui:flex-wrap"],["icon","fa fa-pencil","outlined","","size","small",3,"title","routerLink"],["icon","fa fa-trash","severity","danger","outlined","","size","small","tooltipPosition","top",1,"ui:pointer-events-auto",3,"onClick","title","pTooltip","disabled","tooltipDisabled"],[3,"innerHTML"]],template:function(i,r){i&1&&_(0,oo,12,17),i&2&&f(r.organisation?0:-1)},dependencies:[k,Te,Nt,I,Qt,En,wn,nn,rn,U,R,Re,Wn],encapsulation:2})}}return t})();function ut(t){let n=(i,r)=>{r.push(i),t.filter(d=>d.parent!==void 0&&d.parent.pid===i.pid).forEach(d=>n(d,r))};t.sort((i,r)=>i.depth===r.depth?i.name.localeCompare(r.name):i.depth-r.depth);let e=[];return t.filter(i=>i.depth===0).forEach(i=>n(i,e)),e}var so=t=>["/acquisition","records","acq_accounts","detail",t],co=(t,n,e)=>({"text-success":t," ui:text-muted-color":n,"text-warning":e}),po=t=>({"ng-invalid ng-dirty":t}),lo=()=>["/acquisition","accounts"],mo=(t,n)=>n.pid;function uo(t,n){if(t&1&&(c(0),l(1,"getRecord"),l(2,"async")),t&2){let e=p(3);h(" ",v(2,6,qe(1,1,e.selectedBudget.code,"budgets","field","name"))," ")}}function fo(t,n){if(t&1&&(c(0),l(1,"getRecord"),l(2,"async")),t&2){let e=n.$implicit;h(" ",v(2,6,qe(1,1,e.code,"budgets","field","name"))," ")}}function _o(t,n){if(t&1){let e=B();s(0,"p-select",9),D("onChange",function(r){w(e);let d=p(2);return L(d.selectBudget(r))}),_(1,uo,3,8,"ng-template",null,2,V)(3,fo,3,8,"ng-template",null,3,V),a()}if(t&2){let e=p(2);u("ngModel",e.selectedBudget)("options",e.budgets)}}function vo(t,n){t&1&&(s(0,"div",10)(1,"div",11),c(2,"Source"),a(),s(3,"div",12),c(4,"Amount"),a(),s(5,"div",13),c(6,"Available"),a(),s(7,"div",11),c(8,"Target"),a()())}function ho(t,n){if(t&1&&C(0,"p-radioButton",16),t&2){let e=p().$implicit;u("value",e)}}function Co(t,n){if(t&1&&C(0,"p-radioButton",20),t&2){let e=p().$implicit;u("value",e)}}function xo(t,n){if(t&1&&(s(0,"div",14)(1,"div",15),_(2,ho,1,1,"p-radioButton",16),a(),s(3,"div",17)(4,"a",18),c(5),a()(),s(6,"div",19),c(7),l(8,"currency"),a(),s(9,"div",19),c(10),l(11,"currency"),a(),s(12,"div",15),_(13,Co,1,1,"p-radioButton",20),a()()),t&2){let e=n.$implicit,i=p(3);o(2),f(i.form.get("target").value&&i.form.get("target").value.pid===e.pid?-1:2),o(2),St("padding-left",e.depth*10,"px"),u("routerLink",T(16,so,e.pid)),o(),h(" ",e.name," "),o(2),h(" ",y(8,10,e.allocated_amount,i.organisation.default_currency)," "),o(2),oe(Pe(18,co,e.remaining_balance.self>0,e.remaining_balance.self===0,e.remaining_balance.self<0)),o(),h(" ",y(11,13,e.remaining_balance.self,i.organisation.default_currency)," "),o(3),f(i.form.get("source").value&&i.form.get("source").value.pid===e.pid?-1:13)}}function go(t,n){if(t&1&&j(0,xo,14,22,"div",14,mo),t&2){let e=p(2);$(e.accountsToDisplay)}}function yo(t,n){t&1&&(c(0),l(1,"translate")),t&2&&h(" ",v(1,1,"No account available")," ")}function So(t,n){t&1&&(s(0,"small",27),c(1,"This field is required."),a())}function bo(t,n){if(t&1&&(s(0,"small",28),c(1),l(2,"translate"),a()),t&2){let e=p(4);o(),ge(" ",v(2,2,"Minimum amount is")," ",e.form.get("amount").errors.min.min,". ")}}function Ao(t,n){if(t&1&&(s(0,"small",28),c(1),l(2,"translate"),a()),t&2){let e=p(4);o(),ge(" ",v(2,2,"Maximum amount is")," ",e.form.get("amount").errors.max.max,". ")}}function To(t,n){if(t&1&&_(0,So,2,0,"small",27)(1,bo,3,4,"small",28)(2,Ao,3,4,"small",28),t&2){let e=p(3);f(e.form.get("amount").hasError("required")?0:-1),o(),f(e.form.get("amount").hasError("min")?1:-1),o(),f(e.form.get("amount").hasError("max")?2:-1)}}function Eo(t,n){if(t&1&&(s(0,"div",21)(1,"label",22),c(2,"Amount"),a(),s(3,"div",4)(4,"div")(5,"p-inputGroup")(6,"p-inputGroupAddon"),c(7),a(),C(8,"input",23),a()(),s(9,"div",24),C(10,"p-button",25),l(11,"translate"),C(12,"p-button",26),l(13,"translate"),a()(),_(14,To,3,3),a()),t&2){let e=p(2);o(7),A(e.currencySymbol),o(),oe(T(12,po,e.checkInput("amount"))),o(2),u("label",v(11,8,"Cancel"))("routerLink",de(14,lo)),o(2),u("label",v(13,10,"Transfer"))("disabled",e.form.invalid),o(2),f(e.checkInput("amount")?14:-1)}}function Ro(t,n){if(t&1){let e=B();s(0,"div",4)(1,"h1",5),c(2,"Fund transfer"),a(),_(3,_o,5,2,"p-select",6),a(),s(4,"form",7),D("ngSubmit",function(){w(e);let r=p();return L(r.submit())}),s(5,"p-card"),_(6,vo,9,0,"ng-template",null,0,V),s(8,"div",8),_(9,go,2,0)(10,yo,2,3),a(),_(11,Eo,15,15,"ng-template",null,1,V),a()()}if(t&2){let e=p();o(3),f(e.budgets.length>1?3:-1),o(),u("formGroup",e.form),o(5),f(e.accountsToDisplay.length>0?9:10)}}var Zn=(()=>{class t{get organisation(){return this.organisationService.organisation}get currencySymbol(){return He.currencySymbol(this.translateService.currentLang,this.organisation.default_currency)}constructor(){this.acqAccountApiService=m(Ce),this.organisationService=m(re),this.formBuilder=m(Mi),this.translateService=m(H),this.router=m(Ee),this.userService=m(Oe),this.messageService=m(Ae),this.accountsToDisplay=[],this.budgets=[],this.accountsTree=[],this.selectedBudget=void 0,this.subscriptions=new z,this.form=this.formBuilder.group({source:[void 0,ot.required],target:[void 0,ot.required],amount:[0,ot.min(.01)]})}ngOnInit(){this._loadData(),this.subscriptions.add(this.form.controls.source.valueChanges.subscribe(e=>{let i=e.remaining_balance.self;this.form.controls.amount.setValidators([ot.min(.01),ot.max(i)])}))}ngOnDestroy(){this.subscriptions.unsubscribe()}selectBudget(e){this.selectedBudget=e.value,this._filterAccountToDisplay()}selectAccount(e,i){this.form.controls[e].patchValue(i)}submit(){this.acqAccountApiService.transferFunds(this.form.value.source.pid,this.form.value.target.pid,this.form.value.amount).subscribe({next:()=>{this.messageService.add({severity:"success",summary:this.translateService.instant("Account"),detail:this.translateService.instant("Fund transfer successful!"),life:we.MESSAGE_LIFE}),this.router.navigate(["/","acquisition","accounts"])},error:e=>this.messageService.add({severity:"error",summary:this.translateService.instant("Account"),detail:this.translateService.instant(e.error.message),sticky:!0,closable:!0})})}checkInput(e){return this.form.get(e)===void 0?!0:this.form.get(e).invalid&&this.form.get(e).errors&&(this.form.get(e).dirty||this.form.get(e).touched)}_loadData(){let e=this.userService.user.currentLibrary;this.acqAccountApiService.getAccounts(e,void 0,{sort:"depth"}).subscribe(i=>{this.accountsTree=ut(i),this.budgets=Array.from(new Set(this.accountsTree.map(r=>r.budget.pid))).map(r=>({code:r})),this.selectedBudget=this.budgets.find(Boolean),this._filterAccountToDisplay()})}_filterAccountToDisplay(){this.accountsToDisplay=this.accountsTree.filter(e=>e.budget.pid===this.selectedBudget.code)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-account-transfer"]],standalone:!1,decls:1,vars:1,consts:[["header",""],["footer",""],["selectedItem",""],["item",""],[1,"ui:flex","ui:flex-wrap","ui:gap-2","ui:justify-between"],["translate",""],[3,"ngModel","options"],["onkeydown","return event.key != 'Enter';",1,"ui:mt-3",3,"ngSubmit","formGroup"],[1,"ui:mt-4"],[3,"onChange","ngModel","options"],[1,"ui:grid","ui:grid-cols-12","ui:bg-surface-100","ui:p-2","ui:text-lg","ui:font-bold"],["translate","",1,"ui:col-span-1","ui:text-center"],["translate","",1,"ui:col-span-8","ui:text-right"],["translate","",1,"ui:col-span-2","ui:text-right"],[1,"ui:grid","ui:grid-cols-12","ui:py-1","ui:odd:bg-surface-50"],[1,"ui:col-span-1","ui:text-center"],["name","source","formControlName","source",3,"value"],[1,"ui:col-span-6"],[3,"routerLink"],[1,"ui:col-span-2","ui:text-right"],["name","target","formControlName","target",3,"value"],[1,"ui:flex","ui:flex-col","ui:gap-1","ui:py-4","ui:px-6","ui:pb-6","ui:mt-2","ui:border-t","ui:border-surface"],["for","amount","translate",""],["pInputText","","type","number","id","amount","formControlName","amount"],[1,"ui:flex","ui:flex-wrap","ui:gap-1","ui:justify-end"],["type","cancel","severity","danger","outlined","",3,"label","routerLink"],["type","submit",3,"label","disabled"],["translate","",1,"text-error"],[1,"text-error"]],template:function(i,r){i&1&&_(0,Ro,13,3),i&2&&f(r.accountsToDisplay&&r.organisation?0:-1)},dependencies:[k,Vt,qi,Vi,Pt,qt,Bt,Ft,Fi,Te,Ji,Yi,Zi,Qi,en,kt,I,te,U,ve,R],encapsulation:2})}}return t})();function wo(t,n){if(t&1&&(s(0,"div",1)(1,"div",2),c(2),a(),C(3,"p",3),a()),t&2){let e=n.$implicit;o(2),h(" ",e.summary," "),o(),u("innerHtml",e.detail,ue)}}var Yn=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-acquisition-main"]],standalone:!1,decls:5,vars:0,consts:[["message",""],[1,"ui:flex","ui:flex-col","ui:items-start",2,"flex","1"],[1,"ui:font-medium","ui:text-lg","ui:text-surface-900"],[3,"innerHtml"]],template:function(i,r){i&1&&(C(0,"router-outlet"),s(1,"p-toast"),_(2,wo,4,2,"ng-template",null,0,V),a(),C(4,"p-confirmDialog"))},dependencies:[fn,xn,gn],encapsulation:2})}}return t})();var Lo=(t,n)=>({"text-success":t,"text-error":n}),Oo=t=>[t],Kn=(()=>{class t{constructor(){this.translateService=m(H)}get title(){return this.record.metadata.is_active?this.translateService.instant("Active"):this.translateService.instant("Inactive")}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-budgets-brief-view"]],inputs:{record:"record",type:"type",detailUrl:"detailUrl"},standalone:!1,decls:5,vars:9,consts:[[1,"fa","fa-circle","ui:mr-2",3,"title","ngClass"],[3,"routerLink"]],template:function(i,r){i&1&&(s(0,"h5"),C(1,"i",0),c(2,"\xA0 "),s(3,"a",1),c(4),a()()),i&2&&(o(),u("title",r.title)("ngClass",ke(4,Lo,r.record.metadata.is_active,!r.record.metadata.is_active)),o(2),u("routerLink",T(7,Oo,r.detailUrl.link)),o(),A(r.record.metadata.name))},dependencies:[k,je],encapsulation:2})}}return t})();var ii=class{constructor(n){this.$schema=null,this.pid=null,this.name="",this.start_date="",this.end_date="",this.is_active=!1,Object.assign(this,n)}};var er=(()=>{class t{constructor(){this.recordService=m(P),this.resourceName="budgets"}getBudgets(e){return e=e||"",this.recordService.getRecords(this.resourceName,e,1,P.MAX_REST_RESULTS_SIZE).pipe(x(i=>this.recordService.totalHits(i.hits.total)===0?[]:i.hits.hits),x(i=>i.map(r=>new ii(r.metadata))))}getBudgetTotalAmount(e){return this.recordService.getRecords("acq_accounts",`budget.pid:${e} AND depth:0`,1,P.MAX_REST_RESULTS_SIZE).pipe(x(i=>this.recordService.totalHits(i.hits.total)===0?[]:i.hits.hits),x(i=>i.map(r=>E(E({},ht),r.metadata))),x(i=>i.reduce((r,d)=>r+d.allocated_amount,0)))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function Do(t,n){t&1&&(C(0,"p-message",0),l(1,"translate")),t&2&&u("text",v(1,1,"Fiscal year closed"))}function Io(t,n){if(t&1&&(_(0,Do,2,3,"p-message",0),s(1,"header",1)(2,"h1"),c(3),a()(),s(4,"section")(5,"dl",2)(6,"dt",3),c(7,"Total"),a(),s(8,"dd"),c(9),l(10,"currency"),a()()()),t&2){let e=n,i=p();f(e.metadata.is_active?-1:0),o(3),A(e.metadata.name),o(6),A(ee(10,3,i.totalAmount,i.currencyCode,"symbol"))}}var tr=(()=>{class t{constructor(){this.budgetApiService=m(er),this.organisationService=m(re),this.totalAmount=0,this._subscriptions=new z}get currencyCode(){return this.organisationService.organisation.default_currency}ngOnInit(){this._subscriptions.add(this.record$.pipe(K(e=>this.budgetApiService.getBudgetTotalAmount(e.metadata.pid))).subscribe(e=>this.totalAmount=e))}ngOnDestroy(){this._subscriptions.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-budget-detail-view"]],standalone:!1,decls:2,vars:3,consts:[["severity","warn","showTransitionOptions","0ms",3,"text"],[1,"ui:my-3"],[1,"metadata"],["translate",""]],template:function(i,r){if(i&1&&(_(0,Io,11,7),l(1,"async")),i&2){let d;f((d=v(1,1,r.record$))?0:-1,d)}},dependencies:[ct,I,te,U,R],encapsulation:2})}}return t})();var ni=class extends ce{constructor(){super(...arguments),this.name="budgets",this.recordType="budgets"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"",component:pt,canActivate:[ae],data:{permissions:[F.BUDG_ACCESS,F.BUDG_SEARCH],operator:Ue.AND}},{path:"detail/:pid",component:Ge,canActivate:[X],data:{action:Z.READ}}],data:{adminMode:this.DISABLED,types:[{key:this.name,label:"Budgets",component:Kn,detailComponent:tr,searchFilters:[this.expertSearchFilter()]}]}}}};var ri=(()=>{class t extends Vn{constructor(){super(...arguments),this.recordService=m(P)}getOwningLibrary$(e){let i=e.queryParams.order;return i===void 0&&(i=e.params.pid),this.recordService.getRecord("acq_orders",i).pipe(x(r=>r.metadata||{}),x(r=>r.library||{}),x(r=>_e(r.$ref)))}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var ir=(()=>{class t extends mt{canActivate(e){let i=e.queryParams.order;return i?this.canAdd("acq_orders",i):(this.router.navigate(["/errors/400"],{skipLocationChange:!0}),O(!1))}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var ft=(()=>{class t{constructor(){this.recordService=m(P),this.router=m(Ee)}canActivate(e){let{type:i,pid:r}=e.params;return!i||!r?O(!1):this.recordService.getRecord(i,r,0,Le.reroJsonheaders).pipe(x(d=>"metadata"in d?d.metadata:d),x(d=>!("is_current_budget"in d)||!d.is_current_budget?(this.router.navigate(["/errors/403"],{skipLocationChange:!0}),!1):!0))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var oi=class extends ce{constructor(){super(...arguments),this.name="acq_order_lines",this.recordType="acq_order_lines"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"edit/:pid",component:ne,canActivate:[X,ft],canDeactivate:[ie],data:{action:Z.UPDATE}},{path:"new",component:ne,canActivate:[ae,ir,ri],canDeactivate:[ie],data:{permissions:[F.ACOL_CREATE]}}],data:{types:[{key:this.name,label:"Order lines",canAdd:()=>O({can:this.routeToolService.permissionsService.canAccess(F.ACOL_CREATE)}),preCreateRecord:n=>this._addDefaultInformation(n),preUpdateRecord:n=>this.fieldsToRemoved(n,["is_current_budget"]),redirectUrl:n=>this.redirectUrl(n.metadata.acq_order,"/acquisition/records/acq_orders/detail"),formFieldMap:(n,e)=>e.widget?.formlyConfig?.props?.fieldMap==="amount"?this._amountSymbol(n):n}]}}}_addDefaultInformation(n){return n.acq_order={$ref:this.routeToolService.apiService.getRefEndpoint("acq_orders",this.routeToolService.getRouteQueryParam("order"))},n}_amountSymbol(n){let e=this.routeToolService.getInjectorToken(re);return n.props.addonLeft=[He.currencySymbol(this.routeToolService.translateService.currentLang,e.organisation.default_currency)],n}};var Ze=function(t){return t.STAFF_NOTE="staff_note",t.VENDOR_NOTE="vendor_note",t.RECEIPT_NOTE="receipt_note",t}(Ze||{});var nr=t=>[t];function Po(t,n){if(t&1&&(C(0,"div",3),l(1,"nl2br")),t&2){p();let e=be(5);u("innerHTML",v(1,1,e[0].content),ue)}}function qo(t,n){if(t&1&&(c(0),l(1,"dateTranslate")),t&2){let e=p(2);h(" - ",y(1,1,e.order.order_date,"shortDate")," ")}}function Bo(t,n){if(t&1&&(c(0),l(1,"dateTranslate")),t&2){let e=p(2);h(" - ",y(1,1,e.receptionDate,"shortDate")," ")}}function Vo(t,n){if(t&1&&(c(0),l(1,"dateTranslate")),t&2){let e=p(2);h(" - ",y(1,1,e.receptionDate,"shortDate")," ")}}function Fo(t,n){if(t&1&&(Qe(0),c(1),l(2,"truncateText"),Je()),t&2){let e=n.ngVar;o(),h(" - ",ee(2,1,e,10,"\u2026")," ")}}function Mo(t,n){if(t&1&&(s(0,"div",7)(1,"label",8),c(2),l(3,"currency"),a(),s(4,"span",9),C(5,"i",10),c(6),a()()),t&2){let e=p(2);o(2),h(" ",y(3,2,e.order.account_statement.provisional.total_amount,e.order.currency)," "),o(4),h("\xA0",e.order.account_statement.provisional.quantity," ")}}function No(t,n){if(t&1&&(s(0,"div",7)(1,"label",8),c(2),l(3,"currency"),a(),s(4,"span",9),C(5,"i",11),c(6),a()()),t&2){let e=p(2);o(2),h(" ",y(3,2,e.order.account_statement.expenditure.total_amount,e.order.currency)," "),o(4),h("\xA0",e.order.account_statement.expenditure.quantity," ")}}function ko(t,n){if(t&1&&(s(0,"article",0)(1,"div",1)(2,"h5")(3,"a",2),c(4),a()(),Me(5),l(6,"notesFilter"),_(7,Po,2,3,"div",3),s(8,"span",4),c(9),l(10,"translate"),_(11,qo,2,4)(12,Bo,2,4)(13,Vo,2,4)(14,Fo,3,5,"ng-container",5),l(15,"getRecord"),l(16,"async"),c(17," ] "),a()(),s(18,"div",6),_(19,Mo,7,5,"div",7)(20,No,7,5,"div",7),a()()),t&2){let e,i=p();o(3),u("routerLink",T(21,nr,i.detailUrl.link)),o(),A(i.order.reference),o();let r=Ne(y(6,8,i.order.notes,T(23,nr,i.noteType.STAFF_NOTE)));o(2),f(r.length>0?7:-1),o(2),h(" [ ",v(10,12,i.order.status)," "),o(2),f((e=i.order.status)===i.orderStatus.ORDERED?11:e===i.orderStatus.RECEIVED?12:e===i.orderStatus.PARTIALLY_RECEIVED?13:-1),o(3),u("ngVar",v(16,19,qe(15,14,i.order.vendor.pid,"vendors","field","name"))),o(5),f(i.displayProvisionalAccountingData?19:-1),o(),f(i.displayExpenditureAccountingData?20:-1)}}var rr=(()=>{class t{constructor(){this.order=null,this.orderStatus=M,this.noteType=Ze}get receptionDate(){return this.record.metadata.receipts.filter(e=>e.hasOwnProperty("receipt_date")&&Array.isArray(e.receipt_date)&&e.receipt_date.length>0).map(e=>e.receipt_date[0]).shift()}get displayProvisionalAccountingData(){return this.order.account_statement.provisional.quantity>0&&this.order.status!==M.RECEIVED&&this.order.status!==M.CANCELLED}get displayExpenditureAccountingData(){return this.order.account_statement.expenditure.quantity>0}ngOnInit(){let e=E(E({},Yt),this.record.metadata);e.notes=e.notes.filter(i=>i.source.type==="acor"),this.order=e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-acquisition-order-brief-view"]],inputs:{record:"record",type:"type",detailUrl:"detailUrl"},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"ui:col-span-12","ui:lg:col-span-9"],[3,"routerLink"],[1,"ui:italic",3,"innerHTML"],[1,"ui:font-bold","ui:text-muted-color","ui:text-sm"],[4,"ngVar"],[1,"ui:col-span-12","ui:lg:col-span-3","ui:flex","ui:flex-col","ui:gap-1"],[1,"ui:flex"],[1,"ui:w-8/12","ui:text-center","ui:border-surface","ui:border","ui:p-2","ui:bg-surface-100","ui:rounded-l","ui:font-bold"],[1,"ui:w-4/12","ui:text-center","ui:border-surface","ui:border","ui:p-2","ui:bg-surface-100","ui:rounded-r","ui:text-muted-color","ui:text-right"],[1,"fa","fa-shopping-cart"],[1,"fa","fa-sign-in"]],template:function(i,r){i&1&&_(0,ko,21,25,"article",0),i&2&&f(r.order?0:-1)},dependencies:[k,Qt,te,U,ve,R,Re,An,Jt,Ln],encapsulation:2})}}return t})();var J=(()=>{class t extends Le{constructor(){super(...arguments),this.httpClient=m(rt),this.recordService=m(P),this.recordUiService=m(Xt),this._deletedOrderLineSubject$=new vt}get deletedOrderLineSubject$(){return this._deletedOrderLineSubject$.asObservable()}getOrder(e,i=0){return this.recordService.getRecord("acq_orders",e,i,Le.reroJsonheaders).pipe(x(r=>E(E({},Yt),r.metadata)))}getOrderPreview(e){let i=`/api/acq_order/${e}/acquisition_order/preview`;return this.httpClient.get(i)}sendOrder(e,i){let r=`/api/acq_order/${e}/send_order`;return this.httpClient.post(r,{emails:i}).pipe(x(d=>new Bn(d.data)))}getOrderHistory(e){let i=`/api/acq_order/${e}/history`;return this.httpClient.get(i)}getOrderLines(e,i){let r=`acq_order.pid:${e}`;return i&&(r+=` ${i}`),this.recordService.getRecords("acq_order_lines",r,1,P.MAX_REST_RESULTS_SIZE,void 0,void 0,void 0,"priority").pipe(x(d=>this.recordService.totalHits(d.hits.total)===0?[]:d.hits.hits),x(d=>d.map(S=>E(E({},Dn),S.metadata))))}deleteOrderLine(e){this.recordUiService.deleteRecord("acq_order_lines",e.pid).subscribe(i=>{i&&this._deletedOrderLineSubject$.next(e)})}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var gt={amount_adjustments:[],quantity:0,total_amount:0,receipt_lines:[],notes:[]},or={quantity:0,amount:0,notes:[]};var ai=function(t){return t.SUCCESS="success",t.FAILURE="failure",t}(ai||{}),Ye=(()=>{class t{constructor(){this.apiService=m(fe)}get model(){return{pid:null,acqOrderRef:null,libraryRef:null,organisationRef:null,receiptDate:yn.now().toISODate(),reference:null,amountAdjustments:[],notes:[],receiptLines:[]}}processBaseRecord(e){return{acq_order:{$ref:e.acqOrderRef},library:{$ref:e.libraryRef},organisation:{$ref:e.organisationRef},amount_adjustments:[],notes:[]}}processExistingRecord(e){return{pid:e.pid,$schema:e.$schema,acq_order:{$ref:this.apiService.getRefEndpoint("acq_orders",e.acq_order.pid)},library:{$ref:this.apiService.getRefEndpoint("libraries",e.library.pid)},organisation:{$ref:this.apiService.getRefEndpoint("organisation",e.organisation.pid)},reference:e.reference,amount_adjustments:e.amount_adjustments,notes:e.notes}}processAdjustments(e){let i=[];return e.amountAdjustments.forEach(r=>{let d={label:r.label,amount:r.amount,acq_account:{$ref:r.acqAccount}};i.push(d)}),i}processLines(e){let i=[];return e.receiptLines.filter(r=>r.selected===!0).forEach(r=>{i.push({acq_order_line:{$ref:r.acqOrderLineRef},quantity:r.quantity,amount:r.amount,vat_rate:r.vatRate,receipt_date:e.receiptDate})}),i}cleanData(e){return["amount_adjustments","notes"].forEach(r=>{e.hasOwnProperty(r)&&e[r].length===0&&delete e[r]}),e}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var pe=(()=>{class t{constructor(){this.apiService=m(P),this.recordUiService=m(Xt),this.httpClient=m(rt),this.translateService=m(H),this.resourceName="acq_receipts",this._defaultRecordOptions={headers:{Accept:"application/json"},sort:"receipt_date"},this._deletedReceiptSubject$=new vt,this._deletedReceiptLineSubject$=new vt}get deletedReceiptSubject$(){return this._deletedReceiptSubject$.asObservable()}get deletedReceiptLineSubject$(){return this._deletedReceiptLineSubject$.asObservable()}getReceipt(e){return this.apiService.getRecord(this.resourceName,e,1,Le.reroJsonheaders).pipe(x(i=>E(E({},gt),i.metadata)))}searchReceipts(e,i){return i=E(E({},this._defaultRecordOptions),i),this.apiService.getRecords(this.resourceName,e,1,P.MAX_REST_RESULTS_SIZE,void 0,void 0,i.headers,i.sort).pipe(x(r=>this.apiService.totalHits(r.hits.total)===0?[]:r.hits.hits),x(r=>r.map(d=>E(E({},gt),d.metadata))))}getReceiptsForOrder(e){return this.searchReceipts(`acq_order.pid:${e}`)}getReceiptLines(e){let i=`acq_receipt.pid:${e}`;return this.apiService.getRecords("acq_receipt_lines",i,1,P.MAX_REST_RESULTS_SIZE,void 0,void 0,Le.reroJsonheaders,"receipt_date").pipe(x(r=>this.apiService.totalHits(r.hits.total)===0?[]:r.hits.hits),x(r=>r.map(d=>E(E({},or),d.metadata))))}createReceipt(e){return this.apiService.create(this.resourceName,e).pipe(x(i=>E(E({},gt),i.metadata)))}createReceiptLines(e,i){let r=this.translateService.instant("Error proceeding receipt lines creation"),d=`/api/acq_receipt/${e}/lines`;return this.httpClient.post(d,i).pipe(x(S=>S.response),x(S=>{if(S===null)throw new Error(r);if(S.some(q=>q.status===ai.FAILURE)){let q=S.filter(Y=>Y.status===ai.FAILURE).map(Y=>Y.error_message);throw Error(q.join(`
`))}return{success:!0}}),We(S=>O({success:!1,messages:S.toString()})))}updateReceipt(e,i){return this.apiService.update(this.resourceName,e,i).pipe(x(r=>E(E({},gt),r.metadata)))}delete(e){this.recordUiService.deleteRecord(this.resourceName,e.pid).subscribe(i=>{i&&this._deletedReceiptSubject$.next(e)})}deleteReceiptLine(e){this.recordUiService.deleteRecord("acq_receipt_lines",e.pid).subscribe(i=>{i&&this._deletedReceiptLineSubject$.next(e)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function jo(t,n){if(t&1){let e=B();s(0,"admin-preview-email",1),D("closeDialog",function(){w(e);let r=p();return L(r.closeDialog())})("data",function(r){w(e);let d=p();return L(d.confirmOrder(r))}),Qe(1,2),s(2,"p",3),c(3,"You're about to send the order."),a(),Je(),Qe(4,4),s(5,"p",3),c(6,"Below you can find the preview message that will be sent"),a(),Je(),a()}if(t&2){let e=p();u("emails",e.suggestions.emails)("emailTypes",e.emailTypes)("mandatoryEmailTypes",e.mandatoryEmailTypes)("preview",e.response.preview)("previewPosition","bottom")("prePopulateRecipients",e.suggestions.recipients)}}var ar=(()=>{class t{constructor(){this.messageService=m(Ae),this.dynamicDialogConfig=m(vn),this.dynamicDialogRef=m(hn),this.acqOrderApiService=m(J),this.translateService=m(H),this.emailTypes=["to","cc","bcc","reply_to"],this.mandatoryEmailTypes=["to","reply_to"],this.suggestions={emails:[],recipients:[]},this.subscriptions=new z}ngOnInit(){this.order=this.dynamicDialogConfig.data.order,this.subscriptions.add(this.acqOrderApiService.getOrderPreview(this.order.pid).subscribe(e=>{this.suggestions=Pn.processRecipientSuggestions(e.recipient_suggestions),this.response=e}))}ngOnDestroy(){this.subscriptions.unsubscribe()}confirmOrder(e){this.acqOrderApiService.sendOrder(this.order.pid,e).subscribe({next:i=>{i.notification_sent?this.messageService.add({severity:"success",summary:this.translateService.instant("Order sent"),detail:this.translateService.instant("order has been sent"),life:we.MESSAGE_LIFE}):this.messageService.add({severity:"warn",summary:this.translateService.instant("Order delayed"),detail:this.translateService.instant("order not yet send"),life:we.MESSAGE_LIFE}),this.acqOrderApiService.getOrder(this.order.pid,1).subscribe(r=>this.closeDialog(r))},error:i=>{this.messageService.add({severity:"error",summary:this.translateService.instant("Error when placing an order !"),detail:i.error.message,sticky:!0,closable:!0})}})}closeDialog(e){this.dynamicDialogRef.close(e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-order-email-form"]],inputs:{order:"order"},standalone:!1,decls:1,vars:1,consts:[[3,"emails","emailTypes","mandatoryEmailTypes","preview","previewPosition","prePopulateRecipients"],[3,"closeDialog","data","emails","emailTypes","mandatoryEmailTypes","preview","previewPosition","prePopulateRecipients"],["headerMessage",""],["translate",""],["previewBottomMessage",""]],template:function(i,r){i&1&&_(0,jo,7,6,"admin-preview-email",0),i&2&&f(r.response?0:-1)},dependencies:[qn,I],encapsulation:2})}}return t})();function $o(t,n){if(t&1&&(s(0,"dt",1),c(1),a(),C(2,"dd",2),l(3,"nl2br")),t&2){let e=n.$implicit;o(),h(" ",e.type," "),o(),u("innerHTML",v(3,2,e.content),ue)}}var ze=(()=>{class t{constructor(){this.notes=Ve()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-notes"]],inputs:{notes:[1,"notes"]},standalone:!1,decls:3,vars:0,consts:[[1,"metadata"],["translate",""],[3,"innerHTML"]],template:function(i,r){i&1&&(s(0,"dl",0),j(1,$o,4,4,null,null,le),a()),i&2&&(o(),$(r.notes()))},dependencies:[I,Re],encapsulation:2})}}return t})();var Go=["*"],Uo=({dt:t})=>`
.p-overlaybadge {
    position: relative;
}

.p-overlaybadge .p-badge {
    position: absolute;
    top: 0;
    right: 0;
    transform: translate(50%, -50%);
    transform-origin: 100% 0;
    margin: 0;
    outline-width: ${t("overlaybadge.outline.width")};
    outline-style: solid;
    outline-color: ${t("overlaybadge.outline.color")};
}
`,Ho={root:"p-overlaybadge"},sr=(()=>{class t extends ji{name="overlaybadge";theme=Uo;classes=Ho;static \u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})();static \u0275prov=N({token:t,factory:t.\u0275fac})}return t})(),yt=(()=>{class t extends $i{styleClass;style;badgeSize;severity;value;badgeDisabled=!1;set size(e){this._size=e,!this.badgeSize&&this.size&&console.log("size property is deprecated and will removed in v18, use badgeSize instead.")}get size(){return this._size}_size;_componentStyle=m(sr);constructor(){super()}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=g({type:t,selectors:[["p-overlayBadge"],["p-overlay-badge"],["p-overlaybadge"]],inputs:{styleClass:"styleClass",style:"style",badgeSize:"badgeSize",severity:"severity",value:"value",badgeDisabled:[2,"badgeDisabled","badgeDisabled",Oi],size:"size"},features:[wi([sr]),Se],ngContentSelectors:Go,decls:3,vars:7,consts:[[1,"p-overlaybadge"],[3,"styleClass","badgeSize","severity","value","badgeDisabled"]],template:function(i,r){i&1&&(At(),s(0,"div",0),Tt(1),C(2,"p-badge",1),a()),i&2&&(o(2),Ei(r.style),u("styleClass",r.styleClass)("badgeSize",r.badgeSize)("severity",r.severity)("value",r.value)("badgeDisabled",r.badgeDisabled))},dependencies:[Dt,Xi,at,Mt],encapsulation:2,changeDetection:0})}return t})(),pr=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=it({type:t});static \u0275inj=et({imports:[yt,Mt,Mt]})}return t})();var _t=(()=>{class t{transform(e){switch(e.type){case Ze.STAFF_NOTE:return"info";case Ze.VENDOR_NOTE:return"warning";case Ze.RECEIPT_NOTE:return"primary";default:return"secondary"}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ye({name:"noteBadgeColor",type:t,pure:!0,standalone:!1})}}return t})();var zo=(t,n,e,i,r,d,S)=>({"fa-envelope-open-o":t,"fa-envelope-o":n,"ui:text-muted-color":e,"fa-sign-in":i,"text-success":r,"text-warning":d,"fa-window-close-o text-error":S}),Wo=t=>["/acquisition","records","acq_order_lines","edit",t];function Qo(t,n){t&1&&C(0,"shared-document-brief-view",8),t&2&&u("record",n.metadata)}function Jo(t,n){if(t&1&&(C(0,"i",23),l(1,"noteBadgeColor"),l(2,"translate")),t&2){let e=n.$implicit;bt("fa fa-circle fa-bullet text-",v(1,4,e),""),u("title",v(2,6,e.type))}}function Xo(t,n){if(t&1&&(s(0,"div",10),j(1,Jo,3,8,"i",22,le),a()),t&2){let e=p(2);o(),$(e.orderLine.notes)}}function Zo(t,n){if(t&1&&(s(0,"div",7)(1,"p-overlaybadge",24),C(2,"i",25),a()()),t&2){let e=p(2);o(),u("value",e.orderLine.priority)("severity",e.severity())}}function Yo(t,n){if(t&1&&(s(0,"dt",14),c(1,"priority"),a(),s(2,"dd"),c(3),a()),t&2){let e=p(2);o(3),A(e.orderLine.priority)}}function Ko(t,n){if(t&1&&(c(0),l(1,"currency")),t&2){let e=p(2);h(" - ",ee(1,1,e.orderLine.discount_amount,e.order.currency,"symbol")," ")}}function ea(t,n){if(t&1&&(C(0,"shared-action-button",20),l(1,"translate")),t&2){let e=p(2);u("title",v(1,2,"Edit"))("routerLink",T(4,Wo,e.orderLine.pid))}}function ta(t,n){if(t&1){let e=B();s(0,"shared-action-button",26),l(1,"translate"),D("btnClick",function(){w(e);let r=p(2);return L(r.deleteOrderLine())}),a()}if(t&2){let e=p(2);u("title",v(1,3,"Delete"))("disabled",!e.recordPermissions.delete.can)("message",e.deleteInfoMessage)}}function ia(t,n){if(t&1){let e=B();s(0,"div",0)(1,"div",2)(2,"shared-open-close-button",3),D("status",function(r){w(e);let d=p();return L(d.isCollapsed=r)}),a(),C(3,"i",4),l(4,"translate"),s(5,"div",5)(6,"div",6)(7,"div",7),_(8,Qo,1,1,"shared-document-brief-view",8),l(9,"getRecord"),l(10,"async"),a(),s(11,"div",9),_(12,Xo,3,0,"div",10)(13,Zo,3,2,"div",7),a()(),s(14,"div",11),c(15),a(),s(16,"div",12)(17,"dl",13)(18,"dt",14),c(19,"Account"),a(),s(20,"dd"),c(21),s(22,"span"),c(23),a()(),s(24,"dt",14),c(25,"Status"),a(),s(26,"dd"),c(27),l(28,"translate"),a(),_(29,Yo,4,1),a(),C(30,"admin-notes",15),a()()(),s(31,"div",16)(32,"div",17),c(33),l(34,"currency"),a(),s(35,"div",18),c(36),l(37,"currency"),_(38,Ko,2,5),a()(),s(39,"div",19),_(40,ea,2,6,"shared-action-button",20)(41,ta,2,5,"shared-action-button",21),a()()}if(t&2){let e,i=p();o(3),Ri("title",v(4,19,i.orderLine.status)),u("ngClass",Li(36,zo,i.orderLine.status===i.orderLineStatus.APPROVED,i.orderLine.status===i.orderLineStatus.ORDERED,i.orderLine.status===i.orderLineStatus.APPROVED||i.orderLine.status===i.orderLineStatus.ORDERED,i.orderLine.status===i.orderLineStatus.RECEIVED||i.orderLine.status===i.orderLineStatus.PARTIALLY_RECEIVED,i.orderLine.status===i.orderLineStatus.RECEIVED,i.orderLine.status===i.orderLineStatus.PARTIALLY_RECEIVED,i.orderLine.status===i.orderLineStatus.CANCELLED)),o(5),f((e=v(10,24,y(9,21,i.orderLine.document.pid,"documents")))?8:-1,e),o(4),f(i.orderLine.notes.length>0?12:-1),o(),f(i.orderLine.priority>0?13:-1),o(),u("hidden",!i.isCollapsed),o(),A(i.account.metadata.number),o(),u("hidden",i.isCollapsed),o(5),h(" ",i.account.metadata.name," "),o(2),A(i.account.metadata.number),o(4),A(v(28,26,i.orderLine.status)),o(2),f(i.orderLine.priority>0?29:-1),o(),u("notes",i.orderLine.notes),o(3),A(ee(34,28,i.orderLine.total_amount,i.order.currency,"symbol")),o(3),ge(" ",i.orderLine.quantity," x ",ee(37,32,i.orderLine.amount,i.order.currency,"symbol")," "),o(2),f(i.orderLine.discount_amount>0?38:-1),o(2),f(!(i.recordPermissions==null||i.recordPermissions.update==null)&&i.recordPermissions.update.can?40:-1),o(),f(i.recordPermissions?41:-1)}}function na(t,n){t&1&&(s(0,"div",1),C(1,"i",27),c(2),l(3,"translate"),a()),t&2&&(o(2),h("\xA0",v(3,1,"Loading in progress\u2026")," "))}var dr=(()=>{class t{constructor(){this.recordPermissionService=m(he),this.recordService=m(P),this.acqOrderApiService=m(J),this.permissionValidator=m(De),this.isCollapsed=!0,this.orderLineStatus=Xe,this.subscriptions=new z}get deleteInfoMessage(){return this.recordPermissions.delete.can?null:this.recordPermissionService.generateTooltipMessage(this.recordPermissions.delete.reasons,"delete")}ngOnInit(){let e=this.recordService.getRecord("acq_accounts",this.orderLine.acq_account.pid),i=this.recordPermissionService.getPermission("acq_order_lines",this.orderLine.pid).pipe(x(r=>this.permissionValidator.validate(r,this.order.library.pid)));Be([i,e]).subscribe(([r,d])=>{this.recordPermissions=r,this.account=d})}ngOnDestroy(){this.subscriptions.unsubscribe()}deleteOrderLine(){this.acqOrderApiService.deleteOrderLine(this.orderLine)}severity(){switch(this.orderLine.priority){case 2:return"primary";case 3:return"info";case 4:return"warn";case 5:return"danger";default:return"success"}}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-order-line"]],inputs:{orderLine:"orderLine",order:"order"},standalone:!1,decls:2,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:mt-2","ui:border-t","ui:border-b","ui:border-surface","ui:ui:rounded-md"],[1,"ui:my-3"],[1,"ui:col-span-8","ui:flex","ui:gap-4","ui:py-2","ui:pl-2","ui:border-l","ui:border-surface"],[3,"status"],[1,"fa","ui:mt-1",3,"title","ngClass"],[1,"ui:flex","ui:items-start","ui:flex-col","ui:w-full"],[1,"ui:flex","ui:w-full","ui:justify-between"],[1,"ui:flex"],[3,"record"],[1,"ui:flex","ui:pt-2","ui:gap-2"],[1,"ui:flex","ui:gap-1"],[3,"hidden"],[1,"ui:mt-2",3,"hidden"],[1,"metadata"],["translate",""],[3,"notes"],[1,"ui:col-span-2","ui:flex","ui:items-end","ui:gap-2","ui:flex-col","ui:border-x","ui:border-surface","ui:py-2","ui:px-2"],[1,"ui:text-xl","ui:font-bold"],[1,"ui:text-muted-color","ui:text-sm"],[1,"ui:col-span-2","ui:flex","ui:gap-1","ui:justify-end","ui:py-2","ui:pr-2","ui:border-r","ui:border-surface"],["icon","fa fa-pencil",3,"title","routerLink"],["icon","fa fa-trash","severity","danger",3,"title","disabled","message"],[3,"class","title"],[3,"title"],[3,"value","severity"],[1,"fa","fa-tachometer",2,"font-size","1.2rem"],["icon","fa fa-trash","severity","danger",3,"btnClick","title","disabled","message"],[1,"fa","fa-spinner","ui:animate-spin"]],template:function(i,r){i&1&&_(0,ia,42,44,"div",0)(1,na,4,3,"div",1),i&2&&f(r.orderLine&&r.account?0:1)},dependencies:[k,je,I,lt,dt,Zt,yt,ze,te,U,ve,R,_t],encapsulation:2})}}return t})();var oa=()=>[I,dr],aa=(t,n)=>n.pid;function sa(t,n){if(t&1&&(s(0,"div",1),C(1,"admin-order-line",2),a()),t&2){let e=n.$implicit,i=p(3);o(),u("orderLine",e)("order",i.order)}}function ca(t,n){if(t&1&&j(0,sa,2,2,"div",1,aa),t&2){let e=p(2);$(e.orderLines)}}function pa(t,n){t&1&&(s(0,"div",0),c(1,"No order lines"),a())}function la(t,n){if(t&1&&_(0,ca,2,0)(1,pa,2,0,"div",0),t&2){let e=p();f(e.orderLines.length>0?0:1)}}function da(t,n){t&1&&(s(0,"div",3),C(1,"i",4),c(2),l(3,"translate"),a()),t&2&&(o(2),h("\xA0",v(3,1,"Loading in progress\u2026")," "))}var mr=(()=>{class t{constructor(){this.acqOrderApiService=m(J),this.userService=m(Oe),this.orderLines=void 0,this.subscriptions=new z}ngOnInit(){this.loadOrderLines(),this.subscriptions.add(this.acqOrderApiService.deletedOrderLineSubject$.subscribe(e=>this.orderLines=this.orderLines.filter(i=>i.pid!==e.pid)))}canAdd(){return!this.order.is_current_budget||this.userService.user.currentLibrary!==this.order.library.pid?!1:[M.PENDING,M.CANCELLED].some(e=>e==this.order.status)}ngOnChanges(e){e.hasOwnProperty("order")&&this.loadOrderLines()}ngOnDestroy(){this.subscriptions.unsubscribe()}loadOrderLines(){this.acqOrderApiService.getOrderLines(this.order.pid).subscribe(e=>this.orderLines=e)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-order-lines"]],inputs:{order:"order"},standalone:!1,features:[tt],decls:4,vars:1,consts:[["translate","",1,"ui:my-3","ui:mx-4"],[1,"ui:odd:bg-surface-50"],[3,"orderLine","order"],[1,"ui:my-3","ui:mx-4"],[1,"fa","fa-spinner","ui:animate-spin"]],template:function(i,r){i&1&&(_(0,la,2,1)(1,da,4,3),bi(2,0,oa,null,1)),i&2&&(o(2),Ai(r.orderLines))},dependencies:[R],encapsulation:2})}}return t})();var ua=[[["","notes",""]]],fa=["[notes]"],ur=(t,n,e)=>({quantity:t,total:n,label:e}),_a=t=>["/acquisition","records","vendors","detail",t];function va(t,n){if(t&1&&(s(0,"li"),C(1,"p-tag",8),l(2,"translate"),c(3),a()),t&2){let e=n.$implicit;o(),u("value",v(2,2,e.type)),o(2),h("\xA0",e.content," ")}}function ha(t,n){if(t&1&&(s(0,"ul"),j(1,va,4,4,"li",null,le),a()),t&2){p(3);let e=be(0);o(),$(e.metadata.notes)}}function Ca(t,n){if(t&1&&(s(0,"dt",4),c(1,"Vendor"),a(),s(2,"dd")(3,"a",7),c(4),a(),_(5,ha,3,0,"ul"),a()),t&2){p(2);let e=be(0);o(3),u("routerLink",T(3,_a,e.metadata.pid)),o(),A(e.metadata.name),o(),f(e.metadata.notes?5:-1)}}function xa(t,n){if(t&1&&(s(0,"dt",4),c(1,"Order date"),a(),s(2,"dd"),c(3),l(4,"dateTranslate"),a()),t&2){let e=p(2);o(3),A(y(4,1,e.order.order_date,"shortDate"))}}function ga(t,n){if(t&1&&(Fe(0,6),l(1,"translate")),t&2){let e=p(2),i=se(5);u("ngTemplateOutlet",i)("ngTemplateOutletContext",Pe(4,ur,e.order.account_statement.expenditure.quantity,e.order.account_statement.expenditure.total_amount,v(1,2,"Received")))}}function ya(t,n){if(t&1&&(s(0,"section",1)(1,"div",2)(2,"dl",3),_(3,Ca,6,5),s(4,"dt",4),c(5,"Order status"),a(),s(6,"dd"),c(7),l(8,"translate"),a(),_(9,xa,5,4),Tt(10),a()(),s(11,"div",5),Fe(12,6),l(13,"translate"),_(14,ga,2,8,"ng-container",6),a()()),t&2){let e=p(),i=se(5),r=be(0);o(3),f(r?3:-1),o(4),A(v(8,6,e.order.status)),o(2),f(e.order.order_date?9:-1),o(3),u("ngTemplateOutlet",i)("ngTemplateOutletContext",Pe(10,ur,e.order.account_statement.provisional.quantity,e.order.account_statement.provisional.total_amount,v(13,8,"Ordered"))),o(2),f(e.order.account_statement.expenditure.quantity>0?14:-1)}}function Sa(t,n){if(t&1&&(s(0,"div",9)(1,"div",10),C(2,"i",11),c(3),a(),s(4,"div",12)(5,"div",13),c(6),l(7,"currency"),a(),s(8,"div",14),c(9),a()()()),t&2){let e=n.quantity,i=n.total,r=n.label,d=p();o(3),h("\xA0",e," "),o(3),h(" ",ee(7,3,i,d.order.currency,"symbol")," "),o(3),A(r)}}var fr=(()=>{class t{constructor(){this.acqOrderApiService=m(J),this.acqReceiptApiService=m(pe),this.acqOrderStatus=M,this.subscriptions=new z}ngOnInit(){this.subscriptions.add(this.acqOrderApiService.deletedOrderLineSubject$.subscribe(e=>{e.status!==Xe.CANCELLED&&(this.order.account_statement.provisional.total_amount-=e.total_amount,this.order.account_statement.provisional.quantity-=e.quantity)})),this.subscriptions.add(this.acqReceiptApiService.deletedReceiptSubject$.subscribe(e=>{this.order.account_statement.expenditure.quantity-=e.quantity}))}ngOnDestroy(){this.subscriptions.unsubscribe()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-order-summary"]],inputs:{order:"order"},standalone:!1,ngContentSelectors:fa,decls:6,vars:7,consts:[["totalAmount",""],[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"ui:md:col-span-8","ui:px-3"],[1,"metadata"],["translate",""],[1,"ui:md:col-span-4","ui:flex","ui:flex-col","ui:gap-2"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"routerLink"],["severity","secondary",3,"value"],[1,"ui:bg-surface-50","ui:py-4","ui:border","ui:rounded-border","ui:border-surface","ui:relative"],[1,"ui:absolute","ui:bg-surface-200","ui:text-muted-color","ui:rounded-l-md","ui:rounded-r-md","ui:border-l","ui:border-b","ui:border-surface","ui:py-2","ui:px-6","ui:top-0","ui:right-0"],[1,"fa","fa-shopping-cart"],[1,"ui:flex","ui:flex-wrap","ui:text-center"],[1,"ui:w-full","ui:text-2xl","ui:font-bold"],[1,"ui:w-full","ui:text-sm","ui:text-muted-color"]],template:function(i,r){i&1&&(At(ua),Me(0),l(1,"getRecord"),l(2,"async"),_(3,ya,15,14,"section",1)(4,Sa,10,7,"ng-template",null,0,V)),i&2&&(Ne(v(2,4,y(1,1,r.order.vendor.pid,"vendors"))),o(3),f(r.order?3:-1))},dependencies:[k,Ot,I,$e,te,U,ve,R,Jt],encapsulation:2})}}return t})();var _r=(()=>{class t{transform(e){let i=e.vat_rate!==void 0?1+e.vat_rate/100:1;return e.quantity*e.amount*i}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ye({name:"receiptLineTotalAmount",type:t,pure:!0,standalone:!1})}}return t})();var Ta=t=>["/acquisition","records","acq_receipt_lines","edit",t];function Ea(t,n){t&1&&C(0,"shared-document-brief-view",2),t&2&&u("record",n.metadata)}function Ra(t,n){t&1&&(s(0,"span",3),c(1),a()),t&2&&(o(),h("[",n.metadata.number,"]"))}function wa(t,n){if(t&1&&c(0),t&2){let e=p(2);h(" + ",e.line().vat_rate,"% ")}}function La(t,n){if(t&1&&(C(0,"shared-action-button",10),l(1,"translate")),t&2){let e=p(3);oe("btn-outline-primary mr-1"),u("title",v(1,4,"Edit"))("routerLink",T(6,Ta,e.line().pid))}}function Oa(t,n){if(t&1){let e=B();s(0,"div",7),_(1,La,2,8,"shared-action-button",8),s(2,"shared-action-button",9),l(3,"translate"),D("btnClick",function(){w(e);let r=p(2);return L(r.delete())}),a()()}if(t&2){let e,i=p(2);o(),f((e=i.permissions().update)!=null&&e.can?1:-1),o(),oe("btn-outline-danger"),u("title",v(3,6,"Delete"))("message",i.deleteInfoMessage)("disabled",!i.permissions().delete.can)}}function Da(t,n){if(t&1&&(s(0,"div",0)(1,"div",1)(2,"strong"),c(3),a(),c(4,"\xA0x "),s(5,"div"),_(6,Ea,1,1,"shared-document-brief-view",2),l(7,"getRecord"),l(8,"async"),_(9,Ra,2,1,"span",3),l(10,"getRecord"),l(11,"async"),a()(),s(12,"div",4)(13,"div",5),c(14),l(15,"receiptLineTotalAmount"),l(16,"currency"),a(),s(17,"div",6),c(18),l(19,"currency"),_(20,wa,1,1),a()(),_(21,Oa,4,8,"div",7),a()),t&2){let e,i,r=p();o(3),A(r.line().quantity),o(3),f((e=v(8,11,y(7,8,r.line().document.pid,"documents")))?6:-1,e),o(3),f((i=v(11,16,y(10,13,r.line().acq_account.pid,"acq_accounts")))?9:-1,i),o(5),A(ee(16,20,v(15,18,r.line()),r.receipt().currency,"symbol")),o(4),ge(" ",r.line().quantity," x ",ee(19,24,r.line().amount,r.receipt().currency,"symbol")," "),o(2),f(r.line().vat_rate?20:-1),o(),f(r.permissions()?21:-1)}}var vr=(()=>{class t{constructor(){this.recordPermissionService=m(he),this.currentLibraryPermissionValidator=m(De),this.acqReceiptApiService=m(pe),this.line=Ve(),this.receipt=Ve(),this.allowActions=Ve(),this.permissions=bn(Sn(this.line).pipe(K(()=>this.updatePermissions())))}get deleteInfoMessage(){if(this.permissions()==null)return null;if(!this.permissions().delete?.can)return this.recordPermissionService.generateTooltipMessage(this.permissions().delete?.reasons,"delete")}updatePermissions(){return console.log("line",this.line()),this.line()==null||!this.allowActions()?O(null):this.recordPermissionService.getPermission("acq_receipt_lines",this.line().pid).pipe(x(e=>(this.currentLibraryPermissionValidator.validate(e,this.receipt().library.pid),e)))}delete(){this.acqReceiptApiService.deleteReceiptLine(this.line())}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-receipt-line"]],inputs:{line:[1,"line"],receipt:[1,"receipt"],allowActions:[1,"allowActions"]},standalone:!1,decls:1,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4"],[1,"ui:col-span-7","ui:flex","ui:gap-2","ui:flex-wrap"],[3,"record"],[1,"ui:font-bold","ui:text-muted-color","ui:text-sm"],[1,"ui:col-span-3","ui:flex","ui:flex-col","ui:gap-2","ui:items-end"],[1,"ui:font-bold"],[1,"ui:text-sm","ui:text-muted-color"],[1,"ui:col-span-2","ui:flex","ui:gap-1","ui:justify-end"],["icon","fa fa-edit",3,"title","class","routerLink"],["severity","danger","icon","fa fa-trash",3,"btnClick","title","message","disabled"],["icon","fa fa-edit",3,"title","routerLink"]],template:function(i,r){i&1&&_(0,Da,22,28,"div",0),i&2&&f(r.line()?0:-1)},dependencies:[k,lt,dt,te,U,ve,R,_r],encapsulation:2})}}return t})();var hr=(()=>{class t{transform(e){let i=new Set(e.receipt_lines.map(r=>r.receipt_date));return i.size>0?[...i].sort().reverse():[]}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275pipe=ye({name:"receptionDates",type:t,pure:!0,standalone:!1})}}return t})();var qa=()=>({"=1":"item",other:"items"}),Ba=t=>["/","acquisition","records","acq_orders","receive",t],Va=t=>({receipt:t}),Fa=(t,n)=>n.pid;function Ma(t,n){if(t&1){let e=B();s(0,"shared-open-close-button",8),D("status",function(r){w(e);let d=p(2);return L(d.isCollapsed=r)}),a()}}function Na(t,n){if(t&1&&(s(0,"span",9),c(1),a()),t&2){let e=p();o(),h(" (",e.join(", "),") ")}}function ka(t,n){t&1&&_(0,Na,2,1,"span",9),t&2&&f(n.length>0?0:-1)}function ja(t,n){if(t&1&&(C(0,"i",11),l(1,"noteBadgeColor"),l(2,"translate")),t&2){let e=n.$implicit;bt("fa fa-circle text-",v(1,4,e),""),u("title",v(2,6,e.type))}}function $a(t,n){if(t&1&&(s(0,"span",4),j(1,ja,3,8,"i",10,le),a()),t&2){let e=p(2);o(),$(e.receipt.notes)}}function Ga(t,n){if(t&1&&(s(0,"p-tag",5),C(1,"i",12),c(2),l(3,"i18nPlural"),l(4,"translate"),a()),t&2){let e=p(2);o(2),ge("\xA0 ",e.receipt.quantity," ",v(4,5,y(3,2,e.receipt.quantity,de(7,qa)))," ")}}function Ua(t,n){if(t&1&&(C(0,"shared-action-button",13),l(1,"translate")),t&2){let e=p(3);u("title",v(1,3,"Edit"))("routerLink",T(5,Ba,e.receipt.acq_order.pid))("queryParams",T(7,Va,e.receipt.pid))}}function Ha(t,n){if(t&1){let e=B();s(0,"div",7),_(1,Ua,2,9,"shared-action-button",13),s(2,"shared-action-button",14),l(3,"translate"),D("btnClick",function(){w(e);let r=p(2);return L(r.deleteReceipt())}),a()()}if(t&2){let e=p(2);o(),f(e.recordPermissions.update!=null&&e.recordPermissions.update.can?1:-1),o(),u("title",v(3,4,"Delete"))("disabled",!e.recordPermissions.delete.can)("message",e.deleteInfoMessage)}}function za(t,n){if(t&1&&C(0,"admin-receipt-line",16),t&2){let e=n.$implicit,i=p(3);u("line",e)("receipt",i.receipt)("allowActions",i.allowActions)}}function Wa(t,n){if(t&1&&(s(0,"div",17),C(1,"i",18),c(2),a(),s(3,"div",19)(4,"div"),c(5),l(6,"currency"),a()()),t&2){let e=n.$implicit,i=p(3);o(2),h(" ",e.label," "),o(3),h(" ",ee(6,2,e.amount,i.receipt.currency,"symbol")," ")}}function Qa(t,n){if(t&1&&(s(0,"div",17),C(1,"admin-notes",20),a()),t&2){let e=p(3);o(),u("notes",e.receipt.notes)}}function Ja(t,n){if(t&1&&(s(0,"div",15),j(1,za,1,3,"admin-receipt-line",16,Fa),a(),j(3,Wa,7,6,null,null,le),_(5,Qa,2,1,"div",17)),t&2){let e=p(2);o(),$(e.receipt.receipt_lines),o(2),$(e.receipt.amount_adjustments),o(2),f(e.receipt.notes.length>0?5:-1)}}function Xa(t,n){if(t&1&&(s(0,"div",0)(1,"div",2),_(2,Ma,1,0,"shared-open-close-button"),s(3,"div",3)(4,"label"),c(5),_(6,ka,1,1),l(7,"receptionDates"),a(),_(8,$a,3,0,"span",4),a(),_(9,Ga,5,8,"p-tag",5),a(),s(10,"div",6),c(11),l(12,"currency"),a(),_(13,Ha,4,6,"div",7)(14,Ja,6,1),a()),t&2){let e,i=p();o(2),f(i.collapsable?2:-1),o(3),h(" ",i.receipt.reference," "),o(),f((e=v(7,10,i.receipt))?6:-1,e),o(2),f(i.receipt.notes.length>0&&i.isCollapsed?8:-1),o(),f(i.receipt.quantity?9:-1),o(),Ti("ui:border-right-1",i.recordPermissions&&i.allowActions),o(),h(" ",ee(12,12,i.receipt.total_amount,i.receipt.currency,"symbol")," "),o(2),f(i.recordPermissions&&i.allowActions?13:-1),o(),f(!i.collapsable||!i.isCollapsed?14:-1)}}function Za(t,n){t&1&&(s(0,"div",1),C(1,"i",21),c(2),l(3,"translate"),a()),t&2&&(o(2),h("\xA0",v(3,1,"Loading in progress\u2026")," "))}var Cr=(()=>{class t{constructor(){this.recordPermissionService=m(he),this.acqReceiptApiService=m(pe),this.acqOrderApiService=m(J),this.currentLibraryPermissionValidator=m(De),this.receivedOrderPermissionValidator=m(Kt),this.allowActions=!1,this.collapsable=!0,this.isCollapsed=!0,this.receipt=void 0,this.validStatuses=[M.ORDERED,M.PARTIALLY_RECEIVED],this.subscriptions=new z}get deleteInfoMessage(){return this.recordPermissions.delete.can?"":this.recordPermissionService.generateTooltipMessage(this.recordPermissions.delete.reasons,"delete")}ngOnInit(){this.subscriptions.add(this.acqReceiptApiService.deletedReceiptLineSubject$.subscribe(e=>{e.acq_receipt.pid===this.receiptPid&&this.loadReceipt()}))}ngOnChanges(e){e.hasOwnProperty("receiptPid")&&e.receiptPid&&this.loadReceipt(),e.hasOwnProperty("collapsable")&&e.collapsable!=null&&!this.collapsable&&(this.isCollapsed=!1)}ngOnDestroy(){this.subscriptions.unsubscribe()}loadReceipt(){this.acqReceiptApiService.getReceipt(this.receiptPid).pipe(G(e=>{e.receipt_lines=e.receipt_lines.map(i=>hi(E({},i),{acq_receipt:{pid:this.receiptPid}}))}),G(e=>this.receipt=e),K(()=>this.allowActions?this.updatePermissions():O(null))).subscribe()}updatePermissions(){let e=this.acqOrderApiService.getOrder(this.receipt.acq_order.pid),i=this.recordPermissionService.getPermission("acq_receipts",this.receipt.pid);return Be([e,i]).pipe(G(([r,d])=>{this.currentLibraryPermissionValidator.validate(d,this.receipt.library.pid),this.recordPermissions=this.receivedOrderPermissionValidator.validate(d,r)}))}deleteReceipt(){this.acqReceiptApiService.delete(this.receipt)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-receipt-summary"]],inputs:{receiptPid:"receiptPid",allowActions:"allowActions",collapsable:"collapsable",isCollapsed:"isCollapsed"},standalone:!1,features:[tt],decls:2,vars:1,consts:[[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:p-4"],[1,"ui:my-3"],[1,"ui:col-span-7","ui:flex","ui:flex-wrap","ui:gap-2","ui:items-center"],[1,"ui:grow","ui:flex","ui:gap-2","ui:items-center"],[1,"ui:flex","ui:gap-1"],["severity","info"],[1,"ui:col-span-3","ui:flex","ui:font-bold","ui:justify-end","ui:items-center"],[1,"ui:col-span-2","ui:flex","ui:flex-wrap","ui:gap-1","ui:justify-end"],[3,"status"],[1,"ui:italic","ui:text-sm"],["aria-hidden","true",3,"class","title"],["aria-hidden","true",3,"title"],[1,"fa","fa-sign-in"],["icon","fa fa-edit","severity","primary",3,"title","routerLink","queryParams"],["icon","fa fa-trash","severity","danger",3,"btnClick","title","disabled","message"],[1,"ui:col-span-12"],[3,"line","receipt","allowActions"],[1,"ui:col-start-1","ui:col-span-7"],[1,"fa","fa-long-arrow-right","ui:mr-4"],[1,"ui:col-span-3","ui:flex-col","ui:font-bold","ui:flex","ui:items-end"],[3,"notes"],[1,"fa","fa-spinner","ui:animate-spin"]],template:function(i,r){i&1&&_(0,Xa,15,16,"div",0)(1,Za,4,3,"div",1),i&2&&f(r.receipt?0:1)},dependencies:[k,lt,Zt,$e,ze,vr,U,nt,R,_t,hr],encapsulation:2})}}return t})();var Ka=()=>({"=1":"Receipt",other:"Receipts"}),es=t=>["/acquisition","records","acq_orders","receive",t],ts=t=>({order:t}),is=(t,n)=>n.pid;function ns(t,n){if(t&1&&(C(0,"span",7),l(1,"nl2br")),t&2){let e=p(2);u("innerHTML",v(1,1,e.createInfoMessage),ue)}}function rs(t,n){if(t&1&&(s(0,"div",3)(1,"span",4),c(2),l(3,"i18nPlural"),l(4,"translate"),C(5,"p-badge",5),a(),C(6,"p-button",6),l(7,"translate"),_(8,ns,2,3,"ng-template",null,1,V),a()),t&2){let e=se(9),i=p();o(2),h(" ",v(4,12,y(3,9,i.numberOfReceipt,de(16,Ka)))," "),o(3),u("value",i.numberOfReceipt),o(),u("outlined",!0)("label",v(7,14,"Add"))("routerLink",T(17,es,i.order.pid))("queryParams",T(19,ts,i.order.pid))("pTooltip",e)("disabled",!(!(i.recordPermissions==null||i.recordPermissions.create==null)&&i.recordPermissions.create.can))("tooltipDisabled",i.recordPermissions==null||i.recordPermissions.create==null?null:i.recordPermissions.create.can)}}function os(t,n){if(t&1&&(s(0,"div",9),C(1,"admin-receipt-summary",10),a()),t&2){let e=n.$implicit;o(),u("receiptPid",e.pid)("allowActions",!0)}}function as(t,n){if(t&1&&j(0,os,2,2,"div",9,is),t&2){let e=p(2);$(e.receipts)}}function ss(t,n){t&1&&(s(0,"div",8),c(1,"No receipt"),a())}function cs(t,n){if(t&1&&_(0,as,2,0)(1,ss,2,0,"div",8),t&2){let e=p();f(e.receipts.length>0?0:1)}}function ps(t,n){t&1&&(s(0,"div",2),C(1,"i",11),c(2),l(3,"translate"),a()),t&2&&(o(2),h("\xA0",v(3,1,"Loading in progress\u2026")," "))}var xr=(()=>{class t{constructor(){this.acqReceiptApiService=m(pe),this.recordPermissionService=m(he),this.currentLibraryPermissionValidator=m(De),this.receivedOrderPermissionValidator=m(Kt),this.receipts=void 0,this.subscriptions=new z}get createInfoMessage(){return this.recordPermissionService.generateTooltipMessage(this.recordPermissions.create.reasons,"create")}canAdd(){return[M.PARTIALLY_RECEIVED,M.ORDERED].some(e=>e==this.order.status)}get numberOfReceipt(){return this.receipts?this.receipts.length:0}ngOnChanges(e){e.hasOwnProperty("order")&&(this.loadPermissions(),this._loadReceipts())}ngOnDestroy(){this.subscriptions.unsubscribe()}_loadReceipts(){this.acqReceiptApiService.getReceiptsForOrder(this.order.pid).subscribe(e=>this.receipts=e)}loadPermissions(){this.subscriptions.add(this.recordPermissionService.getPermission("acq_orders",this.order.pid).pipe(x(e=>this.currentLibraryPermissionValidator.validate(e,this.order.library.pid)),x(e=>this.receivedOrderPermissionValidator.validate(e,this.order))).subscribe(e=>this.recordPermissions=e))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-receipt-list"]],inputs:{order:"order"},standalone:!1,features:[tt],decls:5,vars:1,consts:[["header",""],["tooltipContent",""],[1,"ui:my-3","ui:mx-4"],[1,"ui:w-full","ui:flex","ui:items-center","ui:justify-between","ui:gap-2"],["translate","",1,"ui:text-bold","ui:text-xl","ui:flex","ui:gap-2"],[3,"value"],["icon","fa fa-plus-square-o","size","small","tooltipPosition","top",3,"outlined","label","routerLink","queryParams","pTooltip","disabled","tooltipDisabled"],[3,"innerHTML"],["translate","",1,"ui:my-3","ui:mx-4"],[1,"ui:odd:bg-surface-50"],[3,"receiptPid","allowActions"],[1,"fa","fa-spinner","ui:animate-spin"]],template:function(i,r){i&1&&(s(0,"p-panel"),_(1,rs,10,21,"ng-template",null,0,V)(3,cs,2,1)(4,ps,4,3,"div",2),a()),i&2&&(o(3),f(r.receipts?3:4))},dependencies:[k,at,Te,st,Nt,I,Cr,nt,R,Re],encapsulation:2})}}return t})();var ms=t=>({"ui:opacity-50":t}),us=()=>["lines"],fs=()=>({"=0":"Note","=1":"Note",other:"Notes"}),_s=()=>["/acquisition","records","acq_order_lines","new"],vs=t=>({order:t}),hs=t=>["/acquisition","records","acq_orders","detail",t];function Cs(t,n){t&1&&(C(0,"p-message",7),l(1,"translate")),t&2&&u("text",v(1,1,"Fiscal year closed"))}function xs(t,n){if(t&1){let e=B();s(0,"section",19)(1,"p-button",20),l(2,"translate"),D("onClick",function(){w(e);let r=p(3);return L(r.placeOrderDialog())}),a()()}if(t&2){let e=p(3);o(),u("disabled",!e.canPlaceOrder)("label",v(2,2,"Place order"))}}function gs(t,n){if(t&1&&_(0,xs,3,4,"section",19),t&2){let e=p(2);f(e.recordPermissions&&e.recordPermissions.update.can&&e.order.status===e.acqOrderStatus.PENDING?0:-1)}}function ys(t,n){if(t&1){let e=B();s(0,"a",23),D("click",function(r){w(e);let d=p(3);return d.scrollTo(r,"notes"),L(d.notesCollapsed=!1)}),s(1,"p-tag",24),l(2,"noteBadgeColor"),c(3),l(4,"translate"),a()()}if(t&2){let e=n.$implicit;o(),u("severity",v(2,2,e)),o(2),h(" ",v(4,4,e.type)," ")}}function Ss(t,n){if(t&1&&(s(0,"dt",21),c(1,"Notes"),a(),s(2,"dd"),j(3,ys,5,6,"a",22,le),a()),t&2){let e=p(2);o(3),$(e.order.notes)}}function bs(t,n){if(t&1){let e=B();s(0,"p-button",35),l(1,"translate"),D("click",function(r){return w(e),L(r.stopPropagation())}),a()}if(t&2){let e=p(3);u("outlined",!0)("label",v(1,4,"Add"))("routerLink",de(6,_s))("queryParams",T(7,vs,e.order.pid))}}function As(t,n){if(t&1&&(C(0,"span",36),l(1,"nl2br")),t&2){let e=p(3);u("innerHTML",v(1,1,e.createInfoMessage),ue)}}function Ts(t,n){if(t&1&&(s(0,"div",15)(1,"p-accordion",25)(2,"p-accordion-panel",26)(3,"p-accordion-header")(4,"div",27)(5,"span",28),c(6,"Order lines"),a(),_(7,bs,2,9,"p-button",29),a(),_(8,As,2,3,"ng-template",null,3,V),a(),s(10,"p-accordion-content"),C(11,"admin-order-lines",9),a()(),s(12,"p-accordion-panel",30)(13,"p-accordion-header")(14,"div",31),Me(15),s(16,"span",32),c(17),l(18,"i18nPlural"),l(19,"translate"),a(),C(20,"p-badge",18),a()(),s(21,"p-accordion-content")(22,"div",33),C(23,"admin-notes",34),a()()()()()),t&2){let e=p(2);o(),u("multiple",!0)("value",de(12,us)),o(6),f(e.canAddLine?7:-1),o(4),u("order",e.order);let i=(e.order.notes==null?null:e.order.notes.length)||0;o(6),h(" ",v(19,10,y(18,7,i,de(13,fs)))," "),o(3),u("value",i),o(3),u("notes",e.order.notes)}}function Es(t,n){if(t&1&&C(0,"admin-receipt-list",9),t&2){let e=p(2);u("order",e.order)}}function Rs(t,n){if(t&1&&(s(0,"a",37),c(1),a()),t&2){let e=n.$implicit;u("routerLink",T(2,hs,e.pid)),o(),A(e.label)}}function ws(t,n){if(t&1&&(s(0,"small"),c(1),a()),t&2){let e=n.$implicit;o(),A(e.description)}}function Ls(t,n){if(t&1&&(s(0,"p-timeline",18),_(1,Rs,2,4,"ng-template",null,4,V)(3,ws,2,1,"ng-template",null,5,V),a()),t&2){let e=p(2);u("value",e.historyVersions)}}function Os(t,n){if(t&1){let e=B();s(0,"div",6),_(1,Cs,2,3,"p-message",7),s(2,"div",8)(3,"h1"),c(4),a(),_(5,gs,1,1),a(),s(6,"admin-order-summary",9),_(7,Ss,5,0),a(),s(8,"p-tabs",10),wt("valueChange",function(r){w(e);let d=p();return Rt(d.tabActiveIndex,r)||(d.tabActiveIndex=r),L(r)}),s(9,"p-tablist")(10,"p-tab",11),c(11,"Order"),a(),s(12,"p-tab",12),c(13,"Reception"),a(),s(14,"p-tab",13),c(15,"History"),a()(),s(16,"p-tabpanels")(17,"p-tabpanel",14,0),_(19,Ts,24,14,"div",15),a(),s(20,"p-tabpanel",16,1),_(22,Es,1,1,"admin-receipt-list",9),a(),s(23,"p-tabpanel",17,2),_(25,Ls,5,1,"p-timeline",18),a()()()()}if(t&2){let e=se(18),i=se(21),r=se(24),d=p();u("ngClass",T(11,ms,!d.order.is_current_budget)),o(),f(d.order.is_current_budget?-1:1),o(3),A(d.order.reference),o(),f(d.order!=null&&d.order.is_current_budget&&(d.order!=null&&d.order.pid)?5:-1),o(),u("order",d.order),o(),f(d.order.notes&&d.order.notes.length>0?7:-1),o(),Et("value",d.tabActiveIndex),o(4),u("disabled",d.disabledReceipts),o(7),f(e.active()?19:-1),o(3),f(i.active()?22:-1),o(3),f(r.active()?25:-1)}}var gr=(()=>{class t{constructor(){this.dialogService=m(Cn),this.scroller=m(Pi),this.recordPermissionService=m(he),this.acqOrderService=m(J),this.permissionValidator=m(De),this.translateService=m(H),this.route=m(Wt),this.location=m(Ii),this.baseHref=m(Di),this.acqReceiptApiService=m(pe),this.notesCollapsed=!0,this.acqOrderStatus=M,this.historyVersions=[],this.subscriptions=new z,this.tabActiveIndex=Si(void 0)}get canPlaceOrder(){return this.order.status===M.PENDING&&this.order.account_statement.provisional.total_amount>0}get canAddLine(){return this.order.status===M.PENDING&&this.recordPermissions?.update?.can}get disabledReceipts(){return[M.PENDING,M.CANCELLED].some(e=>e===this.order.status)}get createInfoMessage(){return this.recordPermissionService.generateTooltipMessage(this.recordPermissions.create.reasons,"create")}addTabToUrl(e){this.location.replaceState(location.pathname.replace(this.baseHref,""),`tab=${e}`)}ngOnInit(){this.tabActiveIndex.set(this.route.snapshot.queryParamMap.get("tab")||"order"),this.subscriptions.add(this.tabActiveIndex.subscribe(e=>this.addTabToUrl(e))),this.subscriptions.add(this.record$.pipe(G(e=>this.order=e.metadata),K(()=>{let e=[this.acqOrderService.getOrderHistory(this.order.pid).pipe(x(i=>this.historyVersions=i.map(r=>new In(r)))),this.recordPermissionService.getPermission("acq_orders",this.order.pid).pipe(x(i=>this.permissionValidator.validate(i,this.order.library.pid)),x(i=>this.recordPermissions=i))];return Be(e)}),K(()=>xi(this.acqReceiptApiService.deletedReceiptSubject$,this.acqReceiptApiService.deletedReceiptLineSubject$)),K(()=>this.acqOrderService.getOrder(this.order.pid,1)),G(e=>this.order=e)).subscribe())}ngOnDestroy(){this.subscriptions.unsubscribe()}scrollTo(e,i){e.preventDefault(),this.scroller.scrollToAnchor(i)}placeOrderDialog(){this.modalRef=this.dialogService.open(ar,{header:this.translateService.instant("Place order"),modal:!0,focusOnShow:!1,width:"60vw",data:{order:this.order}}),this.modalRef.onClose.subscribe(e=>{e&&this.order.pid===e.pid&&(e.vendor.$ref&&(e.vendor.pid=_e(e.vendor.$ref)),this.order=e)})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-acquisition-order-detail-view"]],inputs:{tabActiveIndex:[1,"tabActiveIndex"]},outputs:{tabActiveIndex:"tabActiveIndexChange"},standalone:!1,decls:1,vars:1,consts:[["tabOrder",""],["tabReceipt",""],["tabHistory",""],["tooltipContent",""],["opposite",""],["content",""],[3,"ngClass"],["severity","warn","showTransitionOptions","0ms",3,"text"],[1,"ui:flex","ui:gap-2","ui:justify-between","ui:flex-wrap"],[3,"order"],[1,"ui:mt-3",3,"valueChange","value"],["value","order","translate",""],["value","reception","translate","",3,"disabled"],["value","history","translate",""],["value","order"],[1,"ui:flex","ui:flex-col","ui:gap-2"],["value","reception"],["value","history"],[3,"value"],[1,"ui:flex","ui:justify-end"],["severity","primary","icon","fa fa-shopping-cart",3,"onClick","disabled","label"],["translate",""],["href",""],["href","",3,"click"],[3,"severity"],[3,"multiple","value"],["value","lines"],[1,"ui:w-full","ui:flex","ui:justify-between","ui:gap-2","ui:pr-3"],["translate","",1,"ui:text-bold","ui:text-xl"],["icon","fa fa-plus-square-o","size","small",3,"outlined","label","routerLink","queryParams"],["value","notes"],[1,"ui:w-full","ui:flex","ui:mr-2","ui:items-center"],[1,"ui:grow","ui:text-bold","ui:text-xl"],[1,"ui:mt-2"],[3,"notes"],["icon","fa fa-plus-square-o","size","small",3,"click","outlined","label","routerLink","queryParams"],[3,"innerHTML"],[3,"routerLink"]],template:function(i,r){i&1&&_(0,Os,26,13,"div",6),i&2&&f(r.order&&r.order.pid?0:-1)},dependencies:[zi,Gi,Ui,Hi,k,je,at,Te,ct,Ht,Ut,Gt,jt,$t,I,$e,Fn,ze,mr,fr,xr,nt,R,Re,_t],encapsulation:2})}}return t})();function Ds(t,n){n.map(e=>{e.fieldGroup.find(r=>r.key==="selected").formControl.setValue(t==="select")})}var ci=(()=>{class t{constructor(){this.acqOrderApiService=m(J),this.acqAccountApiService=m(Ce),this.apiService=m(fe),this.orderReceipt=m(Ye)}setModel(e){return this.model=e,this}getModel(){return this.model}getOrderRecord(){return this.orderRecord}getConfig(){return this.config}createForm(e){return this.config=this._getConfig(),this.acqOrderApiService.getOrder(e).pipe(G(i=>this.orderRecord=i),K(i=>{let r=i.library.$ref,d=_e(r);this.acqAccountApiService.getAccounts(d).subscribe(q=>{let Y=this.config.filter(Ke=>Ke.key==="amountAdjustments")[0].fieldArray.fieldGroup.filter(Ke=>Ke.key==="acqAccount")[0].props;Y.currency=i.currency,Y.options=ut(q)}),this.model.acqOrderRef=this.apiService.getRefEndpoint("acq_orders",i.pid),this.model.libraryRef=r,this.model.organisationRef=i.organisation.$ref,i.vendor.pid=_e(i.vendor.$ref);let S=`AND (NOT status:"${Xe.CANCELLED}" OR NOT status:"${Xe.RECEIVED}")`;return this.acqOrderApiService.getOrderLines(i.pid,S).pipe(x(q=>(q.forEach(Y=>{let Ke=Y.received_quantity||0;this.model.receiptLines.push({acqOrderLineRef:this.apiService.getRefEndpoint("acq_order_lines",Y.pid),selected:!1,quantity:Y.quantity-Ke,quantityMax:Y.quantity-Ke,amount:Y.amount,vatRate:0})}),!0)))}))}processForm(e,i){return i=i||this.orderReceipt.processBaseRecord(e),i.hasOwnProperty("amount_adjustments")?i.amount_adjustments.map(r=>r.acq_account={$ref:this.apiService.getRefEndpoint("acq_accounts",r.acq_account.pid)}):i.amount_adjustments=[],i.hasOwnProperty("notes")||(i.notes=[]),i.amount_adjustments=[...this.orderReceipt.processAdjustments(e)||[]],i.notes=[...e.notes||[]],e.reference&&e.reference.length>0&&(i.reference=e.reference),this.orderReceipt.cleanData(i)}_getConfig(){return[{key:"reference",type:"string",props:{label:"Reference"}},{key:"receiptDate",type:"datePicker",props:{type:"date",label:"Reception date",required:!0},expressions:{"props.disabled":"model?.receiptLines?.length < 1"}},{key:"amountAdjustments",type:"array",props:{label:"Fees, discounts and other adjustments"},fieldArray:{fieldGroupClassName:"ui:grid ui:px-4 ui:mb-3",type:"object",props:{label:"Fee, discount and other adjustment",containerCssClass:"ui:grid ui:grid-cols-12 ui:gap-2"},fieldGroup:[{key:"label",type:"input",props:{label:"Label",required:!0,minLength:3,itemCssClass:"ui:col-span-12 ui:md:col-span-6"}},{key:"amount",type:"input",defaultValue:1,props:{label:"Amount",type:"number",description:"To specify a discount, enter a negative amount",required:!0,itemCssClass:"ui:col-span-12 ui:md:col-span-3"}},{key:"acqAccount",type:"account-select",wrappers:["form-field"],props:{placeholder:"Select\u2026",label:"Account",required:!0,itemCssClass:"ui:col-span-12 ui:md:col-span-9",options:[]}}]}},{key:"notes",type:"array",props:{containerCssClass:"ui:grid ui:gap-2",label:"Notes",maxItems:1},fieldArray:{type:"object",props:{label:"Note"},fieldGroup:[{key:"type",type:"select",defaultValue:"staff_note",props:{label:"Type",alwaysHidden:!0,options:[{label:"staff_note",value:"staff_note"}]}},{key:"content",type:"textarea",props:{label:"Note",required:!0,rows:5}}]}},{key:"receiptLines",type:"receipt-lines",expressions:{"props.disabled":"model.length < 1"},props:{selectUnselect:Ds,minLength:0},fieldArray:{fieldGroupClassName:"ui:grid ui:grid-cols-12 ui:gap-4",validators:{validation:[{name:"receiveQuantityMax",options:{errorPath:"quantity"}}]},fieldGroup:[{key:"selected",type:"checkbox",className:"ui:col-span-1",wrappers:["input-no-label"],props:{hideLabel:!0,checkbox:!0,headerClassName:"ui:col-span-1"}},{key:"acqOrderLineRef",type:"order-line",wrappers:["input-no-label"],className:"ui:col-span-5",props:{headerClassName:"ui:col-span-5 ui:font-bold",label:"Order Line"}},{key:"quantityMax",type:"input",className:"ui:hidden",props:{className:"ui:hidden"}},{key:"quantity",type:"input",className:"ui:col-span-2",wrappers:["input-no-label"],props:{headerClassName:"ui:col-span-2 ui:font-bold",styleClass:"ui:w-full",type:"number",label:"Qty",required:!0,min:1,inputStep:1}},{key:"amount",type:"input",className:"ui:col-span-2",wrappers:["input-no-label"],props:{headerClassName:"ui:col-span-2 ui:font-bold",type:"number",label:"Amount",required:!0,min:0}},{key:"vatRate",type:"input",className:"ui:col-span-2",wrappers:["input-no-label"],props:{headerClassName:"ui:col-span-2 ui:font-bold",type:"number",label:"Vat Rate",min:0,max:100,addonRight:["%"]}}]}}]}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();function Is(t,n){if(t&1){let e=B();s(0,"form",1),D("ngSubmit",function(){w(e);let r=p();return L(r.onSubmit(r.model))}),s(1,"section",2)(2,"h1",3),c(3,"Receipt"),a(),s(4,"div",4)(5,"p-button",5),l(6,"translate"),D("onClick",function(){w(e);let r=p();return L(r.redirectToOrder())}),a(),C(7,"p-button",6),l(8,"translate"),a()(),C(9,"formly-form",7),a()}if(t&2){let e=p();u("formGroup",e.form),o(5),u("label",v(6,8,"Cancel")),o(2),u("disabled",!e.form.valid)("icon",e.orderSend?"fa fa-spinner fa-pulse":"fa fa-save")("label",v(8,10,"Save")),o(2),u("form",e.form)("fields",e.fields)("model",e.model)}}var Sr=(()=>{class t{constructor(){this.route=m(Wt),this.router=m(Ee),this.orderReceipt=m(Ye),this.acqReceiptApiService=m(pe),this.translateService=m(H),this.orderReceiptForm=m(ci),this.messageService=m(Ae),this.apiService=m(fe),this.orderSend=!1,this.loaded=!1,this.form=new Bi({}),this.knownDataCollapsed=!0}ngOnInit(){this.orderPid=this.route.snapshot.paramMap.get("pid"),this._generateForm()}onSubmit(e){this.orderSend=!0;let i=this.receiptRecord?this.orderReceipt.processExistingRecord(this.receiptRecord):this.orderReceipt.processBaseRecord(e);i=this.orderReceiptForm.processForm(e,i),(this.receiptRecord?this.acqReceiptApiService.updateReceipt(i.pid,i):this.acqReceiptApiService.createReceipt(i).pipe(G(d=>e.pid=d.pid))).pipe(gi(()=>this.orderSend=!1)).subscribe({next:d=>this.createLinesAndMessage(e,d),error:d=>this.messageService.add({severity:"error",summary:this.translateService.instant("Receipt"),detail:d.title,sticky:!0,closable:!0})})}_generateForm(){this.model=this.orderReceipt.model;let e=this.route.snapshot.queryParams.receipt;e&&(this.model.pid=e,this.acqReceiptApiService.getReceipt(e).subscribe(i=>{this.receiptRecord=i,this.model.reference=i.reference,this.model.notes=i.notes,i.amount_adjustments&&(this.model.amountAdjustments=i.amount_adjustments.map(r=>({label:r.label,amount:r.amount,acqAccount:this.apiService.getRefEndpoint("acq_accounts",r.acq_account.pid)})))})),this.orderReceiptForm.setModel(this.model).createForm(this.orderPid).subscribe(i=>{this.orderRecord=this.orderReceiptForm.getOrderRecord(),this.model=this.orderReceiptForm.getModel(),this.fields=this.orderReceiptForm.getConfig(),this.loaded=i})}createLinesAndMessage(e,i){let r=this.orderReceipt.processLines(e);r.length>0?this.acqReceiptApiService.createReceiptLines(e.pid,r).subscribe(d=>{d.success?this.messageService.add({severity:"success",summary:this.translateService.instant("Receipt"),detail:this.translateService.instant("Receipt operations were successful"),life:we.MESSAGE_LIFE}):this.messageService.add({severity:"error",summary:this.translateService.instant("Receipt"),detail:this.translateService.instant(d.messages),sticky:!0,closable:!0}),this.redirectToOrder()}):(this.messageService.add({severity:"success",summary:this.translateService.instant("Receipt"),detail:this.translateService.instant("Receipt operations were successful"),life:we.MESSAGE_LIFE}),this.redirectToOrder())}redirectToOrder(){this.router.navigate(["/acquisition","records","acq_orders","detail",this.orderPid],{queryParams:{tab:"reception"}})}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-order-receipt-view"]],standalone:!1,decls:1,vars:1,consts:[[1,"ui:flex","ui:flex-col","ui:gap-2",3,"formGroup"],[1,"ui:flex","ui:flex-col","ui:gap-2",3,"ngSubmit","formGroup"],[1,"ui:flex","ui:gap-2","ui:justify-between","ui:items-center"],["translate",""],[1,"ui:flex","ui:gap-1"],["outlined","","severity","danger","size","small","icon","fa fa-times",3,"onClick","label"],["type","submit","size","small",3,"disabled","icon","label"],[3,"form","fields","model"]],template:function(i,r){i&1&&_(0,Is,10,12,"form",0),i&2&&f(r.loaded?0:-1)},dependencies:[cn,Vt,qt,Ft,Te,I,R],encapsulation:2})}}return t})();var br=(()=>{class t{constructor(){this.acqOrderApiService=m(J),this.acqReceiptApiService=m(pe),this.router=m(Ee),this.userService=m(Oe)}canActivate(e){let i=e.params.pid,r=e.queryParams.receipt;return i?r?Ci([this._orderQuery(i),this._receiptQuery(r,i)]).pipe(x(([d,S])=>!d||!S?(this.router.navigate(["/errors/403"],{skipLocationChange:!0}),!1):!0)):this._orderQuery(i).pipe(x(d=>d?!0:(this.router.navigate(["/errors/403"],{skipLocationChange:!0}),!1))):(this.router.navigate(["/errors/400"],{skipLocationChange:!0}),O(!1))}_orderQuery(e){return this.acqOrderApiService.getOrder(e).pipe(x(i=>this.userService.user.currentLibrary!==_e(i.library.$ref)||!i.is_current_budget?!1:[M.ORDERED,M.PARTIALLY_RECEIVED,M.RECEIVED].some(d=>d===i.status)),We(()=>O(!1)))}_receiptQuery(e,i){return this.acqReceiptApiService.getReceipt(e).pipe(x(r=>i===r.acq_order.pid),We(()=>O(!1)))}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275prov=N({token:t,factory:t.\u0275fac,providedIn:"root"})}}return t})();var pi=class extends ce{constructor(){super(...arguments),this.name="acq_orders",this.recordType="acq_orders"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"",component:pt,canActivate:[ae],data:{permissions:[F.ACOR_ACCESS,F.ACOR_SEARCH],operator:Ue.AND}},{path:"detail/:pid",component:Ge,canActivate:[X],data:{action:Z.READ}},{path:"edit/:pid",component:ne,canActivate:[X,ri],canDeactivate:[ie],data:{action:Z.UPDATE,permissions:[F.ACOR_SEARCH]}},{path:"new",component:ne,canActivate:[ae],canDeactivate:[ie],data:{permissions:[F.ACOR_CREATE]}},{path:"receive/:pid",component:Sr,canActivate:[br]}],data:{types:[{key:this.name,label:"Orders",component:rr,detailComponent:gr,searchFilters:[this.expertSearchFilter()],canAdd:()=>O({can:this.routeToolService.permissionsService.canAccess(F.ACOR_CREATE)}),permissions:n=>this.routeToolService.permissions(n,this.recordType,!0),preCreateRecord:n=>this._addDefaultInformation(n),preUpdateRecord:n=>this._cleanRecord(n),aggregations:n=>this.routeToolService.aggregationFilter(n),aggregationsExpand:["library","order_date","status"],aggregationsOrder:["budget","library","status","account","vendor","order_date","receipt_date"],aggregationsBucketSize:10,itemHeaders:{Accept:"application/rero+json, application/json"},listHeaders:{Accept:"application/rero+json"},sortOptions:[{label:"Relevance",value:"bestmatch",defaultQuery:!0,icon:"fa fa-sort-amount-desc"},{label:"Receipt date (newest)",value:"receipt_date",icon:"fa fa-sort-amount-desc"},{label:"Reference (asc)",value:"reference_asc",icon:"fa fa-sort-alpha-asc"},{label:"Reference (desc)",value:"reference_desc",icon:"fa fa-sort-alpha-desc"},{label:"Order date (newest)",value:"order_date_new",icon:"fa fa-sort-amount-desc"},{label:"Order date (oldest)",value:"order_date_old",icon:"fa fa-sort-amount-asc"}],exportFormats:[{label:"CSV",format:"csv",endpoint:this.routeToolService.apiService.getExportEndpointByType(this.recordType),disableMaxRestResultsSize:!0}]}]}}}_addDefaultInformation(n){let e=this.routeToolService.userService.user;return n.organisation={$ref:this.routeToolService.apiService.getRefEndpoint("organisations",e.currentOrganisation)},n.library={$ref:this.routeToolService.apiService.getRefEndpoint("libraries",e.currentLibrary)},n}_cleanRecord(n){let e=["is_current_budget","status","account_statement"];return this.fieldsToRemoved(n,e)}};var li=class extends ce{constructor(){super(...arguments),this.name="acq_receipts",this.recordType="acq_receipts"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"edit/:pid",component:ne,canActivate:[X,ft],canDeactivate:[ie],data:{action:Z.UPDATE}}],data:{types:[{key:this.name,label:"Receipts",editorSettings:{longMode:!0},searchFilters:[this.expertSearchFilter()],preUpdateRecord:n=>this._cleanRecord(n)}]}}}_cleanRecord(n){let e=["total_amount","currency","quantity","receipt_lines","is_current_budget"];return this.fieldsToRemoved(n,e)}};var Ps=t=>[t];function qs(t,n){if(t&1&&c(0),t&2){let e=p(2);h(" ",e.address.street,", ")}}function Bs(t,n){if(t&1&&c(0),t&2){let e=p(2);ge(" ",e.address.postal_code," ",e.address.city," ")}}function Vs(t,n){t&1&&c(0," / ")}function Fs(t,n){if(t&1&&(_(0,Vs,1,0),c(1)),t&2){let e=p(2);f(e.address.postal_code||e.address.city?0:-1),o(),h(" ",e.address.country," ")}}function Ms(t,n){if(t&1&&_(0,qs,1,1)(1,Bs,1,2)(2,Fs,2,2),t&2){let e=p();f(e.address.street?0:-1),o(),f(e.address.postal_code||e.address.city?1:-1),o(),f(e.address.country?2:-1)}}var Ar=(()=>{class t{ngOnInit(){let e=this.record.metadata.contacts.filter(i=>i.type==="default");this.address=e.length>0?e[0]:void 0}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-vendor-brief-view"]],inputs:{record:"record",type:"type",detailUrl:"detailUrl"},standalone:!1,decls:4,vars:5,consts:[[3,"routerLink"]],template:function(i,r){i&1&&(s(0,"h5")(1,"a",0),c(2),a()(),_(3,Ms,3,3)),i&2&&(o(),u("routerLink",T(3,Ps,r.detailUrl.link)),o(),A(r.record.metadata.name),o(),f(r.address?3:-1))},dependencies:[k],encapsulation:2})}}return t})();function Ns(t,n){if(t&1&&(s(0,"dt",1),c(1,"Contact person"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().contact_person," ")}}function ks(t,n){if(t&1&&(s(0,"dt",1),c(1,"Street"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().street," ")}}function js(t,n){if(t&1&&(s(0,"dt",1),c(1,"Postal code"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().postal_code," ")}}function $s(t,n){if(t&1&&(s(0,"dt",1),c(1,"City"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().city," ")}}function Gs(t,n){if(t&1&&(s(0,"dt",1),c(1,"Country"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().country," ")}}function Us(t,n){if(t&1&&(s(0,"dt",1),c(1,"Phone"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().phone," ")}}function Hs(t,n){if(t&1&&(s(0,"dt",1),c(1,"Email"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h(" ",e.addressType().email," ")}}var Tr=(()=>{class t{constructor(){this.addressType=Ve()}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-address-type"]],inputs:{addressType:[1,"addressType"]},standalone:!1,decls:10,vars:7,consts:[[1,"metadata"],["translate",""]],template:function(i,r){i&1&&(s(0,"article")(1,"section")(2,"dl",0),_(3,Ns,4,1)(4,ks,4,1)(5,js,4,1)(6,$s,4,1)(7,Gs,4,1)(8,Us,4,1)(9,Hs,4,1),a()()()),i&2&&(o(3),f(r.addressType().contact_person?3:-1),o(),f(r.addressType().street?4:-1),o(),f(r.addressType().postal_code?5:-1),o(),f(r.addressType().city?6:-1),o(),f(r.addressType().country?7:-1),o(),f(r.addressType().phone?8:-1),o(),f(r.addressType().email?9:-1))},dependencies:[I],encapsulation:2})}}return t})();function Ws(t,n){if(t&1&&(s(0,"dt",9),c(1,"Website"),a(),s(2,"dd")(3,"a",10),c(4),a()()),t&2){let e=p();o(3),u("href",e.metadata.website,yi),o(),A(e.metadata.website)}}function Qs(t,n){if(t&1&&(s(0,"dt",9),c(1,"Communication language"),a(),s(2,"dd"),c(3),l(4,"translateLanguage"),a()),t&2){let e=p(),i=p();o(3),h(" ",y(4,1,e.metadata.communication_language,i.currentLanguage)," ")}}function Js(t,n){if(t&1&&(s(0,"dt",9),c(1,"Currency"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),A(e.metadata.currency)}}function Xs(t,n){if(t&1&&(s(0,"dt",9),c(1,"VAT rate"),a(),s(2,"dd"),c(3),a()),t&2){let e=p();o(3),h("",e.metadata.vat_rate,"%")}}function Zs(t,n){if(t&1&&(s(0,"div"),C(1,"p-tag",11),l(2,"translate"),c(3),a()),t&2){let e=n.$implicit;o(),u("value",v(2,2,e.type)),o(2),h("\xA0",e.content," ")}}function Ys(t,n){if(t&1&&(s(0,"dt",9),c(1,"Notes"),a(),s(2,"dd"),j(3,Zs,4,4,"div",null,le),a()),t&2){let e=p();o(3),$(e.metadata.notes)}}function Ks(t,n){t&1&&(s(0,"p-tab",3),c(1,"Default contact details"),a())}function ec(t,n){t&1&&(s(0,"p-tab",4),c(1,"Order contact details"),a())}function tc(t,n){t&1&&(s(0,"p-tab",5),c(1,"Serial contact details"),a())}function ic(t,n){if(t&1&&(s(0,"p-tabpanel",6),C(1,"admin-address-type",12),a()),t&2){p();let e=be(11);o(),u("addressType",e)}}function nc(t,n){if(t&1&&(s(0,"p-tabpanel",7),C(1,"admin-address-type",12),a()),t&2){p();let e=be(12);o(),u("addressType",e)}}function rc(t,n){if(t&1&&(s(0,"p-tabpanel",8),C(1,"admin-address-type",12),a()),t&2){p();let e=be(13);o(),u("addressType",e)}}function oc(t,n){if(t&1&&(s(0,"h1"),c(1),a(),s(2,"article")(3,"section",0)(4,"dl",1),_(5,Ws,5,2)(6,Qs,5,4)(7,Js,4,1)(8,Xs,4,1)(9,Ys,5,0),a()(),s(10,"section",0),Me(11)(12)(13),s(14,"p-tabs",2)(15,"p-tablist"),_(16,Ks,2,0,"p-tab",3)(17,ec,2,0,"p-tab",4)(18,tc,2,0,"p-tab",5),a(),s(19,"p-tabpanels"),_(20,ic,2,1,"p-tabpanel",6)(21,nc,2,1,"p-tabpanel",7)(22,rc,2,1,"p-tabpanel",8),a()()()()),t&2){let e=n,i=p();o(),A(e.metadata.name),o(4),f(e.metadata.website?5:-1),o(),f(e.metadata.communication_language&&e.metadata.communication_language.length>0?6:-1),o(),f(e.metadata.currency?7:-1),o(),f(e.metadata.vat_rate?8:-1),o(),f(e.metadata.notes?9:-1),o(2);let r=Ne(i.filterContact(e.metadata.contacts,"default"));o();let d=Ne(i.filterContact(e.metadata.contacts,"order"));o();let S=Ne(i.filterContact(e.metadata.contacts,"serial"));o(),u("value",i.tabSelected(e.metadata)),o(2),f(r?16:-1),o(),f(d?17:-1),o(),f(S?18:-1),o(2),f(r?20:-1),o(),f(d?21:-1),o(),f(S?22:-1)}}var Er=(()=>{class t{constructor(){this.translateService=m(H)}get currentLanguage(){return this.translateService.currentLang}filterContact(e,i){let r=e.filter(d=>d.type===i);return r.length===0?void 0:r[0]}tabSelected(e){if(e.contacts.some(i=>i.type==="default"))return"default";if(e.contacts.some(i=>i.type==="order"))return"order";if(e.contacts.some(i=>i.type==="serial"))return"serial"}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=g({type:t,selectors:[["admin-vendor-detail-view"]],standalone:!1,decls:2,vars:3,consts:[[1,"ui:mt-4"],[1,"metadata"],[3,"value"],["value","default","translate",""],["value","order","translate",""],["value","serial","translate",""],["value","default"],["value","order"],["value","serial"],["translate",""],["target","_blank",3,"href"],["severity","secondary",3,"value"],[3,"addressType"]],template:function(i,r){if(i&1&&(_(0,oc,23,16),l(1,"async")),i&2){let d;f((d=v(1,1,r.record$))?0:-1,d)}},dependencies:[Ht,Ut,Gt,jt,$t,I,$e,Tr,te,R,Tn],encapsulation:2})}}return t})();var di=class extends ce{constructor(){super(...arguments),this.name="vendors",this.recordType="vendors"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"",component:pt,canActivate:[ae],data:{permissions:[F.VNDR_ACCESS,F.VNDR_SEARCH],operator:Ue.AND}},{path:"detail/:pid",component:Ge,canActivate:[X],data:{action:Z.READ}},{path:"edit/:pid",component:ne,canActivate:[X],canDeactivate:[ie],data:{action:Z.UPDATE}},{path:"new",component:ne,canActivate:[ae],canDeactivate:[ie],data:{permissions:[F.VNDR_CREATE]}}],data:{types:[{key:this.name,label:"Vendors",component:Ar,detailComponent:Er,searchFilters:[this.expertSearchFilter()],canAdd:()=>O({can:this.routeToolService.permissionsService.canAccess(F.VNDR_CREATE)}),permissions:n=>this.routeToolService.permissions(n,this.recordType),preCreateRecord:n=>{let{user:e}=this.routeToolService.userService;return n.organisation={$ref:this.routeToolService.apiService.getRefEndpoint("organisations",e.currentOrganisation)},n},sortOptions:[{label:"Relevance",value:"bestmatch",defaultQuery:!0,icon:"fa fa-sort-amount-desc"},{label:"Name (asc)",value:"name_asc",defaultNoQuery:!0,icon:"fa fa-sort-alpha-asc"},{label:"Name (desc)",value:"name_desc",icon:"fa fa-sort-alpha-desc"}],showFacetsIfNoResults:!0}]}}}};var mi=class extends ce{constructor(){super(...arguments),this.name="acq_receipt_lines",this.recordType="acq_receipt_lines"}getConfiguration(){return{matcher:n=>this.routeMatcher(n,this.name),children:[{path:"edit/:pid",component:ne,canActivate:[X,ft],canDeactivate:[ie],data:{action:Z.UPDATE}}],data:{types:[{key:this.name,label:"Receipt lines",editorSettings:{longMode:!0},canAdd:()=>O({can:this.routeToolService.permissionsService.canAccess(F.ACRL_CREATE)}),preUpdateRecord:n=>this.fieldsToRemoved(n,["is_current_budget"]),permissions:n=>this.routeToolService.permissions(n,this.recordType,!0),redirectUrl:n=>(this.location.back(),O(null)),formFieldMap:(n,e)=>e.widget?.formlyConfig?.props?.fieldMap==="amount"?this._amountSymbol(n):n}]}}}_amountSymbol(n){let e=this.routeToolService.getInjectorToken(re);return n.props.addonLeft=[He.currencySymbol(this.routeToolService.translateService.currentLang,e.organisation.default_currency)],n}};var ac=()=>[{path:"",component:Yn,children:[{path:"",redirectTo:"accounts",pathMatch:"full"},{path:"accounts/transfer",component:Zn,canActivate:[ae],data:{permissions:[F.ACAC_TRANSFER]}},{path:"accounts",component:Jn,canActivate:[ae],data:{permissions:[F.ACAC_ACCESS,F.ACAC_SEARCH],operator:Ue.AND}},new ei().getConfiguration(),new ni().getConfiguration(),new oi().getConfiguration(),new pi().getConfiguration(),new li().getConfiguration(),new mi().getConfiguration(),new di().getConfiguration()]}],Rr=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=it({type:t})}static{this.\u0275inj=et({providers:[{provide:_n,useFactory:()=>ac(),multi:!0}],imports:[ui.forChild([]),ui]})}}return t})();var wr=t=>({account:t}),sc=(t,n,e)=>({"text-success":t,"text-muted":n,"text-warning":e});function cc(t,n){if(t&1&&(s(0,"span",6),c(1),a()),t&2){let e=p().$implicit;o(),h("[",e.number,"]")}}function pc(t,n){if(t&1&&(s(0,"div",4)(1,"span",5),c(2),_(3,cc,2,1,"span",6),a(),s(4,"div"),Fe(5,7),a()()),t&2){let e=n.$implicit,i=p(),r=se(7);o(2),h(" ",i.selectedAccount.name," "),o(),f(e.number?3:-1),o(2),u("ngTemplateOutlet",r)("ngTemplateOutletContext",T(4,wr,e))}}function lc(t,n){if(t&1&&(s(0,"span",6),c(1),a()),t&2){let e=p().$implicit;o(),h("[",e.number,"]")}}function dc(t,n){if(t&1&&(s(0,"div",8)(1,"div",5)(2,"span"),c(3),a(),_(4,lc,2,1,"span",6),a(),s(5,"div"),Fe(6,7),a()()),t&2){let e=n.$implicit;p();let i=se(7);o(2),St("padding-left",e.depth*20,"px"),o(),h(" ",e.name," "),o(),f(e.number?4:-1),o(2),u("ngTemplateOutlet",i)("ngTemplateOutletContext",T(6,wr,e))}}function mc(t,n){if(t&1&&(s(0,"span"),c(1),l(2,"currency"),a()),t&2){let e=n.account,i=p();oe(Pe(6,sc,e.remaining_balance.self>0,e.remaining_balance.self===0,e.remaining_balance.self<0)),o(),h(" ",y(2,3,e.remaining_balance.self,i.defaultCurrency)," ")}}var Lr=(()=>{class t extends zt{constructor(){super(...arguments),this.acqAccountApiService=m(Ce),this.organisationService=m(re),this.apiService=m(fe),this.userService=m(Oe),this.messageService=m(Ae),this.translateService=m(H),this.changeDetectorRef=m(Lt),this.accountList=[],this.selectedAccount=null,this.loading=!1}ngOnInit(){this.loading=!0;let e=this.userService.user.currentLibrary;this.defaultCurrency=this.organisationService.organisation.default_currency,this.acqAccountApiService.getAccounts(e).subscribe({next:i=>{i=ut(i);let r=this.field.props?.editorConfig?.pid;if(this.field.props?.filterChildren&&r){let d=[],S=[];i.map(q=>{q.pid!==r&&!S.some(Y=>Y===q?.parent?.pid)?d.push(q):S.push(q.pid)}),this.accountList=d}else this.accountList=i;if(this.formControl.value){let d=this.formControl.value.substring(this.formControl.value.lastIndexOf("/")+1),S=this.accountList.find(q=>q.pid===d);S!==void 0&&(this.selectedAccount=S)}},error:()=>this.messageService.add({severity:"error",summary:this.translateService.instant("Acquisition accounts"),detail:this.translateService.instant("An error has occurred. Please try again."),sticky:!0,closable:!0}),complete:()=>{this.loading=!1,this.changeDetectorRef.markForCheck()}})}selectAccount(e){let i=e.value;if(i==null){this.formControl.reset(null);let d=this.formControl.errors;this.formControl.setErrors(d.required?{required:!0}:null);return}let r=this.apiService.getRefEndpoint("acq_accounts",i.pid);this.formControl.patchValue(r)}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275cmp=g({type:t,selectors:[["admin-select-account-editor-widget"]],standalone:!1,features:[Se],decls:8,vars:9,consts:[["selectedItem",""],["item",""],["balance",""],["scrollHeight","50vh","filterBy","name",3,"ngModelChange","onChange","fluid","showClear","options","placeholder","ngModel","loading","filter"],[1,"ui:flex"],[1,"ui:flex","ui:grow","ui:gap-2","ui:items-center"],[1,"ui:text-sm"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"ui:flex","ui:grow"]],template:function(i,r){if(i&1){let d=B();s(0,"p-select",3),l(1,"translate"),wt("ngModelChange",function(q){return w(d),Rt(r.selectedAccount,q)||(r.selectedAccount=q),L(q)}),D("onChange",function(q){return w(d),L(r.selectAccount(q))}),_(2,pc,6,6,"ng-template",null,0,V)(4,dc,7,8,"ng-template",null,1,V),a(),_(6,mc,3,10,"ng-template",null,2,V)}i&2&&(u("fluid",!0)("showClear",!0)("options",r.accountList)("placeholder",v(1,7,"Select\u2026")),Et("ngModel",r.selectedAccount),u("loading",r.loading)("filter",!0))},dependencies:[Ot,Pt,Bt,kt,U,R],encapsulation:2})}}return t})();function uc(t){let n=t.value;return n.quantityMax>=n.quantity?null:{receiptQuantityMax:{}}}function Or(t){return{validators:[{name:"receiveQuantityMax",validation:uc}],validationMessages:[{name:"receiptQuantityMax",message:(n,e)=>t.stream("Max. quantity: {{ max }}",{max:e.parent.formControl.value.quantityMax})}]}}function fc(t,n){if(t&1&&(s(0,"div",4)(1,"p-overlaybadge",5),C(2,"i",6),a()()),t&2){let e=p(2);o(),u("value",e.orderLine.priority)("severity",e.severity(e.orderLine.priority))}}function _c(t,n){if(t&1&&(s(0,"div",0)(1,"div",1),C(2,"shared-document-brief-view",2)(3,"admin-notes",3),a(),_(4,fc,3,2,"div",4),a()),t&2){let e=p();o(2),u("record",e.document),o(),u("notes",e.orderLine.notes),o(),f(e.orderLine.priority?4:-1)}}var Dr=(()=>{class t extends zt{constructor(){super(...arguments),this.recordService=m(P),this.changeDetectorRef=m(Lt)}ngOnInit(){let e=_e(this.model.acqOrderLineRef);this.recordService.getRecord("acq_order_lines",e).pipe(G(i=>this.orderLine=i.metadata),x(()=>_e(this.orderLine.document.$ref)),K(i=>this.recordService.getRecord("documents",i)),G(i=>this.document=i.metadata),G(()=>this.changeDetectorRef.detectChanges())).subscribe()}severity(e){switch(e){case 2:return"primary";case 3:return"info";case 4:return"warn";case 5:return"danger";default:return"success"}}static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275cmp=g({type:t,selectors:[["admin-formly-order-line-type"]],standalone:!1,features:[Se],decls:1,vars:1,consts:[[1,"ui:flex","ui:gap-2"],[1,"ui:grow-1"],[3,"record"],[1,"ui:text-sm",3,"notes"],[1,"ui:flex"],[3,"value","severity"],[1,"fa","fa-tachometer",2,"font-size","1.2rem"]],template:function(i,r){i&1&&_(0,_c,5,3,"div",0),i&2&&f(r.document?0:-1)},dependencies:[dt,yt,ze],encapsulation:2})}}return t})();var Ir=(t,n)=>n.id;function vc(t,n){if(t&1){let e=B();s(0,"p-checkbox",5),D("onChange",function(r){w(e);let d=p(4);return L(d.field.props.selectUnselect(r.checked?"select":"unselect",d.field.fieldGroup))}),a()}t&2&&u("binary",!0)}function hc(t,n){t&1&&c(0," \xA0* ")}function Cc(t,n){if(t&1&&(c(0),l(1,"translate"),_(2,hc,1,0)),t&2){let e=p(2).$implicit;h(" ",v(1,2,e.props.label)," "),o(2),f(e.props.required?2:-1)}}function xc(t,n){if(t&1&&(s(0,"div"),_(1,vc,1,1,"p-checkbox",4)(2,Cc,3,4),a()),t&2){let e=p().$implicit,i=p(2);oe(e.props.headerClassName),o(),f(e.props.checkbox&&i.field.props.selectUnselect?1:2)}}function gc(t,n){if(t&1&&_(0,xc,3,4,"div",3),t&2){let e=n.$implicit;f(e.props.className!=="ui:hidden"?0:-1)}}function yc(t,n){if(t&1&&C(0,"formly-field",6),t&2){let e=p().$implicit;u("field",e)}}function Sc(t,n){if(t&1&&_(0,yc,1,1,"formly-field",6),t&2){let e=n.$implicit;f(e.fieldGroup.length>0?0:-1)}}function bc(t,n){if(t&1&&(s(0,"div",1),j(1,gc,1,1,null,null,Ir),s(3,"div",2),j(4,Sc,1,1,null,null,Ir),a()()),t&2){let e=p();o(),$(e.field.fieldGroup[0].fieldGroup),o(3),$(e.field.fieldGroup)}}var Pr=(()=>{class t extends ln{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275cmp=g({type:t,selectors:[["admin-formly-receipt-lines"]],standalone:!1,features:[Se],decls:3,vars:4,consts:[["styleClass","ui:my-3",3,"header"],[1,"ui:grid","ui:grid-cols-12","ui:gap-4","ui:px-4"],[1,"ui:col-span-12"],[3,"class"],[3,"binary"],[3,"onChange","binary"],[3,"field"]],template:function(i,r){i&1&&(s(0,"p-panel",0),l(1,"translate"),_(2,bc,6,0,"div",1),a()),i&2&&(u("header",v(1,2,"Add receipt line(s)")),o(2),f(r.field.fieldGroup.length>0?2:-1))},dependencies:[an,tn,st,R],encapsulation:2})}}return t})();function Ac(t,n){if(t&1&&(s(0,"div",2),C(1,"formly-validation-message",3),a()),t&2){let e=p();o(),u("field",e.field)}}var qr=(()=>{class t extends dn{static{this.\u0275fac=(()=>{let e;return function(r){return(e||(e=W(t)))(r||t)}})()}static{this.\u0275cmp=g({type:t,selectors:[["admin-formly-input-no-label-wrapper"]],standalone:!1,features:[Se],decls:4,vars:1,consts:[["fieldComponent",""],[1,"ui:my-2"],[1,"text-error","ui:my-2"],[3,"field"]],template:function(i,r){i&1&&(s(0,"div",1),Fe(1,null,0),_(3,Ac,2,1,"div",2),a()),i&2&&(o(3),f(r.showError?3:-1))},dependencies:[pn],encapsulation:2})}}return t})();var V_=(()=>{class t{static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275mod=it({type:t})}static{this.\u0275inj=et({providers:[{provide:sn,multi:!0,useFactory:Or,deps:[H]},Ye,{provide:ci,deps:[J,Ce,fe,Ye]}],imports:[Wi,Rr,Dt,mn.forChild({types:[{name:"receipt-lines",component:Pr},{name:"order-line",component:Dr},{name:"account-select",component:Lr}],wrappers:[{name:"input-no-label",component:qr}]}),Ni,Nn,ki,Rn,On,Mn,un,on,Ki,pr]})}}return t})();export{V_ as AcquisitionModule};