06/09/2023 - 13h

recette2
cherif 2023-09-06 13:31:08 +02:00
parent 00dcec883e
commit d2f6462253
1 changed files with 527 additions and 10 deletions

View File

@ -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();
@ -70,7 +74,7 @@ const Partner_Commande = (props) => {
{ field: 'order_header_vendeur_nom_prenom', headerName: 'Vendeur', width: 150, hideable: false, },
{ field: 'order_header_date_cmd', headerName: 'Date', width: 150, hide: false, editable: true },
{ field: 'order_header_date_expiration', headerName: 'Date Expiration', width: 150, hide: false, editable: true },
/* {
field: "Detail", headerName: 'Voir detail',
@ -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,24 +330,212 @@ 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() {
setsession_file_name();
setliste_sessions_file_change_api();
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}
@ -693,7 +898,7 @@ const Partner_Commande = (props) => {
order_header_vendeur_nom_prenom: JSON.parse(item).order_header_vendeur_nom_prenom,
order_header_date_cmd: JSON.parse(item).order_header_date_cmd,
order_header_date_expiration: JSON.parse(item).order_header_date_expiration,
}
))}
@ -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 &nbsp;
<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 &nbsp;
<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' }}>
&nbsp;
<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>