06/09/2023 - 13h
parent
00dcec883e
commit
d2f6462253
|
@ -47,6 +47,10 @@ const Partner_Commande = (props) => {
|
|||
const [rowss, setRows] = useState([]);
|
||||
const [selectionModel, setSelectionModel] = React.useState([]);
|
||||
|
||||
const [rows_order_lines, setrows_order_lines] = useState([]);
|
||||
const [selectionModel_order_lines, setselectionModel_order_lines] = React.useState([]);
|
||||
|
||||
|
||||
const [p_filtre1, setp_filtre1] = useState();
|
||||
const [p_filtre1_value, setp_filtre1_value] = useState();
|
||||
|
||||
|
@ -153,6 +157,19 @@ const Partner_Commande = (props) => {
|
|||
|
||||
]
|
||||
|
||||
|
||||
const columns_order_lines = [
|
||||
{ field: '_id', headerName: '_id', hide: true },
|
||||
{ field: 'id', headerName: 'id', hide: true },
|
||||
{ field: 'order_line_formation', headerName: 'Reference', width: 150, hide: false, editable: true },
|
||||
{ field: 'order_line_qty', headerName: 'Qte', width: 150, hide: false, editable: true },
|
||||
{ field: 'order_line_prix_unitaire', headerName: 'Prix Unit.', width: 150, hide: false, editable: true },
|
||||
{ field: 'order_header_id', headerName: 'Id_Entete', width: 150, hideable: false, },
|
||||
{ field: 'order_header_ref_interne', headerName: 'Ref_Interne', width: 150, hideable: false, },
|
||||
{ field: 'order_line_type', headerName: 'Type', width: 150, hide: false, editable: true },
|
||||
{ field: 'order_line_status', headerName: 'Statut', width: 150, hide: false, editable: true },
|
||||
]
|
||||
|
||||
function clean_all_filters() {
|
||||
setp_filtre1();
|
||||
setp_filtre1_value();
|
||||
|
@ -313,16 +330,176 @@ const Partner_Commande = (props) => {
|
|||
setorder_internal_ref(order_ref);
|
||||
|
||||
//console.log(" ### employe_id = ", employe_id);
|
||||
/* Display_Detail_Employe(employe_id);
|
||||
Display_Detail_Order_data(order_id);
|
||||
|
||||
if (myRef.current) {
|
||||
myRef.current.scrollIntoView({ behavior: "smooth" });
|
||||
}
|
||||
|
||||
Getall_Employee_Affectation(employe_id);
|
||||
*/
|
||||
//Getall_Employee_Affectation(employe_id);
|
||||
|
||||
}
|
||||
|
||||
function Display_Detail_Order_data(order_id) {
|
||||
//clearDetailAttendeFields();
|
||||
setadd_One_Order();
|
||||
setdisplay_detail_order("1");
|
||||
setsubmenu("detail_order");
|
||||
|
||||
Get_Order_Data(order_id);
|
||||
Get_Partner_Orders_Lines_from_header_id(order_id);
|
||||
|
||||
}
|
||||
|
||||
const [Order_data_changed, setOrder_data_changed] = useState();
|
||||
const [order_data_edit_mode, setorder_data_edit_mode] = useState();
|
||||
|
||||
|
||||
const [GetAttendee_api, setGetAttendee_api] = useState();
|
||||
const [GetAttendee_message, setGetAttendee_message] = useState();
|
||||
const [GetAttendee_result, setGetAttendee_result] = useState();
|
||||
function Get_Order_Data(order_id) {
|
||||
setOrder_data_changed("");
|
||||
setorder_data_edit_mode("");
|
||||
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("_id", order_id);
|
||||
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Partner_Order/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === "true") {
|
||||
//console.log(" In Get_Order_Data res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Order_Data res.data.message r_class = " + res.data.message);
|
||||
setGetAttendee_api("true");
|
||||
setGetAttendee_result(res.data.message);
|
||||
|
||||
if (res.data.message.length > 0) {
|
||||
var mylocal_order = JSON.parse(res.data.message);
|
||||
|
||||
|
||||
document.getElementsByName("detail_header_type")[0].value = "";
|
||||
if (mylocal_order.order_header_type)
|
||||
setp_detail_header_type(mylocal_order.order_header_type);
|
||||
|
||||
document.getElementsByName("detail_header_status")[0].value = "";
|
||||
if (mylocal_order.order_header_status)
|
||||
setp_detail_header_statut(mylocal_order.order_header_status);
|
||||
|
||||
document.getElementsByName("detail_header_ref_interne")[0].value = "";
|
||||
if (mylocal_order.order_header_ref_interne) {
|
||||
setp_detail_header_ref_interne(mylocal_order.order_header_ref_interne);
|
||||
}
|
||||
|
||||
document.getElementsByName("detail_header_date_cmd")[0].value = "";
|
||||
if (mylocal_order.order_header_date_cmd) {
|
||||
setp_detail_header_date_cmd(mylocal_order.order_header_date_cmd);
|
||||
}
|
||||
|
||||
document.getElementsByName("detail_header_date_expiration")[0].value = "";
|
||||
if (mylocal_order.order_header_date_expiration) {
|
||||
setp_detail_header_date_expiration(mylocal_order.order_header_date_expiration);
|
||||
}
|
||||
|
||||
|
||||
document.getElementsByName("detail_nom_client")[0].value = "";
|
||||
if (mylocal_order.order_header_client_nom) {
|
||||
setp_detail_header_client_nom(mylocal_order.order_header_client_nom);
|
||||
}
|
||||
|
||||
|
||||
document.getElementsByName("detail_header_description")[0].value = "";
|
||||
if (mylocal_order.order_header_description) {
|
||||
setp_detail_header_description(mylocal_order.order_header_description);
|
||||
}
|
||||
|
||||
document.getElementsByName("detail_header_comment")[0].value = "";
|
||||
if (mylocal_order.order_header_comment) {
|
||||
setp_detail_header_comment(mylocal_order.order_header_comment);
|
||||
}
|
||||
|
||||
|
||||
document.getElementsByName("detail_header_vendeur_nom_prenom")[0].value = "";
|
||||
if (mylocal_order.order_header_vendeur_nom_prenom) {
|
||||
setp_detail_header_vendeur_nom(mylocal_order.order_header_vendeur_nom_prenom);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//disable_Employee_DetailFields();
|
||||
|
||||
} else {
|
||||
alert(" Aucune commande/devis recuperé");
|
||||
}
|
||||
|
||||
|
||||
} else if (String(res.data.status) === String("Err_Connexion")) {
|
||||
alert('Erreur: ' + res.data.message);
|
||||
history.push("/Connexion");
|
||||
}
|
||||
|
||||
else {
|
||||
setGetAttendee_api("false");
|
||||
setGetAttendee_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( Get_Order_Data = ', error);
|
||||
setGetAttendee_api("false");
|
||||
alert(" Impossible de recuperer les données de la commande / devis");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const [Get_Partner_Orders_Lines_from_header_id_api, setGet_Partner_Orders_Lines_from_header_id_api] = useState();
|
||||
const [Get_Partner_Orders_Lines_from_header_id_message, setGet_Partner_Orders_Lines_from_header_id_message] = useState();
|
||||
const [Get_Partner_Orders_Lines_from_header_id_result, setGet_Partner_Orders_Lines_from_header_id_result] = useState();
|
||||
function Get_Partner_Orders_Lines_from_header_id(local_order_header_id) {
|
||||
|
||||
var form = new FormData();
|
||||
|
||||
|
||||
const stored_cookie = getCookie('tokenmysypart');
|
||||
form.append("token", stored_cookie);
|
||||
form.append("order_header_id", local_order_header_id);
|
||||
|
||||
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_Given_Partner_Order_Lines/";
|
||||
|
||||
axios.post(myurl, form).then(res => {
|
||||
|
||||
if (String(res.data.status) === String("true")) {
|
||||
//console.log(" In Get_Partner_Orders_Lines_from_header_id res.data.status = " + res.data.status);
|
||||
//console.log(" In Get_Partner_Orders_Lines_from_header_id res.data.message r_class = " + res.data.message);
|
||||
setGet_Partner_Orders_Lines_from_header_id_api("true");
|
||||
setGet_Partner_Orders_Lines_from_header_id_result(res.data.message);
|
||||
setrows_order_lines(res.data.message);
|
||||
}
|
||||
else {
|
||||
setGet_Partner_Orders_Lines_from_header_id_api("false");
|
||||
setGet_Partner_Orders_Lines_from_header_id_message(res.data.message);
|
||||
alert(res.data.message);
|
||||
}
|
||||
|
||||
}).catch((error) => {
|
||||
console.warn('Not good man :( Get_Partner_Orders_Lines_from_header_id = ', error);
|
||||
setGet_Partner_Orders_Lines_from_header_id_api("false");
|
||||
alert(" Impossible de recuperer le detail de la commande / devis");
|
||||
//setmyApimyApiMessage("")
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
const hiddenFileInput_session = React.useRef(null);
|
||||
|
||||
function submenu_import_order() {
|
||||
|
@ -331,6 +508,34 @@ const Partner_Commande = (props) => {
|
|||
hiddenFileInput_session.current.click();
|
||||
}
|
||||
|
||||
const [add_One_Order, setadd_One_Order] = useState();
|
||||
function submenu_add_one_order() {
|
||||
setdisplay_detail_order();
|
||||
setadd_One_Order("1");
|
||||
setsubmenu("detail_order");
|
||||
|
||||
}
|
||||
|
||||
function Annule_add_one_Order() {
|
||||
setdisplay_detail_order();
|
||||
setsubmenu("");
|
||||
setSelectionModel([]);
|
||||
}
|
||||
|
||||
const [display_detail_order, setdisplay_detail_order] = React.useState();
|
||||
|
||||
|
||||
const [p_detail_header_client_nom, setp_detail_header_client_nom] = useState();
|
||||
const [p_detail_header_description, setp_detail_header_description] = useState();
|
||||
const [p_detail_header_comment, setp_detail_header_comment] = useState();
|
||||
const [p_detail_header_date_cmd, setp_detail_header_date_cmd] = useState();
|
||||
const [p_detail_header_date_expiration, setp_detail_header_date_expiration] = useState();
|
||||
const [p_detail_header_condition_paiement, setp_detail_header_condition_paiement] = useState();
|
||||
const [p_detail_header_ref_client, setp_detail_header_ref_client] = useState();
|
||||
const [p_detail_header_ref_interne, setp_detail_header_ref_interne] = useState();
|
||||
const [p_detail_header_vendeur_nom, setp_detail_header_vendeur_nom] = useState();
|
||||
const [p_detail_header_type, setp_detail_header_type] = useState();
|
||||
const [p_detail_header_statut, setp_detail_header_statut] = useState();
|
||||
|
||||
return (
|
||||
|
||||
|
@ -673,8 +878,8 @@ const Partner_Commande = (props) => {
|
|||
handleClick_edit_order_From_Line(newSelectionModel);
|
||||
if (newSelectionModel.length !== 1) {
|
||||
setsubmenu();
|
||||
//setdisplay_detail_employe();
|
||||
//setadd_One_Employee();
|
||||
setdisplay_detail_order();
|
||||
setadd_One_Order();
|
||||
}
|
||||
}}
|
||||
selectionModel={selectionModel}
|
||||
|
@ -765,13 +970,13 @@ const Partner_Commande = (props) => {
|
|||
</Button>
|
||||
|
||||
|
||||
<Button variant="outlined" onClick={"submenu_add_one_employee"}
|
||||
<Button variant="outlined" onClick={submenu_add_one_order}
|
||||
className="detail_class_submenu bton_add_session"
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Commande
|
||||
<img src={add_plus} alt="ajout session" className="icon_plus" />
|
||||
</Button>
|
||||
|
||||
<Button variant="outlined" onClick={"submenu_add_one_employee"}
|
||||
<Button variant="outlined" onClick={submenu_add_one_order}
|
||||
className="detail_class_submenu bton_add_session"
|
||||
id='menu_import_participant' name='menu_import_participant'>Ajout 1 Devis
|
||||
<img src={add_plus} alt="ajout session" className="icon_plus" />
|
||||
|
@ -802,6 +1007,318 @@ const Partner_Commande = (props) => {
|
|||
|
||||
</div>
|
||||
|
||||
{String(submenu) === "detail_order" && String(add_One_Order) !== "1" && <div className="div_row">
|
||||
<h3> Affichage detaillé d'une commande / devis </h3>
|
||||
<div>
|
||||
<div className="session_data" >
|
||||
Entete de commande
|
||||
<div className="session_caract"> Type<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_type"
|
||||
id="detail_header_type"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_type}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_type(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Statut<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_status"
|
||||
id="detail_header_status"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_statut}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_statut(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Ref. Interne<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_ref_interne"
|
||||
id="detail_header_ref_interne"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_ref_interne}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_ref_interne(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Date Cmd<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_date_cmd"
|
||||
id="detail_header_date_cmd"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_date_cmd}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_date_cmd(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Date expiration<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_date_expiration"
|
||||
id="detail_header_date_expiration"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_date_expiration}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_date_expiration(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div className="session_caract"> Nom Client<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_nom_client"
|
||||
id="detail_nom_client"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_client_nom}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_client_nom(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Description<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_description"
|
||||
id="detail_header_description"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_description}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_description(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Commentaire<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_comment"
|
||||
id="detail_header_comment"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_comment}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_comment(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="session_caract"> Vendeur<br />
|
||||
<TextField
|
||||
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
|
||||
required
|
||||
name="detail_header_vendeur_nom_prenom"
|
||||
id="detail_header_vendeur_nom_prenom"
|
||||
|
||||
InputLabelProps={{
|
||||
shrink: true,
|
||||
}}
|
||||
disabled={false}
|
||||
className="disabled_style"
|
||||
value={p_detail_header_vendeur_nom}
|
||||
onChange={(e) => {
|
||||
setp_detail_header_vendeur_nom(e.target.value);
|
||||
setOrder_data_changed("1");
|
||||
}
|
||||
}
|
||||
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="session_data" >
|
||||
Lignes de commande
|
||||
<div style={{ "border": "None" }}>
|
||||
|
||||
<div style={{ height: 550, width: '100%', paddingRight: '1px' }}>
|
||||
|
||||
<Box
|
||||
sx={{
|
||||
height: 500,
|
||||
width: '100%',
|
||||
paddingRight: '1px',
|
||||
|
||||
// Gestion des cellule a distance ou presentiel
|
||||
'& .cell--distantiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
'& .cell--presentiel': {
|
||||
backgroundColor: '#AFE1AF',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
|
||||
// gestion couleur des lignes avec le statut d'inscription
|
||||
'& .line--statut--annule': {
|
||||
backgroundColor: '#D8D8D8',
|
||||
color: 'white',
|
||||
},
|
||||
|
||||
'& .line--statut--inscrit': {
|
||||
backgroundColor: '#CEF6D8',
|
||||
color: 'black',
|
||||
},
|
||||
'& .line--statut--preinscrit': {
|
||||
backgroundColor: '#F7F2E0',
|
||||
color: 'black',
|
||||
},
|
||||
|
||||
/*"& .MuiDataGrid-virtualScrollerRenderZone": {
|
||||
"& .MuiDataGrid-row": {
|
||||
"&:nth-child(2n)": { backgroundColor: "rgba(235, 235, 235, .7)" }
|
||||
}
|
||||
},*/
|
||||
"& .MuiDataGrid-columnHeaders": {
|
||||
backgroundColor: "#c8cfd5",
|
||||
color: "black",
|
||||
fontSize: 14
|
||||
},
|
||||
|
||||
}}
|
||||
>
|
||||
<DataGrid
|
||||
checkboxSelection
|
||||
onSelectionModelChange={(newSelectionModel) => {
|
||||
setselectionModel_order_lines(newSelectionModel);
|
||||
/*if (newSelectionModel.length === 1)
|
||||
handleClick_edit_order_From_Line(newSelectionModel);
|
||||
if (newSelectionModel.length !== 1) {
|
||||
setsubmenu();
|
||||
setdisplay_detail_order();
|
||||
setadd_One_Order();
|
||||
}*/
|
||||
}}
|
||||
selectionModel={selectionModel_order_lines}
|
||||
|
||||
localeText={frFR.components.MuiDataGrid.defaultProps.localeText}
|
||||
rows={rows_order_lines.map((item, index) => (
|
||||
{
|
||||
id: index,
|
||||
_id: JSON.parse(item)._id,
|
||||
order_line_formation: JSON.parse(item).order_line_formation,
|
||||
order_line_qty: JSON.parse(item).order_line_qty,
|
||||
order_header_status: JSON.parse(item).order_header_status,
|
||||
order_line_prix_unitaire: JSON.parse(item).order_line_prix_unitaire,
|
||||
order_header_id: JSON.parse(item).order_header_id,
|
||||
order_header_ref_interne: JSON.parse(item).order_header_ref_interne,
|
||||
order_line_type: JSON.parse(item).order_line_type,
|
||||
order_header_date_cmd: JSON.parse(item).order_header_date_cmd,
|
||||
order_line_status: JSON.parse(item).order_line_status,
|
||||
|
||||
}
|
||||
))}
|
||||
|
||||
columns={columns_order_lines}
|
||||
pageSize={10}
|
||||
className="datagridclass"
|
||||
|
||||
rowsPerPageOptions={[10]}
|
||||
//disableSelectionOnClick
|
||||
components={{
|
||||
Toolbar: GridToolbar,
|
||||
}}
|
||||
|
||||
|
||||
/>
|
||||
</Box>
|
||||
<br />
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>}
|
||||
</div>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue