|
|
|
@ -1,30 +1,149 @@ |
|
|
|
|
import * as React from 'react' |
|
|
|
|
import { useState } from 'react' |
|
|
|
|
import { |
|
|
|
|
Alert, |
|
|
|
|
Button, |
|
|
|
|
Col, |
|
|
|
|
FormCheck, |
|
|
|
|
Modal, |
|
|
|
|
Row |
|
|
|
|
} from 'react-bootstrap' |
|
|
|
|
import { IconContext } from 'react-icons' |
|
|
|
|
import { FaCheckCircle, FaQuestionCircle } from 'react-icons/fa' |
|
|
|
|
import { ImCross } from 'react-icons/im' |
|
|
|
|
import { MsgInformativo } from '../../../Utils/Toast/msgInformativo' |
|
|
|
|
import { ComboDescripcion } from '../Components/ComboSelect/ComboDescripcion' |
|
|
|
|
import { ComboFraccion } from '../Components/ComboSelect/ComboFraccion' |
|
|
|
|
import { TextBoxFraccion } from '../Components/TextBox/TextBoxFraccion' |
|
|
|
|
import DTO2096ItemAutoriza from '../DTO/DTO2096ItemAutoriza' |
|
|
|
|
import I2096Detail from '../Interfaces/I2096Detail' |
|
|
|
|
import I2096Headers from '../Interfaces/I2096Header' |
|
|
|
|
import DSAmazon from '../Services/Amazon.Services' |
|
|
|
|
// Redux
|
|
|
|
|
import { RootState } from '../../../../store/store' |
|
|
|
|
import { useDispatch, useSelector } from 'react-redux' |
|
|
|
|
import { |
|
|
|
|
initializeInvoice, |
|
|
|
|
populateInvoices, |
|
|
|
|
updateInvoice, |
|
|
|
|
deleteInvoice |
|
|
|
|
} from '../../../../store/features/Clientes/2096/AmazonInvoices' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export interface IRtpAmazonPendingInvoivesDetailProps { |
|
|
|
|
IDMaster: number |
|
|
|
|
detail: I2096Detail |
|
|
|
|
Habilitado : boolean |
|
|
|
|
Habilitado: boolean |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export default function RtpAmazonPendingInvoivesDetail( |
|
|
|
|
props: IRtpAmazonPendingInvoivesDetailProps |
|
|
|
|
) { |
|
|
|
|
const dispatch = useDispatch() |
|
|
|
|
const mInvoices = useSelector( |
|
|
|
|
(state: RootState) => state.AmazonInvoices.Invoice |
|
|
|
|
) |
|
|
|
|
const [ShowModal, setShowModal] = useState(false) |
|
|
|
|
const [header, setHeader] = useState('') |
|
|
|
|
const [show, setShowMsg] = useState(false) |
|
|
|
|
const [msg, setMsg] = useState('') |
|
|
|
|
const msgColor = 'primary' |
|
|
|
|
const openLink = (item: string) => { |
|
|
|
|
window.open('https://www.amazon.com/dp/' + item) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const parentFunction = (fraccion: string) => { |
|
|
|
|
alert('update') |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const editArray = (id: number, val: boolean) => { |
|
|
|
|
/* const newData = mInvoices; |
|
|
|
|
for (const invoice of newData) { |
|
|
|
|
for (const det of invoice.detail) { |
|
|
|
|
det.autorizado=true |
|
|
|
|
} |
|
|
|
|
} */ |
|
|
|
|
|
|
|
|
|
const newData = mInvoices.map((invoice) => { |
|
|
|
|
if (invoice.id === props.IDMaster) { |
|
|
|
|
return { |
|
|
|
|
...invoice, |
|
|
|
|
detail: [...invoice.detail] |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
return invoice |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
dispatch(initializeInvoice([])) |
|
|
|
|
dispatch(populateInvoices(newData))
|
|
|
|
|
/* const Invoice = mInvoices |
|
|
|
|
.filter((el) => el.id === props.IDMaster) |
|
|
|
|
.map((el) => { |
|
|
|
|
return el |
|
|
|
|
}) |
|
|
|
|
const newData = Invoice[0].detail.map((el) => { |
|
|
|
|
if (el.id === id) { |
|
|
|
|
return { |
|
|
|
|
...el, |
|
|
|
|
autorizado: true |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return el |
|
|
|
|
}) |
|
|
|
|
const updatedInvoice: I2096Headers[] = [{ |
|
|
|
|
id: props.IDMaster, |
|
|
|
|
commercialInvoiceDate: Invoice[0].commercialInvoiceDate, |
|
|
|
|
invoiceNumber: Invoice[0].invoiceNumber, |
|
|
|
|
trailerNumber: Invoice[0].trailerNumber, |
|
|
|
|
trailerId: Invoice[0].trailerId, |
|
|
|
|
porOfLoading: Invoice[0].porOfLoading, |
|
|
|
|
portOfEntry: Invoice[0].portOfEntry, |
|
|
|
|
paymentsTerms: Invoice[0].paymentsTerms, |
|
|
|
|
incoterms: Invoice[0].incoterms, |
|
|
|
|
hawb: Invoice[0].hawb, |
|
|
|
|
totalInvoiceQuantityUnitOfMeasure: |
|
|
|
|
Invoice[0].totalInvoiceQuantityUnitOfMeasure, |
|
|
|
|
totalInvoiceQuantity: Invoice[0].totalInvoiceQuantity, |
|
|
|
|
totalInvoiceWeightUnitOfMeasure: |
|
|
|
|
Invoice[0].totalInvoiceWeightUnitOfMeasure, |
|
|
|
|
totalInvoiceWeight: Invoice[0].totalInvoiceWeight, |
|
|
|
|
totalInvoiceValueChargeOrAllowance: |
|
|
|
|
Invoice[0].totalInvoiceValueChargeOrAllowance, |
|
|
|
|
totalInvoiceValueCurrencyISOCode: |
|
|
|
|
Invoice[0].totalInvoiceValueCurrencyISOCode, |
|
|
|
|
totalInvoiceValueMonetaryAmount: |
|
|
|
|
Invoice[0].totalInvoiceValueMonetaryAmount, |
|
|
|
|
footNote: Invoice[0].footNote, |
|
|
|
|
archivo: Invoice[0].archivo, |
|
|
|
|
fCreacion: Invoice[0].fCreacion, |
|
|
|
|
estatus: Invoice[0].estatus, |
|
|
|
|
max: true, |
|
|
|
|
detail: [] |
|
|
|
|
}] |
|
|
|
|
dispatch(updateInvoice) |
|
|
|
|
console.log(JSON.stringify(updateInvoice)) */ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const autoriceItem = (id: number) => { |
|
|
|
|
const data: DTO2096ItemAutoriza = { |
|
|
|
|
id: id, |
|
|
|
|
autoriza: !props.detail.autorizado |
|
|
|
|
} |
|
|
|
|
DSAmazon.Set$Autorizado(data) |
|
|
|
|
.then((response) => { |
|
|
|
|
console.log(JSON.stringify(response.data)) |
|
|
|
|
editArray(id, !props.detail.autorizado) |
|
|
|
|
}) |
|
|
|
|
.catch((e: Error) => { |
|
|
|
|
/* setHeader('Error') |
|
|
|
|
setMsg('Ocurrio un error') |
|
|
|
|
setShowMsg(true) |
|
|
|
|
return */ |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<tr> |
|
|
|
@ -73,7 +192,7 @@ export default function RtpAmazonPendingInvoivesDetail( |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
style={{ |
|
|
|
|
textAlign: 'center',
|
|
|
|
|
textAlign: 'center' |
|
|
|
|
}} |
|
|
|
|
className="DetailData" |
|
|
|
|
> |
|
|
|
@ -108,7 +227,7 @@ export default function RtpAmazonPendingInvoivesDetail( |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
style={{ |
|
|
|
|
textAlign: 'center', |
|
|
|
|
textAlign: 'center' |
|
|
|
|
}} |
|
|
|
|
className="DetailData" |
|
|
|
|
> |
|
|
|
@ -118,7 +237,6 @@ export default function RtpAmazonPendingInvoivesDetail( |
|
|
|
|
FraccionOriginal={props.detail.destinationHTSCode} |
|
|
|
|
parentFunction={parentFunction} |
|
|
|
|
Habilitado={props.Habilitado} |
|
|
|
|
|
|
|
|
|
/> |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
@ -225,7 +343,78 @@ export default function RtpAmazonPendingInvoivesDetail( |
|
|
|
|
> |
|
|
|
|
{props.detail.totalUnitValueMonetaryAmount} |
|
|
|
|
</td> |
|
|
|
|
<td |
|
|
|
|
style={{ |
|
|
|
|
textAlign: 'center', |
|
|
|
|
paddingLeft: '30px' |
|
|
|
|
}} |
|
|
|
|
className="DetailData" |
|
|
|
|
> |
|
|
|
|
<FormCheck |
|
|
|
|
id="switchEnabled" |
|
|
|
|
type="switch" |
|
|
|
|
checked={props.detail.autorizado} |
|
|
|
|
onChange={() => { |
|
|
|
|
setShowModal(!props.detail.autorizado) |
|
|
|
|
}} |
|
|
|
|
className="mb-8" |
|
|
|
|
label="" |
|
|
|
|
/> |
|
|
|
|
</td> |
|
|
|
|
</tr> |
|
|
|
|
<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 que esta fraccion ya la autorizo Amazon? |
|
|
|
|
</Alert> |
|
|
|
|
</Col> |
|
|
|
|
<Col xs={1}></Col> |
|
|
|
|
</Row> |
|
|
|
|
<Row> |
|
|
|
|
<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={() => { |
|
|
|
|
autoriceItem(props.detail.id) |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
Si |
|
|
|
|
</Button> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
</div> |
|
|
|
|
</Modal.Body> |
|
|
|
|
</Modal> |
|
|
|
|
<MsgInformativo |
|
|
|
|
show={show} |
|
|
|
|
msg={msg} |
|
|
|
|
header={header} |
|
|
|
|
msgColor={msgColor} |
|
|
|
|
closeToast={() => { |
|
|
|
|
setShowMsg(false) |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
</> |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|