Se termina la primer version entregable del reporte de facturas recibidas de Amazon

AmazonRelease1.1
unknown 2 years ago
parent bc7e4eefe3
commit 60b80b6e48
  1. 145
      src/Components/Clientes/Amazon/Reportes/AmazonNoPartes.tsx
  2. 133
      src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx
  3. 150
      src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx
  4. 8
      src/Components/Clientes/Amazon/Services/Amazon.Services.ts

@ -38,7 +38,10 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
const [DescripcionAgenteAduanal, setDescripcionAgenteAduanal] = useState('') const [DescripcionAgenteAduanal, setDescripcionAgenteAduanal] = useState('')
const [PaisOrigen, setPaisOrigen] = useState('') const [PaisOrigen, setPaisOrigen] = useState('')
const [UMF, setUMF] = useState('') const [UMF, setUMF] = useState('')
const [Search, setSearch] = useState('')
const openLink = (item: string) => {
window.open('https://www.amazon.com/dp/' + item)
}
const colsNoPartes = [ const colsNoPartes = [
{ {
@ -79,7 +82,9 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
{ {
name: 'Parte', name: 'Parte',
width: '110px', width: '110px',
selector: (row: I2096NoParte) => row.parte, cell: (row: I2096NoParte) => (
<div style={{cursor: 'pointer'}} onClick={() => openLink(row.parte)}>{row.parte}</div>
),
sortable: true sortable: true
}, },
{ {
@ -138,7 +143,7 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
const loadData = (row: I2096NoParte) => { const loadData = (row: I2096NoParte) => {
setIDParte(row.id) setIDParte(row.id)
setTipoOperacion(row.tipoOperacion) setTipoOperacion(row.tipoOperacion)
setFraccion(row.fraccion.substring(0,8)) setFraccion(row.fraccion.substring(0, 8))
setSubdivision(row.fraccion.slice(-2)) setSubdivision(row.fraccion.slice(-2))
setPaisOrigen(row.paisOrigen) setPaisOrigen(row.paisOrigen)
setDescripcionFactura(row.descripcionFactura) setDescripcionFactura(row.descripcionFactura)
@ -149,16 +154,25 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
useEffect(() => { useEffect(() => {
AmazonDS.Get$Pais$Claves() AmazonDS.Get$Pais$Claves()
.then((response) => { .then((response) => {
setPaisClaves(response.data) setPaisClaves(response.data)
}) })
.catch((e: Error) => { .catch((e: Error) => {
setHeader('Error')
setMsg('Ocurrio un error: ' + e)
setShowMsg(true)
return
})
}, [])
const loadInfo = () => {
if (Search.length < 9) {
setHeader('Error') setHeader('Error')
setMsg('Ocurrio un error: ' + e) setMsg('Proporcione el numero de parte, para poder continuar')
setShowMsg(true) setShowMsg(true)
return return
}) }
AmazonDS.NoPartesGet() AmazonDS.NoPartesGet(Search)
.then((response) => { .then((response) => {
dispatch(populateNoPartes(response.data)) dispatch(populateNoPartes(response.data))
}) })
@ -168,24 +182,52 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
setShowMsg(true) setShowMsg(true)
return return
}) })
}, []) }
return ( return (
<div> <div>
<Card> <Card>
<Card.Body> <Row style={{ paddingTop: '15px' }}>
<DataTable <Col xs={8}></Col>
noHeader <Col xs={1} style={{ textAlign: 'right' }}>
defaultSortFieldId={'id'} No parte
defaultSortAsc={true} </Col>
pagination <Col xs={1}>
highlightOnHover <Form.Control
columns={colsNoPartes} type="text"
data={mNoPartes.filter(function (el) { id="Search"
return el.id > 0 size="sm"
})} value={Search}
/> onChange={(e) => setSearch(e.target.value)}
</Card.Body> />
</Col>
<Col xs={1}>
<Button
onClick={() => {
loadInfo()
}}
>
Busca
</Button>
</Col>
</Row>
<Row>
<Col>
<Card.Body>
<DataTable
noHeader
defaultSortFieldId={'id'}
defaultSortAsc={true}
pagination
highlightOnHover
columns={colsNoPartes}
data={mNoPartes.filter(function (el) {
return el.id > 0
})}
/>
</Card.Body>
</Col>
</Row>
</Card> </Card>
<Modal <Modal
show={ShowModal} show={ShowModal}
@ -197,7 +239,7 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
> >
<Modal.Body> <Modal.Body>
<div style={{ height: '400px', overflow: 'scroll' }}> <div style={{ height: '400px', overflow: 'scroll' }}>
<Row style={{paddingTop: '15px'}}> <Row style={{ paddingTop: '15px' }}>
<Col xs={2}>T. Operacion</Col> <Col xs={2}>T. Operacion</Col>
<Col xs={3}> <Col xs={3}>
<Form.Control <Form.Control
@ -230,56 +272,69 @@ export function AmazonNoPartes(props: IAmazonNoPartesProps) {
/> />
</Col> </Col>
</Row> </Row>
<Row style={{paddingTop: '15px'}}> <Row style={{ paddingTop: '15px' }}>
<Col xs={2}> <Col xs={2}>
<Form.Label>Descripcion factura</Form.Label> <Form.Label>Descripcion factura</Form.Label>
</Col> </Col>
<Col xs={10}> <Col xs={10}>
<Form.Group className="mb-3"> <Form.Group className="mb-3">
<Form.Control as="textarea" rows={3} value={DescripcionFactura}/> <Form.Control
as="textarea"
rows={3}
value={DescripcionFactura}
/>
</Form.Group> </Form.Group>
</Col> </Col>
</Row> </Row>
<Row style={{paddingTop: '15px'}}> <Row style={{ paddingTop: '15px' }}>
<Col xs={2}> <Col xs={2}>
<Form.Label>Descripcion agente aduanal</Form.Label> <Form.Label>Descripcion agente aduanal</Form.Label>
</Col> </Col>
<Col xs={10}> <Col xs={10}>
<Form.Group className="mb-3"> <Form.Group className="mb-3">
<Form.Control as="textarea" rows={3} value={DescripcionAgenteAduanal}/> <Form.Control
as="textarea"
rows={3}
value={DescripcionAgenteAduanal}
/>
</Form.Group> </Form.Group>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col xs={2}>Pais Origen</Col> <Col xs={2}>Pais Origen</Col>
<Col xs={4}> <Col xs={4}>
<Form.Control <Form.Control
as="select" as="select"
value={PaisOrigen} value={PaisOrigen}
onChange={(e) => setPaisOrigen(e.target.value)} onChange={(e) => setPaisOrigen(e.target.value)}
className="form-select form-select-sm" className="form-select form-select-sm"
> { >
PaisClaves ? ( {' '}
PaisClaves.map((row) =>{ {PaisClaves
return <option value={row.clave_a3}>{row.paisNom}</option> ? PaisClaves.map((row) => {
}) return (
) : '' <option value={row.clave_a3}>{row.paisNom}</option>
} )
})
: ''}
</Form.Control> </Form.Control>
</Col> </Col>
<Col xs={4}>Unidad medida factura</Col> <Col xs={4}>Unidad medida factura</Col>
<Col xs={1}><Form.Control <Col xs={1}>
<Form.Control
defaultValue={UMF} defaultValue={UMF}
type="text" type="text"
placeholder="Unidad de medida factura" placeholder="Unidad de medida factura"
onChange={(e) => setUMF(e.target.value)} onChange={(e) => setUMF(e.target.value)}
size="sm" size="sm"
/> />
</Col> </Col>
</Row> </Row>
<Row style={{paddingTop: '15px'}}> <Row style={{ paddingTop: '15px' }}>
<Col xs={10}></Col> <Col xs={10}></Col>
<Col xs={1}><Button>Guarda</Button></Col> <Col xs={1}>
<Button>Guarda</Button>
</Col>
</Row> </Row>
</div> </div>
</Modal.Body> </Modal.Body>

@ -1,5 +1,5 @@
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, FormCheck, 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 { FaCheckCircle, FaFileExcel, FaQuestionCircle } from 'react-icons/fa' import { FaCheckCircle, FaFileExcel, FaQuestionCircle } from 'react-icons/fa'
@ -37,7 +37,9 @@ export default function RtpAmazonPendingInvoices(
const [Fin, setFin] = useState(currentDate(0)) const [Fin, setFin] = useState(currentDate(0))
const [filtro, setFiltro] = useState('') const [filtro, setFiltro] = useState('')
const [header, setHeader] = useState('') const [header, setHeader] = useState('')
const [IDFactura, setIDFactura] = useState(0)
const [show, setShowMsg] = useState(false) const [show, setShowMsg] = useState(false)
const [ShowModal, setShowModal] = useState(false)
const [msg, setMsg] = useState('') const [msg, setMsg] = useState('')
const msgColor = 'primary' const msgColor = 'primary'
@ -84,7 +86,6 @@ export default function RtpAmazonPendingInvoices(
}) })
} }
const downloadExceptionsFile = (id: number) => { const downloadExceptionsFile = (id: number) => {
DSAmazon.TerminaFactura(id) DSAmazon.TerminaFactura(id)
.then((response) => {}) .then((response) => {})
@ -95,7 +96,10 @@ export default function RtpAmazonPendingInvoices(
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', 'Formato de consultas (Exceptions Handling 2021).xlsx') link.setAttribute(
'download',
'Formato de consultas (Exceptions Handling 2021).xlsx'
)
document.body.appendChild(link) document.body.appendChild(link)
link.click() link.click()
} }
@ -108,7 +112,6 @@ export default function RtpAmazonPendingInvoices(
}) })
} }
useEffect(() => { useEffect(() => {
loadReport() loadReport()
}, []) }, [])
@ -132,13 +135,36 @@ export default function RtpAmazonPendingInvoices(
.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) => child.idHeader === IDMaster && !child.autorizado
(child.idHeader === IDMaster) &&
(child.autorizado) &&
(child.destinationHTSCode.toString().replaceAll('.','') !== child.fraccionGEMCO)
) )
}) })
return Exceptions[0].length ? Exceptions[0].length : 0 console.log(JSON.stringify(Exceptions[0]))
return Exceptions[0].length ? Exceptions[0].length : 0
}
const facturaTerminada = (row: I2096Headers) => {
DSAmazon.Se$Puede$Terminar$Factura(row.id)
.then((response) => {
if (response.data.respuesta.includes('lista')) {
setIDFactura(row.id)
setShowModal(true)
return
} else {
setIDFactura(0)
setHeader('Informativo')
setMsg(response.data.respuesta)
setShowMsg(true)
return
}
})
.catch((e: Error) => {
setIDFactura(0)
setHeader('Error')
setMsg('Ocurrio un error')
setShowMsg(true)
return
})
} }
return ( return (
@ -168,14 +194,10 @@ export default function RtpAmazonPendingInvoices(
<th style={{ width: '50px' }}>id</th> <th style={{ width: '50px' }}>id</th>
<th style={{ width: '50px' }}></th> <th style={{ width: '50px' }}></th>
<th style={{ width: '50px' }}></th> <th style={{ width: '50px' }}></th>
<th style={{ width: '50px' }}></th>
<th style={{ width: '80px' }}>Commercial Invoice Date</th> <th style={{ width: '80px' }}>Commercial Invoice Date</th>
<th style={{ width: '150px' }}>Invoice Number</th> <th style={{ width: '150px' }}>Invoice Number</th>
<th style={{ width: '50px' }}>Name</th> <th style={{ width: '50px' }}>Name</th>
{/* <th>Trailer Number</th>
<th>Trailer Id</th>
<th>Por Of Loading</th>
<th>Port of entry</th>
<th>Payments Terms</th> */}
<th style={{ width: '100px' }}>Incoterms</th> <th style={{ width: '100px' }}>Incoterms</th>
<th style={{ textAlign: 'center' }}>HAWB</th> <th style={{ textAlign: 'center' }}>HAWB</th>
<th>Qty Unit of measure</th> <th>Qty Unit of measure</th>
@ -226,12 +248,15 @@ export default function RtpAmazonPendingInvoices(
</IconContext.Provider> </IconContext.Provider>
)} )}
</td> </td>
<td>{MasterData.id}</td> <td>{MasterData.id}</td>
<td> <td>
{existsExeptions(MasterData.id) > 0 ? ( {existsExeptions(MasterData.id) > 0 ? (
<div <div
onClick={() => downloadExceptionsFile(MasterData.id)} onClick={() =>
title='Archivo de excepciones' downloadExceptionsFile(MasterData.id)
}
title="Archivo de excepciones"
> >
<IconContext.Provider <IconContext.Provider
value={{ color: 'orange', size: '20px' }} value={{ color: 'orange', size: '20px' }}
@ -254,30 +279,28 @@ export default function RtpAmazonPendingInvoices(
</div> </div>
) : null} ) : null}
</td> </td>
<td>
<FormCheck
className="form-check form-switch form-control-sm"
id="switchEnabled"
type="switch"
checked={false}
onChange={() => {
facturaTerminada(MasterData)
}
}
label=""
/>
</td>
<td style={{ width: '80px', textAlign: 'center' }}> <td style={{ width: '80px', textAlign: 'center' }}>
{MasterData.commercialInvoiceDate} {MasterData.commercialInvoiceDate}
</td> </td>
<td style={{ width: '150px' }}> <td style={{ width: '150px' }}>
{MasterData.invoiceNumber} {MasterData.invoiceNumber}
</td> </td>
<td style={{ width: '50px', textAlign:'center' }}> <td style={{ width: '50px', textAlign: 'center' }}>
{MasterData.name} {MasterData.name}
</td> </td>
{/* <td style={{ textAlign: 'center' }}>
{MasterData.trailerNumber}
</td>
<td style={{ textAlign: 'center' }}>
{MasterData.trailerId}
</td>
<td style={{ textAlign: 'center' }}>
{MasterData.porOfLoading}
</td>
<td style={{ textAlign: 'center' }}>
{MasterData.portOfEntry}
</td>
<td style={{ textAlign: 'center' }}>
{MasterData.paymentsTerms}
</td> */}
<td style={{ width: '100px', textAlign: 'center' }}> <td style={{ width: '100px', textAlign: 'center' }}>
{MasterData.incoterms} {MasterData.incoterms}
</td> </td>
@ -357,7 +380,7 @@ export default function RtpAmazonPendingInvoices(
</th> </th>
<th <th
style={{ style={{
width: '120px', width: '200px',
backgroundColor: '#D3E0EA', backgroundColor: '#D3E0EA',
color: '#346288', color: '#346288',
textAlign: 'center' textAlign: 'center'
@ -564,6 +587,50 @@ export default function RtpAmazonPendingInvoices(
</div> </div>
</Card.Body> </Card.Body>
</Card> </Card>
<Modal
show={ShowModal}
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'}>
La factura esta lista para terminarse, desea terminarla?
</Alert>
</Col>
<Col xs={1}></Col>
</Row>
<Row style={{ paddingTop: '15px' }}>
<Col xs={6} style={{ textAlign: 'center' }}>
<Button
variant="secondary"
onClick={() => {
setShowModal(false)
}}
>
&nbsp;&nbsp;No&nbsp;&nbsp;
</Button>
</Col>
<Col xs={6} style={{ textAlign: 'center' }}>
<Button
variant="danger"
onClick={() => {
downloadExcel(IDFactura)
}}
>
&nbsp;&nbsp;Si&nbsp;&nbsp;
</Button>
</Col>
</Row>
</div>
</Modal.Body>
</Modal>
<MsgInformativo <MsgInformativo
show={show} show={show}
msg={msg} msg={msg}

@ -57,13 +57,21 @@ export default function RtpAmazonPendingInvoivesDetail(
const [show, setShowMsg] = useState(false) const [show, setShowMsg] = useState(false)
const [Show, setShow] = useState(false) const [Show, setShow] = useState(false)
const [msg, setMsg] = useState('') const [msg, setMsg] = useState('')
const [RequerimientoNormativo, setRequerimientoNormativo] = useState(props.detail.requerimientoNormativo ? props.detail.requerimientoNormativo : '') const [RequerimientoNormativo, setRequerimientoNormativo] = useState(
const [Comentarios, setComentarios] = useState(props.detail.comentarios ? props.detail.comentarios : 'Clasificacion Incorrecta') props.detail.requerimientoNormativo
? props.detail.requerimientoNormativo
: ''
)
const [Comentarios, setComentarios] = useState(
props.detail.comentarios
? props.detail.comentarios
: 'Clasificacion Incorrecta'
)
const msgColor = 'primary' const msgColor = 'primary'
const openLink = (item: string) => { const openLink = (item: string) => {
window.open('https://www.amazon.com/dp/' + item) window.open('https://www.amazon.com/dp/' + item)
} }
const target = React.useRef(null); const target = React.useRef(null)
const UpdateInfo = (Invoice: I2096Headers, Detail: I2096Detail[]) => { const UpdateInfo = (Invoice: I2096Headers, Detail: I2096Detail[]) => {
const updatedInvoice: I2096Headers = { const updatedInvoice: I2096Headers = {
@ -141,7 +149,8 @@ export default function RtpAmazonPendingInvoivesDetail(
} }
useEffect(() => { useEffect(() => {
if (UserChanged && EstatusSwith && !props.detail.fraccionGEMCO) autoriceItem(props.detail.id) if (UserChanged && EstatusSwith && !props.detail.fraccionGEMCO)
autoriceItem(props.detail.id)
}, [EstatusSwith, UserChanged]) }, [EstatusSwith, UserChanged])
const popover = ( const popover = (
@ -152,7 +161,7 @@ export default function RtpAmazonPendingInvoivesDetail(
right? right?
</Popover.Body> </Popover.Body>
</Popover> </Popover>
); )
return ( return (
<> <>
@ -194,11 +203,12 @@ export default function RtpAmazonPendingInvoivesDetail(
</td> </td>
<td <td
style={{ style={{
textAlign: 'center' textAlign: 'center',
fontSize:'18px'
}} }}
className="DetailData" className="DetailData"
> >
{props.detail.destinationHTSCode} &nbsp;&nbsp;{props.detail.destinationHTSCode}
</td> </td>
<td <td
style={{ style={{
@ -246,8 +256,8 @@ export default function RtpAmazonPendingInvoivesDetail(
IDDetail={props.detail.id} IDDetail={props.detail.id}
FraccionOriginal={props.detail.destinationHTSCode} FraccionOriginal={props.detail.destinationHTSCode}
ConfirmaFraccion={props.detail.confirmaFraccion} ConfirmaFraccion={props.detail.confirmaFraccion}
/* parentFunction={parentFunction} */ /* parentFunction={parentFunction} */
Habilitado={props.Habilitado} Habilitado={props.Habilitado}
/> />
</td> </td>
<td <td
@ -263,9 +273,18 @@ export default function RtpAmazonPendingInvoivesDetail(
displayType={'input'} displayType={'input'}
style={{ style={{
fontSize: '18px', fontSize: '18px',
backgroundColor: '#F1EEF9', backgroundColor:
border: '2px solid #5923F6', props.detail.validaFraccionOriginal === 0
color: '#5923F6', ? '#FFFAF2 '
: '#E5F7B6',
border:
props.detail.validaFraccionOriginal === 0
? '2px solid #F9A721'
: '2px solid green',
color:
props.detail.validaFraccionOriginal === 0
? '#5923F6'
: '#000000',
width: '115px', width: '115px',
textAlign: 'right', textAlign: 'right',
borderRadius: '10px' borderRadius: '10px'
@ -369,7 +388,11 @@ export default function RtpAmazonPendingInvoivesDetail(
<td <td
style={{ style={{
textAlign: 'center', textAlign: 'center',
paddingLeft: '30px' paddingLeft: '30px',
visibility:
props.detail.destinationHTSCode.replaceAll('.', '').trim()!==(props.detail.fraccionGEMCO ? props.detail.fraccionGEMCO.trim() : '')
? 'visible'
: 'hidden'
}} }}
className="DetailData" className="DetailData"
> >
@ -378,9 +401,10 @@ export default function RtpAmazonPendingInvoivesDetail(
id="switchEnabled" id="switchEnabled"
type="switch" type="switch"
disabled={ disabled={
(props.detail.fraccionGEMCO===props.detail.destinationHTSCode.replaceAll('.','')) props.detail.fraccionGEMCO ===
props.detail.destinationHTSCode.replaceAll('.', '')
} }
checked={EstatusSwith && props.detail.autorizado /* (props.detail.fraccionGEMCO===props.detail.destinationHTSCode.replace('.','')) */} checked={EstatusSwith && props.detail.autorizado}
onChange={() => { onChange={() => {
setEstatusSwitch(!EstatusSwith) setEstatusSwitch(!EstatusSwith)
setUserChanged(true) setUserChanged(true)
@ -389,48 +413,60 @@ export default function RtpAmazonPendingInvoivesDetail(
label="" label=""
/> />
</td> </td>
<td style={{visibility : RequerimientoNormativo.length===0 ? 'hidden' : 'visible'}}> <OverlayTrigger <td
placement="bottom" style={{
overlay={<Tooltip id="button-tooltip-2">{RequerimientoNormativo}</Tooltip>} visibility:
> RequerimientoNormativo.length === 0 ? 'hidden' : 'visible'
{({ ref, ...triggerHandler }) => ( }}
<Button
variant="light"
{...triggerHandler}
> >
<IconContext.Provider {' '}
value={{ <OverlayTrigger
color: 'blue', placement="bottom"
size: '25px' overlay={
}} <Tooltip id="button-tooltip-2">{RequerimientoNormativo}</Tooltip>
> }
<AiOutlineFileSearch /> >
</IconContext.Provider> {({ ref, ...triggerHandler }) => (
<span className="ms-1"></span> <Button variant="light" {...triggerHandler}>
</Button> <IconContext.Provider
)} value={{
</OverlayTrigger></td> color: 'blue',
<td style={{visibility : RequerimientoNormativo.length===0 ? 'hidden' : 'visible'}}> <OverlayTrigger size: '25px'
placement="bottom" }}
overlay={<Tooltip id="button-tooltip-2">{Comentarios}</Tooltip>} >
> <AiOutlineFileSearch />
{({ ref, ...triggerHandler }) => ( </IconContext.Provider>
<Button <span className="ms-1"></span>
variant="light" </Button>
{...triggerHandler} )}
</OverlayTrigger>
</td>
<td
style={{
visibility:
RequerimientoNormativo.length === 0 ? 'hidden' : 'visible'
}}
> >
<IconContext.Provider {' '}
value={{ <OverlayTrigger
color: 'green', placement="bottom"
size: '25px' overlay={<Tooltip id="button-tooltip-2">{Comentarios}</Tooltip>}
}} >
> {({ ref, ...triggerHandler }) => (
<BsFillChatRightTextFill /> <Button variant="light" {...triggerHandler}>
</IconContext.Provider> <IconContext.Provider
<span className="ms-1"></span> value={{
</Button> color: 'green',
)} size: '25px'
</OverlayTrigger></td> }}
>
<BsFillChatRightTextFill />
</IconContext.Provider>
<span className="ms-1"></span>
</Button>
)}
</OverlayTrigger>
</td>
</tr> </tr>
<Modal <Modal
@ -453,7 +489,7 @@ export default function RtpAmazonPendingInvoivesDetail(
<Col xs={1}></Col> <Col xs={1}></Col>
</Row> </Row>
<Row style={{ paddingTop: '15px' }}> <Row style={{ paddingTop: '15px' }}>
<Col xs={3}>Reparto normativo</Col> <Col xs={3}>Cumplimiento normativo</Col>
<Col xs={8}> <Col xs={8}>
{' '} {' '}
<Form.Control <Form.Control
@ -479,7 +515,7 @@ export default function RtpAmazonPendingInvoivesDetail(
? Comentarios ? Comentarios
: 'Clasificacion incorrecta.' : 'Clasificacion incorrecta.'
} }
onChange={(e) => setRequerimientoNormativo(e.target.value)} onChange={(e) => setComentarios(e.target.value)}
/> />
</Col> </Col>
<Col>&nbsp;</Col> <Col>&nbsp;</Col>

@ -7,6 +7,7 @@ import DTO2096Descripcion from '../DTO/DTO2096Descripcion'
import I2096NoParte from '../Interfaces/I2096NoParte' import I2096NoParte from '../Interfaces/I2096NoParte'
import I2096PaisClave from '../Interfaces/I2096PaisClave' import I2096PaisClave from '../Interfaces/I2096PaisClave'
import DTO2096ItemAutoriza from '../DTO/DTO2096ItemAutoriza' import DTO2096ItemAutoriza from '../DTO/DTO2096ItemAutoriza'
import DTORespuesta from '../../ZincInternacional/DTO/DTORespuesta'
class AmazonDataService { class AmazonDataService {
GetPendingInvoice() { GetPendingInvoice() {
@ -51,8 +52,11 @@ class AmazonDataService {
console.log(error) console.log(error)
}) })
} }
NoPartesGet() { NoPartesGet(Search: string) {
return http.get<I2096NoParte[]>(`/AmazonInvoice/NoPartesGet`) return http.get<I2096NoParte[]>(`/AmazonInvoice/NoPartesGet?Search=${Search}`)
}
Se$Puede$Terminar$Factura(id: number) {
return http.get<DTORespuesta>(`/AmazonInvoice/SePuedeTerminarFactura?id=${id}`)
} }
} }
export default new AmazonDataService() export default new AmazonDataService()

Loading…
Cancel
Save