Choisir une question
{New_Getall_Employee_Statistic_Question_List_result && New_Getall_Employee_Statistic_Question_List_result.length > 0 &&
+
diff --git a/src/components/Mon_Tableau_De_Bord.js b/src/components/Mon_Tableau_De_Bord.js
index 7a0e833..130c3c4 100644
--- a/src/components/Mon_Tableau_De_Bord.js
+++ b/src/components/Mon_Tableau_De_Bord.js
@@ -7,7 +7,8 @@ import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
-
+import Link from '@mui/material/Link';
+import { PiDotsThree } from "react-icons/pi";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
@@ -49,6 +50,7 @@ import {
useTheme,
} from "@mui/material";
import { tokens } from "../theme";
+import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
const Mon_Tableau_De_Bord = (props) => {
@@ -62,6 +64,103 @@ const Mon_Tableau_De_Bord = (props) => {
const [Get_Connected_User_Dashbord_message, setGet_Connected_User_Dashbord_message] = useState();
const [Get_Connected_User_Dashbord_result, setGet_Connected_User_Dashbord_result] = useState([]);
+ const columns = [
+ { field: 'id', headerName: 'id', hide: true },
+ { field: '_id', headerName: '_id', hide: true },
+
+ { field: 'civilite', headerName: 'Civ.', hide: true, minWidth: 100, flex: 1, maxWidth: 60, renderCell: (params) =>
, },
+ { field: 'nom', headerName: 'Nom', hide: false, flex: 1, minWidth: 200, renderCell: (params) =>
},
+ { field: 'prenom', headerName: 'Prénom', hide: false, flex: 1, minWidth: 200, renderCell: (params) =>
},
+ { field: 'email', headerName: 'Email', hide: true, flex: 1, minWidth: 250, renderCell: (params) =>
},
+ { field: 'ismanager', headerName: 'Manager', hide: true, minWidth: 100, flex: 1, maxWidth: 100, renderCell: (params) =>
},
+ { field: 'fonction', headerName: 'Fonction', hide: true, minWidth: 200, flex: 1, maxWidth: 150, renderCell: (params) =>
},
+
+ { field: 'agenda_event_title', headerName: 'Titre Event', hide: false, minWidth: 250, flex: 1, renderCell: (params) =>
},
+ { field: 'agenda_event_code_session', headerName: 'Code session', hide: false, minWidth: 250, flex: 1, renderCell: (params) =>
},
+ { field: 'agenda_event_type', headerName: 'Type Event', hide: false, minWidth: 150, flex: 1, maxWidth: 100, renderCell: (params) =>
},
+ { field: 'event_duration_hour', headerName: 'Durée (h)', hide: false, minWidth: 100, flex: 1, maxWidth: 100, renderCell: (params) =>
},
+ { field: 'agenda_date_jour', headerName: 'Date', hide: false, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
},
+ { field: 'agenda_event_start', headerName: 'Début', hide: false, minWidth: 150, flex: 1, maxWidth: 200, renderCell: (params) =>
},
+ { field: 'agenda_event_end', headerName: 'Fin', hide: false, minWidth: 150, flex: 1, maxWidth: 200, renderCell: (params) =>
},
+ { field: 'agenda_event_sequence_session_id', headerName: 'agenda_id', hide: true, maxWidth: 1, renderCell: (params) =>
},
+ ]
+
+ const columns_task_cost = [
+ { field: 'id', headerName: 'id', hide: true },
+ { field: '_id', headerName: '_id', hide: true },
+
+ { field: 'rh_civilite', headerName: 'Civ.', hide: true, minWidth: 100, flex: 1, maxWidth: 60, renderCell: (params) =>
, },
+ { field: 'rh_nom', headerName: 'Nom', hide: false, flex: 1, minWidth: 200, renderCell: (params) =>
, },
+ { field: 'rh_prenom', headerName: 'Prénom', hide: false, flex: 1, minWidth: 200, renderCell: (params) =>
, },
+ { field: 'rh_email', headerName: 'Email', hide: true, flex: 1, minWidth: 250, renderCell: (params) =>
, },
+ { field: 'rh_ismanager', headerName: 'Manager', hide: true, minWidth: 50, flex: 1, maxWidth: 100, renderCell: (params) =>
, },
+ { field: 'rh_fonction', headerName: 'Fonction', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_telephone_mobile', headerName: 'Mobile', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_adr_adresse', headerName: 'Adesse', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_adr_code_postal', headerName: 'CP', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_adr_ville', headerName: 'Ville', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_adr_pays', headerName: 'Pays', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+
+
+ { field: 'rh_contrat_date_debut', headerName: 'Ctrat Du', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_date_fin', headerName: 'Ctrat Au', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_type_contrat', headerName: 'Ctrat Type', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_type_employe', headerName: 'Ctrat Empl.', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_cout', headerName: 'Ctrat Cout', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_periodicite', headerName: 'Ctrat Périodicité', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_quantite', headerName: 'Ctrat Qte', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+
+ { field: 'rh_contrat_groupe_prix_achat_id', headerName: 'Grp Prix ID', hide: true, Width: 0, renderCell: (params) =>
, },
+ { field: 'rh_contrat_groupe_prix_achat_code', headerName: 'Grp Prix Code', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+
+ { field: 'rh_contrat_groupe_prix_achat_cout', headerName: 'Grp Prix Cout', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_contrat_groupe_prix_achat_periodicite', headerName: 'Grp Prix Périodicité', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+
+
+ { field: 'rh_event_planning_event_title', headerName: 'Planning Titre', hide: false, minWidth: 200, flex: 1, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_even_comment', headerName: 'Planning Comment', hide: true, minWidth: 100, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_event_type', headerName: 'Planning Type', hide: false, minWidth: 150, flex: 1, maxWidth: 100, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_event_duration_hour', headerName: 'Planning Durée (h)', hide: false, minWidth: 100, flex: 1, maxWidth: 100, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_agenda_date_jour', headerName: 'Planning Date', hide: true, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_event_start', headerName: 'Planning Début', hide: false, minWidth: 150, flex: 1, maxWidth: 200, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_event_end', headerName: 'Planning Fin', hide: false, minWidth: 150, flex: 1, maxWidth: 200, renderCell: (params) =>
, },
+ { field: 'rh_event_planning_event_cost', headerName: 'Planning Cout Total (HT)', hide: false, minWidth: 150, flex: 1, maxWidth: 150, renderCell: (params) =>
, },
+
+ ]
+
+ const [selectionModel_task_cost, setSelectionModel_task_cost] = React.useState([]);
+
+ function ExpandableCell_50({ value }) {
+ const [expanded, setExpanded] = React.useState(false);
+
+ return (
+
+ {value &&
+
+ {expanded ? value : value.slice(0, 50)}
+ {value.length > 50 && (
+ // eslint-disable-next-line jsx-a11y/anchor-is-valid
+
setExpanded(!expanded)}
+ >
+ {expanded ?
Réduire :
Voir }
+
+ )}
+
}
+
+ {value &&
+
+
+ }
+
+ );
+ }
+
+ const [selectionModel, setSelectionModel] = React.useState([]);
+
function Get_Connected_User_Dashbord() {
var form = new FormData();
@@ -150,9 +249,14 @@ const Mon_Tableau_De_Bord = (props) => {
}
+ function submenu_rapport_rh() {
+ setsubmenu("rapport_rh");
+ submenu_color_management("rapport_rh");
+ }
+
function submenu_color_management(current_menu) {
- const list_sous_menu = ["montbd", "rapport_activite", "rapport_financier"]
+ const list_sous_menu = ["montbd", "rapport_activite", "rapport_financier", "rapport_rh"]
for (let i = 0; i < list_sous_menu.length; i++) {
@@ -565,6 +669,12 @@ const Mon_Tableau_De_Bord = (props) => {
if (local_group_by === "class")
myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Factures_Data_By_Class/";
+ if (local_group_by === "client") {
+ myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Factures_Data_By_Client_V2/";
+ form.append("filter_client_id", "");
+ }
+
+
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
@@ -615,17 +725,323 @@ const Mon_Tableau_De_Bord = (props) => {
}
- function display_invoice_by_session() {
- setfilter_invoice_group_by("class");
- Getall_Qry_Invoice_Data("class");
+ function display_invoice_by_client() {
+ setfilter_invoice_group_by("client");
+ Getall_Qry_Invoice_Data("client");
}
function display_invoice_by_periode_cumule() {
- setfilter_invoice_group_by("class");
- Getall_Qry_Invoice_Data("class");
+ setfilter_invoice_group_by("cumule");
+ Getall_Qry_Invoice_Data("");
}
+ const [Getall_Qry_Quotation_Data_result_JSON, setGetall_Qry_Quotation_Data_result_JSON] = useState([]);
+ const [Getall_Qry_Quotation_Data_api, setGetall_Qry_Quotation_Data_api] = useState();
+ const [Getall_Qry_Quotation_Data_message, setGetall_Qry_Quotation_Data_message] = useState();
+ const [Getall_Qry_Quotation_Data_result, setGetall_Qry_Quotation_Data_result] = useState([]);
+ function Getall_Qry_Quotation_Data(local_group_by) {
+
+ 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);
+ form.append("filter_value", filter_value);
+ form.append("filter_client_id", "");
+
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Quotation_Data_By_Periode/";
+
+ if (local_group_by === "client") {
+ myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Quotation_Data_By_Client/";
+ }
+
+ setLoading(true);
+ axios.post(myurl, form).then(res => {
+ setLoading(false);
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Getall_Qry_Quotation_Data res.data.status = " + res.data.status);
+ //console.log(" In Getall_Qry_Quotation_Data res.data.message r_class = " + res.data.message);
+
+ setGetall_Qry_Quotation_Data_result_JSON(JSON.parse('[' + res.data.message + ']'));
+
+ var jsonObj = JSON.parse('[' + res.data.message + ']');
+
+ //console.log("Getall_Qry_Quotation_Data_result_JSON jsonObj = ", jsonObj)
+
+ setGetall_Qry_Quotation_Data_api("true");
+ setGetall_Qry_Quotation_Data_result(res.data.message);
+
+
+ }
+ else {
+ setGetall_Qry_Quotation_Data_api("false");
+ setGetall_Qry_Quotation_Data_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ setLoading(false);
+ console.warn('Not good man :( Getall_Qry_Quotation_Data = ', error);
+ setGetall_Qry_Quotation_Data_api("false");
+ alert("Impossible de récuperer les données demandées")
+ //setmyApimyApiMessage("")
+ })
+ }
+
+ const [filter_quotation_group_by, setfilter_quotation_group_by] = useState("periode");
+
+
+ function display_quotation_by_formation() {
+ setfilter_quotation_group_by("class");
+ Getall_Qry_Quotation_Data("class");
+ }
+
+ function display_quotation_by_periode() {
+ setfilter_quotation_group_by("periode");
+ Getall_Qry_Quotation_Data("");
+ }
+
+
+ function display_quotation_by_client() {
+ setfilter_quotation_group_by("client");
+ Getall_Qry_Quotation_Data("client");
+ }
+
+
+ function display_quotation_by_periode_cumule() {
+ setfilter_quotation_group_by("cumule");
+ Getall_Qry_Quotation_Data("");
+ }
+
+
+ const [Getall_Qry_Previsionnel_Data_result_JSON, setGetall_Qry_Previsionnel_Data_result_JSON] = useState([]);
+ const [Getall_Qry_Previsionnel_Data_api, setGetall_Qry_Previsionnel_Data_api] = useState();
+ const [Getall_Qry_Previsionnel_Data_message, setGetall_Qry_Previsionnel_Data_message] = useState();
+ const [Getall_Qry_Previsionnel_Data_result, setGetall_Qry_Previsionnel_Data_result] = useState([]);
+ function Getall_Qry_Previsionnel_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);
+ form.append("filter_value", filter_value);
+ form.append("filter_client_id", "");
+
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Qery_List_Facture_Previsionnelle_Data_By_Periode/";
+
+ setLoading(true);
+ axios.post(myurl, form).then(res => {
+ setLoading(false);
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Getall_Qry_Previsionnel_Data res.data.status = " + res.data.status);
+ //console.log(" In Getall_Qry_Previsionnel_Data res.data.message r_class = " + res.data.message);
+
+ setGetall_Qry_Previsionnel_Data_result_JSON(JSON.parse('[' + res.data.message + ']'));
+
+ var jsonObj = JSON.parse('[' + res.data.message + ']');
+
+ //console.log("jsonObj = ", jsonObj)
+
+ setGetall_Qry_Previsionnel_Data_api("true");
+ setGetall_Qry_Previsionnel_Data_result(res.data.message);
+
+
+ }
+ else {
+ setGetall_Qry_Previsionnel_Data_api("false");
+ setGetall_Qry_Previsionnel_Data_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ setLoading(false);
+ console.warn('Not good man :( Getall_Qry_Previsionnel_Data = ', error);
+ setGetall_Qry_Previsionnel_Data_api("false");
+ alert("Impossible de récuperer les données demandées")
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+
+ const [Getall_Qry_RH_Data_result_JSON, setGetall_Qry_RH_Data_result_JSON] = useState([]);
+ const [Getall_Qry_RH_Data_api, setGetall_Qry_RH_Data_api] = useState();
+ const [Getall_Qry_RH_Data_message, setGetall_Qry_RH_Data_message] = useState();
+ const [Getall_Qry_RH_Data_result, setGetall_Qry_RH_Data_result] = useState([]);
+ function Getall_Qry_RH_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;
+
+ }
+
+ var event_type = "";
+ /*if (event_type_filter) {
+ event_type = event_type_filter;
+
+ }*/
+
+
+ form.append("token", stored_cookie);
+ form.append("session_start_date", date_from);
+ form.append("session_end_date", date_to);
+ form.append("filter_value", filter_value);
+
+ form.append("tab_rh_id", "all");
+
+ form.append("event_type", event_type);
+
+
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Humain_Ressource_With_Planning/";
+
+ setLoading(true);
+ axios.post(myurl, form).then(res => {
+ setLoading(false);
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Getall_Qry_RH_Data res.data.status = " + res.data.status);
+ //console.log(" In Getall_Qry_RH_Data res.data.message r_class = " + res.data.message);
+
+ setGetall_Qry_RH_Data_result_JSON(JSON.parse('[' + res.data.message + ']'));
+
+ var jsonObj = JSON.parse('[' + res.data.message + ']');
+
+ setGetall_Qry_RH_Data_api("true");
+ setGetall_Qry_RH_Data_result(res.data.message);
+
+
+ }
+ else {
+ setGetall_Qry_RH_Data_api("false");
+ setGetall_Qry_RH_Data_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ setLoading(false);
+ console.warn('Not good man :( Getall_Qry_RH_Data = ', error);
+ setGetall_Qry_RH_Data_api("false");
+ alert("Impossible de récuperer les données demandées")
+ //setmyApimyApiMessage("")
+ })
+ }
+
+ const [Getall_Qry_RH_Task_Cost_Data_result_JSON, setGetall_Qry_RH_Task_Cost_Data_result_JSON] = useState([]);
+ const [Getall_Qry_RH_Task_Cost_Data_api, setGetall_Qry_RH_Task_Cost_Data_api] = useState();
+ const [Getall_Qry_RH_Task_Cost_Data_message, setGetall_Qry_RH_Task_Cost_Data_message] = useState();
+ const [Getall_Qry_RH_Task_Cost_Data_result, setGetall_Qry_RH_Task_Cost_Data_result] = useState([]);
+ function Getall_Qry_RH_Task_Cost_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;
+
+ }
+
+
+ var event_type = "";
+ /*if (event_type_filter) {
+ event_type = event_type_filter;
+
+ }*/
+
+ form.append("token", stored_cookie);
+ form.append("session_start_date", date_from);
+ form.append("session_end_date", date_to);
+ form.append("filter_value", filter_value);
+
+ form.append("tab_rh_id", "all");
+
+ form.append("event_type", event_type);
+
+
+
+ var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Humain_Ressource_With_Planning_And_Cost/";
+
+ setLoading(true);
+ axios.post(myurl, form).then(res => {
+ setLoading(false);
+ if (String(res.data.status) === String("true")) {
+ //console.log(" In Getall_Qry_RH_Task_Cost_Data res.data.status = " + res.data.status);
+ //console.log(" In Getall_Qry_RH_Task_Cost_Data res.data.message r_class = " + res.data.message);
+
+ setGetall_Qry_RH_Task_Cost_Data_result_JSON(JSON.parse('[' + res.data.message + ']'));
+
+ var jsonObj = JSON.parse('[' + res.data.message + ']');
+
+ setGetall_Qry_RH_Task_Cost_Data_api("true");
+ setGetall_Qry_RH_Task_Cost_Data_result(res.data.message);
+
+
+ }
+ else {
+ setGetall_Qry_RH_Task_Cost_Data_api("false");
+ setGetall_Qry_RH_Task_Cost_Data_message(res.data.message);
+ alert(res.data.message)
+ }
+
+ }).catch((error) => {
+ setLoading(false);
+ console.warn('Not good man :( Getall_Qry_RH_Task_Cost_Data = ', error);
+ setGetall_Qry_RH_Task_Cost_Data_api("false");
+ alert("Impossible de récuperer les données demandées")
+ //setmyApimyApiMessage("")
+ })
+ }
+
+
+
return (
@@ -638,6 +1054,7 @@ const Mon_Tableau_De_Bord = (props) => {
Mon tableau de bord
Rapport Activite
Rapports Financiers
+ Ressources Humaine
@@ -735,6 +1152,14 @@ const Mon_Tableau_De_Bord = (props) => {
// Recuperation des rapports financiers
if (String(submenu) === "rapport_financier") {
Getall_Qry_Invoice_Data();
+ Getall_Qry_Quotation_Data();
+ Getall_Qry_Previsionnel_Data();
+ }
+
+ // Recuperation des rapports ressources humaines
+ if (String(submenu) === "rapport_rh") {
+ Getall_Qry_RH_Data();
+ Getall_Qry_RH_Task_Cost_Data();
}
}}> Afficher
@@ -759,7 +1184,7 @@ const Mon_Tableau_De_Bord = (props) => {
Par Période
Par Ftion
-
Par Session
+
Par Client
Par période (Cumulé)
@@ -777,6 +1202,48 @@ const Mon_Tableau_De_Bord = (props) => {
/>}
+ {filter_invoice_group_by && String(filter_invoice_group_by) === "client" &&