@@ -16,6 +16,27 @@ export default function UserPaymentsV2({seasons, user, is_current_user, onPayCli
1616 const [ duePaymentsData , setDuePaymentsData ] = useState ( [ ] ) ;
1717 const [ paymentTerms , setPaymentTerms ] = useState ( { } ) ;
1818
19+ function handleChangeProrataForDesiredActivity ( id , prorata ) {
20+ const updatedData = data . map ( item => {
21+ if ( item . id === id ) {
22+ return { ...item , prorata : prorata } ;
23+ }
24+ return item ;
25+ } ) ;
26+ setData ( updatedData ) ;
27+
28+ api . set ( )
29+ . success ( ( ) => {
30+ } )
31+ . error ( ( ) => {
32+ getDatas ( ) ; // Recharger les données en cas d'erreur
33+ swal ( "Erreur" , "Une erreur est survenue lors de la mise à jour du prorata" , "error" ) ;
34+ } )
35+ . patch ( `/desired_activities/${ id } /update_prorata` , {
36+ prorata : prorata
37+ } ) ;
38+ }
39+
1940 function getDatas ( )
2041 {
2142 api . set ( )
@@ -89,7 +110,39 @@ export default function UserPaymentsV2({seasons, user, is_current_user, onPayCli
89110 { data . map ( d => < tr key = { d . id } >
90111 < td > { d . activity } </ td >
91112 < td > { d . user_full_name } </ td >
92- < td > { d . prorata ? `${ d . prorata } / ${ d . intended_nb_lessons } ` : "" } </ td >
113+ < td >
114+ { d . intended_nb_lessons ? (
115+ is_current_user ? (
116+ `${ d . prorata || d . intended_nb_lessons } / ${ d . intended_nb_lessons } `
117+ ) : (
118+ < div style = { { display : "flex" , alignItems : "center" , fontSize : "14px" } } >
119+ < input
120+ type = "number"
121+ className = "form-control"
122+ style = { {
123+ width : "45px" ,
124+ height : "28px" ,
125+ padding : "2px 4px" ,
126+ fontSize : "12px" ,
127+ marginRight : "3px" ,
128+ textAlign : "center" ,
129+ border : "1px solid #ccc"
130+ } }
131+ value = { d . prorata || d . intended_nb_lessons }
132+ min = "0"
133+ max = { d . intended_nb_lessons }
134+ onChange = { e => {
135+ const newProrata = parseInt ( e . target . value ) || 0 ;
136+ if ( newProrata <= d . intended_nb_lessons ) {
137+ handleChangeProrataForDesiredActivity ( d . id , newProrata ) ;
138+ }
139+ } }
140+ />
141+ < span > / { d . intended_nb_lessons } </ span >
142+ </ div >
143+ )
144+ ) : "" }
145+ </ td >
93146 < td > { d . amount } €</ td >
94147 </ tr > ) }
95148 </ tbody >
0 commit comments