import{o as e}from"./chunk-jRWAZmH_.js";import{n as t,t as n}from"./jsx-runtime-CEixWuwE.js";import{In as r,L as i,Ln as a,Q as o,Wn as s,X as c,Y as l,cr as u,jt as d,n as f,o as p,sr as m}from"./axios-BDcMaxoP.js";import{t as h}from"./input-C55Uc3oN.js";import{n as g,t as _}from"./slicedToArray-BjCmY1mt.js";import{n as v,t as y}from"./typeof-C6uZ2mkP.js";import{i as b,r as x}from"./asyncToGenerator-BFc9W-7V.js";import{m as S,p as C,t as w}from"./button-xukQsL9n.js";import{t as T}from"./table-adA-XDZ0.js";import{n as E}from"./pagination-Bbd-H34x.js";import{n as D,r as O}from"./useFlexGapSupport-CC7UZaio.js";import{t as k}from"./tooltip-D0a9NNK5.js";import{t as A}from"./ArrowLeftOutlined-Bae7unhy.js";import{c as j,s as M,u as ee}from"./chunk-4N6VE7H7-DnASKJzj.js";import{n as te}from"./notification-DIuyPXAV.js";import{t as ne}from"./useMutation-BtpRmKbj.js";import{t as re}from"./Loader-BvAKWCqv.js";import{Ct as ie,ht as ae,ot as N,wt as oe}from"./index-C1mw6CgG.js";import{c as se,d as ce,i as P,l as le,n as ue,r as de,s as F,t as fe,u as I}from"./ResetButton-BWz1k8XX.js";import{t as pe}from"./BaseActionButton-C-haanPv.js";import{t as me}from"./SaveButton-BWNmkjLW.js";var he=function(e){return e.children};b();var L=e(s()),R=e(t());function z(e){return e!=null}var B=function(e){var t=e.itemPrefixCls,n=e.component,r=e.span,i=e.className,a=e.style,o=e.labelStyle,s=e.contentStyle,c=e.bordered,l=e.label,u=e.content,d=e.colon,f=n;return c?R.createElement(f,{className:(0,L.default)(x(x({},`${t}-item-label`,z(l)),`${t}-item-content`,z(u)),i),style:a,colSpan:r},z(l)&&R.createElement(`span`,{style:o},l),z(u)&&R.createElement(`span`,{style:s},u)):R.createElement(f,{className:(0,L.default)(`${t}-item`,i),style:a,colSpan:r},R.createElement(`div`,{className:`${t}-item-container`},(l||l===0)&&R.createElement(`span`,{className:(0,L.default)(`${t}-item-label`,x({},`${t}-item-no-colon`,!d)),style:o},l),(u||u===0)&&R.createElement(`span`,{className:(0,L.default)(`${t}-item-content`),style:s},u)))};u();function V(e,t,n){var r=t.colon,i=t.prefixCls,a=t.bordered,o=n.component,s=n.type,c=n.showLabel,l=n.showContent,u=n.labelStyle,d=n.contentStyle;return e.map(function(e,t){var n=e.props,f=n.label,p=n.children,h=n.prefixCls,g=h===void 0?i:h,_=n.className,v=n.style,y=n.labelStyle,b=n.contentStyle,x=n.span,S=x===void 0?1:x,C=e.key;return typeof o==`string`?R.createElement(B,{key:`${s}-${C||t}`,className:_,style:v,labelStyle:m(m({},u),y),contentStyle:m(m({},d),b),span:S,colon:r,component:o,itemPrefixCls:g,bordered:a,label:c?f:null,content:l?p:null}):[R.createElement(B,{key:`label-${C||t}`,className:_,style:m(m(m({},u),v),y),span:1,colon:r,component:o[0],itemPrefixCls:g,bordered:a,label:f}),R.createElement(B,{key:`content-${C||t}`,className:_,style:m(m(m({},d),v),b),span:S*2-1,component:o[1],itemPrefixCls:g,bordered:a,content:p})]})}var ge=function(e){var t=R.useContext(H),n=e.prefixCls,r=e.vertical,i=e.row,a=e.index,o=e.bordered;return r?R.createElement(R.Fragment,null,R.createElement(`tr`,{key:`label-${a}`,className:`${n}-row`},V(i,e,m({component:`th`,type:`label`,showLabel:!0},t))),R.createElement(`tr`,{key:`content-${a}`,className:`${n}-row`},V(i,e,m({component:`td`,type:`content`,showContent:!0},t)))):R.createElement(`tr`,{key:a,className:`${n}-row`},V(i,e,m({component:o?[`th`,`td`]:`td`,type:`item`,showLabel:!0,showContent:!0},t)))};b(),g(),v(),C();var H=R.createContext({}),U={xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};function _e(e,t){if(typeof e==`number`)return e;if(y(e)===`object`)for(var n=0;n<D.length;n++){var r=D[n];if(t[r]&&e[r]!==void 0)return e[r]||U[r]}return 3}function W(e,t,n){var r=e;return(t===void 0||t>n)&&(r=i(e,{span:n})),r}function ve(e,t){var n=S(e).filter(function(e){return e}),r=[],i=[],a=t;return n.forEach(function(e,o){var s=e.props?.span,c=s||1;if(o===n.length-1){i.push(W(e,s,a)),r.push(i);return}c<a?(a-=c,i.push(e)):(i.push(W(e,c,a)),r.push(i),a=t,i=[])}),r}function G(e){var t=e.prefixCls,n=e.title,r=e.extra,i=e.column,a=i===void 0?U:i,o=e.colon,s=o===void 0?!0:o,c=e.bordered,u=e.layout,d=e.children,f=e.className,p=e.style,m=e.size,h=e.labelStyle,g=e.contentStyle,v=R.useContext(l),b=v.getPrefixCls,S=v.direction,C=b(`descriptions`,t),w=_(R.useState({}),2),T=w[0],E=w[1],D=_e(a,T);R.useEffect(function(){var e=O.subscribe(function(e){y(a)===`object`&&E(e)});return function(){O.unsubscribe(e)}},[]);var k=ve(d,D),A=R.useMemo(function(){return{labelStyle:h,contentStyle:g}},[h,g]);return R.createElement(H.Provider,{value:A},R.createElement(`div`,{className:(0,L.default)(C,x(x(x({},`${C}-${m}`,m&&m!==`default`),`${C}-bordered`,!!c),`${C}-rtl`,S===`rtl`),f),style:p},(n||r)&&R.createElement(`div`,{className:`${C}-header`},n&&R.createElement(`div`,{className:`${C}-title`},n),r&&R.createElement(`div`,{className:`${C}-extra`},r)),R.createElement(`div`,{className:`${C}-view`},R.createElement(`table`,null,R.createElement(`tbody`,null,k.map(function(e,t){return R.createElement(ge,{key:t,index:t,colon:s,prefixCls:C,vertical:u===`vertical`,bordered:c,row:e})}))))))}G.Item=he;var ye={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z`}}]},name:`arrow-right`,theme:`outlined`};a();var be=R.forwardRef(function(e,t){return R.createElement(d,r(r({},e),{},{ref:t,icon:ye}))});function xe(){let e=p();return ne({mutationFn:({salarieId:e,newVentilation:t})=>ce(e,t),meta:{successMessage:`Mise à jour de la ventilation`,errorMessage:`Erreur lors de la mise à jour de la ventilation`},onMutate:async({salarieId:t,newVentilation:n})=>{await e.cancelQueries({queryKey:I.detail(t)});let r=e.getQueryData(I.detail(t));return e.setQueryData(I.detail(t),n),{previousVentilation:r,salarieId:t}},onError:(t,n,r)=>{e.setQueryData(I.detail(r.salarieId),r.previousVentilation)},onSettled:async(t,n,r,i)=>{await e.invalidateQueries({queryKey:I.detail(i.salarieId)})}})}var K=n(),q=({children:e,...t})=>(0,K.jsx)(pe,{type:`default`,confirmTitle:`Des modifications non enregistrées seront perdues. Voulez-vous vraiment quitter cette page ?`,okText:`Oui, quitter sans enregistrer`,cancelText:`Non, rester sur cette page`,...t,children:e}),J=({children:e,...t})=>(0,K.jsxs)(q,{...t,children:[(0,K.jsx)(A,{}),e]});function Se({currentYear:e,hasUnsavedChanges:t,setHasUnsavedChanges:n,salarieId:r,editedVentilationByYear:i,salarieInfo:a,onReset:o,hasAtLeastOneYearInError:s}){let c=j(),l=M(),u=l.state?.filteredSalarieIds||[],d=l.state?.filteredInfo||[],f=xe(),p=()=>{c(`/rh/ventilation/parametrage/ventilation-listing`,{state:{fromSider:!0,filteredSalarieIds:u,filteredInfo:d}})},m=Object.values(t).some(e=>e===!0);return(0,K.jsxs)(`div`,{className:`page-header`,children:[(0,K.jsxs)(`div`,{className:`page-header-content-title`,children:[(0,K.jsx)(J,{onClick:p,withModalConfirm:t[e]}),(0,K.jsx)(`div`,{className:`header-title`,children:`Ventilation salarie`})]}),(0,K.jsxs)(`div`,{className:`header-actions`,children:[(0,K.jsx)(fe,{onClick:o,disabled:!m,withPopConfirm:!0}),(0,K.jsx)(me,{onClick:()=>f.mutate({salarieId:r,newVentilation:le(i,a)},{onSuccess:()=>n({})}),disabled:!m||s,withPopConfirm:!0})]})]})}var Ce=({children:e,...t})=>(0,K.jsxs)(q,{...t,children:[e,(0,K.jsx)(be,{})]}),Y=R.createContext(null),we=({index:e,...t})=>{let[n]=N.useForm();return(0,K.jsx)(N,{form:n,component:!1,children:(0,K.jsx)(Y.Provider,{value:n,children:(0,K.jsx)(`tr`,{...t})})})},Te=({title:e,editable:t,children:n,dataIndex:r,record:i,handleCellSave:a,validationRules:o,...s})=>{let[c,l]=(0,R.useState)(!1),u=(0,R.useRef)(null),d=(0,R.useContext)(Y);(0,R.useEffect)(()=>{c&&u.current.focus()},[c]);let f=()=>{l(!c),d.setFieldsValue({[r]:i[r]})},p=async()=>{try{let e=await d.validateFields();f(),a({...i,...e})}catch(e){console.log(`Save failed:`,e)}},m=n;return t&&(m=c?(0,K.jsx)(N.Item,{style:{margin:0},name:r,rules:o||[],children:(0,K.jsx)(h,{ref:u,onPressEnter:p,onBlur:p})}):(0,K.jsx)(`div`,{className:`editable-cell-value-wrap`,style:{paddingRight:24},onClick:f,children:n})),(0,K.jsx)(`td`,{...s,children:m})};function X(e){let t=Z(e||{}),n=De(t);return{ratiosInError:t,yearInErrors:n,hasAtLeastOneYearInError:Object.values(n).some(e=>e===!0)}}var Z=e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=Ee(r);return t},Ee=e=>{let t={};return P.forEach(n=>{let r=`ratio_${n}`,i=e.reduce((e,t)=>e+(parseInt(t[r])||0),0);t[r]=Math.abs(i-100)>1e-4&&Math.abs(i)!==0}),t};function De(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Object.values(r).some(e=>e===!0);return t}var Oe=({currentYear:e,ratiosInError:t={},autoFillFromMonth:n,handleCellSave:r,isCellModified:i})=>ke.map(a=>{if(!a.editable)return a;let o=t?.[e]?.[a.dataIndex],s=a.dataIndex.replace(`ratio_`,``);return{...a,className:o?`column-error`:``,title:(0,K.jsx)(`div`,{className:`${o?`column-error`:``}`,children:(0,K.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:1,minWidth:0,width:`100%`},children:[(0,K.jsx)(`span`,{style:{flex:1,minWidth:0,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:a.title}),(0,K.jsx)(k,{title:`Recopier ${a.title} sur les mois suivants`,children:(0,K.jsx)(w,{className:`auto-fill-btn`,icon:(0,K.jsx)(E,{}),size:`small`,type:`text`,style:{color:`#b26d00`,marginLeft:2},onClick:()=>n(s),"aria-label":`Recopier la valeur de ${a.title} sur les mois suivants`})})]})}),onCell:e=>({record:e,className:i(e,a.dataIndex)?`cell-modified`:``,editable:a.editable,dataIndex:a.dataIndex,title:a.title,validationRules:[{pattern:/^\d+(\.\d{1,2})?$/,message:`Nombre à 2 décimales max`}],handleCellSave:r})}}),ke=[{title:``,dataIndex:`label`,fixed:`left`,width:150},{title:`Janvier`,dataIndex:`ratio_janvier`,editable:!0},{title:`Février`,dataIndex:`ratio_fevrier`,editable:!0},{title:`Mars`,dataIndex:`ratio_mars`,editable:!0},{title:`Avril`,dataIndex:`ratio_avril`,editable:!0},{title:`Mai`,dataIndex:`ratio_mai`,editable:!0},{title:`Juin`,dataIndex:`ratio_juin`,editable:!0},{title:`Juillet`,dataIndex:`ratio_juillet`,editable:!0},{title:`Aout`,dataIndex:`ratio_aout`,editable:!0},{title:`Septembre`,dataIndex:`ratio_septembre`,editable:!0},{title:`Octobre`,dataIndex:`ratio_octobre`,editable:!0},{title:`Novembre`,dataIndex:`ratio_novembre`,editable:!0},{title:`Décembre`,dataIndex:`ratio_decembre`,editable:!0}],Q=e(f());function $({currentYear:e,setCurrentYear:t,hasUnsavedChanges:n,setHasUnsavedChanges:r,salarieId:i,editedVentilationByYear:a,setEditedVentilationByYear:s,salarieVentilationQuery:c}){let l=M(),u=j(),d=de(l.state?.filteredSalarieIds||[]),{ratiosInError:f,yearInErrors:p}=X(a),m=[...new Set(d.data?.map(e=>parseInt(e.salarie_id)).filter(Boolean))],h=m[m.indexOf(parseInt(i))+1],g=m[m.indexOf(parseInt(i))-1],_=Object.keys(a).sort((e,t)=>e-t)??[],v=e=>{t(e)},y=t=>{let n=[...a[e]],i=n.findIndex(e=>e.key===t.key),o=n[i];if(!F(o,t))return;n[i]={...o,...t},s(t=>({...t,[e]:n}));let l=F({...c?.data.ventilationByYear[e][i]},t);r(t=>({...t,[e]:l}))},b=e=>{u(`/rh/ventilations/${e}/settings`,{state:{fromSider:!0,filteredSalarieIds:l.state?.filteredSalarieIds||[],filteredInfo:l.state?.filteredInfo||[]}})},x={body:{row:we,cell:Te}},S=Oe({currentYear:e,ratiosInError:f,autoFillFromMonth:t=>{let n=P.indexOf(t),i=parseInt(e),o=Object.keys(a).map(Number).filter(e=>e>=i).sort((e,t)=>e-t),c=!1,l=a[e]||[],u={...a};if(o.forEach((e,r)=>{let i=e.toString();u[i]=(a[i]||[]).map(e=>{let i=l.find(t=>t.etablissement_id===e.etablissement_id);if(!i)return e;let a=i[`ratio_${t}`];if(a===void 0)return e;let o={...e};return(r===0?P.slice(n):P).forEach(e=>{o[`ratio_${e}`]=parseFloat(a)}),!c&&F(e,o)&&(c=!0),o})}),c){let e=o.reduce((e,t)=>(e[t.toString()]=!0,e),{});s(u),r(t=>({...t,...e}))}},handleCellSave:y,isCellModified:(t,n)=>{let r=c.data.ventilationByYear?.[e]?.find(e=>e.key===t.key);return r?se(t[n],r[n]):!1}}),C=_.map(t=>{let r=p[t];return{key:t,label:(0,K.jsx)(`div`,{className:`${r?`tab-error`:``}`,children:(0,K.jsx)(k,{title:r&&`Une ou plusieurs colonnes sont incorrectes: le total de chaque colonne doit être égal à 1.`,children:(0,K.jsxs)(ie,{dot:!0,offset:[6,0],className:p[t]&&`badge-error`,count:n[t]?`1`:`0`,children:[r&&(0,K.jsx)(o,{style:{color:`#cf1322`,marginRight:4}}),(0,K.jsx)(`span`,{children:t})]},t)})}),children:(0,K.jsx)(T,{rowKey:`key`,components:x,rowClassName:()=>`editable-row`,columns:S,dataSource:a[t]||[],pagination:!1,scroll:{x:1200,y:`calc(100vh - 425px)`},summary:()=>{let n=a[t]||[],r=P.reduce((e,t)=>{let r=n.reduce((e,n)=>{let r=parseInt(n[`ratio_${t}`]);return e+(isNaN(r)?0:r)},0);return e[`ratio_${t}`]=r,e},{});return(0,K.jsx)(T.Summary,{fixed:!0,children:(0,K.jsxs)(T.Summary.Row,{children:[(0,K.jsx)(T.Summary.Cell,{index:0,children:`Total`}),P.map((t,n)=>{let i=`ratio_${t}`,a=r[i],o=f[e][i];return(0,K.jsx)(T.Summary.Cell,{index:n+1,className:`${o?`column-error`:``}`,children:a.toFixed(0)},t)})]})})}},i)}});return(0,K.jsx)(`div`,{className:`editor-table-container`,children:(0,K.jsx)(ae,{defaultActiveKey:e.toString(),activeKey:e.toString(),onChange:v,type:`card`,size:`large`,tabBarStyle:{marginBottom:0},tabBarGutter:5,items:C,tabBarExtraContent:(0,K.jsxs)(`div`,{className:`tabs-extra-button`,children:[(0,K.jsx)(J,{disabled:!g,onClick:()=>b(g),withModalConfirm:n[e],children:`Salarié Précédent`}),(0,K.jsx)(Ce,{disabled:!h,onClick:()=>b(h),withModalConfirm:n[e],children:`Salarié Suivant`})]})})})}$.propTypes={currentYear:Q.default.oneOfType([Q.default.string,Q.default.number]).isRequired,setCurrentYear:Q.default.func.isRequired,hasUnsavedChanges:Q.default.objectOf(Q.default.bool).isRequired,setHasUnsavedChanges:Q.default.func.isRequired,salarieId:Q.default.string.isRequired,editedVentilationByYear:Q.default.objectOf(Q.default.arrayOf(Q.default.shape({key:Q.default.number.isRequired,etablissement_id:Q.default.number.isRequired,label:Q.default.string,ratio_janvier:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_fevrier:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_mars:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_avril:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_mai:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_juin:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_juillet:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_aout:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_septembre:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_octobre:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_novembre:Q.default.oneOfType([Q.default.string,Q.default.number]),ratio_decembre:Q.default.oneOfType([Q.default.string,Q.default.number])}))).isRequired,setEditedVentilationByYear:Q.default.func.isRequired,salarieVentilationQuery:Q.default.shape({data:Q.default.shape({ventilationByYear:Q.default.object}),status:Q.default.string.isRequired}).isRequired};function Ae(e,{key:t,message:n,description:r,duration:i=0},a){let o=(0,R.useRef)(!1);(0,R.useEffect)(()=>{e&&!o.current&&(o.current=!0,te({key:t,message:n,description:r,duration:i})),e||c.close(t)},[e,t,n,r,i]),(0,R.useEffect)(()=>(o.current=!1,c.close(t),()=>c.close(t)),[t,a]);function s(){c.close(t),o.current=!1}return s}function je(e,t){return Ae(e,{key:`ventilation-error`,message:`Erreurs de ventilation`,description:`Le total de chaque colonne doit être égal à 1.`},t)}function Me(){let[e,t]=(0,R.useState)(()=>new Date().getFullYear()),[n,r]=(0,R.useState)({}),[i,a]=(0,R.useState)({}),{salarieId:o}=ee(),s=ue(o),{hasAtLeastOneYearInError:c}=X(n),l=je(c,o);(0,R.useEffect)(()=>{s.data?.ventilationByYear&&(r(s.data?.ventilationByYear??{}),a({}))},[s.data?.ventilationByYear]);let u=()=>{r(s.data.ventilationByYear),l(),a({})};if(s.status===`pending`||!s.data)return(0,K.jsx)(`div`,{className:`loading-wrapper`,children:(0,K.jsx)(re,{style:{height:`auto`}})});if(s.status===`error`)return(0,K.jsx)(oe,{message:`Erreur de chargement`,description:s.error.message,type:`error`,showIcon:!0});let d=s.data.salarieInfo;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Se,{currentYear:e,hasUnsavedChanges:i,setHasUnsavedChanges:a,salarieId:o,editedVentilationByYear:n,salarieInfo:d,onReset:u,hasAtLeastOneYearInError:c}),(0,K.jsxs)(`div`,{className:`salarie-ventilation-editor`,children:[(0,K.jsxs)(G,{title:`Informations salarie`,column:2,children:[(0,K.jsx)(G.Item,{label:`Matricule`,children:d.matricule}),(0,K.jsx)(G.Item,{label:`Etablissement Contrat`,children:d.etablissement_contrat}),(0,K.jsxs)(G.Item,{label:`Nom - Prenom`,children:[d.nom,` - `,d.prenom]}),(0,K.jsx)(G.Item,{label:`Qualif`,children:d.qualification})]}),(0,K.jsx)($,{currentYear:e,setCurrentYear:t,hasUnsavedChanges:i,setHasUnsavedChanges:a,salarieId:o,editedVentilationByYear:n,setEditedVentilationByYear:r,salarieVentilationQuery:s})]})]})}export{Me as default};
|