Unchecks Amazon Invoice Details

AmazonRelease1.1
unknown 1 year ago
parent fb1a79ae3f
commit 86c390f343
  1. 9
      src/Components/Clientes/Amazon/DTO/DTO2096NoParteVerificacion.ts
  2. 2
      src/Components/Clientes/Amazon/Interfaces/I2096NoParte.ts
  3. 138
      src/Components/Clientes/Amazon/Reportes/AmazonNoPartes.tsx
  4. 306
      src/Components/Clientes/Amazon/Reportes/Clasification/Pending/RptAmazonPendingClasificationInvoices.tsx
  5. 14
      src/Components/Clientes/Amazon/Reportes/Clasification/WaitingAnswerFromAmazon/RptPendingAnswerFromAmazon.tsx
  6. 22
      src/Components/Clientes/Amazon/Services/Amazon.Services.ts
  7. 2
      src/Components/Dashboard/DashboardClasificacion.tsx
  8. 2
      src/store/features/Clientes/2096/AmazonNoPartes.ts

@ -0,0 +1,9 @@
export default interface DTO2096NoParteVerificacion {
factura: string,
fFactura: string,
referencia: string,
patente: string,
aduana: string,
pedimento: string,
fPago: string
}

@ -12,7 +12,7 @@ export default interface I2096NoParte {
paisOrigen: string
unidadMedidaFactura: string
unidadMedidaCOVE: string
FHActualizacion: string
fhActualizacion: string
usuarioActualizacion: number
activo: number
}

@ -12,12 +12,15 @@ import { useDispatch, useSelector } from 'react-redux'
import { useEffect, useState } from 'react'
import { MsgInformativo } from '../../../Utils/Toast/msgInformativo'
import { IconContext } from 'react-icons'
import { BsFillPencilFill, BsFillTrashFill } from 'react-icons/bs'
import { BsFillPencilFill } from 'react-icons/bs'
import I2096PaisClave from '../Interfaces/I2096PaisClave'
import DTO2096PerfilesParecidos from '../DTO/DTO2096PerfilesParecidos'
import DSAmazon from '../Services/Amazon.Services'
import DTO2096NoParte from '../DTO/DTO2096NoParte'
import I2096NoParteLog from '../Interfaces/I2096NoParteLog'
import { HiClipboardCheck } from 'react-icons/hi'
import DTO2096NoParteVerificacion from '../DTO/DTO2096NoParteVerificacion'
export interface IAmazonNoPartesProps {}
export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
@ -32,8 +35,10 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
const [NoParteLOG, setNoParteLOG] = useState<I2096NoParteLog[]>([])
const [PaisClaves, setPaisClaves] = useState<I2096PaisClave[]>([])
const [Data, setData] = useState<DTO2096PerfilesParecidos[]>([])
const [DataNoParteVerificacion, setDataNoParteVeriifcacion] = useState<DTO2096NoParteVerificacion[]>([])
const [ShowModal, setShowModal] = useState(false)
const [ShowModalLog, setShowModalLog] = useState(false)
const [ShowModalNoParteVerificacion, setShowModalNoParteVerificacion] = useState(false)
const [header, setHeader] = useState('')
const [msgColor, setMsgColor] = useState('primary')
const [show, setShowMsg] = useState(false)
@ -68,6 +73,31 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
),
sortable: true
},
{
name: '',
width: '60px',
cell: (row: I2096NoParte) => (
<Row>
<Col>
<div
style={{
cursor: 'pointer',
}}
onClick={() => {
loadDataNoParteVerificacion(row)
setShowModalNoParteVerificacion(true)
}}
>
<IconContext.Provider value={{ color: '#60DD0E', size: '30px' }}>
<HiClipboardCheck />
</IconContext.Provider>
</div>
</Col>
</Row>
),
sortable: true
},
{
name: '',
width: '50px',
@ -136,13 +166,13 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
{
name: 'UMF',
width: '80px',
selector: (row: I2096NoParte) => row.unidadMedidaFactura,
selector: (row: I2096NoParte) => row.unidadMedidaFactura ? row.unidadMedidaFactura : '',
sortable: true
},
{
name: 'UMC',
width: '80px',
selector: (row: I2096NoParte) => row.unidadMedidaCOVE,
selector: (row: I2096NoParte) => row.unidadMedidaCOVE ? row.unidadMedidaCOVE : '',
sortable: true
},
{
@ -161,8 +191,8 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
},
{
name: 'Fecha / Hora',
width: '200px',
selector: (row: I2096NoParte) => row.fechaConfirmacion,
width: '220px',
selector: (row: I2096NoParte) => row.fhActualizacion,
wrap: true,
sortable: true
},
@ -232,6 +262,50 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
}
]
const colsNoPartesVerificacion = [
{
name: 'Factura',
width: '350px',
cell: (row: DTO2096NoParteVerificacion) => row.factura,
sortable: true
},
{
name: 'Fecha factura',
width: '130px',
cell: (row: DTO2096NoParteVerificacion) => row.fFactura,
sortable: true
},
{
name: 'Referencia',
width: '140px',
cell: (row: DTO2096NoParteVerificacion) => row.referencia,
sortable: true,
center: true
},
{
name: 'Patente',
width: '110px',
cell: (row: DTO2096NoParteVerificacion) => row.patente,
sortable: true,
center: true
},
{
name: 'Aduana',
width: '100px',
cell: (row: DTO2096NoParteVerificacion) => row.aduana,
wrap: true,
sortable: true,
},
{
name: 'Pedimento',
width: '150px',
cell: (row: DTO2096NoParteVerificacion) => row.pedimento,
wrap: true,
sorteable: true
}
]
const openLink = (item: string) => {
window.open('https://www.amazon.com/dp/' + item)
}
@ -274,14 +348,27 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
setTipoOperacion(row.tipoOperacion)
setFraccion(row.fraccion.substring(0, 8))
setSubdivision(row.subdivision)
setPaisOrigen(row.paisOrigen)
setPaisOrigen(row.paisOrigen ? row.paisOrigen : '')
setDescripcionFactura(row.descripcionFactura)
setDescripcionAgenteAduanal(row.descripcionAgenteAduanal)
setUMF(row.unidadMedidaFactura)
setFechaInsercion(row.FHActualizacion)
setUMF(row.unidadMedidaFactura ? row.unidadMedidaFactura : '')
setFechaInsercion(row.fhActualizacion)
setClasificador(getUser(row.usuarioActualizacion))
}
const loadDataNoParteVerificacion = (row: I2096NoParte) => {
AmazonDS.NoParteVerificacionGET(row.parte)
.then((response) => {
setDataNoParteVeriifcacion(response.data)
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
}
const loadPaisesClaves = () => {
AmazonDS.PaisClavesGET()
.then((response) => {
@ -309,7 +396,6 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
}
AmazonDS.NoPartesGet(Search)
.then((response) => {
//console.log(JSON.stringify(response.data))
dispatch(populateNoPartes(response.data))
})
.catch((e: Error) => {
@ -552,6 +638,40 @@ export default function AmazonNoPartes(props: IAmazonNoPartesProps) {
{/* </div> */}
</Modal.Body>
</Modal>
<Modal
show={ShowModalNoParteVerificacion}
onHide={() => {
setShowModalNoParteVerificacion(false)
}}
size={'sm'}
dialogClassName={'modal-90w'}
>
<Modal.Header closeButton>
<Modal.Title>No Parte: {Search}</Modal.Title>
</Modal.Header>
<Modal.Body>
<Row style={{ paddingTop: '15px' }}>
<Col xs={12}>
<DataTable
noHeader
fixedHeaderScrollHeight="400px"
defaultSortFieldId={'id'}
defaultSortAsc={true}
pagination
highlightOnHover
striped={true}
dense={true}
columns={colsNoPartesVerificacion}
data={DataNoParteVerificacion.filter(function (el) {
return el
})}
/>
</Col>
</Row>
{/* </div> */}
</Modal.Body>
</Modal>
<MsgInformativo
show={show}
msg={msg}

@ -10,7 +10,11 @@ import {
Table
} from 'react-bootstrap'
import { IconContext } from 'react-icons'
import { BsChevronDown, BsChevronRight } from 'react-icons/bs'
import {
BsChevronDown,
BsChevronRight,
BsFillXCircleFill
} from 'react-icons/bs'
import { FaAmazon } from 'react-icons/fa'
import I2096Headers from '../../../Interfaces/I2096Header'
import DSAmazon from '../../../Services/Amazon.Services'
@ -26,6 +30,9 @@ import loadingImg from '../../../../../../images/ajaxloader.gif'
import { useDispatch, useSelector } from 'react-redux'
import RtpAmazonPendingClasificationInvoicesDetail from './RptAmazonPendingClasificationInvoicesDetail'
import ClasificatorAssign from './ClasificatorAssign'
import { FcQuestions, FcSettings } from 'react-icons/fc'
import { MFileManager } from '../../../../../Utils/MFileManager/MFileManager'
import CorresponsalesTabuladoresServices from '../../../../../../Services/Corresponsalias/Corresponsales.Tabuladores.Services'
export interface IRtpAmazonPendingInvoicesProps {}
export default function RtpAmazonPendingInvoices(
@ -47,6 +54,9 @@ export default function RtpAmazonPendingInvoices(
const [IDFactura, setIDFactura] = useState(0)
const [Factura, setFactura] = useState('')
const [show, setShowMsg] = useState(false)
const [ShowModalDeleteInvoice, setShowModalDeleteInvoice] = useState(false)
const [ShowModalInvoiceFile, setShowModalInvoiceFile] = useState(false)
const [IDProcess, setIDProcess] = useState(30)
const [WaitingDialog, setWaitingDialog] = useState(false)
const [WaitingMessage, setWaitingMessage] = useState('')
const [ShowModal, setShowModal] = useState(false)
@ -75,6 +85,33 @@ export default function RtpAmazonPendingInvoices(
const Obj = { ...Invoice[0] }
Obj.max = !Obj.max
dispatch(updateInvoice(Obj))
DSAmazon.SETInvoiceDetail2Unchecked(row.id)
.then((response) => {
DSAmazon.AmazonInvoiceGET(row.id)
.then((response) => {
if (response.data) {
//dispatch(updateInvoice(response.data[0]))
const Obj = { ...response.data[0] }
console.log(JSON.stringify(Obj))
Obj.max = !Obj.max
dispatch(updateInvoice(Obj))
return
}
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error')
setShowModalDeleteInvoice(false)
return
})
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error')
setShowModalDeleteInvoice(false)
return
})
}
const descargaArchivoExcepciones = () => {
@ -84,12 +121,12 @@ export default function RtpAmazonPendingInvoices(
DSAmazon.ExceptionsFileAmazonGET(IDFactura)
.then((response: any) => {
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')
link.href = url
link.setAttribute('download', 'Excepciones '+Factura+'.xlsx')
link.setAttribute('download', 'Excepciones ' + Factura + '.xlsx')
document.body.appendChild(link)
link.click()
link.click() */
DSAmazon.EnviaEsperaRespuestaAmazon(IDFactura)
.then((response) => {
loadReport()
@ -104,7 +141,6 @@ export default function RtpAmazonPendingInvoices(
setShowMsg(true)
return
})
}
})
.catch((e: Error) => {
@ -116,10 +152,14 @@ export default function RtpAmazonPendingInvoices(
}
const descargaPantillaPartes = () => {
let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === IDFactura)
let Invoice: I2096Headers[] = mInvoices.filter(
(item) => item.id === IDFactura
)
let TotalPartidas = Invoice[0].detail.length
let TotalFraccionesPreviamenteRegistradas = Invoice[0].detail.filter((item) => item.confirmaFraccion === 3).length
if (TotalPartidas===TotalFraccionesPreviamenteRegistradas) {
let TotalFraccionesPreviamenteRegistradas = Invoice[0].detail.filter(
(item) => item.confirmaFraccion === 3
).length
if (TotalPartidas === TotalFraccionesPreviamenteRegistradas) {
setShowModal(false)
DSAmazon.TerminaClasificarFactura(IDFactura)
.then((response) => {
@ -145,7 +185,10 @@ export default function RtpAmazonPendingInvoices(
const url = window.URL.createObjectURL(new Blob([response.data]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', 'Plantilla de partes '+Factura+'.xls')
link.setAttribute(
'download',
'Plantilla de partes ' + Factura + '.xls'
)
document.body.appendChild(link)
link.click()
DSAmazon.TerminaClasificarFactura(IDFactura)
@ -194,6 +237,69 @@ export default function RtpAmazonPendingInvoices(
})
}
const eliminaFactura = () => {
DSAmazon.EliminaFactura(IDFactura)
.then((response) => {
if (response.data) {
setIDFactura(0)
setFactura('')
setShowModalDeleteInvoice(false)
loadReport()
return
}
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error')
setShowModalDeleteInvoice(false)
return
})
}
const syncInvoicesInFilePath = () => {
setWaitingDialog(true)
DSAmazon.UploadAndSyncAmazonInvoicesInFilePath()
.then((response) => {
if (response.data) {
setIDFactura(0)
setFactura('')
setShowModalInvoiceFile(false)
setWaitingDialog(false)
loadReport()
return
}
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error')
setShowModalDeleteInvoice(false)
setWaitingDialog(false)
return
})
}
const syncInvoicesByFTP = () => {
setWaitingDialog(true)
DSAmazon.UploadAndSyncAmazonInvoicesByFTP()
.then((response) => {
if (response.data) {
setIDFactura(0)
setFactura('')
setShowModalInvoiceFile(false)
setWaitingDialog(false)
loadReport()
return
}
})
.catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error')
setShowModalDeleteInvoice(false)
setWaitingDialog(false)
return
})
}
return (
<div>
<Card>
@ -203,11 +309,53 @@ export default function RtpAmazonPendingInvoices(
<Card.Title>
<IconContext.Provider value={{ color: '#F6C34F', size: '8%' }}>
<FaAmazon />
</IconContext.Provider>{' '}
</IconContext.Provider>
CLASIFICACION : facturas pendientes
</Card.Title>
</Col>
<Col xs={4}></Col>
<Col xs={5}></Col>
<Col xs={2}>
<Alert
variant="primary"
style={{
visibility: [
'Clasificador lider',
'Administrador',
'Sistemas'
].includes(Perfil)
? 'visible'
: 'hidden'
}}
>
<span
style={{ cursor: 'pointer' }}
title="Sube facturas enviadas por correo electronico"
onClick={() => {
setShowModalInvoiceFile(true)
}}
>
<IconContext.Provider value={{ color: 'blue', size: '35px' }}>
<FcQuestions />
</IconContext.Provider>
</span>
<span
style={{
cursor: 'pointer',
paddingLeft: '40px',
visibility: 'hidden'
}}
title="Descarga y sincroniza facturas en este momento"
onClick={() => {
syncInvoicesByFTP()
}}
>
<IconContext.Provider value={{ color: 'blue', size: '35px' }}>
<FcSettings />
</IconContext.Provider>
</span>
</Alert>
</Col>
</Row>
</Card.Body>
</Card>
@ -251,9 +399,11 @@ export default function RtpAmazonPendingInvoices(
) {
return a
} else if (
['Clasificador lider', 'Administrador', 'Clasificador'].includes(
Perfil
)
[
'Clasificador lider',
'Administrador',
'Sistemas'
].includes(Perfil)
) {
return a
}
@ -315,6 +465,29 @@ export default function RtpAmazonPendingInvoices(
</td>
<td style={{ width: '150px' }}>
{MasterData.invoiceNumber}
<span
style={{
paddingLeft: '5px',
visibility: [
'Clasificador lider',
'Administrador',
'Sistemas'
].includes(Perfil)
? 'visible'
: 'hidden'
}}
onClick={() => {
setIDFactura(MasterData.id)
setFactura(MasterData.invoiceNumber)
setShowModalDeleteInvoice(true)
}}
>
<IconContext.Provider
value={{ color: '#DD0E0E' }}
>
<BsFillXCircleFill />
</IconContext.Provider>
</span>
</td>
<td
style={{ width: '50px', textAlign: 'center' }}
@ -549,7 +722,6 @@ export default function RtpAmazonPendingInvoices(
>
Unit Net Weight
</th>
<th
style={{
width: '70px',
@ -736,9 +908,9 @@ export default function RtpAmazonPendingInvoices(
onHide={() => {
setWaitingDialog(false)
}}
backdrop='static'
backdrop="static"
keyboard={false}
size='sm'
size="sm"
dialogClassName={'modal-50w'}
centered
>
@ -746,11 +918,109 @@ export default function RtpAmazonPendingInvoices(
<Modal.Title></Modal.Title>
</Modal.Header>
<Modal.Body>
<img src={loadingImg} style={{ height: '150px' }} alt='proccessing' />
<img src={loadingImg} style={{ height: '150px' }} alt="proccessing" />
Generando {WaitingMessage}...
</Modal.Body>
<Modal.Footer></Modal.Footer>
</Modal>
<Modal
show={ShowModalDeleteInvoice}
onHide={() => {
setShowModal(false)
}}
size={'sm'}
dialogClassName={'modal-50w'}
>
<Modal.Body>
<div style={{ height: '180px' }}>
<Row style={{ paddingTop: '15px' }}>
<Col xs={1}></Col>
<Col xs={10}>
<Alert key={'danger'} variant={'danger'}>
¿Esta seguro de eliminar esta factura: <b>{Factura}</b>?
</Alert>
</Col>
<Col xs={1}></Col>
</Row>
<Row style={{ paddingTop: '15px' }}>
<Col xs={6} style={{ textAlign: 'center' }}>
<Button
variant="secondary"
onClick={() => {
setShowModalDeleteInvoice(false)
}}
>
&nbsp;&nbsp;Cerrar&nbsp;&nbsp;
</Button>
</Col>
<Col xs={6} style={{ textAlign: 'center' }}>
<Button
variant="danger"
onClick={() => {
eliminaFactura()
}}
>
&nbsp;&nbsp;Elimina factura&nbsp;&nbsp;
</Button>
</Col>
</Row>
</div>
</Modal.Body>
</Modal>
<Modal
show={ShowModalInvoiceFile}
onHide={() => {
setShowModalInvoiceFile(false)
}}
size={'sm'}
dialogClassName={'modal-50w'}
>
<Modal.Body>
<div style={{ height: '330px' }}>
<Row style={{ paddingTop: '15px' }}>
<Col xs={12}>
<Alert
key={'danger'}
variant={'danger'}
style={{ textAlign: 'center' }}
>
Proporcione la(facturas) que llegaron por correo en el proceso
de Amazon
</Alert>
</Col>
</Row>
<Row style={{ paddingTop: '15px' }}>
<Col></Col>
<Col xs={10} style={{ textAlign: 'center' }}>
<MFileManager
IDTrafico={IDFactura}
Proceso={IDProcess}
showPreview={0}
canEdit={true}
Leyenda="Seleccione las facturas de Amazon"
/>
</Col>
<Col></Col>
</Row>
<Row style={{ paddingTop: '80px' }}>
<Col xs={10}></Col>
<Col xs={2}>
<Button
variant="primary"
onClick={() => {
syncInvoicesInFilePath()
}}
>
&nbsp;&nbsp;Sincronize...&nbsp;&nbsp;
</Button>
</Col>
</Row>
</div>
</Modal.Body>
</Modal>
<MsgInformativo
show={show}
msg={msg}

@ -200,19 +200,6 @@ export default function RptPendingAnswerFromAmazon(
})
}
/* const relacionaIDArchivoRespuestaConFactura = (idFile : number) => {
DSAmazon.ArchivoRespuestaAmazon(IDFactura, idFile)
.then((response) => {
})
.catch((e: Error) => {
setIDFactura(0)
setHeader('Error')
setMsg('Ocurrio un error')
setShowMsg(true)
return
})
} */
return (
<div>
<Card>
@ -748,6 +735,7 @@ export default function RptPendingAnswerFromAmazon(
</div>
</Modal.Body>
</Modal>
<Modal
show={WaitingDialog}
onHide={() => {

@ -17,11 +17,15 @@ import I2096NoParteLog from '../Interfaces/I2096NoParteLog'
import DTO2096TraficoFieldsUpdate from '../DTO/DTO2096TraficoFieldsUpdate'
import DTO2096RELParteFactura from '../DTO/DTO2096RELParteFactura'
import DTO2096RptPayedOperations from '../DTO/DTO2096RptPayedOperations'
import DTO2096NoParteVerificacion from '../DTO/DTO2096NoParteVerificacion'
class AmazonDataService {
AmazonPendingClasificationInvoiceGET() {
return http.get<I2096Headers[]>(`/AmazonInvoice/AmazonPendingClasificationInvoiceGet`)
}
AmazonInvoiceGET(id: number) {
return http.get<I2096Headers[]>(`/AmazonInvoice/AmazonInvoiceGET?id=${id}`)
}
InvoicePendingFromAmazonGET() {
return http.get<I2096Headers[]>(`/AmazonInvoice/InvoicePendingFromAmazonGET`)
}
@ -34,9 +38,9 @@ class AmazonDataService {
SeRecibioRespuestaDeAmazon(id: number) {
return http.get<DTO2096Estatus>(`/AmazonInvoice/SeRecibioRespuestaDeAmazon?id=${id}`)
}
/*SePuedeTerminardeClasificarFacturaEsperandoRespuesta(id: number) {
return http.get<DTORespuesta>(`/AmazonInvoice/SePuedeTerminardeClasificarFacturaEsperandoRespuesta?id=${id}`)
} */
EliminaFactura(id: number) {
return http.delete<boolean>(`/AmazonInvoice/AmazonInvoiceDelete?id=${id}`)
}
EnviaEsperaRespuestaAmazon(id: number) {
return http.get<DTORespuesta>(`/AmazonInvoice/EnviaEsperaRespuestaAmazon?id=${id}`)
}
@ -161,11 +165,23 @@ class AmazonDataService {
NoPartesLogGET(id: number) {
return http.get<I2096NoParteLog[]>(`/AmazonInvoice/NoPartesLogGET?id=${id}`)
}
NoParteVerificacionGET(Parte: string) {
return http.get<DTO2096NoParteVerificacion[]>(`/AmazonInvoice/NoParteVerificacionGET?Parte=${Parte}`)
}
PerfilesParecidosGet(Perfil: string) {
return http.get<DTO2096PerfilesParecidos[]>(`/Usuarios/Catalogo/Usuarios/PerfilesParecidos?Perfil=${Perfil}`)
}
AsignaFacturaClasificador(IdUsuario: number, IdFactura: number) {
return http.put<DTO2096PerfilesParecidos[]>(`/AmazonInvoice/AsignaFactura?IdUsuario=${IdUsuario}&IdFactura=${IdFactura}`)
}
UploadAndSyncAmazonInvoicesInFilePath() {
return http.get<boolean>(`/AmazonInvoice/SyncInvoicesInFilePath`)
}
UploadAndSyncAmazonInvoicesByFTP() {
return http.get<boolean>(`/AmazonInvoice/SyncInvoicesByFTP`)
}
SETInvoiceDetail2Unchecked(id: number) {
return http.get<I2096Headers>(`/AmazonInvoice/SETInvoiceDetail2Unchecked?id=${id}`)
}
}
export default new AmazonDataService()

@ -111,7 +111,7 @@ export function DashboardClasificacion(props: IDashboardClasificacionProps) {
to='../RptPendingAnswerFromAmazon'
style={{ textDecoration: 'none', float: 'left' }}
>
Pendientes de respuesta <span style={{fontSize:'50px', color: 'red'}}>({PendientesRespuesta})</span>
Facturas con excepciones <span style={{fontSize:'50px', color: 'red'}}>({PendientesRespuesta})</span>
</Link></Col>
</Row>
</Card.Body>

@ -8,6 +8,8 @@ export const AmazonNoPartesSlice = createSlice({
initialState: initialState,
reducers: {
populateNoPartes : (state, action: PayloadAction<I2096NoParte[]>) => {
const newArr = state.NoPartes.filter(data => data.id === 0);
state.NoPartes=newArr
action.payload.forEach(newItem => {
var Existe = state.NoPartes.find(function(onMemoryItem) {
return onMemoryItem.id === newItem.id;

Loading…
Cancel
Save