Finished adding exception code to amazon project

alfonso 9 months ago
parent d501a216d0
commit 6c8a7a2eba
  1. 107
      src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx
  2. 24
      src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx
  3. 7
      src/Components/Clientes/Amazon/Services/Amazon.Services.ts

@ -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)
}}
>
&nbsp;&nbsp;Cerrar&nbsp;&nbsp;
</Button>
</Col>
<Col xs={6} style={{ textAlign: 'center' }}></Col>
</Row>
</div>
</Modal.Body>
</Modal>
<MsgInformativo <MsgInformativo
show={show} show={show}
msg={msg} msg={msg}

@ -40,7 +40,7 @@ export default function RptConsultaTraficoDetalle(
const mConceptosConsulta = useSelector( const mConceptosConsulta = useSelector(
(state: RootState) => state.AmazonCatConceptosConsulta.CatConcetosConsulta (state: RootState) => state.AmazonCatConceptosConsulta.CatConcetosConsulta
) )
const [IDConceptoConsulta, setIDConceptoConsulta] = useState(1) const [IDConceptoConsulta, setIDConceptoConsulta] = useState(0)
const [ShowModal, setShowModal] = useState(false) const [ShowModal, setShowModal] = useState(false)
const [EstatusSwith, setEstatusSwitch] = useState(props.detail.swConsulta) const [EstatusSwith, setEstatusSwitch] = useState(props.detail.swConsulta)
const [UserChanged, setUserChanged] = useState(false) const [UserChanged, setUserChanged] = useState(false)
@ -89,8 +89,13 @@ export default function RptConsultaTraficoDetalle(
}, [EstatusSwith, UserChanged]) }, [EstatusSwith, UserChanged])
useEffect(() => { useEffect(() => {
let selected = mConceptosConsulta.filter((a)=>{if(a.id==IDConceptoConsulta){return a}}); let selected = mConceptosConsulta.filter((a) => {
if (a.id == IDConceptoConsulta) {
return a
}
})
if (selected.length) setConceptoConsulta(selected[0].spanishDescription) if (selected.length) setConceptoConsulta(selected[0].spanishDescription)
if (IDConceptoConsulta === 0) setConceptoConsulta('')
}, [IDConceptoConsulta]) }, [IDConceptoConsulta])
return ( return (
@ -257,6 +262,7 @@ export default function RptConsultaTraficoDetalle(
/> />
</td> </td>
</tr> </tr>
<Modal <Modal
show={ShowModal} show={ShowModal}
onHide={() => { onHide={() => {
@ -266,7 +272,9 @@ export default function RptConsultaTraficoDetalle(
dialogClassName={'modal-50w'} dialogClassName={'modal-50w'}
> >
<Modal.Header> <Modal.Header>
<Modal.Title className="primary">Consulta Amazon {/* {IDGrupoRegulatorio} */}</Modal.Title> <Modal.Title className="primary">
Consulta Amazon {/* {IDGrupoRegulatorio} */}
</Modal.Title>
</Modal.Header> </Modal.Header>
<Modal.Body> <Modal.Body>
<div style={{ height: '320px' }}> <div style={{ height: '320px' }}>
@ -302,6 +310,7 @@ export default function RptConsultaTraficoDetalle(
}} }}
className="form-select form-select-sm" className="form-select form-select-sm"
> >
<option value="0">-SELECCIONE-</option>
{mConceptosConsulta {mConceptosConsulta
? mConceptosConsulta.map((c) => { ? mConceptosConsulta.map((c) => {
return <option value={c.id}>{c.siglas}</option> return <option value={c.id}>{c.siglas}</option>
@ -315,7 +324,7 @@ export default function RptConsultaTraficoDetalle(
id="ConceptoConsulta" id="ConceptoConsulta"
size="sm" size="sm"
disabled={true} disabled={true}
style={{fontSize:'11px', height:'80px'}} style={{ fontSize: '11px', height: '80px' }}
value={ConceptoConsulta} value={ConceptoConsulta}
/> />
</Col> </Col>
@ -362,6 +371,12 @@ export default function RptConsultaTraficoDetalle(
<Col xs={6} style={{ textAlign: 'center' }}> <Col xs={6} style={{ textAlign: 'center' }}>
<Button <Button
variant="danger" variant="danger"
style={{
visibility:
IDConceptoConsulta > 0 && RegulacionConsulta.length
? 'visible'
: 'hidden'
}}
onClick={() => { onClick={() => {
saveData() saveData()
}} }}
@ -373,6 +388,7 @@ export default function RptConsultaTraficoDetalle(
</div> </div>
</Modal.Body> </Modal.Body>
</Modal> </Modal>
<MsgInformativo <MsgInformativo
show={show} show={show}
msg={msg} msg={msg}

@ -214,8 +214,8 @@ class AmazonDataService {
TraficoConsultasAmazonGenerateExcel(id: number) { TraficoConsultasAmazonGenerateExcel(idinvoice: number, idconceptoconsulta: number) {
return http.get<ArrayBuffer>(`/AmazonInvoice/TraficoConsultaAmazonGenerateExcel?id=${id}`, {responseType: 'arraybuffer'}) return http.get<ArrayBuffer>(`/AmazonInvoice/TraficoConsultaAmazonGenerateExcel?idinvoice=${idinvoice}&idconceptoconsulta=${idconceptoconsulta}`, {responseType: 'arraybuffer'})
.then(function (response) { .then(function (response) {
return response return response
}) })
@ -293,5 +293,8 @@ class AmazonDataService {
CatConceptosConsultaAppend(data: ICat2096CatConceptosConsulta) { CatConceptosConsultaAppend(data: ICat2096CatConceptosConsulta) {
return http.post<ICat2096CatConceptosConsulta>(`/AmazonInvoice/Catalogos/CatConceptosConsultaAppend`, data) return http.post<ICat2096CatConceptosConsulta>(`/AmazonInvoice/Catalogos/CatConceptosConsultaAppend`, data)
} }
FiltraInvoiceConceptosConsultaGet(id: number) {
return http.get<number[]>(`/AmazonInvoice/Filtra/InvoiceConceptosConsultaGET?id=${id}`)
}
} }
export default new AmazonDataService() export default new AmazonDataService()

Loading…
Cancel
Save