|
|
@ -1,6 +1,7 @@ |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { |
|
|
|
import { |
|
|
|
Alert, |
|
|
|
Alert, |
|
|
|
|
|
|
|
Badge, |
|
|
|
Button, |
|
|
|
Button, |
|
|
|
Card, |
|
|
|
Card, |
|
|
|
Col, |
|
|
|
Col, |
|
|
@ -32,10 +33,14 @@ import { SiMicrosoftexcel } from 'react-icons/si' |
|
|
|
import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio' |
|
|
|
import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio' |
|
|
|
|
|
|
|
|
|
|
|
import { populateCatConcetosConsultas } from '../../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta' |
|
|
|
import { populateCatConcetosConsultas } from '../../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta' |
|
|
|
|
|
|
|
import { get } from 'cypress/types/jquery' |
|
|
|
|
|
|
|
|
|
|
|
export interface IRptConsultaTraficoProps {} |
|
|
|
export interface IRptConsultaTraficoProps {} |
|
|
|
|
|
|
|
|
|
|
|
export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
|
|
|
|
const mConceptosConsulta = useSelector( |
|
|
|
|
|
|
|
(state: RootState) => state.AmazonCatConceptosConsulta.CatConcetosConsulta |
|
|
|
|
|
|
|
) |
|
|
|
const dispatch = useDispatch() |
|
|
|
const dispatch = useDispatch() |
|
|
|
const mInvoices = useSelector( |
|
|
|
const mInvoices = useSelector( |
|
|
|
(state: RootState) => state.AmazonTraficoConsulta.Consulta |
|
|
|
(state: RootState) => state.AmazonTraficoConsulta.Consulta |
|
|
@ -45,6 +50,7 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
const [show, setShowMsg] = useState(false) |
|
|
|
const [show, setShowMsg] = useState(false) |
|
|
|
const [ShowModal, setShowModal] = useState(false) |
|
|
|
const [ShowModal, setShowModal] = useState(false) |
|
|
|
const [ShowModalUnlink, setShowModalUnlink] = useState(false) |
|
|
|
const [ShowModalUnlink, setShowModalUnlink] = useState(false) |
|
|
|
|
|
|
|
const [ShowModalArchivos, setShowModalArchivos] = useState(false) |
|
|
|
const [WaitingDialog, setWaitingDialog] = useState(false) |
|
|
|
const [WaitingDialog, setWaitingDialog] = useState(false) |
|
|
|
const [WaitingMessage, setWaitingMessage] = useState('') |
|
|
|
const [WaitingMessage, setWaitingMessage] = useState('') |
|
|
|
const [msg, setMsg] = useState('') |
|
|
|
const [msg, setMsg] = useState('') |
|
|
@ -53,6 +59,11 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
const [CatGrupoRegulario, setCatGrupoRegulatorio] = useState< |
|
|
|
const [CatGrupoRegulario, setCatGrupoRegulatorio] = useState< |
|
|
|
I2096CatGrupoRegulatorio[] |
|
|
|
I2096CatGrupoRegulatorio[] |
|
|
|
>([]) |
|
|
|
>([]) |
|
|
|
|
|
|
|
const [InvoiceConceptosConsulta, setInvoiceConceptosConsulta] = useState< |
|
|
|
|
|
|
|
number[] |
|
|
|
|
|
|
|
>([]) |
|
|
|
|
|
|
|
const [IDInvoice, setIDInvoice] = useState(0) |
|
|
|
|
|
|
|
const [InvoiceNumber, setInvoiceNumber] = useState('') |
|
|
|
const msgColor = 'primary' |
|
|
|
const msgColor = 'primary' |
|
|
|
|
|
|
|
|
|
|
|
const loadReport = () => { |
|
|
|
const loadReport = () => { |
|
|
@ -87,14 +98,25 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const downloadExcel = (id: number, Invoice: string) => { |
|
|
|
const downloadExcel = ( |
|
|
|
DSAmazon.TraficoConsultasAmazonGenerateExcel(id) |
|
|
|
idinvoice: number, |
|
|
|
|
|
|
|
Invoice: string, |
|
|
|
|
|
|
|
idconceptoconsulta: number |
|
|
|
|
|
|
|
) => { |
|
|
|
|
|
|
|
DSAmazon.TraficoConsultasAmazonGenerateExcel(idinvoice, idconceptoconsulta) |
|
|
|
.then((response: any) => { |
|
|
|
.then((response: any) => { |
|
|
|
if (response.status === 200) { |
|
|
|
if (response.status === 200) { |
|
|
|
const url = window.URL.createObjectURL(new Blob([response.data])) |
|
|
|
const url = window.URL.createObjectURL(new Blob([response.data])) |
|
|
|
const link = document.createElement('a') |
|
|
|
const link = document.createElement('a') |
|
|
|
link.href = url |
|
|
|
link.href = url |
|
|
|
link.setAttribute('download', 'Broker File ' + Invoice + '.xls') |
|
|
|
link.setAttribute( |
|
|
|
|
|
|
|
'download', |
|
|
|
|
|
|
|
'Broker File ' + |
|
|
|
|
|
|
|
Invoice + |
|
|
|
|
|
|
|
'_' + |
|
|
|
|
|
|
|
getConcept(idconceptoconsulta) + |
|
|
|
|
|
|
|
'.xls' |
|
|
|
|
|
|
|
) |
|
|
|
document.body.appendChild(link) |
|
|
|
document.body.appendChild(link) |
|
|
|
link.click() |
|
|
|
link.click() |
|
|
|
} |
|
|
|
} |
|
|
@ -162,6 +184,21 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
return Cadena.slice(Cadena.indexOf(char1) + 1, Cadena.lastIndexOf(char2)) |
|
|
|
return Cadena.slice(Cadena.indexOf(char1) + 1, Cadena.lastIndexOf(char2)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const FilterExistingConceptosInInvoice = (id: number) => { |
|
|
|
|
|
|
|
DSAmazon.FiltraInvoiceConceptosConsultaGet(id) |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
setInvoiceConceptosConsulta(response.data) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
|
|
|
alert('Ocurrio un error' + e.message.toString()) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getConcept = (id: number) => { |
|
|
|
|
|
|
|
let concepto = mConceptosConsulta.find((concepto) => concepto.id === id) |
|
|
|
|
|
|
|
return concepto?.siglas |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<Card> |
|
|
|
<Card> |
|
|
@ -251,10 +288,10 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
<td>{MasterData.id}</td> |
|
|
|
<td>{MasterData.id}</td> |
|
|
|
<td |
|
|
|
<td |
|
|
|
onClick={() => { |
|
|
|
onClick={() => { |
|
|
|
downloadExcel( |
|
|
|
setIDInvoice(MasterData.id) |
|
|
|
MasterData.id, |
|
|
|
setInvoiceNumber(MasterData.invoiceNumber) |
|
|
|
MasterData.invoiceNumber |
|
|
|
setShowModalArchivos(true) |
|
|
|
) |
|
|
|
FilterExistingConceptosInInvoice(MasterData.id) |
|
|
|
}} |
|
|
|
}} |
|
|
|
> |
|
|
|
> |
|
|
|
<IconContext.Provider |
|
|
|
<IconContext.Provider |
|
|
@ -567,6 +604,62 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { |
|
|
|
<Modal.Footer></Modal.Footer> |
|
|
|
<Modal.Footer></Modal.Footer> |
|
|
|
</Modal> |
|
|
|
</Modal> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Modal |
|
|
|
|
|
|
|
show={ShowModalArchivos} |
|
|
|
|
|
|
|
onHide={() => { |
|
|
|
|
|
|
|
setShowModal(false) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
size={'sm'} |
|
|
|
|
|
|
|
dialogClassName={'modal-50w'} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<Modal.Header> |
|
|
|
|
|
|
|
<Modal.Title className="primary"> |
|
|
|
|
|
|
|
<Alert variant="primary" style={{ textAlign: 'center' }}> |
|
|
|
|
|
|
|
<h4>Descargue los siguientes archivos de consulta para Amazon</h4> |
|
|
|
|
|
|
|
</Alert> |
|
|
|
|
|
|
|
</Modal.Title> |
|
|
|
|
|
|
|
</Modal.Header> |
|
|
|
|
|
|
|
<Modal.Body> |
|
|
|
|
|
|
|
<div style={{ height: '100px' }}> |
|
|
|
|
|
|
|
<Row style={{ paddingTop: '0px' }}> |
|
|
|
|
|
|
|
{InvoiceConceptosConsulta |
|
|
|
|
|
|
|
? InvoiceConceptosConsulta.map((id) => { |
|
|
|
|
|
|
|
return ( |
|
|
|
|
|
|
|
<Col xs={2} style={{ textAlign: 'center' }}> |
|
|
|
|
|
|
|
<h5> |
|
|
|
|
|
|
|
<Badge |
|
|
|
|
|
|
|
bg="primary" |
|
|
|
|
|
|
|
style={{ cursor: 'pointer' }} |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
downloadExcel(IDInvoice, InvoiceNumber, id) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{getConcept(id)} |
|
|
|
|
|
|
|
</Badge> |
|
|
|
|
|
|
|
</h5> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
: null} |
|
|
|
|
|
|
|
</Row> |
|
|
|
|
|
|
|
<Row style={{ paddingTop: '15px' }}> |
|
|
|
|
|
|
|
<Col xs={10} style={{ textAlign: 'center' }}></Col> |
|
|
|
|
|
|
|
<Col xs={2} style={{ textAlign: 'center' }}> |
|
|
|
|
|
|
|
<Button |
|
|
|
|
|
|
|
variant="secondary" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
setShowModalArchivos(false) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
Cerrar |
|
|
|
|
|
|
|
</Button> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}></Col> |
|
|
|
|
|
|
|
</Row> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</Modal.Body> |
|
|
|
|
|
|
|
</Modal> |
|
|
|
|
|
|
|
|
|
|
|
<MsgInformativo |
|
|
|
<MsgInformativo |
|
|
|
show={show} |
|
|
|
show={show} |
|
|
|
msg={msg} |
|
|
|
msg={msg} |
|
|
|