diff --git a/src/components/DisplayPartnerSession.js b/src/components/DisplayPartnerSession.js index 2db9dce..7968b73 100644 --- a/src/components/DisplayPartnerSession.js +++ b/src/components/DisplayPartnerSession.js @@ -78,6 +78,7 @@ import multiMonthPlugin from '@fullcalendar/multimonth' import Module_Session_Planification from "./Module_Session_Planification"; import Module_Session_Evaluation from "./Module_Session_Evaluation"; +import AccountTreeIcon from '@mui/icons-material/AccountTree'; const DisplayPartnerSession = (props) => { @@ -705,7 +706,7 @@ const DisplayPartnerSession = (props) => { renderCell: (params) => , }, { field: 'prenom', headerName: 'prenom', minWidth: 150, flex: 1, hide: false, editable: false, renderCell: (params) => , }, - { field: 'email', headerName: 'email', minWidth: 150, flex: 1, flex: 1, renderCell: (params) => , }, + { field: 'email', headerName: 'email', minWidth: 150, flex: 1, renderCell: (params) => , }, { field: 'client_rattachement_nom', headerName: 'Client', minWidth: 150, flex: 1, maxWidth: 200, hide: false, editable: true, renderCell: (params) => , }, { field: 'client_rattachement_id', headerName: 'Client_id', Width: 0, hide: true, editable: false, }, @@ -739,8 +740,37 @@ const DisplayPartnerSession = (props) => { return "Non"; }, }, - { field: 'invoiced_ref', headerName: 'Num Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: true, }, - { field: 'invoiced_date', headerName: 'Date Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: true, }, + { field: 'invoiced_ref', headerName: 'Num Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: false, flex: 1, renderCell: (params) => , }, + { field: 'invoiced_date', headerName: 'Date Fact.', minWidth: 100, flex: 1, maxWidth: 150, flex: 1, editable: false, hide: true, flex: 1, renderCell: (params) => , }, + + { + field: "split_invoice", headerName: 'Eclat. Fact', + renderCell: (cellValues) => { + return ( + + + + ); + } + }, { @@ -789,7 +819,7 @@ const DisplayPartnerSession = (props) => { } }, { - field: "Imprimer", headerName: 'Imprimer detail', + field: "Imprimer", headerName: 'Imprimer detail', hide: true, renderCell: (cellValues) => { return ( @@ -3289,16 +3319,14 @@ const DisplayPartnerSession = (props) => { form.append("token", stored_cookie); form.append("session_id", selected_session_id); form.append("tab_inscription_ids", tab_my_inscription_ids); - form.append("courrier_template_id", "64fde469da3a50338b92fb83"); - - form.append("email_test", ""); - form.append("email_production", ""); + form.append("tab_files", ""); + //console.log(" #### form = ", form); - var myurl = process.env.REACT_APP_API_URL + "myclass/api/Prepare_and_Send_Facture_From_Session_By_Inscription_Id/"; + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Invoice_Inscrption_With_Split_Session_By_Inscription_Id/"; setLoading(true); axios.post(myurl, form).then(res => { @@ -8817,11 +8845,11 @@ const DisplayPartnerSession = (props) => { }); } - + const New_Option_Emargement_Masse = [ { "id": "demande emargement", "label": "Envoyer demande émargement", "value": "demande emargement" }, - { "id": "emarg_qr_code", "label": "Emargement QR CODE", "value": "emarg_qr_code" }, + { "id": "emarg_qr_code", "label": "Emargement QR CODE", "value": "emarg_qr_code" }, ] @@ -8865,15 +8893,15 @@ const DisplayPartnerSession = (props) => { } else if (String(actionmass_emarg_val) === "emarg_qr_code") { - + var tab_emargement = []; for (var i = 0; i < liste_formation.length; i++) { - var line = JSON.parse(rowss_emarg[liste_formation[i]]); + var line = JSON.parse(rowss_emarg[liste_formation[i]]); tab_emargement.push(line._id) } - + Export_QR_CODE_Emargement(tab_emargement); } @@ -10050,7 +10078,7 @@ const DisplayPartnerSession = (props) => { { "id": "", "label": "", "value": "" }, { "id": "1", "label": "", "value": "1" }, // Cette ligne pour couvrir l'ajout d'une ligne de filter. C'est fait expres. ] - + const New_Option_Inscription = [ { "id": "confirmation", "label": "Renvoyer une confirmation", "value": "confirmation" }, @@ -10735,6 +10763,224 @@ const DisplayPartnerSession = (props) => { setLoading(false); } + const [Dialog_SPLIT_INVOICE_open, setDialog_SPLIT_INVOICE_open] = React.useState(false); + const Dialog_SPLIT_INVOICE_handleClose = () => { + + }; + + const Dialog_SPLIT_INVOICE_handleClose_buton = () => { + setDialog_SPLIT_INVOICE_open(false); + setp_detail_invoice_split_type("percent"); + setp_detail_invoice_split_client_rattachement_id(""); + setp_detail_invoice_split_client_rattachement_value(""); + setp_detail_invoice_split_facture_client_rattachement_id(""); + setp_detail_invoice_split_facture_client_rattachement_value(""); + setp_detail_invoice_split_inscrit_prenom(""); + setp_detail_invoice_split_inscrit_nom(""); + setp_detail_invoice_split_changed(""); + + }; + + + + + const [Add_Update_Split_Invoice_api, setAdd_Update_Split_Invoice_api] = useState(); + const [Add_Update_Split_Invoice_message, setAdd_Update_Split_Invoice_message] = useState(); + const [Add_Update_Split_Invoice_result, setAdd_Update_Split_Invoice_result] = useState([]); + function Add_Update_Split_Invoice() { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("inscription_id", selected_inscription_id); + form.append("split_type", p_detail_invoice_split_type); + + var tab_split = [] + var node1 = {} + node1['partner_client'] = String(p_detail_invoice_split_client_rattachement_id); + node1['invoice_part'] = String(p_detail_invoice_split_client_rattachement_value); + + var node2 = {} + node2['partner_client'] = String(p_detail_invoice_split_facture_client_rattachement_id); + node2['invoice_part'] = String(p_detail_invoice_split_facture_client_rattachement_value); + + tab_split.push(node1); + tab_split.push(node2); + + var tab_split_json_str = JSON.stringify(tab_split); + + form.append("tab_split", tab_split_json_str); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Add_Update_Inscription_Split_Invoice/"; + + + setLoading(true); + axios.post(myurl, form).then(res => { + + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setAdd_Update_Split_Invoice_api("true"); + setAdd_Update_Split_Invoice_result(res.data.message); + + alert(res.data.message); + Dialog_SPLIT_INVOICE_handleClose_buton(); + + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setAdd_Update_Split_Invoice_api("false"); + setAdd_Update_Split_Invoice_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Add_Update_Split_Invoice : Not good man :( mysearchtext = ' + error); + setAdd_Update_Split_Invoice_api("false"); + alert(" Impossible de mette à jour le partage de facture "); + + }) + } + + + const [Get_Inscription_Split_Invoice_api, setGet_Inscription_Split_Invoice_api] = useState(); + const [Get_Inscription_Split_Invoice_message, setGet_Inscription_Split_Invoice_message] = useState(); + const [Get_Inscription_Split_Invoice_result, setGet_Inscription_Split_Invoice_result] = useState([]); + function Get_Inscription_Split_Invoice(local_inscription_id) { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("inscription_id", local_inscription_id); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Inscription_Split_Invoice/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setGet_Inscription_Split_Invoice_api("true"); + setGet_Inscription_Split_Invoice_result(res.data.message); + + + const new_data = res.data.message.map((x) => { + + //--- + if (JSON.parse(x).invoice_split) { + var localid = JSON.parse(x).id; + var local_id = JSON.parse(x)._id; + var local_invoice_split = JSON.parse(x).invoice_split; + var local_tab_split = JSON.parse(x).invoice_split.tab_split; + + setp_detail_invoice_split_type(JSON.parse(x).invoice_split.split_type); + + + if (local_tab_split.length >= 2) { + + setp_detail_invoice_split_client_rattachement_id(local_tab_split[0].partner_client); + setp_detail_invoice_split_client_rattachement_value(local_tab_split[0].invoice_part); + + setp_detail_invoice_split_facture_client_rattachement_id(local_tab_split[1].partner_client); + setp_detail_invoice_split_facture_client_rattachement_value(local_tab_split[1].invoice_part); + } + } + + }); + + + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setGet_Inscription_Split_Invoice_api("false"); + setGet_Inscription_Split_Invoice_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Get_Inscription_Split_Invoice : Not good man :( mysearchtext = ' + error); + setGet_Inscription_Split_Invoice_api("false"); + alert(" Impossible de récuperer le partage de facture "); + + }) + } + + const [Delete_Inscription_Split_Invoice_api, setDelete_Inscription_Split_Invoice_api] = useState(); + const [Delete_Inscription_Split_Invoice_message, setDelete_Inscription_Split_Invoice_message] = useState(); + const [Delete_Inscription_Split_Invoice_result, setDelete_Inscription_Split_Invoice_result] = useState([]); + function Delete_Inscription_Split_Invoice() { + var form = new FormData(); + //form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA"); + const stored_cookie = getCookie('tokenmysypart'); + form.append("token", stored_cookie); + form.append("inscription_id", selected_inscription_id); + + var myurl = process.env.REACT_APP_API_URL + "myclass/api/Delete_Inscription_Split_Invoice/"; + + setLoading(true); + axios.post(myurl, form).then(res => { + + setLoading(false); + if (String(res.data.status) === String("true")) { + //console.log(" In UpdateStagiaireData res.data.status = " + res.data.status); + //console.log(" In UpdateStagiaireData res.data.message r_class = " + res.data.message); + setDelete_Inscription_Split_Invoice_api("true"); + setDelete_Inscription_Split_Invoice_result(res.data.message); + + alert(res.data.message); + Dialog_SPLIT_INVOICE_handleClose_buton(); + + + } else if (String(res.data.status) === String("Err_Connexion")) { + alert('Erreur: ' + res.data.message); + history.push("/Connexion"); + } + else { + setDelete_Inscription_Split_Invoice_api("false"); + setDelete_Inscription_Split_Invoice_message(res.data.message); + alert(res.data.message); + } + + }).catch((error) => { + setLoading(false); + console.warn('Delete_Inscription_Split_Invoice : Not good man :( mysearchtext = ' + error); + setDelete_Inscription_Split_Invoice_api("false"); + alert(" Impossible de supprimer le partage de facture "); + + }) + } + + + const [p_detail_invoice_split_inscrit_nom, setp_detail_invoice_split_inscrit_nom] = useState(""); + const [p_detail_invoice_split_inscrit_prenom, setp_detail_invoice_split_inscrit_prenom] = useState(""); + + const [p_detail_invoice_split_type, setp_detail_invoice_split_type] = useState("percent"); + + const [p_detail_invoice_split_changed, setp_detail_invoice_split_changed] = useState(""); + + + const [p_detail_invoice_split_client_rattachement_id, setp_detail_invoice_split_client_rattachement_id] = useState(""); + const [p_detail_invoice_split_client_rattachement_value, setp_detail_invoice_split_client_rattachement_value] = useState(""); + + const [p_detail_invoice_split_facture_client_rattachement_id, setp_detail_invoice_split_facture_client_rattachement_id] = useState(""); + const [p_detail_invoice_split_facture_client_rattachement_value, setp_detail_invoice_split_facture_client_rattachement_value] = useState(""); + + const New_Option_Type_split_invoice = [ + + { "id": "percent", "label": "Pourcentage", "value": "percent" }, + { "id": "fixe", "label": "Montant", "value": "fixe" }, + { "id": "", "label": "", "value": "" }, + ] + return (
@@ -10743,6 +10989,244 @@ const DisplayPartnerSession = (props) => {
} + { /******** Dialog de Split Facture */} + + + + MySy Information + + + Répartition Facture pour {p_detail_invoice_split_inscrit_prenom}   {p_detail_invoice_split_inscrit_nom} + + + + {New_Option_Type_split_invoice && New_Option_Type_split_invoice.length > 0 && + p_detail_invoice_split_type &&
Type de partage + (data).id === String(p_detail_invoice_split_type))[0].label} + + + onChange={(event, value) => { + + setp_detail_invoice_split_changed("1"); + if (value && value.id) { + + setp_detail_invoice_split_type(value.id); + + } else { + setp_detail_invoice_split_type(""); + } + }} + + renderInput={(params) => + } + /> + +
} + + {p_detail_invoice_split_type && (String(p_detail_invoice_split_type) === "percent" + || String(p_detail_invoice_split_type) === "fixe") &&
+
{New_Get_List_Partner_Clients_result && New_Get_List_Partner_Clients_result.length > 0 && } + { + setp_detail_invoice_split_client_rattachement_value(e.target.value); + setp_detail_invoice_split_changed("1"); + } + } + /> + +
+ +
{New_Get_List_Partner_Clients_result && New_Get_List_Partner_Clients_result.length > 0 && } + { + setp_detail_invoice_split_facture_client_rattachement_value(e.target.value); + setp_detail_invoice_split_changed("1"); + } + } + /> + +
+ + + {String(p_detail_invoice_split_changed) === "1" &&
+ /!\ Pensez à enregistrer les modifications +
} + +
+ + } + +
+ + {p_detail_invoice_split_type && (String(p_detail_invoice_split_type) === "percent" + || String(p_detail_invoice_split_type) === "fixe") &&
+ +
+
+ + + Mettre à jour + + } + modal + nested + position="center center" + + > + + {close => ( +
+ +
MySy Information
+
+ {' '} + + + Confirmer la mise à jour du partage de facture + + + +
+
+
+ + +
+
+ +
+
+
+ )} +
+ +
+ +
+ +
+
+ +
+ +
+
+ Supprimer le partage de facture + + + + } + modal + nested + position="center center" + + > + + {close => ( +
+ +
MySy Information
+
+ {' '} + + + Confirmer la mise à jour du partage de facture + + + +
+
+
+ + +
+
+ +
+
+
+ )} +
+ +
+
+ +
+ +
} +
+ + { /******** End Dialog de Split Facture */} + {/**** Dialogue pour EVENT SEMAINE TYPE */} { options={New_Option_Emargement_Masse} onChange={(event, value) => { if (value && value.value) { - if ( String(value.value) === "demande emargement" || String(value.value) === "emarg_qr_code") { + if (String(value.value) === "demande emargement" || String(value.value) === "emarg_qr_code") { setactionmass_emarg_val(value.value); diff --git a/src/components/Module_Agenda.js b/src/components/Module_Agenda.js index f1265cf..1fe7986 100644 --- a/src/components/Module_Agenda.js +++ b/src/components/Module_Agenda.js @@ -1277,8 +1277,6 @@ const Module_Agenda = (props) => { - - {String(props.write_access) === "1" && String(p_detail_sequence_session_id) === "" && p_detail_event_id && String(p_detail_event_id) !== "" &&