Se le sacan los bugs al reporte de Amazon

AmazonRelease1.1
unknown 2 years ago
parent e1596288e9
commit c60d53e638
  1. 82
      src/Components/Clientes/Amazon/Components/ComboSelect/ComboDescripcion.tsx
  2. 61
      src/Components/Clientes/Amazon/Components/ComboSelect/ComboFraccion.tsx
  3. 1
      src/Components/Clientes/Amazon/DTO/DTO2096Descripcion.ts
  4. 1
      src/Components/Clientes/Amazon/DTO/DTO2096Fraccion.ts
  5. 2
      src/Components/Clientes/Amazon/Interfaces/I2096Detail.ts
  6. 61
      src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx
  7. 34
      src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx

@ -20,6 +20,7 @@ export interface IComboDescripcionProps {
IDDetail: number IDDetail: number
DescripcionOriginal: string DescripcionOriginal: string
Habilitado: boolean Habilitado: boolean
ConfirmaDescripcion: number
} }
export function ComboDescripcion(props: IComboDescripcionProps) { export function ComboDescripcion(props: IComboDescripcionProps) {
@ -27,7 +28,8 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
const mInvoices = useSelector( const mInvoices = useSelector(
(state: RootState) => state.AmazonInvoices.Invoice (state: RootState) => state.AmazonInvoices.Invoice
) )
const [Validacion, setValidacion] = useState(0) const [Validacion, setValidacion] = useState(props.ConfirmaDescripcion)
const [UserChanged, setUserChanged] = useState(false)
const [showModal, setShowModal] = useState(false) const [showModal, setShowModal] = useState(false)
const [Descripcion, setDescripcion] = useState(props.DescripcionOriginal) const [Descripcion, setDescripcion] = useState(props.DescripcionOriginal)
const [header, setHeader] = useState('') const [header, setHeader] = useState('')
@ -37,43 +39,22 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
const changeValidacion = (e: number) => { const changeValidacion = (e: number) => {
setValidacion(e) setValidacion(e)
/* if (e === 2) { setUserChanged(true)
setDescripcion('')
setShowModal(true)
} else if (e === 1) {
setDescripcion(props.DescripcionOriginal)
const data: DTO2096Descripcion = {
id: props.IDDetail,
descripcion: Descripcion
}
setDescripcion(props.DescripcionOriginal)
DSAmazon.SetDescripcion(data)
.then((response) => {
UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true)
return
})
.catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString())
})
} */
} }
const saveDescripcion = () => { const saveDescripcion = () => {
const data: DTO2096Descripcion = { const data: DTO2096Descripcion = {
id: props.IDDetail, id: props.IDDetail,
descripcion: Descripcion descripcion: Descripcion,
confirmaDescripcion: Validacion
} }
DSAmazon.SetDescripcion(data) DSAmazon.SetDescripcion(data)
.then((response) => { .then((response) => {
UpdateInfo() UpdateInfo()
setShowModal(false) setShowModal(false)
setHeader('Confirmacion') /* setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente') setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true) setShowMsg(true) */
return return
}) })
.catch((e: Error) => { .catch((e: Error) => {
@ -132,30 +113,33 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
} }
useEffect(() => { useEffect(() => {
if (Validacion === 2) { if (UserChanged) {
setDescripcion('') if (Validacion === 2) {
setShowModal(true) setDescripcion('')
} else if (Validacion === 1) { setShowModal(true)
setDescripcion(props.DescripcionOriginal) } else if (Validacion === 1) {
const data: DTO2096Descripcion = { setDescripcion(props.DescripcionOriginal)
id: props.IDDetail, const data: DTO2096Descripcion = {
descripcion: Descripcion id: props.IDDetail,
} descripcion: Descripcion,
setDescripcion(props.DescripcionOriginal) confirmaDescripcion: Validacion
DSAmazon.SetDescripcion(data) }
.then((response) => { setDescripcion(props.DescripcionOriginal)
UpdateInfo() DSAmazon.SetDescripcion(data)
setShowModal(false) .then((response) => {
setHeader('Confirmacion') UpdateInfo()
setShowModal(false)
/* setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente') setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true) setShowMsg(true) */
return return
}) })
.catch((e: Error) => { .catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString()) alert('Ocurrio un error' + e.message.toString())
}) })
}
} }
}, [Validacion]) }, [Validacion, UserChanged])
return ( return (
<div> <div>

@ -1,7 +1,6 @@
import { useCallback, useEffect, useState } from 'react' import { useCallback, useEffect, useState } from 'react'
import { Button, Col, Form, Modal, Row } from 'react-bootstrap' import { Button, Col, Form, Modal, Row } from 'react-bootstrap'
import * as CurrencyFormat from 'react-currency-format' import * as CurrencyFormat from 'react-currency-format'
/* import { PatternFormat } from 'react-number-format'; */
import { MsgInformativo } from '../../../../Utils/Toast/msgInformativo' import { MsgInformativo } from '../../../../Utils/Toast/msgInformativo'
import { RootState } from '../../../../../store/store' import { RootState } from '../../../../../store/store'
import { import {
@ -15,7 +14,6 @@ import { useDispatch, useSelector } from 'react-redux'
import DTO2096Fraccion from '../../DTO/DTO2096Fraccion' import DTO2096Fraccion from '../../DTO/DTO2096Fraccion'
import DSAmazon from '../../Services/Amazon.Services' import DSAmazon from '../../Services/Amazon.Services'
import I2096Headers from '../../Interfaces/I2096Header' import I2096Headers from '../../Interfaces/I2096Header'
import { max } from 'cypress/types/lodash'
import I2096Detail from '../../Interfaces/I2096Detail' import I2096Detail from '../../Interfaces/I2096Detail'
export interface IComboFraccionProps { export interface IComboFraccionProps {
@ -23,7 +21,7 @@ export interface IComboFraccionProps {
IDDetail: number IDDetail: number
FraccionOriginal: string FraccionOriginal: string
Habilitado: boolean Habilitado: boolean
parentFunction: Function ConfirmaFraccion: number
} }
export function ComboFraccion(props: IComboFraccionProps) { export function ComboFraccion(props: IComboFraccionProps) {
@ -31,7 +29,8 @@ export function ComboFraccion(props: IComboFraccionProps) {
const mInvoices = useSelector( const mInvoices = useSelector(
(state: RootState) => state.AmazonInvoices.Invoice (state: RootState) => state.AmazonInvoices.Invoice
) )
const [Validacion, setValidacion] = useState(0) const [Validacion, setValidacion] = useState(props.ConfirmaFraccion)
const [UserChanged, setUserChanged] = useState(false)
const [showModal, setShowModal] = useState(false) const [showModal, setShowModal] = useState(false)
const [Fraccion, setFraccion] = useState(props.FraccionOriginal) const [Fraccion, setFraccion] = useState(props.FraccionOriginal)
const [header, setHeader] = useState('') const [header, setHeader] = useState('')
@ -73,7 +72,7 @@ export function ComboFraccion(props: IComboFraccionProps) {
dispatch(updateInvoice(updatedInvoice)) dispatch(updateInvoice(updatedInvoice))
} }
const UpdateInfo = () => { const UpdateInfo = (newData: I2096Detail) => {
const Invoice = mInvoices const Invoice = mInvoices
.filter((el) => el.id === props.IDInvoice) .filter((el) => el.id === props.IDInvoice)
.map((el) => { .map((el) => {
@ -83,7 +82,8 @@ export function ComboFraccion(props: IComboFraccionProps) {
if (el.id === props.IDDetail) { if (el.id === props.IDDetail) {
return { return {
...el, ...el,
fraccionGEMCO: Fraccion fraccionGEMCO: Fraccion,
autorizado: newData.autorizado
} }
} }
return el return el
@ -93,31 +93,30 @@ export function ComboFraccion(props: IComboFraccionProps) {
const changeValidacion = (e: number) => { const changeValidacion = (e: number) => {
setValidacion(e) setValidacion(e)
setUserChanged(true)
} }
useEffect(() => { useEffect(() => {
if (Validacion === 2) { if (UserChanged) {
setShowModal(true) if (Validacion === 2) {
} else if (Validacion === 1) { setShowModal(true)
const data: DTO2096Fraccion = { } else if (Validacion === 1) {
id: props.IDDetail, const data: DTO2096Fraccion = {
fraccion: Fraccion id: props.IDDetail,
fraccion: Fraccion,
confirmaFraccion: Validacion
}
DSAmazon.SetFraccion(data)
.then((response) => {
UpdateInfo(response.data)
return
})
.catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString())
})
} }
DSAmazon.SetFraccion(data)
.then((response) => {
UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true)
//forceUpdate()
return
})
.catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString())
})
} }
}, [Validacion]) }, [Validacion, UserChanged])
const saveFraccion = () => { const saveFraccion = () => {
DSAmazon.GetValidaFraccion(Fraccion) DSAmazon.GetValidaFraccion(Fraccion)
@ -125,15 +124,14 @@ export function ComboFraccion(props: IComboFraccionProps) {
if (response.data.respuesta === 'Si') { if (response.data.respuesta === 'Si') {
const data: DTO2096Fraccion = { const data: DTO2096Fraccion = {
id: props.IDDetail, id: props.IDDetail,
fraccion: Fraccion fraccion: Fraccion,
confirmaFraccion: Validacion
} }
DSAmazon.SetFraccion(data) DSAmazon.SetFraccion(data)
.then((response) => { .then((response) => {
UpdateInfo() console.log('respuesta de set fraccion:'+JSON.stringify(response.data))
UpdateInfo(response.data)
setShowModal(false) setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true)
return return
}) })
.catch((e: Error) => { .catch((e: Error) => {
@ -154,7 +152,6 @@ export function ComboFraccion(props: IComboFraccionProps) {
return ( return (
<div> <div>
<Form.Control <Form.Control
disabled={!props.Habilitado}
as="select" as="select"
className="form-select form-select-sm" className="form-select form-select-sm"
onChange={(e) => changeValidacion(parseInt(e.target.value))} onChange={(e) => changeValidacion(parseInt(e.target.value))}

@ -1,4 +1,5 @@
export default interface DTO2096Descripcion { export default interface DTO2096Descripcion {
id: number, id: number,
descripcion: string descripcion: string
confirmaDescripcion: number
} }

@ -1,4 +1,5 @@
export default interface DTO2096Fraccion { export default interface DTO2096Fraccion {
id: number, id: number,
fraccion: string fraccion: string
confirmaFraccion: number
} }

@ -10,7 +10,9 @@ export default interface I2096Detail {
pedimentoDescription: string pedimentoDescription: string
destinationHTSCode: string destinationHTSCode: string
validaFraccionOriginal: number validaFraccionOriginal: number
confirmaFraccion: number
fraccionGEMCO: string fraccionGEMCO: string
confirmaDescripcion: number
descripcionGEMCO: string descripcionGEMCO: string
sourceHTSCode: string sourceHTSCode: string
eccn: string eccn: string

@ -95,21 +95,6 @@ export default function RtpAmazonPendingInvoices(
dispatch(updateInvoice(Obj)) dispatch(updateInvoice(Obj))
} }
const filtraReporte = (e: any) => {
/* setFiltro(e.target.value)
if (e.target.value.length > 0) {
setData(
Data.filter(function (row) {
return row.invoiceNumber
.toLowerCase()
.includes(e.target.value.toLocaleLowerCase())
})
)
} else {
setData(DataOriginal)
} */
}
const openLink = (item: string) => { const openLink = (item: string) => {
window.open('https://www.amazon.com/dp/' + item) window.open('https://www.amazon.com/dp/' + item)
} }
@ -123,52 +108,6 @@ export default function RtpAmazonPendingInvoices(
<Card.Title>Amazon: facturas pendientes</Card.Title> <Card.Title>Amazon: facturas pendientes</Card.Title>
</Col> </Col>
<Col xs={4}></Col> <Col xs={4}></Col>
{/* <Col xs={1} style={{textAlign:'right'}}>Inicio</Col>
<Col xs={1}><Form.Control
defaultValue={Inicio}
type="date"
name="Inicio"
placeholder="Inicio"
title="Inicio"
alt="Inicio"
data-date-format="YYYY-mm-dd"
onChange={(e) => setInicio(e.target.value)}
size="sm"
/></Col>
<Col xs={1} style={{textAlign:'right'}}>Hasta</Col>
<Col xs={1}><Form.Control
defaultValue={Fin}
type="date"
name="Inicio"
placeholder="Inicio"
title="Inicio"
alt="Inicio"
data-date-format="YYYY-mm-dd"
onChange={(e) => setFin(e.target.value)}
size="sm"
/></Col> */}
{/* <Col xs={1}>
<Button
variant="primary"
size="sm"
onClick={() => {
loadReport()
}}
>
<BsSearch />
Buscar
</Button>
</Col>
<Col xs={4}>
<Form.Control
type="text"
size="sm"
placeholder="Search..."
onChange={(e) => {
filtraReporte(e)
}}
/>
</Col> */}
</Row> </Row>
</Card.Body> </Card.Body>
</Card> </Card>

@ -52,22 +52,19 @@ export default function RtpAmazonPendingInvoivesDetail(
) )
const [ShowModal, setShowModal] = useState(false) const [ShowModal, setShowModal] = useState(false)
const [EstatusSwith, setEstatusSwitch] = useState(props.detail.autorizado) const [EstatusSwith, setEstatusSwitch] = useState(props.detail.autorizado)
const [UserChanged, setUserChanged] = useState(false)
const [header, setHeader] = useState('') const [header, setHeader] = useState('')
const [show, setShowMsg] = useState(false) const [show, setShowMsg] = useState(false)
const [Show, setShow] = useState(false) const [Show, setShow] = useState(false)
const [msg, setMsg] = useState('') const [msg, setMsg] = useState('')
const [RequerimientoNormativo, setRequerimientoNormativo] = useState('') const [RequerimientoNormativo, setRequerimientoNormativo] = useState(props.detail.requerimientoNormativo ? props.detail.requerimientoNormativo : '')
const [Comentarios, setComentarios] = useState('') const [Comentarios, setComentarios] = useState(props.detail.comentarios ? props.detail.comentarios : 'Clasificacion Incorrecta')
const msgColor = 'primary' const msgColor = 'primary'
const openLink = (item: string) => { const openLink = (item: string) => {
window.open('https://www.amazon.com/dp/' + item) window.open('https://www.amazon.com/dp/' + item)
} }
const target = React.useRef(null); const target = React.useRef(null);
const parentFunction = (fraccion: string) => {
alert('update')
}
const UpdateInfo = (Invoice: I2096Headers, Detail: I2096Detail[]) => { const UpdateInfo = (Invoice: I2096Headers, Detail: I2096Detail[]) => {
const updatedInvoice: I2096Headers = { const updatedInvoice: I2096Headers = {
id: props.IDMaster, id: props.IDMaster,
@ -129,11 +126,11 @@ export default function RtpAmazonPendingInvoivesDetail(
} }
const data: DTO2096ItemAutoriza = { const data: DTO2096ItemAutoriza = {
id: id, id: id,
autorizado: !props.detail.autorizado, autorizado: EstatusSwith,
requerimientoNormativo: RequerimientoNormativo, requerimientoNormativo: RequerimientoNormativo,
comentarios: Comentarios comentarios: Comentarios
} }
console.log(data)
DSAmazon.Set$Autorizado(data) DSAmazon.Set$Autorizado(data)
.then((response) => { .then((response) => {
editArray(id, !props.detail.autorizado) editArray(id, !props.detail.autorizado)
@ -143,8 +140,8 @@ export default function RtpAmazonPendingInvoivesDetail(
} }
useEffect(() => { useEffect(() => {
if (EstatusSwith && !props.detail.fraccionGEMCO) autoriceItem(props.detail.id) if (UserChanged && EstatusSwith && !props.detail.fraccionGEMCO) autoriceItem(props.detail.id)
}, [EstatusSwith]) }, [EstatusSwith, UserChanged])
const popover = ( const popover = (
<Popover id="popover-basic"> <Popover id="popover-basic">
@ -247,8 +244,9 @@ export default function RtpAmazonPendingInvoivesDetail(
IDInvoice={props.IDMaster} IDInvoice={props.IDMaster}
IDDetail={props.detail.id} IDDetail={props.detail.id}
FraccionOriginal={props.detail.destinationHTSCode} FraccionOriginal={props.detail.destinationHTSCode}
parentFunction={parentFunction} ConfirmaFraccion={props.detail.confirmaFraccion}
Habilitado={props.Habilitado} /* parentFunction={parentFunction} */
Habilitado={props.Habilitado}
/> />
</td> </td>
<td <td
@ -283,6 +281,7 @@ export default function RtpAmazonPendingInvoivesDetail(
IDInvoice={props.IDMaster} IDInvoice={props.IDMaster}
IDDetail={props.detail.id} IDDetail={props.detail.id}
DescripcionOriginal={props.detail.pedimentoDescription} DescripcionOriginal={props.detail.pedimentoDescription}
ConfirmaDescripcion={props.detail.confirmaDescripcion}
Habilitado={props.Habilitado} Habilitado={props.Habilitado}
/> />
</td> </td>
@ -378,18 +377,19 @@ export default function RtpAmazonPendingInvoivesDetail(
id="switchEnabled" id="switchEnabled"
type="switch" type="switch"
disabled={ disabled={
((!props.detail.autorizado && ((/* !props.detail.autorizado && */
!props.detail.fraccionGEMCO) || (props.detail.validaFraccionOriginal===1 && props.detail.autorizado===true)) !props.detail.fraccionGEMCO)/* || (!props.detail.autorizado) */ /* || (props.detail.validaFraccionOriginal===1 && props.detail.autorizado===true) */)
} }
checked={EstatusSwith} checked={EstatusSwith && props.detail.autorizado /* (props.detail.fraccionGEMCO===props.detail.destinationHTSCode.replace('.','')) */}
onChange={() => { onChange={() => {
setEstatusSwitch(!EstatusSwith) setEstatusSwitch(!EstatusSwith)
setUserChanged(true)
setShowModal(!EstatusSwith) setShowModal(!EstatusSwith)
}} }}
label="" label=""
/> />
</td> </td>
<td style={{visibility : props.detail.validaFraccionOriginal!==0 ? 'hidden' : 'visible'}}> <OverlayTrigger <td style={{visibility : RequerimientoNormativo.length===0 ? 'hidden' : 'visible'}}> <OverlayTrigger
placement="bottom" placement="bottom"
overlay={<Tooltip id="button-tooltip-2">{RequerimientoNormativo}</Tooltip>} overlay={<Tooltip id="button-tooltip-2">{RequerimientoNormativo}</Tooltip>}
> >
@ -410,7 +410,7 @@ export default function RtpAmazonPendingInvoivesDetail(
</Button> </Button>
)} )}
</OverlayTrigger></td> </OverlayTrigger></td>
<td style={{visibility : props.detail.validaFraccionOriginal!==0 ? 'hidden' : 'visible'}}> <OverlayTrigger <td style={{visibility : RequerimientoNormativo.length===0 ? 'hidden' : 'visible'}}> <OverlayTrigger
placement="bottom" placement="bottom"
overlay={<Tooltip id="button-tooltip-2">{Comentarios}</Tooltip>} overlay={<Tooltip id="button-tooltip-2">{Comentarios}</Tooltip>}
> >

Loading…
Cancel
Save