recette2
cherif 2024-08-30 16:03:40 +02:00
parent 35bc46c538
commit c42967c630
6 changed files with 790 additions and 111 deletions

View File

@ -54,6 +54,9 @@ const AddParnerClient = (props) => {
const [p_client_type_id, setp_client_type_id] = useState("");
const [p_client_type_label, setp_client_type_label] = useState("");
const [p_client_type_financeur, setp_client_type_financeur] = useState("");
const [p_client_type_pouvoir_public, setp_client_type_pouvoir_public] = useState("");
const [p_client_raison_sociale, setclient_raison_sociale] = useState("");
const [p_client_is_company, setp_client_is_company] = useState("");
@ -630,6 +633,8 @@ const AddParnerClient = (props) => {
Get_List_Client_Type();
Getall_Partner_Paiement_Condition();
Get_List_Of_All_PJ(props.client_id);
Get_List_Type_Financeur();
Get_List_Type_Pouvoir_Public();
if (String(props.new_customer) !== "1") {
setformedit_mode("0");
@ -763,6 +768,22 @@ const AddParnerClient = (props) => {
else
setclient_tva("");
if (mylocalclient.type_financeur_id)
setp_client_type_financeur(mylocalclient.type_financeur_id);
else
setp_client_type_financeur("");
if (mylocalclient.type_pouvoir_public_id)
setp_client_type_pouvoir_public(mylocalclient.type_pouvoir_public_id);
else
setp_client_type_pouvoir_public("");
if (mylocalclient.website)
setclient_website(mylocalclient.website);
else
@ -776,7 +797,7 @@ const AddParnerClient = (props) => {
// Remplissage des doonées de facturation
if (mylocalclient.invoice_email)
setclient_invoice_email(mylocalclient.invoice_email);
else{
else {
setclient_invoice_email("");
sethas_client_invoice_email("0");
}
@ -804,7 +825,7 @@ const AddParnerClient = (props) => {
if (mylocalclient.invoice_condition_paiement_id)
setp_client_invoice_paiement_condition_id(mylocalclient.invoice_condition_paiement_id);
else{
else {
setp_client_invoice_paiement_condition_id("");
sethas_client_invoice_email("0");
}
@ -1161,6 +1182,14 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_type_id")[0].value = "";
}
if (document.getElementsByName("client_type_financeur_id") && document.getElementsByName("client_type_financeur_id")[0]) {
document.getElementsByName("client_type_financeur_id")[0].value = "";
}
if (document.getElementsByName("client_type_pouvoir_public_id") && document.getElementsByName("client_type_pouvoir_public_id")[0]) {
document.getElementsByName("client_type_pouvoir_public_id")[0].value = "";
}
if (document.getElementsByName("client_tva")) {
@ -1227,6 +1256,19 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_type_id")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("client_type_financeur_id") && document.getElementsByName("client_type_financeur_id")[0]) {
document.getElementsByName("client_type_financeur_id")[0].disabled = true;
document.getElementsByName("client_type_financeur_id")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("client_type_pouvoir_public_id") && document.getElementsByName("client_type_pouvoir_public_id")[0]) {
document.getElementsByName("client_type_pouvoir_public_id")[0].disabled = true;
document.getElementsByName("client_type_pouvoir_public_id")[0].style.backgroundColor = "#ECEFF1";
}
if (document.getElementsByName("client_tva") && document.getElementsByName("client_tva")[0]) {
document.getElementsByName("client_tva")[0].disabled = true;
document.getElementsByName("client_tva")[0].style.backgroundColor = "#ECEFF1";
@ -1297,6 +1339,19 @@ const AddParnerClient = (props) => {
document.getElementsByName("client_type_id")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("client_type_financeur_id") && document.getElementsByName("client_type_financeur_id")[0]) {
document.getElementsByName("client_type_financeur_id")[0].disabled = false;
document.getElementsByName("client_type_financeur_id")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("client_type_pouvoir_public_id") && document.getElementsByName("client_type_pouvoir_public_id")[0]) {
document.getElementsByName("client_type_pouvoir_public_id")[0].disabled = false;
document.getElementsByName("client_type_pouvoir_public_id")[0].style.backgroundColor = "#FFFFFF";
}
if (document.getElementsByName("client_tva")) {
document.getElementsByName("client_tva")[0].disabled = false;
document.getElementsByName("client_tva")[0].style.backgroundColor = "#FFFFFF";
@ -1587,6 +1642,9 @@ const AddParnerClient = (props) => {
form.append("is_client", "0");
form.append("invoice_automatique", p_detail_facturation_automatique);
form.append("type_financeur_id", p_client_type_financeur);
form.append("type_pouvoir_public_id", p_client_type_pouvoir_public);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Partner_Client/";
@ -1757,6 +1815,11 @@ const AddParnerClient = (props) => {
form.append("is_client", "0");
form.append("type_financeur_id", p_client_type_financeur);
form.append("type_pouvoir_public_id", p_client_type_pouvoir_public);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_Partner_Client/";
axios.post(myurl, form).then(res => {
@ -1818,13 +1881,13 @@ const AddParnerClient = (props) => {
var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if (String(client_invoice_email) === "" || !client_invoice_email.match(validRegex) ) {
if (String(client_invoice_email) === "" || !client_invoice_email.match(validRegex)) {
alert("L'adresse email de facturation est invalide.");
return;
}
if( String(p_client_invoice_paiement_condition_id).trim() === ""){
if (String(p_client_invoice_paiement_condition_id).trim() === "") {
alert(" Vous devez choisir une condition de paiement");
return;
}
@ -2704,7 +2767,7 @@ const AddParnerClient = (props) => {
}
if (file_1_name && file_1_name.name) {
console.log(" ### Traitement de : ", file_1_name.name);
const formData = new FormData();
formData.append('File', file_1_name);
@ -2880,8 +2943,142 @@ const AddParnerClient = (props) => {
// -- end gestion pièces jointes
const [New_Get_List_Type_Financeur_result, setNew_Get_List_Type_Financeur_result] = useState([]);
const [Get_List_Type_Financeur_api, setGet_List_Type_Financeur_api] = useState();
const [Get_List_Type_Financeur_message, setGet_List_Type_Financeur_message] = useState();
const [Get_List_Type_Financeur_result, setGet_List_Type_Financeur_result] = useState();
function Get_List_Type_Financeur() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Type_Organisme_Financement/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === "true") {
//console.log(" In Get_List_Type_Financeur res.data.status = " + res.data.status);
//console.log(" In Get_List_Type_Financeur res.data.message r_class = " + res.data.message);
setGet_List_Type_Financeur_api("true");
setGet_List_Type_Financeur_result(res.data.message);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
//---
var _id = JSON.parse(x)._id;
var code = JSON.parse(x).code;
var description = JSON.parse(x).description;
//---
var node = {
"_id": _id,
"code": code,
"description": description,
"label": code,
};
//console.log(" --- node = ", node);
new_data2.push(node);
});
var node = {
"_id": "",
"code": "",
"description": "",
"label": "",
};
//console.log(" --- node = ", node);
new_data2.push(node);
if (new_data2.length > 0)
setNew_Get_List_Type_Financeur_result(new_data2);
}
else {
setGet_List_Type_Financeur_api("false");
setGet_List_Type_Financeur_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( Get_List_Type_Financeur = ', error);
setGet_List_Type_Financeur_api("false");
alert(" Impossible de recuperer Get_List_Type_Financeur");
//setmyApimyApiMessage("")
})
}
const [New_Get_List_Type_Pouvoir_Public_result, setNew_Get_List_Type_Pouvoir_Public_result] = useState([]);
const [Get_List_Type_Pouvoir_Public_api, setGet_List_Type_Pouvoir_Public_api] = useState();
const [Get_List_Type_Pouvoir_Public_message, setGet_List_Type_Pouvoir_Public_message] = useState();
const [Get_List_Type_Pouvoir_Public_result, setGet_List_Type_Pouvoir_Public_result] = useState();
function Get_List_Type_Pouvoir_Public() {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_Type_Pouvoir_Public/";
axios.post(myurl, form).then(res => {
if (String(res.data.status) === "true") {
//console.log(" In Get_List_Type_Pouvoir_Public res.data.status = " + res.data.status);
//console.log(" In Get_List_Type_Pouvoir_Public res.data.message r_class = " + res.data.message);
setGet_List_Type_Pouvoir_Public_api("true");
setGet_List_Type_Pouvoir_Public_result(res.data.message);
var new_data2 = [];
const new_data = res.data.message.map((x) => {
//---
var _id = JSON.parse(x)._id;
var code = JSON.parse(x).code;
var description = JSON.parse(x).description;
//---
var node = {
"_id": _id,
"code": code,
"description": description,
"label": code + " - " + description,
};
//console.log(" --- node = ", node);
new_data2.push(node);
});
var node = {
"_id": "",
"code": "",
"description": "",
"label": "",
};
//console.log(" --- node = ", node);
new_data2.push(node);
if (new_data2.length > 0)
setNew_Get_List_Type_Pouvoir_Public_result(new_data2);
}
else {
setGet_List_Type_Pouvoir_Public_api("false");
setGet_List_Type_Pouvoir_Public_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
console.warn('Not good man :( Get_List_Type_Pouvoir_Public = ', error);
setGet_List_Type_Pouvoir_Public_api("false");
alert(" Impossible de recuperer Get_List_Type_Pouvoir_Public");
//setmyApimyApiMessage("")
})
}
return (
<div className="add_partner_client">
@ -2910,7 +3107,7 @@ const AddParnerClient = (props) => {
},
}}
/>&nbsp;Société &nbsp;&nbsp; &nbsp;&nbsp;
/>&nbsp;Société &nbsp;
<Radio
checked={p_client_is_company === '0'}
@ -2923,6 +3120,17 @@ const AddParnerClient = (props) => {
inputProps={{ 'aria-label': 'B' }}
/> &nbsp; Particulier
<Radio
checked={p_client_is_company === '2'}
onChange={(e) => {
DataEditMode();
setp_client_is_company('2');
}}
value="2"
name="radio-buttons"
inputProps={{ 'aria-label': 'C' }}
/> &nbsp; P. Public
</nav>
</div>
@ -2971,6 +3179,8 @@ const AddParnerClient = (props) => {
if (value && value._id) {
setp_client_type_id(value._id);
} else {
setp_client_type_id("");
}
}}
//value={p_one_detail_client_rattachement_nom}
@ -2983,39 +3193,71 @@ const AddParnerClient = (props) => {
/>
{/* <TextField
required
name="client_type_id"
id="client_type_id"
select
//label="Raison sociale"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={p_client_type_id}
onChange={(e) => {
setp_client_type_id(e.target.value);
}}
>
<MenuItem key="" value="" style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>
&nbsp;
</MenuItem>
{Get_List_Client_Type_result &&
Get_List_Client_Type_result.map((myclass) => (
<MenuItem key={JSON.parse(myclass)._id} value={JSON.parse(myclass)._id} style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>
{JSON.parse(myclass).code}
</MenuItem>
))}
</TextField>*/}
</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>}
{p_client_is_company && String(p_client_is_company) === "2" && <div className="session_caract"> Type P. Public <br />
<Autocomplete
disablePortal
name="client_type_pouvoir_public_id"
id="client_type_pouvoir_public_id"
className="disabled_style"
options={New_Get_List_Type_Pouvoir_Public_result}
onChange={(event, value) => {
if (value && value._id) {
setp_client_type_pouvoir_public(value._id);
} else {
setp_client_type_pouvoir_public("");
}
}}
//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 className="session_caract"> N° Siret <br />
<TextField
required
@ -3295,7 +3537,7 @@ const AddParnerClient = (props) => {
{has_client_invoice_email && String(has_client_invoice_email) === "0" && <nav>
<Tooltip className="tooltip_css" id="warn_invoice_data" style={{ "fontSize": "10px" }} />
<a data-tooltip-id="warn_invoice_data" data-tooltip-html="Les données de facturation sont incompletes ">
<WarningAmberIcon style={{ color: 'red', fontSize:"12px" }} />
<WarningAmberIcon style={{ color: 'red', fontSize: "12px" }} />
</a>
</nav>}
@ -3304,7 +3546,7 @@ const AddParnerClient = (props) => {
{client_has_communication_contact && String(client_has_communication_contact) === "0" && <nav>
<Tooltip className="tooltip_css" id="warn_com_contact" style={{ "fontSize": "10px" }} />
<a data-tooltip-id="warn_com_contact" data-tooltip-html="Aucun contact de communication ">
<WarningAmberIcon style={{ color: 'red', fontSize:"12px" }} />
<WarningAmberIcon style={{ color: 'red', fontSize: "12px" }} />
</a>
</nav>}
@ -3341,7 +3583,8 @@ const AddParnerClient = (props) => {
},
}}
/>&nbsp;Société &nbsp;&nbsp; &nbsp;&nbsp;
/>&nbsp;Société &nbsp;
<Radio
checked={p_client_is_company === '0'}
@ -3354,6 +3597,18 @@ const AddParnerClient = (props) => {
inputProps={{ 'aria-label': 'B' }}
/> &nbsp; Particulier
<Radio
checked={p_client_is_company === '2'}
onChange={(e) => {
DataEditMode();
setp_client_is_company('2');
}}
value="2"
name="radio-buttons"
inputProps={{ 'aria-label': 'C' }}
/> &nbsp; P. Public
</nav>
</div>
@ -3406,6 +3661,39 @@ const AddParnerClient = (props) => {
/>
</div>}
{String(formedit_mode) !== "1" && p_client_is_financeur === true &&
New_Get_List_Type_Financeur_result && New_Get_List_Type_Financeur_result.length > 1 && <div className="session_caract"> Type Financeur<br />
<TextField
required
name="client_type_financeur_id"
id="client_type_financeur_id"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={New_Get_List_Type_Financeur_result.filter((data) => (data)._id === String(p_client_type_financeur))[0].label}
/>
</div>}
{String(formedit_mode) !== "1" && p_client_is_company && String(p_client_is_company) === "2" &&
New_Get_List_Type_Pouvoir_Public_result && New_Get_List_Type_Pouvoir_Public_result.length > 1 && <div className="session_caract"> Type P. Public <br />
<TextField
required
name="client_type_pouvoir_public_id"
id="client_type_pouvoir_public_id"
InputLabelProps={{
shrink: true,
}}
disabled={false}
className="disabled_style"
value={New_Get_List_Type_Pouvoir_Public_result.filter((data) => (data)._id === String(p_client_type_pouvoir_public))[0].code}
/>
</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 />
@ -3433,34 +3721,66 @@ const AddParnerClient = (props) => {
/>
}
/>
{/*<TextField
required
name="client_type_id"
id="client_type_id"
select
//label="Raison sociale"
InputLabelProps={{
shrink: true,
}}
disabled={false}
</div>}
{p_client_is_financeur === true && New_Get_List_Type_Financeur_result && New_Get_List_Type_Financeur_result.length > 1 &&
String(formedit_mode) === "1" && <div className="session_caract"> Type Financeur <br />
<Autocomplete
disablePortal
name="client_type_financeur_id"
id="client_type_financeur_id"
className="disabled_style"
value={p_client_type_id}
options={New_Get_List_Type_Financeur_result}
value={New_Get_List_Type_Financeur_result.filter((data) => (data)._id === String(p_client_type_financeur))[0].label}
onChange={(e) => {
setp_client_type_id(e.target.value);
onChange={(event, value) => {
if (value && value._id) {
setp_client_type_financeur(value._id);
DataUpdated();
}
}}
>
{Get_List_Client_Type_result &&
Get_List_Client_Type_result.map((myclass) => (
<MenuItem key={JSON.parse(myclass)._id} value={JSON.parse(myclass)._id} style={{ "paddingLeft": "5px", "textAlign": "left", "width": "100%" }}>
{JSON.parse(myclass).code}
</MenuItem>
))}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</div>}
{p_client_is_company && String(p_client_is_company) === "2" && New_Get_List_Type_Pouvoir_Public_result && New_Get_List_Type_Pouvoir_Public_result.length > 1 &&
String(formedit_mode) === "1" && <div className="session_caract"> Type P. Public <br />
<Autocomplete
disablePortal
name="client_type_pouvoir_public_id"
id="client_type_pouvoir_public_id"
className="disabled_style"
options={New_Get_List_Type_Pouvoir_Public_result}
value={New_Get_List_Type_Pouvoir_Public_result.filter((data) => (data)._id === String(p_client_type_pouvoir_public))[0].label}
onChange={(event, value) => {
if (value && value._id) {
setp_client_type_pouvoir_public(value._id);
DataUpdated();
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps={{ ...params.inputProps, style: { fontSize: 12, height: "1.4rem" } }}
/>
}
/>
</TextField>*/}
</div>}

View File

@ -7253,32 +7253,6 @@ const Employes = (props) => {
<DialogContent className="DialogContent_width">
<div className="session_caract_Dialog" > <b>Type de contrat </b>
{/*p_employe_contrat_type_contrat && <Autocomplete
disablePortal
name="event_dialog_code_groupe_prix"
id="event_dialog_code_groupe_prix"
fullWidth
//className="disabled_style enable_style"
options={New_Getall_Employee_Type_Contrat_result}
value={New_Getall_Employee_Type_Contrat_result.filter((data) => (data).code === String(p_employe_contrat_type_contrat))[0].label}
onChange={(event, value) => {
if (value && value.code) {
setp_employe_contrat_type_contrat(value.code);
setdialog_contrat_data_changed("1");
var result2 = Getall_Employee_Type_Contrat_result.filter((val) => JSON.parse(val).code === String(value.code));
settype_contrat_qte(JSON.parse(result2[0]).quantitatif);
}
}}
renderInput={(params) => <TextField {...params} label="" placeholder="Choisir une option"
inputProps = {{...params.inputProps, style: { fontSize: 12, height:"1.4rem" }}}
/>
}
/>*/}
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}

View File

@ -254,9 +254,15 @@ const Mon_Tableau_De_Bord = (props) => {
submenu_color_management("rapport_rh");
}
function submenu_bpf() {
setsubmenu("bpf");
submenu_color_management("bpf");
}
function submenu_color_management(current_menu) {
const list_sous_menu = ["montbd", "rapport_activite", "rapport_financier", "rapport_rh"]
const list_sous_menu = ["montbd", "rapport_activite", "rapport_financier", "rapport_rh", "bpf"]
for (let i = 0; i < list_sous_menu.length; i++) {
@ -1041,8 +1047,67 @@ const Mon_Tableau_De_Bord = (props) => {
}
/********* GESTION BPF */
const [Getall_Qry_BPF_PAVE_Data_result_JSON, setGetall_Qry_BPF_PAVE_Data_result_JSON] = useState();
const [Getall_Qry_BPF_PAVE_Data_api, setGetall_Qry_BPF_PAVE_Data_api] = useState();
const [Getall_Qry_BPF_PAVE_Data_message, setGetall_Qry_BPF_PAVE_Data_message] = useState();
const [Getall_Qry_BPF_PAVE_Data_result, setGetall_Qry_BPF_PAVE_Data_result] = useState([]);
function Getall_Qry_BPF_PAVE_Data(event) {
var form = new FormData();
const stored_cookie = getCookie('tokenmysypart');
var date_from = "";
if (p_filter_date_from) {
date_from = p_filter_date_from;
}
var date_to = "";
if (p_filter_date_to) {
date_to = p_filter_date_to;
}
form.append("token", stored_cookie);
form.append("periode_start_date", date_from);
form.append("periode_end_date", date_to);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_Generate_BPF_From_partner_invoice_header/";
//console.log(" ### form = ", form);
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
if (String(res.data.status) === String("true")) {
//console.log(" In Getall_Qry_BPF_PAVE_Data res.data.status = " + res.data.status);
// console.log(" In Getall_Qry_BPF_PAVE_Data res.data.message r_class = " + res.data.message);
setGetall_Qry_BPF_PAVE_Data_result_JSON(JSON.parse(res.data.message));
setGetall_Qry_BPF_PAVE_Data_api("true");
setGetall_Qry_BPF_PAVE_Data_result(res.data.message);
}
else {
setGetall_Qry_BPF_PAVE_Data_api("false");
setGetall_Qry_BPF_PAVE_Data_message(res.data.message);
alert(res.data.message)
}
}).catch((error) => {
setLoading(false);
console.warn('Not good man :( Getall_Qry_BPF_PAVE_Data = ', error);
setGetall_Qry_BPF_PAVE_Data_api("false");
alert("Impossible de récuperer les données demandées")
//setmyApimyApiMessage("")
})
}
/****** FIN GESTION BPF */
return (
<div className="mon_tableau_de_bord">
{isLoading && <div className="loader-container">
@ -1055,6 +1120,7 @@ const Mon_Tableau_De_Bord = (props) => {
<Button variant="outlined" onClick={submenu_rapport_activite} className="detail_class_submenu" id='rapport_activite' name='rapport_activite' >Rapport Activite </Button>
<Button variant="outlined" onClick={submenu_rapport_financier} className="detail_class_submenu" id='rapport_financier' name='rapport_financier' >Rapports Financiers </Button>
<Button variant="outlined" onClick={submenu_rapport_rh} className="detail_class_submenu" id='rapport_rh' name='rapport_rh' >Ressources Humaine </Button>
<Button variant="outlined" onClick={submenu_bpf} className="detail_class_submenu" id='bpf' name='bpf' > Bilan Péd. Fin. (BPF) </Button>
</div>
@ -1162,6 +1228,12 @@ const Mon_Tableau_De_Bord = (props) => {
Getall_Qry_RH_Task_Cost_Data();
}
// Recuperation des rapports ressources humaines
if (String(submenu) === "bpf") {
Getall_Qry_BPF_PAVE_Data();
}
}}> Afficher
</Button><br />
@ -1881,6 +1953,311 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
{String(submenu) === String("bpf") && <div style={{ "border": "None" }}>
<h3> Bilan Pédagogique et Financier (BPF) </h3>
<div className="titre1"> C. Bilan financier hors taxes : Origine des produits de l'organisme </div>
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left" }}>
Produits provenant :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
&nbsp;
</div>
</div>
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left", "fontWeight": "600" }}>
- des entreprises pour la formation de leurs salariés :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "15px", "fontWeight": "600" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c1_entreprise && <nav>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c1_entreprise[0].bpf_c1_entreprise}
</nav>}
</div>
</div>
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left" }}>
- des organismes gestionnaires des fonds de la formation professionnelle pour des actions dispensées dans le cadre :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
&nbsp;
</div>
</div>
<br />
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c2_type_apprenant &&
Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c2_type_apprenant.length > 0 && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c2_type_apprenant.map((my_bpf_c2_data) => (
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left", "paddingLeft": "3rem", "fontWeight": "600" }}>
<nav>
{my_bpf_c2_data.Type_Apprenant_Desc}
</nav>
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
{my_bpf_c2_data.TotalAmount_HT}
</nav>
</div>
</div>
</div>))}
<br />
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left", "fontWeight": "600" }}>
- Total des produits provenant des organismes gestionnaires des fonds de la formation :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "15px", "fontWeight": "600" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.total_bpf_c_type_apprenant && <nav>
{Getall_Qry_BPF_PAVE_Data_result_JSON.total_bpf_c_type_apprenant}
</nav>}
</div>
</div>
<br />
<br />
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left" }}>
Des pouvoirs publics :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
&nbsp;
</div>
</div>
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c3_c8_type_pouvoir_public &&
Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c3_c8_type_pouvoir_public.length > 0 && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c3_c8_type_pouvoir_public.map((my_bpf_c3_c8_data) => (
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left", "paddingLeft": "3rem", "fontWeight": "600" }}>
<nav>
{my_bpf_c3_c8_data.Type_pouvoir_public_desc}
</nav>
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
{my_bpf_c3_c8_data.TotalAmount_HT}
</nav>
</div>
</div>
</div>))}
<br />
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left", "fontWeight": "600" }}>
- de contrats conclus avec des personnes à titre individuel et à leurs frais :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "15px", "fontWeight": "600" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c9_is_company_particulier && <nav>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_c9_is_company_particulier[0].TotalAmount_HT}
</nav>}
</div>
</div>
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '70%', "float": "left" }}>
TOTAL DES PRODUITS RÉALISÉS AU TITRE DE LA FORMATION PROFESSIONNELLE :
</div>
<div style={{ "width": '25%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
ttttt
</div>
</div>
</div>
<hr className="hr_break" />
<div className="titre1"> D. Bilan financier hors taxes : Charges de l'organisme </div>
<div style={{ "width": '100%', "float": "left" }}>
Ces données peuvent vous être transmises par votre comptable si vous en avez un, ce qui vous fera gagner un temps précieux.
Ne pas oublier les charge indirectes (ex : bouteilles d'eau achetées pour les apprenants, d'autres achats ponctuels, notes de frais de vos formateurs, etc)
</div>
<hr className="hr_break" />
<div className="titre1"> E. Personnes dispensant des heures de formation </div>
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '50%', "float": "left", "paddingLeft": "3rem", "fontWeight": "600" }}>
<nav>
&nbsp;
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
Nombre d'heures
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
Nombre apprenants
</nav>
</div>
</div>
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '50%', "float": "left" }}>
Personnes de votre organisme dispensant des heures de formation
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_e1_nb_formateurs_internee}
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_e1_nb_heures_formateurs_internes}
</div>
</div>
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '50%', "float": "left" }}>
Personnes extérieures à votre organisme dispensant des heures de formation dans le cadre de contrats de sous-traitance
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_e2_nb_formateurs_externes}
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px" }}>
{Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_e2_nb_heures_formateurs_externes}
</div>
</div>
</div>
<hr className="hr_break" />
<div className="titre1"> F. Type de stagiaires de l'organisme </div>
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '50%', "float": "left", "paddingLeft": "3rem", "fontWeight": "600" }}>
<nav>
&nbsp;
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
Nombre d'heures
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
Nombre apprenants
</nav>
</div>
</div>
</div>
{Getall_Qry_BPF_PAVE_Data_result_JSON && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_f_class_niveau_formation &&
Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_f_class_niveau_formation.length > 0 && Getall_Qry_BPF_PAVE_Data_result_JSON.bpf_f_class_niveau_formation.map((my_bpf_f_data) => (
<div className="div_row">
<div style={{ "width": '100%', "float": "left" }}>
<div style={{ "width": '50%', "float": "left", "paddingLeft": "3rem", "fontWeight": "600" }}>
<nav>
{my_bpf_f_data.Class_Level_Desc}
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
{my_bpf_f_data.Nb_Apprenant_By_Class_Level}
</nav>
</div>
<div style={{ "width": '23%', "float": "right", textAlign: "right", paddingRight: "25px", "fontWeight": "600" }}>
<nav>
{my_bpf_f_data.total_nb_heure_formation_by_level}
</nav>
</div>
</div>
</div>))}
<hr className="hr_break" />
<div className="div_row">
<nav style={{ width: "5rem", float: "right", "marginRight": "1rem" }}> Imprimer </nav>
</div>
</div>}
{String(submenu) === String("montbd") && <div style={{ "border": "None" }}>
<h3> Mon tableau de bord </h3>
@ -2087,7 +2464,7 @@ const Mon_Tableau_De_Bord = (props) => {
</div>}
</div>
</div>
</div >
)
}

View File

@ -40,7 +40,7 @@ import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import { FcOrganization, FcBusinessman } from "react-icons/fc";
import { FcOrganization, FcBusinessman, FcDepartment } from "react-icons/fc";
import Autocomplete from '@mui/material/Autocomplete';
const Partner_Client = (props) => {
@ -655,10 +655,13 @@ const Partner_Client = (props) => {
</div>
{Get_List_Partner_Clients_result && selected_id &&
String(selected_id).length > 0 && <div className="div_row_droite_dialog_session" style={{ "textAlign": 'right' }}>
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "1" && <nav> <FcOrganization /> Société </nav>}
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "0" && <nav> <FcBusinessman /> Particulier </nav>}
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) === "2" && <nav> <FcDepartment /> P. Public </nav>}
{String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "0" &&
String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "1" &&
String(JSON.parse(Get_List_Partner_Clients_result[gridline_id]).is_company) !== "2" &&
""}
</div>}

View File

@ -1913,6 +1913,11 @@ const Partner_Configuration_Technique = (props) => {
{ "id": "recyclage_warning", "label": "recyclage_warning", "value": "recyclage_warning" },
{ "id": "recyclage_warning_lead_time", "label": "recyclage_warning_lead_time", "value": "recyclage_warning_lead_time" },
{ "id": "nb_heure_par_jour", "label": "nb_heure_par_jour", "value": "nb_heure_par_jour" },
{ "id": "nb_heure_par_semaine", "label": "nb_heure_par_semaine", "value": "nb_heure_par_semaine" },
{ "id": "nb_heure_par_annee", "label": "nb_heure_par_annee", "value": "nb_heure_par_annee" },
{ "id": "", "label": "", "value": "" },
]

View File

@ -112,7 +112,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -712,7 +712,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1368,7 +1368,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1762,7 +1762,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -1911,7 +1911,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;
@ -2383,7 +2383,7 @@
text-align: center;
margin-bottom: 0.8rem;
color: white;
cursor: pointer;
cursor: unset;
font-style: italic;
background-color: gray;
font-weight: normal;