27/04/26 - 19h

branche_01062025
Cherif 2026-04-27 19:44:30 +02:00
parent 88f378a07a
commit 67832de175
5 changed files with 2534 additions and 989 deletions

View File

@ -1071,7 +1071,7 @@ const AddParnerClient = (props) => {
else
setclient_invoice_ville("");
if (mylocalclient.comment)
if (mylocalclient.comment)
setp_client_comment(mylocalclient.comment);
else
setp_client_comment("");
@ -1167,7 +1167,7 @@ const AddParnerClient = (props) => {
else
setclient_pays("");
if (mylocalclient.comment)
if (mylocalclient.comment)
setp_client_comment(mylocalclient.comment);
else
setp_client_comment("");
@ -1334,7 +1334,7 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_code_postal")[0].value = "";
}
if (document.getElementsByName("client_comment")) {
if (document.getElementsByName("client_comment")) {
document.getElementsByName("client_comment")[0].value = "";
}
@ -1423,7 +1423,7 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_code_postal")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("client_comment") && document.getElementsByName("client_comment")[0]) {
document.getElementsByName("client_comment")[0].disabled = true;
document.getElementsByName("client_comment")[0].style.backgroundColor = "#ECEFF1";
@ -1518,7 +1518,7 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_code_postal")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("client_comment")) {
if (document.getElementsByName("client_comment")) {
document.getElementsByName("client_comment")[0].disabled = false;
document.getElementsByName("client_comment")[0].style.backgroundColor = "#FFFFFF";
}
@ -1743,7 +1743,7 @@ const AddParnerClient = (props) => {
}
form.append("adr_code_postal", client_code_postal);
form.append("comment", p_client_comment);
@ -3679,7 +3679,7 @@ const AddParnerClient = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Infos Générales
Infos générales
</div>
<div style={{
@ -4126,7 +4126,7 @@ const AddParnerClient = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Infos Générales
Typologie
</div>
<div style={{
@ -4757,7 +4757,7 @@ const AddParnerClient = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Infos Générales
Infos générales
</div>
<div style={{
@ -4950,7 +4950,7 @@ const AddParnerClient = (props) => {
</div>
<div className="div_row"> &nbsp;</div>
<div style={{ width: '100%', paddingRight: "5px", fontFamily: 'DM Sans', fontSize: '14px', paddingLeft:'10px', paddingLeft:'10px' }}> Commentaire<br />
<div style={{ width: '100%', paddingRight: "5px", fontFamily: 'DM Sans', fontSize: '14px', paddingLeft: '10px', paddingLeft: '10px' }}> Commentaire<br />
<TextareaAutosize
name="client_comment"
id="client_comment"
@ -5081,6 +5081,137 @@ const AddParnerClient = (props) => {
</a>
</div>
<div className="div_row"> &nbsp; </div>
{String(formedit_mode) !== "1" && <div className="session_caract"> Type client<br />
<TextField
required
name="client_type_id"
id="client_type_id"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_client_type_label}
/>
</div>}
{New_Get_List_Client_Type_result && New_Get_List_Client_Type_result.length > 1 &&
String(formedit_mode) === "1" && <div className="session_caract"> Type client <br />
<Autocomplete
disablePortal
name="client_type_id"
id="client_type_id"
className="disabled_style"
options={New_Get_List_Client_Type_result}
value={New_Get_List_Client_Type_result.filter((data) => (data)._id === String(p_client_type_id))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setp_client_type_id(value._id);
DataUpdated();
} else {
setp_client_type_id("");
DataUpdated();
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>}
{String(formedit_mode) !== "1" && <div className="session_caract"> Groupe client <br />
<TextField
required
name="client_groupe_id"
id="client_groupe_id"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_client_goupe_client_id_label}
/>
</div>}
{New_Get_List_Client_Groupe_result && New_Get_List_Client_Groupe_result.length > 0 &&
String(formedit_mode) === "1" && <div className="session_caract"> Groupe client <br />
<Autocomplete
disablePortal
name="client_groupe_id"
id="client_groupe_id"
className="disabled_style"
options={New_Get_List_Client_Groupe_result}
value={New_Get_List_Client_Groupe_result.filter((data) => (data)._id === String(p_client_goupe_client_id))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setp_client_goupe_client_id(value._id);
setp_client_goupe_client_id_label(New_Get_List_Client_Groupe_result.filter((data) => (data)._id === String(p_client_goupe_client_id))[0].label)
DataUpdated();
} else {
setp_client_goupe_client_id("");
DataUpdated();
setp_client_goupe_client_id_label("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>}
{p_client_is_financeur === true && <div className="session_caract"> Type Financeur <br />
<Autocomplete
disablePortal
name="client_type_financeur_id"
id="client_type_financeur_id"
className="disabled_style"
options={New_Get_List_Type_Financeur_result}
onChange={(event, value) => {
if (value && value._id) {
setp_client_type_financeur(value._id);
} else {
setp_client_type_financeur("");
}
}}
//value={p_one_detail_client_rattachement_nom}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>}
</div>
</div>
</div>
@ -5089,7 +5220,7 @@ const AddParnerClient = (props) => {
<div style={{ width: '100%', float: 'left' }}>
<div className="Grid_2_col_sub_colone_header">
Infos Générales
typologie
</div>
<div style={{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6742,7 +6742,7 @@ const Module_Session_Planification = (props) => {
...newValue.filter((i) => fixedVal_grp_apprenant.indexOf(i) === -1),
]);
// console.log(" ### val_grp_apprenant = ", val_grp_apprenant)
// console.log(" ### val_grp_apprenant = ", val_grp_apprenant)
}}
value={val_grp_apprenant}
@ -6909,56 +6909,6 @@ const Module_Session_Planification = (props) => {
/>
</div>
{/*<div className="session_caract_Dialog_comment_2_lines" > Objectif
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_objectif"
id="event_dialog_objectif"
fullWidth
value={p_detail_sequence_objectif}
onChange={(e) => {
setp_detail_sequence_objectif(e.target.value);
}
}
multiline
minRows={2}
maxRows={2}
rows={2}
/>
</div>*/}
{/*<div className="session_caract_Dialog_comment_2_lines" > Commentaire
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
name="event_dialog_comment"
id="event_dialog_comment"
fullWidth
value={p_detail_sequence_comment}
onChange={(e) => {
setp_detail_sequence_comment(e.target.value);
}
}
multiline
minRows={2}
maxRows={2}
rows={2}
/>
</div>*/}
</div>}
</DialogContent>
@ -6967,19 +6917,7 @@ const Module_Session_Planification = (props) => {
{String(submenu_seq_dialog) !== "dialog_ressource" &&
<DialogActions>
<div className="div_row">
{String(p_detail_sequence_session_id) === "" && <div className="div_row_gauche">
{p_detail_event_id && String(p_detail_event_id) !== "" && <Button onClick={Update_One_Sequence_Session} className="bton_enreg_dialog">Mettre à jour</Button>}
{(!p_detail_event_id || String(p_detail_event_id) === "") && <Button onClick={Add_One_Sequence_Session} className="bton_enreg_dialog">Ajouter</Button>}
</div>}
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div>
</div>
<DialogActions>
<IconButton
autoFocus
@ -6992,69 +6930,79 @@ const Module_Session_Planification = (props) => {
</DialogActions>
}
{String(submenu_seq_dialog) !== "dialog_ressource" && String(p_detail_sequence_session_id) === "" && p_detail_event_id && String(p_detail_event_id) !== "" &&
<DialogActions>
<div className="div_row" style={{ "textAlign": "center" }}>
<Popup
trigger={
<div className="div_row" style={{ marginBottom: '1rem' }}>
<div className="div_row_gauche" style={{textAlign:'left'}}>
<Button className="bton_supprime_dialog"
{p_detail_event_id && String(p_detail_event_id) !== "" && <Button onClick={Update_One_Sequence_Session} className="bton_enreg_dialog" style={{ width: '40%', textAlign: 'right' }}>Mettre à jour</Button>}
{(!p_detail_event_id || String(p_detail_event_id) === "") && <Button onClick={Add_One_Sequence_Session} className="bton_enreg_dialog" style={{ width: '40%', textAlign: 'right' }}>Ajouter</Button>}
onClick={(event) => {
</div>
{String(submenu_seq_dialog) !== "dialog_ressource" && String(p_detail_sequence_session_id) === "" && String(p_detail_event_id) === "" &&
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" style={{ width: '50%', float: 'right' }}>Fermer</Button>
</div>}
}}
>
<CiTrash /> Supprimer
{String(submenu_seq_dialog) !== "dialog_ressource" && String(p_detail_sequence_session_id) === "" && p_detail_event_id && String(p_detail_event_id) !== "" &&
<div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_DIALOG_AGENDA_handleClose_buton} className="bton_annule_dialog" style={{ width: '40%', float: 'left' }}>Fermer</Button>
<Popup
trigger={
</Button>
<Button className="bton_supprime_dialog" style={{ width: '40%', float: 'left' }}
onClick={(event) => {
}}
>
<CiTrash /> Supprimer
}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
</Button>
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
}
modal
nested
position="center center"
>
{close => (
<div>
<button className="gest_close" onClick={close}>
&times;
</button>
<div className="gest_header"> MySy Information </div>
<div className="gest_content">
{' '}
En confirmant cette opération, la séquence sera <i><font color="red"> définitivement supprimée</font></i>. <br />
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(p_detail_event_id);
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div className="gest_actions">
<div style={{ "width": "45%", "float": "left" }}>
<button className="gest_bton_popup" onClick={(event) => {
Delete_Sequence_Session_Data(p_detail_event_id);
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}> Valider </button>
</div>
<div style={{ "width": "45%", "float": "right" }}>
<button
className="gest_bton_popup_annuler"
onClick={() => {
//console.log('modal closed ');
close();
}}
>
Annuler
</button>
</div>
}}
>
Annuler
</button>
</div>
</div>
)}
</Popup>
</div>
</DialogActions>}
</div>
)}
</Popup>
</div>}
</div>
{String(submenu_seq_dialog) === "dialog_ressource" && <DialogActions>
<IconButton

View File

@ -808,7 +808,11 @@ const Partner_Client = (props) => {
};
const New_Option_Filter = [
{ "id": "nom", "label": "Nom / Raison Sociale / Tél / mail ", "value": "nom" },
{ "id": "nom", "label": "Nom / Raison Sociale / Tél / mail ", "value": "nom" },
{ "id": "groupe_client", "label": "Groupe Client ", "value": "groupe_client" },
{ "id": "type_client", "label": "Type Client", "value": "type_client" },
{ "id": "typologie", "label": "Typologie", "value": "typologie" },
{ "id": "caracteristique", "label": "Caracteristiques", "value": "caracteristique" },
{ "id": "archive", "label": "Archive", "value": "archive" },
{ "id": "", "label": "", "value": "" },
{ "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres.
@ -820,6 +824,21 @@ const Partner_Client = (props) => {
]
const Type_Client_Option = [
{ "id": "entreprise", "label": "Société ", "value": "entreprise" },
{ "id": "particulier", "label": "Particulier", "value": "particulier" },
{ "id": "ppublic", "label": "P. Public", "value": "ppublic" },
{ "id": "", "label": "", "value": "" },
]
const Type_Client_Typologie = [
{ "id": "financeur", "label": "Financeur", "value": "financeur" },
{ "id": "fournisseur ", "label": "Fournisseur", "value": "fournisseur " },
{ "id": "client", "label": "Client ", "value": "client" },
{ "id": "", "label": "", "value": "" },
]
// Action en mass
const [actionmass_ftion_val, setactionmass_ftion_val] = useState("");
@ -1189,37 +1208,39 @@ const Partner_Client = (props) => {
{String(p_filtre1) !== "archive" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre1_value"
id="filtre1_value"
{String(p_filtre1) !== "archive" && String(p_filtre1) !== "type_client" && String(p_filtre1) !== "typologie" &&
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_filtre1_value}
onChange={(e) => { setp_filtre1_value(e.target.value); }}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<AiFillCloseCircle
style={{ 'cursor': "pointer", "color": "orangered" }}
onClick={(e) => {
setp_filtre1_value("");
}} />
</InputAdornment>
),
}}
<div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
name="filtre1_value"
id="filtre1_value"
/>
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_filtre1_value}
onChange={(e) => { setp_filtre1_value(e.target.value); }}
InputProps={{
endAdornment: (
<InputAdornment position="end">
<AiFillCloseCircle
style={{ 'cursor': "pointer", "color": "orangered" }}
onClick={(e) => {
setp_filtre1_value("");
}} />
</InputAdornment>
),
}}
}
</div>}
/>
}
</div>}
{String(p_filtre1) === "archive" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
@ -1248,6 +1269,60 @@ const Partner_Client = (props) => {
}
</div>}
{String(p_filtre1) === "type_client" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
value={Type_Client_Option.filter((data) => (data).id === String(p_filtre1_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={Type_Client_Option}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre1_value(value.value);
} else {
setp_filtre1_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>
}
</div>}
{String(p_filtre1) === "typologie" && <div className="div_row_droite texte_area_filter_value" >
{p_filtre1 &&
<Autocomplete
disablePortal
name="filtre1_value"
id="filtre1_value"
value={Type_Client_Typologie.filter((data) => (data).id === String(p_filtre1_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={Type_Client_Typologie}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre1_value(value.value);
} else {
setp_filtre1_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>
}
</div>}
{p_filtre1 && <div className='filter_bton_add'>
<Tooltip className="tooltip_css" id="my-tooltip01" style={{ "fontSize": "12px" }} />
@ -1297,7 +1372,7 @@ const Partner_Client = (props) => {
</div>
<div className="div_row_droite texte_area_filter" >
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" &&
{String(p_filtre2).length > 2 && String(p_filtre2) !== "archive" && String(p_filtre2) !== "type_client" && String(p_filtre2) !== "typologie" &&
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
required
@ -1348,6 +1423,52 @@ const Partner_Client = (props) => {
/>}
/>}
{String(p_filtre2).length > 3 && String(p_filtre2) === "type_client" &&
<Autocomplete
disablePortal
name="filtre2_value"
id="filtre2_value"
value={Type_Client_Option.filter((data) => (data).id === String(p_filtre2_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={Type_Client_Option}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre2_value(value.value);
} else {
setp_filtre2_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>}
{String(p_filtre2).length > 3 && String(p_filtre2) === "typologie" &&
<Autocomplete
disablePortal
name="filtre2_value"
id="filtre2_value"
value={Type_Client_Typologie.filter((data) => (data).id === String(p_filtre2_value))[0].label}
sx={{ float: "right" }}
className="disabled_style"
options={Type_Client_Typologie}
onChange={(event, value) => {
if (value && value.value) {
setp_filtre2_value(value.value);
} else {
setp_filtre2_value("");
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>}
/>}
</div>