From 803b3efe4a2bf116b093f1330ff421ba52c1e3dd Mon Sep 17 00:00:00 2001 From: cherif Date: Mon, 4 Mar 2024 16:52:52 +0100 Subject: [PATCH] ddd --- src/components/Crm_Opportunite.js | 808 ++++++++++++++++++++---------- 1 file changed, 541 insertions(+), 267 deletions(-) diff --git a/src/components/Crm_Opportunite.js b/src/components/Crm_Opportunite.js index af974ad..a878d07 100644 --- a/src/components/Crm_Opportunite.js +++ b/src/components/Crm_Opportunite.js @@ -477,7 +477,8 @@ const CRM_Opportunite = (props) => { "description": "", "rang": "" }; - new_data2.push(node); + + local_opport_chanel.push(node); if (new_data2.length > 0) { setNew_Getall_Partner_CRM_Opport_Step_result(new_data2); @@ -525,6 +526,13 @@ const CRM_Opportunite = (props) => { Getall_Partner_CRM_Opport_Step(); Getall_Partner_CRM_Opportunite(); + Get_List_Partner_Clients(); + + window.scrollTo({ + top: 0, + behavior: "smooth", + }); + }, []); @@ -557,15 +565,15 @@ const CRM_Opportunite = (props) => { const [p_detail_probabilite_gain, setp_detail_probabilite_gain] = useState(""); const [p_detail_priorite, setp_detail_priorite] = useState(); - const [p_detail_partner_client_id, setp_detail_partner_client_id] = useState(); - const [p_detail_contact_civilite, setp_detail_contact_civilite] = useState(); + const [p_detail_partner_client_id, setp_detail_partner_client_id] = useState(""); + const [p_detail_contact_civilite, setp_detail_contact_civilite] = useState(""); const [p_detail_contact_nom, setp_detail_contact_nom] = useState(); const [p_detail_contact_email, setp_detail_contact_email] = useState(); const [p_detail_contact_telephone, setp_detail_contact_telephone] = useState(); const [p_detail_commentaire, setp_detail_commentaire] = useState(); const [p_detail_vendeur_id, setp_detail_vendeur_id] = useState(); - const [p_detail_statut, setp_detail_statut] = useState(); + const [p_detail_statut, setp_detail_statut] = useState(""); const [p_detail_date_fermeture, setp_detail_date_fermeture] = useState(); function clear_detail_fields() { @@ -604,10 +612,10 @@ const CRM_Opportunite = (props) => { } - const [Update_Crm_Opportunite_api, setUpdate_Crm_Opportunite_api] = useState(); - const [Update_Crm_Opportunite_message, setUpdate_Crm_Opportunite_message] = useState(); - const [Update_Crm_Opportunite_result, setUpdate_Crm_Opportunite_result] = useState(); - function Update_Crm_Opportunite() { + const [Add_Update_Crm_Opportunite_api, setAdd_Update_Crm_Opportunite_api] = useState(); + const [Add_Update_Crm_Opportunite_message, setAdd_Update_Crm_Opportunite_message] = useState(); + const [Add_Update_Crm_Opportunite_result, setAdd_Update_Crm_Opportunite_result] = useState(); + function Add_Update_Crm_Opportunite() { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); @@ -618,7 +626,7 @@ const CRM_Opportunite = (props) => { form.append("description", p_detail_description); form.append("statut", p_detail_statut); - form.append("opport_id", selected_id); + if (p_detail_revenu_cible) form.append("revenu_cible", p_detail_revenu_cible); @@ -683,17 +691,26 @@ const CRM_Opportunite = (props) => { - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_CRM_Opportunite/"; + var myurl = ""; + + if (selected_id && String(selected_id).length > 2) { + form.append("opport_id", selected_id); + myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_CRM_Opportunite/"; + } else { + myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_CRM_Opportunite/"; + } + + console.log(" #### myurl = ", myurl) setLoading(true); axios.post(myurl, form).then(res => { - //console.log(" In Update_Crm_Opportunite res.data.status = " + res.data.status); - //console.log(" In Update_Crm_Opportunite res.data.message r_class = " + res.data.message); + //console.log(" In Add_Update_Crm_Opportunite res.data.status = " + res.data.status); + //console.log(" In Add_Update_Crm_Opportunite res.data.message r_class = " + res.data.message); setLoading(false); if (String(res.data.status) === String("true")) { - setUpdate_Crm_Opportunite_api("true"); - setUpdate_Crm_Opportunite_result(res.data.message); + setAdd_Update_Crm_Opportunite_api("true"); + setAdd_Update_Crm_Opportunite_result(res.data.message); Getall_Partner_CRM_Opport_Step(); Getall_Partner_CRM_Opportunite(); @@ -713,24 +730,24 @@ const CRM_Opportunite = (props) => { } else { - setUpdate_Crm_Opportunite_api("false"); - setUpdate_Crm_Opportunite_message(res.data.message); + setAdd_Update_Crm_Opportunite_api("false"); + setAdd_Update_Crm_Opportunite_message(res.data.message); alert(res.data.message); } }).catch((error) => { setLoading(false); - console.warn('UpdateStagiaireData : Not good man :( Update_Crm_Opportunite = ' + error); - setUpdate_Crm_Opportunite_api("false"); + console.warn('UpdateStagiaireData : Not good man :( Add_Update_Crm_Opportunite = ' + error); + setAdd_Update_Crm_Opportunite_api("false"); alert(" Impossible de mettre à jour l'opportunité"); }) } - const [Update_Crm_Opportunite_Status_api, setUpdate_Crm_Opportunite_Status_api] = useState(); - const [Update_Crm_Opportunite_Status_message, setUpdate_Crm_Opportunite_Status_message] = useState(); - const [Update_Crm_Opportunite_Status_result, setUpdate_Crm_Opportunite_Status_result] = useState(); - function Update_Crm_Opportunite_Status(local_opport_id, new_status) { + const [Add_Update_Crm_Opportunite_Status_api, setAdd_Update_Crm_Opportunite_Status_api] = useState(); + const [Add_Update_Crm_Opportunite_Status_message, setAdd_Update_Crm_Opportunite_Status_message] = useState(); + const [Add_Update_Crm_Opportunite_Status_result, setAdd_Update_Crm_Opportunite_Status_result] = useState(); + function Add_Update_Crm_Opportunite_Status(local_opport_id, new_status) { var form = new FormData(); //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); @@ -741,17 +758,17 @@ const CRM_Opportunite = (props) => { form.append("opport_id", local_opport_id); - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Update_CRM_Opportunite/"; + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Crm_Opportunite/"; setLoading(true); axios.post(myurl, form).then(res => { - //console.log(" In Update_Crm_Opportunite_Status res.data.status = " + res.data.status); - //console.log(" In Update_Crm_Opportunite_Status res.data.message r_class = " + res.data.message); + //console.log(" In Add_Update_Crm_Opportunite_Status res.data.status = " + res.data.status); + //console.log(" In Add_Update_Crm_Opportunite_Status res.data.message r_class = " + res.data.message); //setLoading(false); if (String(res.data.status) === String("true")) { - setUpdate_Crm_Opportunite_Status_api("true"); - setUpdate_Crm_Opportunite_Status_result(res.data.message); + setAdd_Update_Crm_Opportunite_Status_api("true"); + setAdd_Update_Crm_Opportunite_Status_result(res.data.message); Getall_Partner_CRM_Opport_Step(); Getall_Partner_CRM_Opportunite(); @@ -764,15 +781,15 @@ const CRM_Opportunite = (props) => { } else { - setUpdate_Crm_Opportunite_Status_api("false"); - setUpdate_Crm_Opportunite_Status_message(res.data.message); + setAdd_Update_Crm_Opportunite_Status_api("false"); + setAdd_Update_Crm_Opportunite_Status_message(res.data.message); alert(res.data.message); } }).catch((error) => { //setLoading(false); - console.warn('UpdateStagiaireData : Not good man :( Update_Crm_Opportunite_Status = ' + error); - setUpdate_Crm_Opportunite_Status_api("false"); + console.warn('UpdateStagiaireData : Not good man :( Add_Update_Crm_Opportunite_Status = ' + error); + setAdd_Update_Crm_Opportunite_Status_api("false"); alert(" Impossible de mettre à jour l'opportunité"); }) @@ -797,6 +814,85 @@ const CRM_Opportunite = (props) => { } + const [New_Get_List_Partner_Clients_result, setNew_Get_List_Partner_Clients_result] = useState([]); + + const [Get_List_Partner_Clients_api, setGet_List_Partner_Clients_api] = useState(); + const [Get_List_Partner_Clients_message, setGet_List_Partner_Clients_message] = useState(); + const [Get_List_Partner_Clients_result, setGet_List_Partner_Clients_result] = useState(); + function Get_List_Partner_Clients(event) { + + 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_Partner_List_Partner_Client/"; + + axios.post(myurl, form).then(res => { + //console.log(" In Get_List_Partner_Clients res.data.status = " + res.data.status); + //console.log(" In Get_List_Partner_Clients res.data.message r_class = " + res.data.message); + + if (String(res.data.status) === String("true")) { + setGet_List_Partner_Clients_api("true"); + setGet_List_Partner_Clients_result(res.data.message); + + var new_data2 = []; + const new_data = res.data.message.map((x) => { + + //--- + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_nom = JSON.parse(x).nom; + var local_raison_sociale = JSON.parse(x).raison_sociale; + var local_cond_paiement_id = JSON.parse(x).invoice_condition_paiement_id; + + //--- + var node = { + "_id": local_id, + "id": localid, + "label": local_nom, + "nom": local_nom, + "raison_sociale": local_raison_sociale, + "invoice_condition_paiement_id": local_cond_paiement_id, + + }; + new_data2.push(node); + }); + + if (new_data2.length > 0) + setNew_Get_List_Partner_Clients_result(new_data2); + + var node = { + "_id": "", + "id": "", + "label": "", + "nom": "", + "raison_sociale": "", + "invoice_condition_paiement_id": "", + + }; + new_data2.push(node); + + } + else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setGet_List_Partner_Clients_api("false"); + setGet_List_Partner_Clients_message(res.data.message); + alert('Erreur: ' + res.data.message); + } + + }).catch((error) => { + console.warn('Not good man :( Get_List_Partner_Clients = ', error); + setGet_List_Partner_Clients_api("false"); + alert('Erreur: Impossible de recuperer la liste des clients'); + //setmyApimyApiMessage("") + }) + } + const [Get_Given_Opportunite_Data_api, setGet_Given_Opportunite_Data_api] = useState(); const [Get_Given_Opportunite_Data_message, setGet_Given_Opportunite_Data_message] = useState(); const [Get_Given_Opportunite_Data_result, setGet_Given_Opportunite_Data_result] = useState(); @@ -983,7 +1079,7 @@ const CRM_Opportunite = (props) => { }); setTaskStatus(newTasks); - Update_Crm_Opportunite_Status(id, status); + Add_Update_Crm_Opportunite_Status(id, status); }, [tasks] @@ -1011,6 +1107,24 @@ const CRM_Opportunite = (props) => { { "id": "", "label": "", "value": "" }, ] + const New_Option_Civilite = [ + { + value: 'M', + label: 'M', + }, + { + value: 'Mme', + label: 'Mme', + }, + { + value: 'Neutre', + label: 'Neutre', + }, + { + value: '', + label: '', + }, + ]; const [opport_changed, setopport_changed] = useState("0"); @@ -1024,6 +1138,14 @@ const CRM_Opportunite = (props) => { } + function submenu_add_one_crm_opport() { + Getall_Partner_CRM_Opport_Step(); + Getall_Partner_CRM_Opportunite(); + clear_detail_fields(); + setselected_id(""); + setDialog_OPPORTUNITE_open(true); + + } return (
@@ -1085,10 +1207,148 @@ const CRM_Opportunite = (props) => {
+
Client + {New_Get_List_Partner_Clients_result && New_Get_List_Partner_Clients_result.length > 0 && + + (data)._id === String(p_detail_partner_client_id))[0].label} + + onChange={(event, value) => { + if (value && value._id) { + + setp_detail_partner_client_id(value._id); + setp_detail_contact_civilite(""); + setp_detail_contact_nom(""); + setp_detail_contact_email(""); + setp_detail_contact_telephone("") + + } else { + setp_detail_partner_client_id(""); + } + + }} + + renderInput={(params) => + } + />} + +
+ + + {String(p_detail_partner_client_id).length < 2 && +
Civilité + + (data).value === String(p_detail_contact_civilite))[0].label} + + onChange={(event, value) => { + if (value && value.value) { + setp_detail_contact_civilite(value.value); + setopport_changed("1"); + + } else { + setp_detail_contact_civilite(""); + setopport_changed("1"); + + } + }} + + renderInput={(params) => + } + /> + +
+ } + + + {String(p_detail_partner_client_id).length < 2 && +
Nom Contact + { + setp_detail_contact_nom(e.target.value); + setopport_changed("1"); + } + } + /> + +
+ } + + {String(p_detail_partner_client_id).length < 2 && +
Email Contact + { + setp_detail_contact_email(e.target.value); + setopport_changed("1"); + } + } + /> + +
+ } + + + + {String(p_detail_partner_client_id).length < 2 && +
Téléphone Contact + { + setp_detail_contact_telephone(e.target.value); + setopport_changed("1"); + } + } + /> + +
+ } + +
Statut
{New_Option_Status && New_Option_Status.length > 0 && - p_detail_statut && String(p_detail_statut).length > 2 && {
- + className="bton_enreg_dialog">Mettre à jour } + + + {String(selected_id).length < 2 && } + +
- -
@@ -1254,293 +1524,297 @@ const CRM_Opportunite = (props) => {
- {String(display_view) === "list" &&
-
-
+ { + String(display_view) === "list" &&
+
+
-
-   - +   + - { - setSelectionModel(newSelectionModel); - /*if (newSelectionModel.length === 1) - handleClick_edit_materiel_From_Line(newSelectionModel); - */ - if (newSelectionModel.length !== 1) { - setsubmenu(); - //setdisplay_detail_materiel(); - //setadd_One_Materiel(); - } - }} - selectionModel={selectionModel} - - localeText={frFR.components.MuiDataGrid.defaultProps.localeText} - rows={Getall_Partner_CRM_Opportunite_result.map((item, index) => ( - { - id: index, - _id: JSON.parse(item)._id, - partner_client_id: JSON.parse(item).partner_client_id, - titre: JSON.parse(item).titre, - description: JSON.parse(item).description, - statut: JSON.parse(item).statut, - contact_nom: JSON.parse(item).contact_nom, - contact_email: JSON.parse(item).contact_email, - revenu_cible: JSON.parse(item).revenu_cible, - probabilite_gain: JSON.parse(item).probabilite_gain, - priorite: JSON.parse(item).priorite, - - } - ))} - - columns={columns} - pageSize={10} - className="datagridclass" - - onRowDoubleClick={(newSelectionModel) => { - clear_detail_fields(); - setgridline_id(newSelectionModel.row.id); - handleClick_edit_Opportunite_From_Line(newSelectionModel.row.id); + /*"& .MuiDataGrid-virtualScrollerRenderZone": { + "& .MuiDataGrid-row": { + "&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" } + } + },*/ + "& .MuiDataGrid-columnHeaders": { + backgroundColor: "#c8cfd5", + color: "black", + fontSize: 14 + }, + '& .line--statut--selected': { + backgroundColor: '#FBF2EF', + color: 'black', + }, + '& .line--statut--pair': { + backgroundColor: 'rgba(235, 235, 235, .7)', + color: 'black', + }, + '& .line--statut--impair': { + backgroundColor: '#FFFFFF', + color: 'black', + }, }} + > + { + setSelectionModel(newSelectionModel); + /*if (newSelectionModel.length === 1) + handleClick_edit_materiel_From_Line(newSelectionModel); + */ + if (newSelectionModel.length !== 1) { + setsubmenu(); + //setdisplay_detail_materiel(); + //setadd_One_Materiel(); + } + }} + selectionModel={selectionModel} + + localeText={frFR.components.MuiDataGrid.defaultProps.localeText} + rows={Getall_Partner_CRM_Opportunite_result.map((item, index) => ( + { + id: index, + _id: JSON.parse(item)._id, + partner_client_id: JSON.parse(item).partner_client_id, + titre: JSON.parse(item).titre, + description: JSON.parse(item).description, + statut: JSON.parse(item).statut, + contact_nom: JSON.parse(item).contact_nom, + contact_email: JSON.parse(item).contact_email, + revenu_cible: JSON.parse(item).revenu_cible, + probabilite_gain: JSON.parse(item).probabilite_gain, + priorite: JSON.parse(item).priorite, + + } + ))} + + columns={columns} + pageSize={10} + className="datagridclass" + + onRowDoubleClick={(newSelectionModel) => { + clear_detail_fields(); + setgridline_id(newSelectionModel.row.id); + handleClick_edit_Opportunite_From_Line(newSelectionModel.row.id); + + }} - rowsPerPageOptions={[10]} - //disableSelectionOnClick - components={{ - Toolbar: GridToolbar, - }} - //sx={datagridSx} - getCellClassName={(params) => { - //field === 'distantiel' - if (params.field === 'distantiel' && String(params.value) === "1") { - return 'cell--distantiel'; - } - if (params.field === "presentiel" && String(params.value) == "1") { - return 'cell--presentiel'; - } + rowsPerPageOptions={[10]} + //disableSelectionOnClick + components={{ + Toolbar: GridToolbar, + }} + //sx={datagridSx} + getCellClassName={(params) => { + //field === 'distantiel' + if (params.field === 'distantiel' && String(params.value) === "1") { + return 'cell--distantiel'; + } + if (params.field === "presentiel" && String(params.value) == "1") { + return 'cell--presentiel'; + } - //field === "statut" - if (params.field === "status" && String(params.value) == "0") { - return 'cell--statut--preinscrit'; - } + //field === "statut" + if (params.field === "status" && String(params.value) == "0") { + return 'cell--statut--preinscrit'; + } - if (params.field === "status" && String(params.value) == "1") { - return 'cell--statut--inscrit'; - } + if (params.field === "status" && String(params.value) == "1") { + return 'cell--statut--inscrit'; + } - if (params.field === "status" && String(params.value) == "-1") { - return 'cell--statut--annule'; - } + if (params.field === "status" && String(params.value) == "-1") { + return 'cell--statut--annule'; + } - }} - getRowClassName={(params) => { + }} + getRowClassName={(params) => { - if (String(params.row.status) === "-1") { - return 'line--statut--annule'; - } - if (String(params.row.status) === "0") { - return 'line--statut--preinscrit'; - } - if (String(params.row.status) === "1") { - return 'line--statut--inscrit'; - } + if (String(params.row.status) === "-1") { + return 'line--statut--annule'; + } + if (String(params.row.status) === "0") { + return 'line--statut--preinscrit'; + } + if (String(params.row.status) === "1") { + return 'line--statut--inscrit'; + } - // Pour la gestion de la couleur de zone double cliquée - if (String(params.row.id) === String(gridline_id)) { - return 'line--statut--selected'; - } - else if (parseInt(String(params.row.id)) % 2 === 0) { - return 'line--statut--pair'; - } - else if (parseInt(String(params.row.id)) % 2 !== 0) { - return 'line--statut--impair'; - } + // Pour la gestion de la couleur de zone double cliquée + if (String(params.row.id) === String(gridline_id)) { + return 'line--statut--selected'; + } + else if (parseInt(String(params.row.id)) % 2 === 0) { + return 'line--statut--pair'; + } + else if (parseInt(String(params.row.id)) % 2 !== 0) { + return 'line--statut--impair'; + } - }} + }} - /> - -
+ /> +
+
+ +
-
+
-
+
-
- - { - } + { + } - + -
- {session_file_name && } - {String(liste_sessions_file_change_api) === String("true") && } - {String(liste_sessions_file_change_api) === String("false") && } +
+ {session_file_name && } + {String(liste_sessions_file_change_api) === String("true") && } + {String(liste_sessions_file_change_api) === String("false") && } + + +
+
 
-
 
- - -
} + }
 
- {String(display_view) !== "list" &&
  Affichage Kanban - -
- {Opportunite_chanel.map(channel => ( - -
-
{Opportunite_chanel_label[channel]}
-
- {tasks - .filter(item => item.status === channel) - .map(item => ( - + { + String(display_view) !== "list" &&
  Affichage Kanban + +
+ {Opportunite_chanel.map(channel => ( + +
+
{Opportunite_chanel_label[channel]}
+
+ {tasks + .filter(item => item.status === channel) + .map(item => ( + -
{ - clear_detail_fields(); +
{ + clear_detail_fields(); - setselected_id(item._id) + setselected_id(item._id) - Get_Given_Opportunite_Data(item._id); - setDialog_OPPORTUNITE_open(true); + Get_Given_Opportunite_Data(item._id); + setDialog_OPPORTUNITE_open(true); - // iciiiii - }} - > + // iciiiii + }} + > - - - -
- {String(item.description).substring(0, 20)}...
+ + + +
+ {String(item.description).substring(0, 20)}...
-
+
-
- ))} + + ))} +
-
- - ))} -
-
-
 
-
+ + ))} + + +
 
+
-
+
- { - } + { + } - + -
- {session_file_name && } - {String(liste_sessions_file_change_api) === String("true") && } - {String(liste_sessions_file_change_api) === String("false") && } +
+ {session_file_name && } + {String(liste_sessions_file_change_api) === String("true") && } + {String(liste_sessions_file_change_api) === String("false") && } + + +
- +
 
-
 
- -
} + }
); }