feature/solicitar_reapertura_de_cuenta_20240206
parent
4a7d51f4b0
commit
5f92a4391e
@ -0,0 +1,119 @@ |
|||||||
|
import { Button, Col, Form, FormLabel, Row } from "react-bootstrap"; |
||||||
|
import { CiWarning } from "react-icons/ci"; |
||||||
|
import { MsgInformativo } from "../../Utils/Toast/msgInformativo"; |
||||||
|
import '../../../css/generic01.css' |
||||||
|
import { ICorresponsalTraficoSolicitudReapertura } from "../../../Interfaces/Corresponsales/ICorresponsalTraficoSolicitudReapertura"; |
||||||
|
import { DTOTraficoSolicitudReapertura } from "../../../DTO/Corresponsales/DTOTraficoSolicitudReapertura"; |
||||||
|
import CTrafDataService from "../../../Services/Corresponsalias/Corresponsales.Trafico.Services" |
||||||
|
import { useState } from "react"; |
||||||
|
|
||||||
|
interface IProps { |
||||||
|
solicitud: DTOTraficoSolicitudReapertura; |
||||||
|
userId: number; |
||||||
|
close: (estado: number) => void |
||||||
|
} |
||||||
|
export const AutorizarReapertura:React.FC<IProps> = (props) => { |
||||||
|
const [Motivo, setMotivo] = useState('') |
||||||
|
const [showMsg, setShowMsg] = useState(false) |
||||||
|
const [msg, setMsg] = useState('') |
||||||
|
const [header, setHeader] = useState('') |
||||||
|
const [SelectedOption, setSelectedOption] = useState(2) |
||||||
|
|
||||||
|
const AppendSolicitud = () =>{ |
||||||
|
if(SelectedOption === 0 && !Motivo){ |
||||||
|
setHeader('Error'); |
||||||
|
setMsg('Favor de capturar una razon válida.') |
||||||
|
setShowMsg(true) |
||||||
|
return; |
||||||
|
} |
||||||
|
if(SelectedOption === 0 && Motivo.length < 30){ |
||||||
|
setHeader('Error'); |
||||||
|
setMsg('La razón del rechazo debe contener al menos 30 caracteres') |
||||||
|
setShowMsg(true) |
||||||
|
return; |
||||||
|
} |
||||||
|
var solicitud: ICorresponsalTraficoSolicitudReapertura = { |
||||||
|
id: props.solicitud.id, |
||||||
|
idTrafico: props.solicitud.idTrafico, |
||||||
|
idUsuarioSolicita: props.solicitud.idUsuarioSolicita, |
||||||
|
fechaSolicita: props.solicitud.fechaSolicita, |
||||||
|
motivoSolicita: props.solicitud.motivoSolicita, |
||||||
|
idUsuarioAutoriza: props.userId, |
||||||
|
fechaAutoriza: undefined, |
||||||
|
motivoRechazo: Motivo, |
||||||
|
estado: SelectedOption |
||||||
|
} |
||||||
|
CTrafDataService.AppendSolicitudReapertura(solicitud) |
||||||
|
.then((resp) => { |
||||||
|
if(resp.data.id > 0){ |
||||||
|
props.close(SelectedOption) |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch(() => { |
||||||
|
setHeader('Error'); |
||||||
|
setMsg('Ocurrió un error. Favor de intentar nuevamente') |
||||||
|
setShowMsg(true) |
||||||
|
return; |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
return( |
||||||
|
<> |
||||||
|
<h3>Solicitud de Reapertura de Cuenta</h3> |
||||||
|
<hr/> |
||||||
|
<Row> |
||||||
|
<CiWarning style={{fontSize:'150px', color:'#ff3100'}} /> |
||||||
|
</Row> |
||||||
|
<Row> |
||||||
|
<Col xs={12}> |
||||||
|
<p style={{textAlign:'center'}}> |
||||||
|
{props.solicitud.usuarioSolicita} solicita la reapertura de esta cuenta por el motivo: |
||||||
|
</p> |
||||||
|
<p style={{textAlign:'center'}}>{props.solicitud.motivoSolicita}</p> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
<Row className='justify-content-center'> |
||||||
|
<Col xs={4}> |
||||||
|
<Form.Control
|
||||||
|
as='select' |
||||||
|
className="form-select form-select-sm" |
||||||
|
value={SelectedOption} |
||||||
|
style={{width:'100%', marginBottom:'10px'}} |
||||||
|
onChange={(e) => setSelectedOption(+e.target.value)} |
||||||
|
> |
||||||
|
<option value={2}>Autorizar</option> |
||||||
|
<option value={0}>Rechazar</option> |
||||||
|
</Form.Control> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
<Row style={{visibility: SelectedOption === 0 ? 'visible' : 'hidden'}}> |
||||||
|
<Col xs={12}> |
||||||
|
<FormLabel style={{width:'100%'}}> |
||||||
|
<Form.Control |
||||||
|
as="textarea" |
||||||
|
rows={3}
|
||||||
|
onChange={(e) => setMotivo(e.target?.value)} |
||||||
|
placeholder='ingrese el motivo del rechazo de la solicitud' |
||||||
|
/> |
||||||
|
</FormLabel> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
<Row className='justify-content-end'> |
||||||
|
<Col xs={4} style={{textAlign:'end'}}> |
||||||
|
<Button variant='primary' onClick={() => {AppendSolicitud()}}> |
||||||
|
Guardar |
||||||
|
</Button> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
<MsgInformativo |
||||||
|
show={showMsg} |
||||||
|
msg={msg} |
||||||
|
header={header} |
||||||
|
msgColor={'primary'} |
||||||
|
closeToast={() => { |
||||||
|
setShowMsg(false) |
||||||
|
}} |
||||||
|
/> |
||||||
|
</> |
||||||
|
) |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
export interface DTOTraficoSolicitudReapertura{ |
||||||
|
id: number, |
||||||
|
idTrafico: number, |
||||||
|
idUsuarioSolicita: number, |
||||||
|
usuarioSolicita: string, |
||||||
|
motivoSolicita: string, |
||||||
|
fechaSolicita: string, |
||||||
|
estado: number |
||||||
|
} |
Loading…
Reference in new issue