|
|
@ -1,5 +1,14 @@ |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { useEffect, useState } from 'react' |
|
|
|
import { Button, Card, Col, Form, Row, Table } from 'react-bootstrap' |
|
|
|
import { |
|
|
|
|
|
|
|
Alert, |
|
|
|
|
|
|
|
Button, |
|
|
|
|
|
|
|
Card, |
|
|
|
|
|
|
|
Col, |
|
|
|
|
|
|
|
Form, |
|
|
|
|
|
|
|
Modal, |
|
|
|
|
|
|
|
Row, |
|
|
|
|
|
|
|
Table |
|
|
|
|
|
|
|
} from 'react-bootstrap' |
|
|
|
import { IconContext } from 'react-icons' |
|
|
|
import { IconContext } from 'react-icons' |
|
|
|
import { BsChevronDown, BsChevronRight, BsSearch } from 'react-icons/bs' |
|
|
|
import { BsChevronDown, BsChevronRight, BsSearch } from 'react-icons/bs' |
|
|
|
import { |
|
|
|
import { |
|
|
@ -27,6 +36,8 @@ import { |
|
|
|
import RtpAmazonFinishedClasificationInvoicesDetail from './RptAmazonFinishedClasificationInvoicesDetail' |
|
|
|
import RtpAmazonFinishedClasificationInvoicesDetail from './RptAmazonFinishedClasificationInvoicesDetail' |
|
|
|
// Redux
|
|
|
|
// Redux
|
|
|
|
import { useDispatch, useSelector } from 'react-redux' |
|
|
|
import { useDispatch, useSelector } from 'react-redux' |
|
|
|
|
|
|
|
import DTO2096PerfilesParecidos from '../../../DTO/DTO2096PerfilesParecidos' |
|
|
|
|
|
|
|
import { SelectEstatus } from '../../../../../Corresponsales/CuentasComplementarias/SelectEstatus/SelectEstatus' |
|
|
|
|
|
|
|
|
|
|
|
export interface IRptAmazonFinishedClasificationInvoicesProps {} |
|
|
|
export interface IRptAmazonFinishedClasificationInvoicesProps {} |
|
|
|
|
|
|
|
|
|
|
@ -37,22 +48,30 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
const mInvoices = useSelector( |
|
|
|
const mInvoices = useSelector( |
|
|
|
(state: RootState) => state.AmazonInvoices.Invoice |
|
|
|
(state: RootState) => state.AmazonInvoices.Invoice |
|
|
|
) |
|
|
|
) |
|
|
|
const [Inicio, setInicio] = useState(currentDate(0)) |
|
|
|
const [Data, setData] = useState<DTO2096PerfilesParecidos[]>([]) |
|
|
|
|
|
|
|
/* const [Inicio, setInicio] = useState(currentDate(0)) |
|
|
|
const [Fin, setFin] = useState(currentDate(0)) |
|
|
|
const [Fin, setFin] = useState(currentDate(0)) |
|
|
|
const [filtro, setFiltro] = useState('') |
|
|
|
const [filtro, setFiltro] = useState('') |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
const [Accion, setAccion] = useState(0) |
|
|
|
|
|
|
|
const [Estatus, setEstatus] = useState(0) |
|
|
|
|
|
|
|
const [IDInvoice, setIDInvoice] = useState(0) |
|
|
|
|
|
|
|
const [IDClasificador, setIDClasificador] = useState(0) |
|
|
|
|
|
|
|
const [Clasificador, setClasificador] = useState('') |
|
|
|
|
|
|
|
const [ShowModal, setShowModal] = useState(false) |
|
|
|
const [header, setHeader] = useState('') |
|
|
|
const [header, setHeader] = useState('') |
|
|
|
const [show, setShowMsg] = useState(false) |
|
|
|
const [show, setShowMsg] = useState(false) |
|
|
|
const [msg, setMsg] = useState('') |
|
|
|
const [msg, setMsg] = useState('') |
|
|
|
const msgColor = 'primary' |
|
|
|
const msgColor = 'primary' |
|
|
|
|
|
|
|
|
|
|
|
function currentDate(days: number): string { |
|
|
|
/* function currentDate(days: number): string { |
|
|
|
var today = new Date() |
|
|
|
var today = new Date() |
|
|
|
today.setDate(today.getDate() + days) |
|
|
|
today.setDate(today.getDate() + days) |
|
|
|
var dd = String(today.getDate()).padStart(2, '0') |
|
|
|
var dd = String(today.getDate()).padStart(2, '0') |
|
|
|
var mm = String(today.getMonth() + 1).padStart(2, '0') |
|
|
|
var mm = String(today.getMonth() + 1).padStart(2, '0') |
|
|
|
var yyyy = today.getFullYear() |
|
|
|
var yyyy = today.getFullYear() |
|
|
|
return yyyy + '-' + mm + '-' + dd |
|
|
|
return yyyy + '-' + mm + '-' + dd |
|
|
|
} |
|
|
|
} */ |
|
|
|
|
|
|
|
|
|
|
|
const loadReport = () => { |
|
|
|
const loadReport = () => { |
|
|
|
DSAmazon.AmazonFinishedClasificationInvoiceGET() |
|
|
|
DSAmazon.AmazonFinishedClasificationInvoiceGET() |
|
|
@ -95,8 +114,31 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
loadReport() |
|
|
|
loadReport() |
|
|
|
|
|
|
|
DSAmazon.PerfilesParecidosGet('Clasificador') |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
setData(response.data) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
|
|
|
alert('Ocurrio un error' + e.message.toString()) |
|
|
|
|
|
|
|
}) |
|
|
|
}, []) |
|
|
|
}, []) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getUser = (Id: number) => { |
|
|
|
|
|
|
|
const NoAsignado = ' - NO ASIGNADO -' |
|
|
|
|
|
|
|
if (Id === 0) return NoAsignado |
|
|
|
|
|
|
|
else if (Data.length) { |
|
|
|
|
|
|
|
const Usuario = Data.filter((item) => item.idUsuario === Id) |
|
|
|
|
|
|
|
return Usuario[0].nombre ? Usuario[0].nombre : NoAsignado |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return NoAsignado |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
if (ShowModal) { |
|
|
|
|
|
|
|
setClasificador(getUser(IDClasificador)) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, [ShowModal]) |
|
|
|
|
|
|
|
|
|
|
|
const changeToggle = (row: I2096Headers) => { |
|
|
|
const changeToggle = (row: I2096Headers) => { |
|
|
|
let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === row.id) |
|
|
|
let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === row.id) |
|
|
|
const Obj = { ...Invoice[0] } |
|
|
|
const Obj = { ...Invoice[0] } |
|
|
@ -104,9 +146,21 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
dispatch(updateInvoice(Obj)) |
|
|
|
dispatch(updateInvoice(Obj)) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const returnTO = () => { |
|
|
|
|
|
|
|
DSAmazon.InvoiceReturnState(IDInvoice, 0) |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
loadReport() |
|
|
|
|
|
|
|
setShowModal(false) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
|
|
|
alert('Ocurrio un error' + e.message.toString()) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const openLink = (item: string) => { |
|
|
|
const openLink = (item: string) => { |
|
|
|
window.open('https://www.amazon.com/dp/' + item) |
|
|
|
window.open('https://www.amazon.com/dp/' + item) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<Card> |
|
|
|
<Card> |
|
|
@ -149,7 +203,8 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
<th>Tot Charge or allowance</th> |
|
|
|
<th>Tot Charge or allowance</th> |
|
|
|
<th>Tot currency ISO code</th> |
|
|
|
<th>Tot currency ISO code</th> |
|
|
|
<th>Tot Monetary amount</th> |
|
|
|
<th>Tot Monetary amount</th> |
|
|
|
<th>Total de partidas</th> |
|
|
|
<th>Tot partidas</th> |
|
|
|
|
|
|
|
<th></th> |
|
|
|
</tr> |
|
|
|
</tr> |
|
|
|
</thead> |
|
|
|
</thead> |
|
|
|
<tbody> |
|
|
|
<tbody> |
|
|
@ -250,6 +305,22 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
return row.detail.length |
|
|
|
return row.detail.length |
|
|
|
})} |
|
|
|
})} |
|
|
|
</td> |
|
|
|
</td> |
|
|
|
|
|
|
|
<td> |
|
|
|
|
|
|
|
<Form.Control |
|
|
|
|
|
|
|
as="select" |
|
|
|
|
|
|
|
className="form-select form-select-sm" |
|
|
|
|
|
|
|
onChange={(e) => { |
|
|
|
|
|
|
|
setIDInvoice(MasterData.id) |
|
|
|
|
|
|
|
setAccion(parseInt(e.target.value)) |
|
|
|
|
|
|
|
setIDClasificador(MasterData.clasificador) |
|
|
|
|
|
|
|
setEstatus(MasterData.estatus) |
|
|
|
|
|
|
|
setShowModal(true) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<option value="0">Ok</option> |
|
|
|
|
|
|
|
<option value="1">Regresa</option> |
|
|
|
|
|
|
|
</Form.Control> |
|
|
|
|
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tr> |
|
|
|
{MasterData.max ? ( |
|
|
|
{MasterData.max ? ( |
|
|
|
<tr |
|
|
|
<tr |
|
|
@ -259,7 +330,7 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
: 'normalSelected2' |
|
|
|
: 'normalSelected2' |
|
|
|
} |
|
|
|
} |
|
|
|
> |
|
|
|
> |
|
|
|
<th colSpan={15}> |
|
|
|
<th colSpan={18}> |
|
|
|
<table |
|
|
|
<table |
|
|
|
className="childTable" |
|
|
|
className="childTable" |
|
|
|
style={{ width: '1450px' }} |
|
|
|
style={{ width: '1450px' }} |
|
|
@ -489,6 +560,52 @@ export default function RptAmazonFinishedClasificationInvoices( |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</Card.Body> |
|
|
|
</Card.Body> |
|
|
|
</Card> |
|
|
|
</Card> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<Modal |
|
|
|
|
|
|
|
show={ShowModal} |
|
|
|
|
|
|
|
onHide={() => { |
|
|
|
|
|
|
|
setShowModal(false) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
size={'sm'} |
|
|
|
|
|
|
|
dialogClassName={'modal-50w'} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
<Modal.Body> |
|
|
|
|
|
|
|
<div style={{ height: '150px' }}> |
|
|
|
|
|
|
|
<Row style={{ paddingTop: '15px' }}> |
|
|
|
|
|
|
|
<Col xs={1}></Col> |
|
|
|
|
|
|
|
<Col xs={10}> |
|
|
|
|
|
|
|
<Alert key={'danger'} variant={'danger'}> |
|
|
|
|
|
|
|
¿Esta seguro de regresarle esta factura a: {Clasificador}? |
|
|
|
|
|
|
|
</Alert> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
<Col xs={1}></Col> |
|
|
|
|
|
|
|
</Row> |
|
|
|
|
|
|
|
<Row style={{ paddingTop: '15px' }}> |
|
|
|
|
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
|
|
|
|
<Button |
|
|
|
|
|
|
|
variant="secondary" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
setShowModal(false) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
No |
|
|
|
|
|
|
|
</Button> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
<Col xs={6} style={{ textAlign: 'center' }}> |
|
|
|
|
|
|
|
<Button |
|
|
|
|
|
|
|
variant="danger" |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
returnTO() |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
Si |
|
|
|
|
|
|
|
</Button> |
|
|
|
|
|
|
|
</Col> |
|
|
|
|
|
|
|
</Row> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</Modal.Body> |
|
|
|
|
|
|
|
</Modal> |
|
|
|
|
|
|
|
|
|
|
|
<MsgInformativo |
|
|
|
<MsgInformativo |
|
|
|
show={show} |
|
|
|
show={show} |
|
|
|
msg={msg} |
|
|
|
msg={msg} |
|
|
|