Se modifica codigo en el reporte de consultas de Amazon para acepte guardar nuevo campo

alfonso 9 months ago
parent a89472eb7d
commit d501a216d0
  1. 30
      src/Components/Clientes/Amazon/Catalogos/CatConceptosConsulta.tsx
  2. 1
      src/Components/Clientes/Amazon/DTO/DTO2096DataTraficoConsulta.ts
  3. 35
      src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTrafico.tsx
  4. 101
      src/Components/Clientes/Amazon/Reportes/ConsultaTrafico/RptConsultaTraficoDetalle.tsx

@ -2,16 +2,9 @@ import React, { FC, useEffect, useState } from 'react'
import ITabulador from '../../../../Interfaces/Catalogos/ITabulador' import ITabulador from '../../../../Interfaces/Catalogos/ITabulador'
import ITabuladorConceptos from '../../../../Interfaces/Catalogos/ITabuladorConceptos' import ITabuladorConceptos from '../../../../Interfaces/Catalogos/ITabuladorConceptos'
import DTOConceptos from '../../../../DTO/Utils/DTOConceptos'
import CTabDataService from '../../../../Services/Corresponsalias/Corresponsales.Tabuladores.Services' import CTabDataService from '../../../../Services/Corresponsalias/Corresponsales.Tabuladores.Services'
//import CTabDetDataService from '../../../../Services/Corresponsalias/Corresponsales.Tabuladores.Detalle.Sevices'
import AmazonSrvDataService from '../Services/Amazon.Services' import AmazonSrvDataService from '../Services/Amazon.Services'
import ClientesDataService from '../../../../Services/Catalogos/Clientes.Services'
import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' import { MsgInformativo } from '../../../Utils/Toast/msgInformativo'
import { ControlledInput } from '../../../Utils/ControlledInput/ControlledInput'
import DataTable from 'react-data-table-component' import DataTable from 'react-data-table-component'
import { import {
Alert, Alert,
@ -28,14 +21,11 @@ import { IconContext } from 'react-icons'
import 'react-data-table-component-extensions/dist/index.css' import 'react-data-table-component-extensions/dist/index.css'
import { import {
BsCheckCircleFill, BsCheckCircleFill,
BsPlusSquareFill,
BsXCircleFill BsXCircleFill
} from 'react-icons/bs' } from 'react-icons/bs'
import IClientes from '../../../../Interfaces/Catalogos/IClientes' import { FaEraser } from 'react-icons/fa'
import { FcTimeline } from 'react-icons/fc'
import { FaEraser, FaTimesCircle } from 'react-icons/fa'
import ICat2096CatConceptosConsulta from '../Interfaces/I2096CatConceptosConsulta' import ICat2096CatConceptosConsulta from '../Interfaces/I2096CatConceptosConsulta'
import { populateCatConcetosConsultas, updateCatConcetosConsulta } from '../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta' import { populateCatConcetosConsultas } from '../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta'
import { useDispatch } from 'react-redux' import { useDispatch } from 'react-redux'
export interface ICatConceptosConsultaProps {} export interface ICatConceptosConsultaProps {}
@ -50,10 +40,10 @@ export default function CatConceptosConsulta(
const dispatch = useDispatch() const dispatch = useDispatch()
const [Tabulador, setTabulador] = useState(0) const [Tabulador, setTabulador] = useState(0)
const [Id, setId] = useState(0) const [Id, setId] = useState(0)
const [Concepto, setConcepto] = useState(0) /* const [Concepto, setConcepto] = useState(0) */
const [Cliente, setCliente] = useState(0) const [Cliente, setCliente] = useState(0)
const [Activo, setActivo] = useState(0) const [Activo, setActivo] = useState(0)
const [Clientes, setClientes] = useState<Array<IClientes>>() /* const [Clientes, setClientes] = useState<Array<IClientes>>() */
const [Siglas, setSiglas] = useState('') const [Siglas, setSiglas] = useState('')
const [ShortDescription, setShortDescription] = useState('') const [ShortDescription, setShortDescription] = useState('')
const [SpanishDescription, setSpanishDescription] = useState('') const [SpanishDescription, setSpanishDescription] = useState('')
@ -151,7 +141,7 @@ export default function CatConceptosConsulta(
}) })
} }
const loadCatalog = () => { const loadCatalogoConceptosConsulta = () => {
AmazonSrvDataService.CatConceptosConsultaGET() AmazonSrvDataService.CatConceptosConsultaGET()
.then((response) => { .then((response) => {
dispatch(populateCatConcetosConsultas(response.data)) dispatch(populateCatConcetosConsultas(response.data))
@ -166,7 +156,7 @@ export default function CatConceptosConsulta(
} }
useEffect(() => { useEffect(() => {
loadCatalog() loadCatalogoConceptosConsulta()
}, []) }, [])
useEffect(() => { useEffect(() => {
@ -213,7 +203,7 @@ export default function CatConceptosConsulta(
AmazonSrvDataService.CatConceptosConsultaAppend(data) AmazonSrvDataService.CatConceptosConsultaAppend(data)
.then((response) => { .then((response) => {
if (response.status === 200) { if (response.status === 200) {
loadCatalog() loadCatalogoConceptosConsulta()
setHeader('Informativo') setHeader('Informativo')
setMsg('La informacion se guardo correctamente') setMsg('La informacion se guardo correctamente')
setShowMsg(true) setShowMsg(true)
@ -280,8 +270,12 @@ export default function CatConceptosConsulta(
paddingLeft: '0px' paddingLeft: '0px'
}} }}
onClick={() => { onClick={() => {
setTabulador(0) setId(0)
setSiglas('') setSiglas('')
setShortDescription('')
setSpanishDescription('')
setSpanishDescriptionWide('')
setActivo(1)
}} }}
> >
<IconContext.Provider <IconContext.Provider

@ -1,6 +1,7 @@
export default interface DTODataTraficoConsulta { export default interface DTODataTraficoConsulta {
id: number, id: number,
swConsulta: boolean, swConsulta: boolean,
conceptoConsulta: number,
grupoRegulatorio: number, grupoRegulatorio: number,
regulacionConsulta: string, regulacionConsulta: string,
comentariosConsulta: string comentariosConsulta: string

@ -28,9 +28,11 @@ import {
populateTraficoConsulta, populateTraficoConsulta,
updateTraficoConsulta updateTraficoConsulta
} from '../../../../../store/features/Clientes/2096/AmazonTraficoConsulta' } from '../../../../../store/features/Clientes/2096/AmazonTraficoConsulta'
import {SiMicrosoftexcel} from 'react-icons/si' import { SiMicrosoftexcel } from 'react-icons/si'
import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio' import I2096CatGrupoRegulatorio from '../../Interfaces/I2096CatGrupoRegulatorio'
import { populateCatConcetosConsultas } from '../../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta'
export interface IRptConsultaTraficoProps {} export interface IRptConsultaTraficoProps {}
export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) { export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
@ -48,7 +50,9 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
const [msg, setMsg] = useState('') const [msg, setMsg] = useState('')
const [Invoices, setInvoices] = useState<number[]>([]) const [Invoices, setInvoices] = useState<number[]>([])
const [Data, setData] = useState<DTO2096TraficoConsultaAmazonHeader[]>([]) const [Data, setData] = useState<DTO2096TraficoConsultaAmazonHeader[]>([])
const [CatGrupoRegulario, setCatGrupoRegulatorio] = useState<I2096CatGrupoRegulatorio[]>([]) const [CatGrupoRegulario, setCatGrupoRegulatorio] = useState<
I2096CatGrupoRegulatorio[]
>([])
const msgColor = 'primary' const msgColor = 'primary'
const loadReport = () => { const loadReport = () => {
@ -71,6 +75,16 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
.catch((e: Error) => { .catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString()) alert('Ocurrio un error' + e.message.toString())
}) })
DSAmazon.CatConceptosConsultaGET()
.then((response) => {
dispatch(populateCatConcetosConsultas(response.data))
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
} }
const downloadExcel = (id: number, Invoice: string) => { const downloadExcel = (id: number, Invoice: string) => {
@ -80,7 +94,7 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
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 + '.xls')
document.body.appendChild(link) document.body.appendChild(link)
link.click() link.click()
} }
@ -235,7 +249,14 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
)} )}
</td> </td>
<td>{MasterData.id}</td> <td>{MasterData.id}</td>
<td onClick={()=>{downloadExcel(MasterData.id, MasterData.invoiceNumber)}}> <td
onClick={() => {
downloadExcel(
MasterData.id,
MasterData.invoiceNumber
)
}}
>
<IconContext.Provider <IconContext.Provider
value={{ color: 'green', size: '20px' }} value={{ color: 'green', size: '20px' }}
> >
@ -494,7 +515,11 @@ export default function RptConsultaTrafico(props: IRptConsultaTraficoProps) {
/* MasterData.estatus <= 1 */ /* MasterData.estatus <= 1 */
1 == 1 1 == 1
} }
Catalogo = {CatGrupoRegulario ? CatGrupoRegulario : []} Catalogo={
CatGrupoRegulario
? CatGrupoRegulario
: []
}
onDataChange={function ( onDataChange={function (
IDMaster: number IDMaster: number
): void { ): void {

@ -37,6 +37,10 @@ export default function RptConsultaTraficoDetalle(
const mInvoices = useSelector( const mInvoices = useSelector(
(state: RootState) => state.AmazonInvoices.Invoice (state: RootState) => state.AmazonInvoices.Invoice
) )
const mConceptosConsulta = useSelector(
(state: RootState) => state.AmazonCatConceptosConsulta.CatConcetosConsulta
)
const [IDConceptoConsulta, setIDConceptoConsulta] = useState(1)
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)
@ -49,6 +53,7 @@ export default function RptConsultaTraficoDetalle(
const [ComentariosConsulta, setComentariosConsulta] = useState( const [ComentariosConsulta, setComentariosConsulta] = useState(
props.detail.comentariosConsulta ? props.detail.comentariosConsulta : '' props.detail.comentariosConsulta ? props.detail.comentariosConsulta : ''
) )
const [ConceptoConsulta, setConceptoConsulta] = useState('')
const [ShowModalEdit, setShowModalEdit] = useState(false) const [ShowModalEdit, setShowModalEdit] = useState(false)
const [IDGrupoRegulatorio, setIDGrupoRegulatorio] = useState( const [IDGrupoRegulatorio, setIDGrupoRegulatorio] = useState(
props.detail.grupoRegulatorio props.detail.grupoRegulatorio
@ -59,6 +64,7 @@ export default function RptConsultaTraficoDetalle(
const data: DTODataTraficoConsulta = { const data: DTODataTraficoConsulta = {
id: props.detail.id, id: props.detail.id,
swConsulta: EstatusSwith, swConsulta: EstatusSwith,
conceptoConsulta: IDConceptoConsulta,
grupoRegulatorio: IDGrupoRegulatorio, grupoRegulatorio: IDGrupoRegulatorio,
regulacionConsulta: RegulacionConsulta, regulacionConsulta: RegulacionConsulta,
comentariosConsulta: ComentariosConsulta comentariosConsulta: ComentariosConsulta
@ -82,6 +88,11 @@ export default function RptConsultaTraficoDetalle(
} }
}, [EstatusSwith, UserChanged]) }, [EstatusSwith, UserChanged])
useEffect(() => {
let selected = mConceptosConsulta.filter((a)=>{if(a.id==IDConceptoConsulta){return a}});
if (selected.length) setConceptoConsulta(selected[0].spanishDescription)
}, [IDConceptoConsulta])
return ( return (
<> <>
<tr> <tr>
@ -245,61 +256,7 @@ export default function RptConsultaTraficoDetalle(
}} }}
/> />
</td> </td>
{/* <td </tr>
style={{
visibility:
CumplimientoNormativo.length === 0 ? 'hidden' : 'visible'
}}
>
<OverlayTrigger
placement="bottom"
overlay={
<Tooltip id="button-tooltip-2">{CumplimientoNormativo}</Tooltip>
}
>
{({ ref, ...triggerHandler }) => (
<Button variant="light" {...triggerHandler}>
<IconContext.Provider
value={{
color: 'blue',
size: '25px'
}}
>
<AiOutlineFileSearch />
</IconContext.Provider>
<span className="ms-1"></span>
</Button>
)}
</OverlayTrigger>
</td>
<td
style={{
visibility:
CumplimientoNormativo.length === 0 ? 'hidden' : 'visible'
}}
>
<OverlayTrigger
placement="bottom"
overlay={<Tooltip id="button-tooltip-2">{Comentarios}</Tooltip>}
>
{({ ref, ...triggerHandler }) => (
<Button variant="light" {...triggerHandler}>
<IconContext.Provider
value={{
color: 'green',
size: '25px'
}}
>
<BsFillChatRightTextFill />
</IconContext.Provider>
<span className="ms-1"></span>
</Button>
)}
</OverlayTrigger>
</td>
<td>
</td> */}
</tr>
<Modal <Modal
show={ShowModal} show={ShowModal}
onHide={() => { onHide={() => {
@ -309,10 +266,10 @@ 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: '230px' }}> <div style={{ height: '320px' }}>
<Row style={{ paddingTop: '15px' }}> <Row style={{ paddingTop: '15px' }}>
<Col xs={3}>Grupo Regulatorio</Col> <Col xs={3}>Grupo Regulatorio</Col>
<Col xs={8}> <Col xs={8}>
@ -334,6 +291,36 @@ export default function RptConsultaTraficoDetalle(
</Col> </Col>
<Col>&nbsp;</Col> <Col>&nbsp;</Col>
</Row> </Row>
<Row style={{ paddingTop: '15px' }}>
<Col></Col>
<Col xs={2}>
<Form.Control
as="select"
defaultValue={IDConceptoConsulta}
onChange={(e) => {
setIDConceptoConsulta(parseInt(e.target.value))
}}
className="form-select form-select-sm"
>
{mConceptosConsulta
? mConceptosConsulta.map((c) => {
return <option value={c.id}>{c.siglas}</option>
})
: null}
</Form.Control>
</Col>
<Col xs={8}>
<Form.Control
as="textarea"
id="ConceptoConsulta"
size="sm"
disabled={true}
style={{fontSize:'11px', height:'80px'}}
value={ConceptoConsulta}
/>
</Col>
<Col>&nbsp;</Col>
</Row>
<Row style={{ paddingTop: '15px' }}> <Row style={{ paddingTop: '15px' }}>
<Col xs={3}>Regulacion</Col> <Col xs={3}>Regulacion</Col>
<Col xs={8}> <Col xs={8}>

Loading…
Cancel
Save