25/12/2024 - 22h30

recette2
cherif 2024-12-25 22:25:02 +01:00
parent 3353e9df61
commit 8d526bfa4f
10 changed files with 651 additions and 72 deletions

View File

@ -407,8 +407,7 @@ function Account() {
<hr className="my_hr" /> <hr className="my_hr" />
<div className="sousmenu" onClick={displayProfil_Facture}> FACTURES</div> <div className="sousmenu" onClick={displayProfil_Facture}> FACTURES</div>
<hr className="my_hr" /> <hr className="my_hr" />
<div className="sousmenu" onClick={displayProfil_Tout_Documents}> MES DOCUMENTS</div>
<hr className="my_hr" />
<div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div> <div className="sousmenu" onClick={displayProfil_Modules_Mes_Documents}> MODULE TOUS DOCUMENTS</div>
<hr className="my_hr" /> <hr className="my_hr" />
<div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div> <div className="sousmenu" onClick={deletemyaccount}> SUPPRIMER MON COMPTE</div>
@ -458,16 +457,25 @@ function Account() {
partner_owner_recid={connected_user_data.partner_owner_recid} partner_owner_recid={connected_user_data.partner_owner_recid}
/>} />}
{String(menu) === String("tout_documents") && connected_user_data && connected_user_data.partner_owner_recid && {/*String(menu) === String("tout_documents") && connected_user_data && connected_user_data.partner_owner_recid &&
connected_user_data.partner_client_id && connected_user_data.partner_client_id &&
<Intranet_Tous_Documents partner_client_id={connected_user_data.partner_client_id} <Intranet_Tous_Documents partner_client_id={connected_user_data.partner_client_id}
partner_owner_recid={connected_user_data.partner_owner_recid} partner_owner_recid={connected_user_data.partner_owner_recid}
/>} />*/}
{String(menu) === String("modules_mes_documents") && connected_user_data && connected_user_data.partner_owner_recid && {String(menu) === String("modules_mes_documents") && connected_user_data && connected_user_data.partner_owner_recid &&
connected_user_data.partner_client_id && connected_user_data.partner_client_id &&
<Modules_Mes_Documents partner_client_id={connected_user_data.partner_client_id} <Modules_Mes_Documents partner_client_id={connected_user_data.partner_client_id}
partner_owner_recid={connected_user_data.partner_owner_recid} partner_owner_recid={connected_user_data.partner_owner_recid}
my_title={"MES DOCUMENTS"}
/>}
{String(menu) === String("mes_devis") && connected_user_data && connected_user_data.partner_owner_recid &&
connected_user_data.partner_client_id &&
<Modules_Mes_Documents partner_client_id={connected_user_data.partner_client_id}
partner_owner_recid={connected_user_data.partner_owner_recid}
my_title={"MES DEVIS"}
type_document={"devis"}
/>} />}

View File

@ -94,8 +94,50 @@ import {
} from '@mui/x-data-grid'; } from '@mui/x-data-grid';
import * as XLSX from 'xlsx'; import * as XLSX from 'xlsx';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const DisplayPartnerSession = (props) => { const DisplayPartnerSession = (props) => {
const classes = useStyles();
const history = useHistory(); const history = useHistory();
const [submenu, setsubmenu] = useState(""); const [submenu, setsubmenu] = useState("");
const [rowss, setRows] = useState([]); const [rowss, setRows] = useState([]);
@ -7387,7 +7429,7 @@ const DisplayPartnerSession = (props) => {
} }
if (file_1_name && file_1_name.name) { if (file_1_name && file_1_name.name) {
// console.log(" ### Traitement de : ", file_1_name.name); // console.log(" ### Traitement de : ", file_1_name.name);
const formData = new FormData(); const formData = new FormData();
formData.append('File', file_1_name); formData.append('File', file_1_name);
@ -7462,7 +7504,7 @@ const DisplayPartnerSession = (props) => {
} }
if (file_1_name && file_1_name.name) { if (file_1_name && file_1_name.name) {
// console.log(" ### Traitement de : ", file_1_name.name); // console.log(" ### Traitement de : ", file_1_name.name);
const formData = new FormData(); const formData = new FormData();
formData.append('File', file_1_name); formData.append('File', file_1_name);
@ -12987,15 +13029,40 @@ const DisplayPartnerSession = (props) => {
</Dialog> </Dialog>
{/**** Dialogue pour DETTAIL SESSION */}
<Dialog <Dialog
open={Dialog_2_open} open={Dialog_2_open}
onClose={Dialog_2_handleClose} // onClose={Dialog_2_handleClose}
//className="displaypartnersession"
className="displaypartnersession" className="displaypartnersession"
>
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent className="DialogContent_width"> <DialogContent className="DialogContent_width">
<DialogContentText> <DialogContentText >
{Dialog_2_message} {Dialog_2_message}
</DialogContentText> </DialogContentText>
@ -13130,6 +13197,16 @@ const DisplayPartnerSession = (props) => {
</div> </div>
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_2_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
<Button onClick={Show_Detailled_Session_Data} className="bton_enreg_dialog">Voir détail</Button> <Button onClick={Show_Detailled_Session_Data} className="bton_enreg_dialog">Voir détail</Button>
@ -13144,6 +13221,8 @@ const DisplayPartnerSession = (props) => {
</Dialog> </Dialog>
{/**** FIN Dialogue pour DETTAIL SESSION */}
<Dialog <Dialog
open={Dialog_seq_1_open} open={Dialog_seq_1_open}
onClose={Dialog_seq_1_handleClose} onClose={Dialog_seq_1_handleClose}

View File

@ -49,8 +49,50 @@ import { Document, Page } from 'react-pdf'
import SignatureCanvas from 'react-signature-canvas'; import SignatureCanvas from 'react-signature-canvas';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
function ESign() { function ESign() {
const classes = useStyles();
const history = useHistory(); const history = useHistory();
const { document_id, local_secret_key_signature, local_partner_owner_recid } = useParams(); const { document_id, local_secret_key_signature, local_partner_owner_recid } = useParams();
const [isLoading, setLoading] = useState(); const [isLoading, setLoading] = useState();
@ -150,7 +192,7 @@ function ESign() {
else else
form.append('signature_img', ""); form.append('signature_img', "");
console.log(" isimgclassSelected #### = ", isimgclassSelected); // console.log(" isimgclassSelected #### = ", isimgclassSelected);
@ -406,9 +448,33 @@ function ESign() {
{/* POUR SIGNATURE E-DOCUMENT */} {/* POUR SIGNATURE E-DOCUMENT */}
<Dialog <Dialog
open={Dialog_SIGN_VALIDATION_open} open={Dialog_SIGN_VALIDATION_open}
onClose={Dialog_SIGN_VALIDATION_handleClose} //onClose={Dialog_SIGN_VALIDATION_handleClose}
className="esign" className="esign"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '10rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
{!erreur_recup_e_doc && <DialogTitle>Signature </DialogTitle>} {!erreur_recup_e_doc && <DialogTitle>Signature </DialogTitle>}
@ -461,6 +527,16 @@ function ESign() {
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_SIGN_VALIDATION_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
<Button onClick={Signature_E_Document} className="bton_enreg_dialog">Valider &nbsp;</Button> <Button onClick={Signature_E_Document} className="bton_enreg_dialog">Valider &nbsp;</Button>
@ -480,9 +556,31 @@ function ESign() {
{/* POUR OUVERTURE E-DOCUMENT */} {/* POUR OUVERTURE E-DOCUMENT */}
<Dialog <Dialog
open={Dialog_1_open} open={Dialog_1_open}
onClose={Dialog_1_handleClose} // onClose={Dialog_1_handleClose}
className="esign" className="esign"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '10rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
{!erreur_recup_e_doc && <DialogTitle>Authentification </DialogTitle>} {!erreur_recup_e_doc && <DialogTitle>Authentification </DialogTitle>}
@ -535,6 +633,15 @@ function ESign() {
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_1_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
<Button onClick={get_E_Document} className="bton_enreg_dialog">Afficher</Button> <Button onClick={get_E_Document} className="bton_enreg_dialog">Afficher</Button>
@ -594,8 +701,8 @@ function ESign() {
<h3> Signature Electronique </h3> <h3> Signature Electronique </h3>
<div className="div_row"> <div className="div_row">
<div style={{ width: "20%", "float": "left", minHeight: "40vh", textAlign: "justify", padding: "15px" }}> <div className="signature_block_explication" >
<br />
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "fontWeight": "700" }}> Guide d'utilisation : </nav><br /> <nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "fontWeight": "700" }}> Guide d'utilisation : </nav><br />
<nav>Pour vous permettre de signer électroniquement vos documents, MySy Training Technology met à disposition ce module. </nav> <nav>Pour vous permettre de signer électroniquement vos documents, MySy Training Technology met à disposition ce module. </nav>
<nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "marginTop": "1rem", "fontWeight": "700" }}> Comment ça marche : </nav> <nav style={{ "fontSize": "2rem", "marginBottom": "1rem", "marginTop": "1rem", "fontWeight": "700" }}> Comment ça marche : </nav>
@ -606,21 +713,19 @@ function ESign() {
</div> </div>
<div style={{ width: "78%", "float": "right", marginRight: "1%" }}> <div className="signature_block_document" >
{is_valide_e_document && {is_valide_e_document &&
<div className="div_row"> <div className="div_row">
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}> <div style={{ width: "95%", "marginLeft": "auto", "marginRight": "auto" }}>
<embed src={get_E_Document_PDF} width='100%' height='700px' type="application/pdf" /> <embed src={get_E_Document_PDF} width='100%' height='700px' type="application/pdf" />
</div> </div>
<div className="div_row"> <div className="div_row">
&nbsp; &nbsp;
</div> </div>
<div style={{ width: "80%", "marginLeft": "auto", "marginRight": "auto" }}> <div style={{ width: "95%", "marginLeft": "auto", "marginRight": "auto" }}>
<div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}> <div className="div_row" style={{ "border": "None", "color": "orange", "textAlign": "center" }}>
<div className="div_row"> <div className="div_row">

View File

@ -52,8 +52,52 @@ import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi"; import { PiDotsThree } from "react-icons/pi";
import SignatureCanvas from 'react-signature-canvas'; import SignatureCanvas from 'react-signature-canvas';
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
function Emarge_QR_Code() { function Emarge_QR_Code() {
const classes = useStyles();
const history = useHistory(); const history = useHistory();
const { session_id, partner_owner_recid, my_safe_token } = useParams(); const { session_id, partner_owner_recid, my_safe_token } = useParams();
const [isLoading, setLoading] = useState(); const [isLoading, setLoading] = useState();
@ -475,13 +519,38 @@ function Emarge_QR_Code() {
{/* POUR SIGNATURE MANUSCRITE */} {/* POUR SIGNATURE MANUSCRITE */}
<Dialog <Dialog
open={Dialog_SIGN_MANUSCRITE_open} open={Dialog_SIGN_MANUSCRITE_open}
onClose={Dialog_SIGN_MANUSCRITE_handleClose} // onClose={Dialog_SIGN_MANUSCRITE_handleClose}
className="esign" className="esign"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
<DialogTitle>Signature Manuscrite </DialogTitle> <DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">Signature Manuscrite </DialogTitle>
<DialogContent className="DialogContent_width"> <DialogContent className="DialogContent_width" >
<div style={{ width: "100%" }}> <div style={{ width: "100%" }}>
<SignatureCanvas ref={signatureCanvasRef} style={{ "border": "solid 1px red" }} penColor="blue" <SignatureCanvas ref={signatureCanvasRef} style={{ "border": "solid 1px red" }} penColor="blue"
canvasProps={{ canvasProps={{
@ -505,6 +574,16 @@ function Emarge_QR_Code() {
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_SIGN_MANUSCRITE_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
<Button onClick={checkIfEmpty} className="bton_enreg_dialog">Valider &nbsp;</Button> <Button onClick={checkIfEmpty} className="bton_enreg_dialog">Valider &nbsp;</Button>

View File

@ -67,7 +67,9 @@ import zIndex from "@material-ui/core/styles/zIndex";
import { FcOpenedFolder } from "react-icons/fc"; import { FcOpenedFolder } from "react-icons/fc";
import Module_Historique_Action from "./Module_Historique_Action"; import Module_Historique_Action from "./Module_Historique_Action";
import { GridExportCsvOptions } from '@mui/x-data-grid'; import { GridExportCsvOptions } from '@mui/x-data-grid';
import { IconButton } from '@material-ui/core';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import Menu from '@mui/material/Menu';
const Intranet_Factures_Client = (props) => { const Intranet_Factures_Client = (props) => {
@ -128,6 +130,20 @@ const Intranet_Factures_Client = (props) => {
} }
const options_menu_vertical = [
'',
'Télécharger',
];
const ITEM_HEIGHT = 48;
const [anchorEl, setAnchorEl] = React.useState(null);
const open = Boolean(anchorEl);
const handleClick_option_button_vertical = (event) => {
setAnchorEl(event.currentTarget);
};
const handleClose_option_button_vertical = (event, value) => {
setAnchorEl(null);
};
const columns = [ const columns = [
{ field: '_id', headerName: '_id', hide: true, disableExport: true, }, { field: '_id', headerName: '_id', hide: true, disableExport: true, },
@ -148,7 +164,78 @@ const Intranet_Factures_Client = (props) => {
{ field: 'reste_to_paye', headerName: 'A payer', width: 150, hide: false, editable: false }, { field: 'reste_to_paye', headerName: 'A payer', width: 150, hide: false, editable: false },
{ field: 'credit_note_ref', headerName: 'Ref. Avoir', width: 150, hide: true, editable: false, }, { field: 'credit_note_ref', headerName: 'Ref. Avoir', width: 150, hide: true, editable: false, },
{
field: 'bton_vertif', headerName: 'Gestion', minWidth: 50, flex: 1, maxWidth: 100, hideable: true, hide: false, editable: false, align: "center",
renderCell: (cellValues,) => {
return (
<nav style={{ width: '100%', 'textAlign': 'center' }}>
<IconButton
aria-label="more"
id="long-button"
aria-controls={open ? 'long-menu' : undefined}
aria-expanded={open ? 'true' : undefined}
aria-haspopup="true"
onClick={(e) => {
handleClick_option_button_vertical(e);
setselected_id(cellValues.row._id);
}}
>
<MoreVertIcon />
</IconButton>
<Menu
id="long-menu"
MenuListProps={{
'aria-labelledby': 'long-button',
}}
anchorEl={anchorEl}
open={open}
onClose={handleClose_option_button_vertical}
onClick={(e) => {
}}
slotProps={{
paper: {
style: {
maxHeight: ITEM_HEIGHT * 4.5,
width: '20ch',
boxShadow: "-3px 4px 0px -30px #000000",
borderRadius: '0px !important',
lineHeight: '3rem'
},
},
}}
>
{options_menu_vertical.map((option) => (
<MenuItem key={option}
onClick={(e) => {
if (option && String(option) === "Télécharger") {
print_invoice_pdf();
}
setAnchorEl(null);
}}
>
{option}
</MenuItem>
))}
</Menu>
</nav>
);
},
},
/* { /* {

View File

@ -75,8 +75,50 @@ import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc"; import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import { convertNwSeToNeSw } from "google-map-react"; import { convertNwSeToNeSw } from "google-map-react";
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
import { IconButton } from '@material-ui/core';
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const Module_Editique = (props) => { const Module_Editique = (props) => {
const classes = useStyles();
const myconntected_employee_id = props.conntected_employee_id; const myconntected_employee_id = props.conntected_employee_id;
const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id); const [selected_employee_id, setselected_employee_id] = useState(props.conntected_employee_id);
@ -1512,8 +1554,34 @@ const Module_Editique = (props) => {
{/* Dialog pour gerer les CONVOCATION_STAGIAIRE */} {/* Dialog pour gerer les CONVOCATION_STAGIAIRE */}
<Dialog <Dialog
open={Dialog_CONVOCATION_STAGIAIRE_open} open={Dialog_CONVOCATION_STAGIAIRE_open}
onClose={Dialog_CONVOCATION_STAGIAIRE_handleClose} // onClose={Dialog_CONVOCATION_STAGIAIRE_handleClose}
className="displaypartnersession" // className="displaypartnersession"
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
<DialogTitle>MySy Information</DialogTitle> <DialogTitle>MySy Information</DialogTitle>
@ -1761,6 +1829,16 @@ const Module_Editique = (props) => {
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_CONVOCATION_STAGIAIRE_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
{String(selected_convention_type) === "email" && <Button onClick={(e) => { {String(selected_convention_type) === "email" && <Button onClick={(e) => {
@ -1789,8 +1867,6 @@ const Module_Editique = (props) => {
</div> </div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}> <div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_CONVOCATION_STAGIAIRE_handleClose_buton} className="bton_annule_dialog" >Fermer</Button> <Button onClick={Dialog_CONVOCATION_STAGIAIRE_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div> </div>
@ -1805,11 +1881,37 @@ const Module_Editique = (props) => {
{/* Dialog pour gerer les CONVENTIONS */} {/* Dialog pour gerer les CONVENTIONS */}
<Dialog <Dialog
open={Dialog_convention_open} open={Dialog_convention_open}
onClose={Dialog_convention_handleClose} // onClose={Dialog_convention_handleClose}
//className="displaypartnersession"
className="displaypartnersession" className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '7rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
<DialogTitle>MySy Information</DialogTitle> <DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}> <DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText> <DialogContentText>
{Dialog_1_message} {Dialog_1_message}
@ -1929,7 +2031,9 @@ const Module_Editique = (props) => {
{String(selected_convention_type) === "email" && <div className="session_caract_Dialog" > {String(selected_convention_type) === "email" && <div className="session_caract_Dialog" >
<Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} /> <Tooltip className="tooltip_css" id="test01" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer"> <a data-tooltip-id="test01" data-tooltip-html="Pour recevoir une email de test avant de l'envoyer">
Adresse email de test <FcInfo /> <TextField <nav style={{ width: '100%', 'float': 'left' }}> Adresse email de test <FcInfo /> </nav>
<TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, width: '75%' }}
name="event_dialog_email_test_convention" name="event_dialog_email_test_convention"
@ -2059,6 +2163,17 @@ const Module_Editique = (props) => {
<DialogActions> <DialogActions>
<IconButton
autoFocus
onClick={Dialog_convention_handleClose_buton}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
<div className="div_row"> <div className="div_row">
<div className="div_row_gauche"> <div className="div_row_gauche">
{String(selected_convention_type) === "email" && <Button onClick={(e) => { {String(selected_convention_type) === "email" && <Button onClick={(e) => {
@ -2088,7 +2203,6 @@ const Module_Editique = (props) => {
</div> </div>
<div className="div_row_droite" style={{ "textAlign": 'center' }}> <div className="div_row_droite" style={{ "textAlign": 'center' }}>
<Button onClick={Dialog_convention_handleClose_buton} className="bton_annule_dialog" >Fermer</Button> <Button onClick={Dialog_convention_handleClose_buton} className="bton_annule_dialog" >Fermer</Button>
</div> </div>

View File

@ -77,6 +77,8 @@ const Modules_Mes_Documents = (props) => {
const [rowss_total_data, setRows_total_data] = useState([]); const [rowss_total_data, setRows_total_data] = useState([]);
const [selectionModel, setSelectionModel] = React.useState([]); const [selectionModel, setSelectionModel] = React.useState([]);
const [myprops_type_document, setmyprops_type_document] = React.useState("");
const [rows_invoice_lines, setrows_invoice_lines] = useState([]); const [rows_invoice_lines, setrows_invoice_lines] = useState([]);
const [selectionModel_invoice_lines, setselectionModel_invoice_lines] = React.useState([]); const [selectionModel_invoice_lines, setselectionModel_invoice_lines] = React.useState([]);
const [gridline_id, setgridline_id] = useState(""); const [gridline_id, setgridline_id] = useState("");
@ -208,7 +210,7 @@ const Modules_Mes_Documents = (props) => {
onClose={handleClose_option_button_vertical} onClose={handleClose_option_button_vertical}
onClick={(e) => { onClick={(e) => {
console.log(" OKKK ");
}} }}
slotProps={{ slotProps={{
@ -282,9 +284,29 @@ const Modules_Mes_Documents = (props) => {
const [history_securite_read, sethistory_securite_read] = useState(""); const [history_securite_read, sethistory_securite_read] = useState("");
const autorized_type_document = ['devis', 'convention', 'convocation', 'attestation'];
useEffect(() => { useEffect(() => {
Get_List_Of_All_PJ();
console.log(" ### props.type_document = ", props.type_document)
if (props.type_document && autorized_type_document.includes(String(props.type_document))) {
console.log(" ### iciiii ")
setmyprops_type_document(props.type_document);
setp_filtre1("filter_type_document");
setp_filtre1_value(props.type_document);
Get_All_Documents_With_Filter();
} else {
Get_List_Of_All_PJ();
}
}, []) }, [])
@ -431,6 +453,7 @@ const Modules_Mes_Documents = (props) => {
const New_Option_Filter = [ const New_Option_Filter = [
{ "id": "filter_file_business_object", "label": "Nom Document", "value": "filter_file_business_object" },
{ "id": "filter_type_document", "label": "Type Document", "value": "filter_type_document" }, { "id": "filter_type_document", "label": "Type Document", "value": "filter_type_document" },
{ "id": "filter_nom_client", "label": "Nom Client", "value": "filter_nom_client" }, { "id": "filter_nom_client", "label": "Nom Client", "value": "filter_nom_client" },
{ "id": "date_create_start_date", "label": "Crée après (jj/mm/aaaa) ", "value": "date_create_start_date" }, { "id": "date_create_start_date", "label": "Crée après (jj/mm/aaaa) ", "value": "date_create_start_date" },
@ -442,6 +465,8 @@ const Modules_Mes_Documents = (props) => {
] ]
const Option_Type_Document = [ const Option_Type_Document = [
{ "id": "devis", "label": "Devis", "value": "devis" }, { "id": "devis", "label": "Devis", "value": "devis" },
{ "id": "convention", "label": "Convention", "value": "convention" }, { "id": "convention", "label": "Convention", "value": "convention" },
@ -612,7 +637,6 @@ const Modules_Mes_Documents = (props) => {
const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState(); const [Get_List_Of_All_PJ_api, setGet_List_Of_All_PJ_api] = useState();
const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState(); const [Get_List_Of_All_PJ_result, setGet_List_Of_All_PJ_result] = useState();
const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState(); const [Get_List_Of_All_PJ_message, setGet_List_Of_All_PJ_message] = useState();
function Get_List_Of_All_PJ() { function Get_List_Of_All_PJ() {
const formData = new FormData(); const formData = new FormData();
@ -697,7 +721,7 @@ const Modules_Mes_Documents = (props) => {
const [Get_All_Documents_With_Filter_api, setGet_All_Documents_With_Filter_api] = useState(); const [Get_All_Documents_With_Filter_api, setGet_All_Documents_With_Filter_api] = useState();
const [Get_All_Documents_With_Filter_message, setGet_All_Documents_With_Filter_message] = useState(); const [Get_All_Documents_With_Filter_message, setGet_All_Documents_With_Filter_message] = useState();
const [Get_All_Documents_With_Filter_result, setGet_All_Documents_With_Filter_result] = useState(); const [Get_All_Documents_With_Filter_result, setGet_All_Documents_With_Filter_result] = useState();
function Get_All_Documents_With_Filter(local_client_id) { function Get_All_Documents_With_Filter() {
setgridline_id(""); setgridline_id("");
@ -734,6 +758,15 @@ const Modules_Mes_Documents = (props) => {
} }
/*** Si le formulaire est appelé avec un type de document;
* on va forcer dans les argument un champ avec filter_type_document
*/
if (props.type_document && autorized_type_document.includes(String(props.type_document))) {
form.delete("filter_type_document");
form.append("filter_type_document", props.type_document);
}
var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files_With_Filter/"; var myurl = process.env.REACT_APP_API_URL + "myclass/api/Get_List_object_owner_collection_Stored_Files_With_Filter/";
axios.post(myurl, form).then(res => { axios.post(myurl, form).then(res => {
@ -779,8 +812,8 @@ const Modules_Mes_Documents = (props) => {
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div> <div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>} </div>}
{props.my_title && <h3> {props.my_title} </h3>}
<h3> Tous vos documents </h3> {!props.my_title && <h3> Tous vos documents </h3>}
<div className="div_row"> <div className="div_row">
<div className="titre1"> Utilisez les filtres !</div> <div className="titre1"> Utilisez les filtres !</div>
<div className="div_row" style={{ "marginBottom": "5px" }}> <div className="div_row" style={{ "marginBottom": "5px" }}>
@ -850,7 +883,7 @@ const Modules_Mes_Documents = (props) => {
disablePortal disablePortal
name="filtre1_value" name="filtre1_value"
id="filtre1_value" id="filtre1_value"
className="disabled_style" className="disabled_style autocomplete_float_right"
options={Option_Type_Document} options={Option_Type_Document}
onChange={(event, value) => { onChange={(event, value) => {
if (value && value.value) { if (value && value.value) {
@ -918,7 +951,7 @@ const Modules_Mes_Documents = (props) => {
} }
/>} />}
</div> </div>
<div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }}> <div className="div_row_droite texte_area_filter_value" style={{ "marginTop": "0.5rem" }} >
{String(p_filtre2).length > 2 && String(p_filtre2) !== "filter_type_document" && {String(p_filtre2).length > 2 && String(p_filtre2) !== "filter_type_document" &&
<TextField <TextField
sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }} sx={{ '& legend': { display: 'none' }, '& fieldset': { top: 0 }, }}
@ -952,7 +985,7 @@ const Modules_Mes_Documents = (props) => {
disablePortal disablePortal
name="filtre2_value" name="filtre2_value"
id="filtre2_value" id="filtre2_value"
className="disabled_style" className="disabled_style autocomplete_float_right"
options={Option_Type_Document} options={Option_Type_Document}
onChange={(event, value) => { onChange={(event, value) => {
if (value && value.value) { if (value && value.value) {
@ -1060,7 +1093,7 @@ const Modules_Mes_Documents = (props) => {
disablePortal disablePortal
name="filtre3_value" name="filtre3_value"
id="filtre3_value" id="filtre3_value"
className="disabled_style" className="disabled_style autocomplete_float_right"
options={Option_Type_Document} options={Option_Type_Document}
onChange={(event, value) => { onChange={(event, value) => {
if (value && value.value) { if (value && value.value) {
@ -1192,7 +1225,7 @@ const Modules_Mes_Documents = (props) => {
}} }}
componentsProps={{ toolbar: { data_colums: columns } }} componentsProps={{ toolbar: { data_colums: columns } }}
checkboxSelection // checkboxSelection
disableSelectionOnClick disableSelectionOnClick
onSelectionModelChange={(newSelectionModel) => { onSelectionModelChange={(newSelectionModel) => {
setSelectionModel(newSelectionModel); setSelectionModel(newSelectionModel);

View File

@ -2,23 +2,23 @@
.test01 { .test01 {
font-size: 3rem; font-size: 3rem;
// color: red; // color: red;
font-weight: bold !important; font-weight: bold !important;
} }
.test02 { .test02 {
font-size: 5px !important; font-size: 5px !important;
// color: burlywood; // color: burlywood;
font-weight: normal; font-weight: normal;
} }
.test03 { .test03 {
text-align: left !important; text-align: left !important;
font-size: x-small; font-size: x-small;
//background-color: #464b5e !important; //background-color: #464b5e !important;
} }
.css-hytcpw{ .css-hytcpw {
max-width: 100% !important; max-width: 100% !important;
} }
@ -27,9 +27,9 @@
z-index: 9999; z-index: 9999;
} }
.css-1bcfi89-MuiTreeItem-content .MuiTreeItem-iconContainer{ .css-1bcfi89-MuiTreeItem-content .MuiTreeItem-iconContainer {
font-size: 5px !important; font-size: 5px !important;
} }
.bton_action_server { .bton_action_server {
box-shadow: 0 0 5px -1px rgba(0, 0, 0, 0.2); box-shadow: 0 0 5px -1px rgba(0, 0, 0, 0.2);
@ -464,7 +464,7 @@
padding-right: 10px; padding-right: 10px;
border: 1px solid rgb(194, 186, 186); border: 1px solid rgb(194, 186, 186);
border-radius: 10px; border-radius: 10px;
width: 10rem; // width: 10rem;
cursor: pointer; cursor: pointer;
} }
@ -669,10 +669,10 @@
background: #81BC3A !important; background: #81BC3A !important;
text-align: center; text-align: center;
height: 2.5rem; height: 2.5rem;
width: 100%; width: 90%;
color: white; color: white;
margin-left: 10px; margin-left: 5%;
margin-right: 10px; margin-right: 5%;
} }
@ -682,10 +682,10 @@
background: lightgray !important; background: lightgray !important;
text-align: right; text-align: right;
height: 2.5rem; height: 2.5rem;
width: 100%; width: 90%;
color: black; color: black;
margin-left: 10px; margin-left: 5%;
margin-right: 10px; margin-right: 5%;
} }
@ -704,8 +704,27 @@
} }
.DialogContent_width { .DialogContent_width {
width: 200px !important; width: 300px !important;
max-width: none !important;
padding: 5px;
} }
.signature_block_explication {
width: 100%;
float: left;
min-height: 40vh;
text-align: left;
padding: 15px;
}
.signature_block_document {
width: 100%;
float: right;
margin-right: 1%;
}
} }
@media only screen and (min-width: 601px) and (max-width: 991px) { @media only screen and (min-width: 601px) and (max-width: 991px) {
@ -1322,6 +1341,20 @@
width: 500px !important; width: 500px !important;
} }
.signature_block_explication {
width: 100%;
float: left;
// min-height: 40vh;
text-align: left;
padding: 15px;
}
.signature_block_document {
width: 100%;
float: right;
margin-right: 1%;
}
} }
@media only screen and (min-width: 992px) and (max-width: 1199px) { @media only screen and (min-width: 992px) and (max-width: 1199px) {
@ -1843,6 +1876,22 @@
width: 500px !important; width: 500px !important;
} }
.signature_block_explication {
width: 30%;
float: left;
min-height: 40vh;
text-align: justify;
padding: 15px;
}
.signature_block_document {
width: 69%;
float: right;
margin-right: 1%;
}
} }
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
@ -2493,13 +2542,30 @@
} }
.signature_block_explication {
width: 30%;
float: left;
min-height: 40vh;
text-align: justify;
padding: 15px;
}
.signature_block_document {
width: 69%;
float: right;
margin-right: 1%;
}
} }
.css-1t1j96h-MuiPaper-root-MuiDialog-paper{
.css-1t1j96h-MuiPaper-root-MuiDialog-paper {
border-radius: 15px !important; border-radius: 15px !important;
} }
// end media // end media
.loader-container { .loader-container {
@ -2515,7 +2581,7 @@
top: 0px; top: 0px;
opacity: 80%; opacity: 80%;
left: 0px; left: 0px;
} }
.spinner { .spinner {

View File

@ -1,4 +1,4 @@
.modules_mes_documents { .intranet_tous_documents{
.tooltip_css { .tooltip_css {
background: #81BC3A; background: #81BC3A;
@ -2317,6 +2317,10 @@
// end media // end media
.autocomplete_float_right{
float: right !important;
}
.disabled_style_with_visualiser_icone { .disabled_style_with_visualiser_icone {
float: left; float: left;
text-align: center; text-align: center;

View File

@ -1,4 +1,4 @@
.intranet_tous_documents { .modules_mes_documents {
.tooltip_css { .tooltip_css {
background: #81BC3A; background: #81BC3A;
@ -2317,6 +2317,10 @@
// end media // end media
.autocomplete_float_right{
float: right !important;
}
.disabled_style_with_visualiser_icone { .disabled_style_with_visualiser_icone {
float: left; float: left;
text-align: center; text-align: center;