|
|
@ -2,7 +2,6 @@ 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, |
|
|
@ -34,15 +33,11 @@ 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) : '' |
|
|
@ -62,9 +57,6 @@ 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('') |
|
|
@ -99,39 +91,6 @@ 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) => { |
|
|
@ -145,29 +104,17 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const downloadExceptionsFile = ( |
|
|
|
const downloadExceptionsFile = (id: number, Factura: string) => { |
|
|
|
id: number, |
|
|
|
setWaitingDialog(true) |
|
|
|
Factura: string, |
|
|
|
generateResume(id) |
|
|
|
ExceptionCode: number |
|
|
|
setFactura(Factura) |
|
|
|
) => { |
|
|
|
DSAmazon.ExceptionsFileAmazonGET(id) |
|
|
|
//setWaitingDialog(true)
|
|
|
|
|
|
|
|
/* loadDistinctExceptionCode(id) |
|
|
|
|
|
|
|
generateResume(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( |
|
|
|
link.setAttribute('download', 'Excepciones ' + Factura + '.xlsx') |
|
|
|
'download', |
|
|
|
|
|
|
|
'Excepciones ' + |
|
|
|
|
|
|
|
Factura + |
|
|
|
|
|
|
|
'_' + |
|
|
|
|
|
|
|
getExceptionCode(ExceptionCode) + |
|
|
|
|
|
|
|
'.xlsx' |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
document.body.appendChild(link) |
|
|
|
document.body.appendChild(link) |
|
|
|
link.click() |
|
|
|
link.click() |
|
|
|
} |
|
|
|
} |
|
|
@ -181,16 +128,9 @@ 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) => { |
|
|
@ -248,10 +188,9 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
.map((element) => { |
|
|
|
.map((element) => { |
|
|
|
let newElt = Object.assign({}, element) // copies element
|
|
|
|
let newElt = Object.assign({}, element) // copies element
|
|
|
|
return newElt.detail.filter( |
|
|
|
return newElt.detail.filter( |
|
|
|
(child) => child.idHeader === IDMaster && child.autorizado |
|
|
|
(child) => child.idHeader === IDMaster && !child.autorizado |
|
|
|
) |
|
|
|
) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return Exceptions.length ? Exceptions[0].length : 0 |
|
|
|
return Exceptions.length ? Exceptions[0].length : 0 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -303,7 +242,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) => { |
|
|
@ -439,16 +378,12 @@ 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" |
|
|
|
> |
|
|
|
> |
|
|
|
<IconContext.Provider |
|
|
|
<IconContext.Provider |
|
|
@ -875,12 +810,10 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
Proceso={IDProcess} |
|
|
|
Proceso={IDProcess} |
|
|
|
showPreview={3} |
|
|
|
showPreview={3} |
|
|
|
canEdit={true} |
|
|
|
canEdit={true} |
|
|
|
Leyenda="Sube archivos de respuesta de Amazon" |
|
|
|
Leyenda="Sube archivos de respuesta de Amazon" onAppendMFM={function (Files: IFileManager[]): void { |
|
|
|
onAppendMFM={function (Files: IFileManager[]): void { |
|
|
|
|
|
|
|
setAmazonAnswerFile(Files) |
|
|
|
setAmazonAnswerFile(Files) |
|
|
|
setConfirmApplyAnswerFile(true) |
|
|
|
setConfirmApplyAnswerFile(true) |
|
|
|
}} |
|
|
|
}}/> |
|
|
|
/> |
|
|
|
|
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col></Col> |
|
|
|
<Col></Col> |
|
|
|
</Row> |
|
|
|
</Row> |
|
|
@ -915,8 +848,7 @@ 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" |
|
|
|
variant="secondary" size="lg" |
|
|
|
size="lg" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
onClick={() => { |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setConfirmApplyAnswerFile(false) |
|
|
|
setConfirmApplyAnswerFile(false) |
|
|
@ -927,8 +859,7 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
<Button |
|
|
|
<Button |
|
|
|
variant="danger" |
|
|
|
variant="danger" size="lg" |
|
|
|
size="lg" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
onClick={() => { |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
setShowModalAnswerFile(false) |
|
|
|
ApplyAnswerFiles2Invoice() |
|
|
|
ApplyAnswerFiles2Invoice() |
|
|
@ -958,7 +889,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', |
|
|
@ -966,31 +897,8 @@ export default function RptPendingAnswerFromAmazon( |
|
|
|
}} |
|
|
|
}} |
|
|
|
alt="proccessing" |
|
|
|
alt="proccessing" |
|
|
|
/> |
|
|
|
/> |
|
|
|
{WaitingMessage} */} |
|
|
|
{WaitingMessage} |
|
|
|
<div> |
|
|
|
<div style={{ overflow: 'auto' }}> |
|
|
|
<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' }}> |
|
|
|