|
|
@ -2,6 +2,7 @@ import * as React from 'react' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { |
|
|
|
import { |
|
|
|
Alert, |
|
|
|
Alert, |
|
|
|
|
|
|
|
Badge, |
|
|
|
Button, |
|
|
|
Button, |
|
|
|
Card, |
|
|
|
Card, |
|
|
|
Col, |
|
|
|
Col, |
|
|
@ -33,11 +34,15 @@ import { MFileManager } from '../../../../../Utils/MFileManager/MFileManager' |
|
|
|
import { setEmitFlags } from 'typescript' |
|
|
|
import { setEmitFlags } from 'typescript' |
|
|
|
import DTO2096RELParteFactura from '../../../DTO/DTO2096RELParteFactura' |
|
|
|
import DTO2096RELParteFactura from '../../../DTO/DTO2096RELParteFactura' |
|
|
|
import IFileManager from '../../../../../../Interfaces/Utils/IFileManager' |
|
|
|
import IFileManager from '../../../../../../Interfaces/Utils/IFileManager' |
|
|
|
|
|
|
|
import { populateCatConcetosConsultas } from '../../../../../../store/features/Clientes/2096/AmazonCatConceptosConsulta' |
|
|
|
export interface IRptPendingAnswerFromAmazonProps {} |
|
|
|
export interface IRptPendingAnswerFromAmazonProps {} |
|
|
|
|
|
|
|
|
|
|
|
export default function RptPendingAnswerFromAmazon( |
|
|
|
export default function RptPendingAnswerFromAmazon( |
|
|
|
props: IRptPendingAnswerFromAmazonProps |
|
|
|
props: IRptPendingAnswerFromAmazonProps |
|
|
|
) { |
|
|
|
) { |
|
|
|
|
|
|
|
const mExceptionCode = useSelector( |
|
|
|
|
|
|
|
(state: RootState) => state.AmazonCatConceptosConsulta.CatConcetosConsulta |
|
|
|
|
|
|
|
) |
|
|
|
const [Usuario, setUsuario] = useState(() => { |
|
|
|
const [Usuario, setUsuario] = useState(() => { |
|
|
|
const stickyValue = window.localStorage.getItem('UserId') |
|
|
|
const stickyValue = window.localStorage.getItem('UserId') |
|
|
|
return stickyValue !== null ? JSON.parse(stickyValue) : '' |
|
|
|
return stickyValue !== null ? JSON.parse(stickyValue) : '' |
|
|
@ -57,6 +62,9 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
const [Data, setData] = useState<DTO2096PerfilesParecidos[]>([]) |
|
|
|
const [Data, setData] = useState<DTO2096PerfilesParecidos[]>([]) |
|
|
|
const [ResumeData, setResumeData] = useState<DTO2096RELParteFactura[]>([]) |
|
|
|
const [ResumeData, setResumeData] = useState<DTO2096RELParteFactura[]>([]) |
|
|
|
const [AmazonAnswerFile, setAmazonAnswerFile] = useState<IFileManager[]>([]) |
|
|
|
const [AmazonAnswerFile, setAmazonAnswerFile] = useState<IFileManager[]>([]) |
|
|
|
|
|
|
|
const [DistinctExceptionCode, setDistinctExceptionCode] = useState<number[]>( |
|
|
|
|
|
|
|
[] |
|
|
|
|
|
|
|
) |
|
|
|
const [header, setHeader] = useState('') |
|
|
|
const [header, setHeader] = useState('') |
|
|
|
const [IDFactura, setIDFactura] = useState(0) |
|
|
|
const [IDFactura, setIDFactura] = useState(0) |
|
|
|
const [Factura, setFactura] = useState('') |
|
|
|
const [Factura, setFactura] = useState('') |
|
|
@ -91,6 +99,39 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const loadDistinctExceptionCode = (id: number) => { |
|
|
|
|
|
|
|
DSAmazon.InvoiceDistinctExceptionCodeGet(id) |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
setDistinctExceptionCode(response.data) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
|
|
|
alert('Ocurrio un error' + e.message.toString()) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getExceptionCode = (id: number) => { |
|
|
|
|
|
|
|
// console.log(mExceptionCode)
|
|
|
|
|
|
|
|
let code = mExceptionCode.filter((a) => { |
|
|
|
|
|
|
|
if (a.id == id) { |
|
|
|
|
|
|
|
return a |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
return (code.length) ? code[0].siglas : '' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const loadExceptionCodeCatalog = () => { |
|
|
|
|
|
|
|
DSAmazon.CatConceptosConsultaGET() |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
dispatch(populateCatConcetosConsultas(response.data)) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
|
|
|
setHeader('Error') |
|
|
|
|
|
|
|
setMsg('Ocurrio un error: ' + e) |
|
|
|
|
|
|
|
setShowMsg(true) |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const generateResume = (id: number) => { |
|
|
|
const generateResume = (id: number) => { |
|
|
|
DSAmazon.RELParteFacturasGET(id) |
|
|
|
DSAmazon.RELParteFacturasGET(id) |
|
|
|
.then((response) => { |
|
|
|
.then((response) => { |
|
|
@ -104,17 +145,18 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const downloadExceptionsFile = (id: number, Factura: string) => { |
|
|
|
const downloadExceptionsFile = (id: number, Factura: string, ExceptionCode: number) => { |
|
|
|
setWaitingDialog(true) |
|
|
|
//setWaitingDialog(true)
|
|
|
|
generateResume(id) |
|
|
|
/* loadDistinctExceptionCode(id) |
|
|
|
setFactura(Factura) |
|
|
|
generateResume(id) */ |
|
|
|
DSAmazon.ExceptionsFileAmazonGET(id) |
|
|
|
//setFactura(Factura)
|
|
|
|
|
|
|
|
DSAmazon.ExceptionsFileAmazonGET(id, ExceptionCode) |
|
|
|
.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', 'Excepciones ' + Factura + '.xlsx') |
|
|
|
link.setAttribute('download', 'Excepciones ' + Factura + '_'+getExceptionCode(ExceptionCode) + '.xlsx') |
|
|
|
document.body.appendChild(link) |
|
|
|
document.body.appendChild(link) |
|
|
|
link.click() |
|
|
|
link.click() |
|
|
|
} |
|
|
|
} |
|
|
@ -128,9 +170,16 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const loadInvoiceData = (id: number) => { |
|
|
|
|
|
|
|
setWaitingDialog(true) |
|
|
|
|
|
|
|
loadDistinctExceptionCode(id) |
|
|
|
|
|
|
|
generateResume(id) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
loadReport() |
|
|
|
loadReport() |
|
|
|
loadProfiles() |
|
|
|
loadProfiles() |
|
|
|
|
|
|
|
loadExceptionCodeCatalog() |
|
|
|
}, []) |
|
|
|
}, []) |
|
|
|
|
|
|
|
|
|
|
|
const check4Updates = (IDInvoice: number) => { |
|
|
|
const check4Updates = (IDInvoice: number) => { |
|
|
@ -242,7 +291,7 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
|
|
|
|
|
|
|
|
const ApplyAnswerFiles2Invoice = () => { |
|
|
|
const ApplyAnswerFiles2Invoice = () => { |
|
|
|
setWaitingMessage('Generando...') |
|
|
|
setWaitingMessage('Generando...') |
|
|
|
const Filenames = AmazonAnswerFile.map(element => element.nombreArchivo); |
|
|
|
const Filenames = AmazonAnswerFile.map((element) => element.nombreArchivo) |
|
|
|
setWaitingDialog(true) |
|
|
|
setWaitingDialog(true) |
|
|
|
DSAmazon.ApplyAnswerFile2Invoice(Filenames) |
|
|
|
DSAmazon.ApplyAnswerFile2Invoice(Filenames) |
|
|
|
.then((response) => { |
|
|
|
.then((response) => { |
|
|
@ -378,11 +427,16 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
<td> |
|
|
|
<td> |
|
|
|
{existsExeptions(MasterData.id) > 0 ? ( |
|
|
|
{existsExeptions(MasterData.id) > 0 ? ( |
|
|
|
<div |
|
|
|
<div |
|
|
|
onClick={() => |
|
|
|
onClick={() => { |
|
|
|
downloadExceptionsFile( |
|
|
|
/* downloadExceptionsFile( |
|
|
|
MasterData.id, |
|
|
|
MasterData.id, |
|
|
|
MasterData.invoiceNumber |
|
|
|
MasterData.invoiceNumber |
|
|
|
) |
|
|
|
) */ |
|
|
|
|
|
|
|
setIDFactura(MasterData.id) |
|
|
|
|
|
|
|
setFactura(MasterData.invoiceNumber) |
|
|
|
|
|
|
|
loadInvoiceData(MasterData.id) |
|
|
|
|
|
|
|
//setWaitingDialog(true)
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
title="Archivo de excepciones" |
|
|
|
title="Archivo de excepciones" |
|
|
|
> |
|
|
|
> |
|
|
@ -810,10 +864,12 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
Proceso={IDProcess} |
|
|
|
Proceso={IDProcess} |
|
|
|
showPreview={3} |
|
|
|
showPreview={3} |
|
|
|
canEdit={true} |
|
|
|
canEdit={true} |
|
|
|
Leyenda="Sube archivos de respuesta de Amazon" onAppendMFM={function (Files: IFileManager[]): void { |
|
|
|
Leyenda="Sube archivos de respuesta de Amazon" |
|
|
|
|
|
|
|
onAppendMFM={function (Files: IFileManager[]): void { |
|
|
|
setAmazonAnswerFile(Files) |
|
|
|
setAmazonAnswerFile(Files) |
|
|
|
setConfirmApplyAnswerFile(true) |
|
|
|
setConfirmApplyAnswerFile(true) |
|
|
|
}}/> |
|
|
|
}} |
|
|
|
|
|
|
|
/> |
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col></Col> |
|
|
|
<Col></Col> |
|
|
|
</Row> |
|
|
|
</Row> |
|
|
@ -848,7 +904,8 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
<Row style={{ paddingTop: '15px' }}> |
|
|
|
<Row style={{ paddingTop: '15px' }}> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Button |
|
|
|
<Button |
|
|
|
variant="secondary" size="lg" |
|
|
|
variant="secondary" |
|
|
|
|
|
|
|
size="lg" |
|
|
|
onClick={() => { |
|
|
|
onClick={() => { |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setConfirmApplyAnswerFile(false) |
|
|
|
setConfirmApplyAnswerFile(false) |
|
|
@ -859,7 +916,8 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Button |
|
|
|
<Button |
|
|
|
variant="danger" size="lg" |
|
|
|
variant="danger" |
|
|
|
|
|
|
|
size="lg" |
|
|
|
onClick={() => { |
|
|
|
onClick={() => { |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
ApplyAnswerFiles2Invoice() |
|
|
|
ApplyAnswerFiles2Invoice() |
|
|
@ -889,7 +947,7 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
<Modal.Title></Modal.Title> |
|
|
|
<Modal.Title></Modal.Title> |
|
|
|
</Modal.Header> |
|
|
|
</Modal.Header> |
|
|
|
<Modal.Body> |
|
|
|
<Modal.Body> |
|
|
|
<img |
|
|
|
{/* <img |
|
|
|
src={loadingImg} |
|
|
|
src={loadingImg} |
|
|
|
style={{ |
|
|
|
style={{ |
|
|
|
height: WaitingMessage === 'Generando...' ? '150px' : '0px', |
|
|
|
height: WaitingMessage === 'Generando...' ? '150px' : '0px', |
|
|
@ -897,8 +955,25 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}} |
|
|
|
}} |
|
|
|
alt="proccessing" |
|
|
|
alt="proccessing" |
|
|
|
/> |
|
|
|
/> |
|
|
|
{WaitingMessage} |
|
|
|
{WaitingMessage} */} |
|
|
|
<div style={{ overflow: 'auto' }}> |
|
|
|
<div> |
|
|
|
|
|
|
|
<Row> |
|
|
|
|
|
|
|
{DistinctExceptionCode |
|
|
|
|
|
|
|
? DistinctExceptionCode.map((code) => { |
|
|
|
|
|
|
|
return ( |
|
|
|
|
|
|
|
<Col style={{textAlign:'center'}}> |
|
|
|
|
|
|
|
<Badge bg="primary" style={{cursor:'pointer'}} onClick={()=>{downloadExceptionsFile(IDFactura, Factura, code)}}> |
|
|
|
|
|
|
|
<h6>{getExceptionCode(code)}</h6> |
|
|
|
|
|
|
|
</Badge> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
: ''} |
|
|
|
|
|
|
|
</Row> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
style={{ overflow: 'auto', height: '500px', paddingTop: '15px' }} |
|
|
|
|
|
|
|
> |
|
|
|
<table> |
|
|
|
<table> |
|
|
|
<tr> |
|
|
|
<tr> |
|
|
|
<td style={{ backgroundColor: '#6095BF', color: '#FFFFFF' }}> |
|
|
|
<td style={{ backgroundColor: '#6095BF', color: '#FFFFFF' }}> |
|
|
|