parent
e72f805d4a
commit
4a112b8c14
@ -1,19 +1,137 @@ |
|||||||
import * as React from 'react'; |
import * as React from 'react' |
||||||
import { Form } from 'react-bootstrap'; |
import { useState } from 'react' |
||||||
|
import { Button, Col, Form, Modal, Row } from 'react-bootstrap' |
||||||
|
import * as CurrencyFormat from 'react-currency-format' |
||||||
|
import { MsgInformativo } from '../../../../Utils/Toast/msgInformativo' |
||||||
|
import DTO2096Fraccion from '../../DTO/DTO2096Fraccion' |
||||||
|
import DSAmazon from '../../Services/Amazon.Services' |
||||||
|
|
||||||
export interface IComboSelectProps { |
export interface IComboSelectProps { |
||||||
|
IDDetail: number |
||||||
|
FraccionOriginal: string |
||||||
} |
} |
||||||
|
|
||||||
export function ComboSelect (props: IComboSelectProps) { |
export function ComboSelect(props: IComboSelectProps) { |
||||||
|
const [Validacion, setValidacion] = useState(0) |
||||||
|
const [showModal, setShowModal] = useState(false) |
||||||
|
const [Fraccion, setFraccion] = useState('') |
||||||
|
const [header, setHeader] = useState('') |
||||||
|
const [show, setShowMsg] = useState(false) |
||||||
|
const [msg, setMsg] = useState('') |
||||||
|
const msgColor = 'primary' |
||||||
|
|
||||||
|
const changeValidacion = (e: number) => { |
||||||
|
setValidacion(e) |
||||||
|
if (e === 2) { |
||||||
|
setShowModal(true) |
||||||
|
} |
||||||
|
if (e === 1) { |
||||||
|
const data: DTO2096Fraccion = { |
||||||
|
id: props.IDDetail, |
||||||
|
fraccion: props.FraccionOriginal |
||||||
|
} |
||||||
|
DSAmazon.SetFraccion(data) |
||||||
|
.then((response) => { |
||||||
|
alert('Se guardo correctamente la fraccion GEMCO') |
||||||
|
}) |
||||||
|
.catch((e: Error) => { |
||||||
|
alert('Ocurrio un error' + e.message.toString()) |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
const saveFraccion = () => { |
||||||
|
DSAmazon.GetValidaFraccion(Fraccion) |
||||||
|
.then((response) => { |
||||||
|
if (response.data.respuesta === 'Si') { |
||||||
|
const data: DTO2096Fraccion = { |
||||||
|
id: props.IDDetail, |
||||||
|
fraccion: Fraccion |
||||||
|
} |
||||||
|
DSAmazon.SetFraccion(data) |
||||||
|
.then((response) => { |
||||||
|
alert('Se guardo correctamente la fraccion GEMCO') |
||||||
|
}) |
||||||
|
.catch((e: Error) => { |
||||||
|
alert('Ocurrio un error' + e.message.toString()) |
||||||
|
}) |
||||||
|
} else { |
||||||
|
alert( |
||||||
|
'Esa fraccion no existe, favor de verificarla antes de poder guardar...' |
||||||
|
) |
||||||
|
return |
||||||
|
} |
||||||
|
}) |
||||||
|
.catch((e: Error) => { |
||||||
|
alert('Ocurrio un error' + e.message.toString()) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
return ( |
return ( |
||||||
<div> |
<div> |
||||||
<Form.Group> |
<Form.Control |
||||||
<Form.Select> |
as="select" |
||||||
<option value=''> </option> |
className="form-select form-select-sm" |
||||||
<option value='1'> = </option> |
onChange={(e) => changeValidacion(parseInt(e.target.value))} |
||||||
<option value='2'> != </option> |
value={Validacion} |
||||||
</Form.Select> |
> |
||||||
</Form.Group> |
<option value="0"> </option> |
||||||
|
<option value="1"> = </option> |
||||||
|
<option value="2"> != </option> |
||||||
|
</Form.Control> |
||||||
|
<Modal |
||||||
|
show={showModal} |
||||||
|
onHide={() => { |
||||||
|
setShowModal(false) |
||||||
|
}} |
||||||
|
size={'sm'} |
||||||
|
dialogClassName={'modal-50w'} |
||||||
|
> |
||||||
|
<Modal.Body> |
||||||
|
<Row> |
||||||
|
<Col xs={2}></Col> |
||||||
|
<Col xs={4}>Proporcione la facccion GEMCO</Col> |
||||||
|
<Col xs={3}> |
||||||
|
<CurrencyFormat |
||||||
|
onValueChange={(values: any) => { |
||||||
|
const { value } = values |
||||||
|
setFraccion(value) |
||||||
|
}} |
||||||
|
format={'######## ##'} |
||||||
|
value={Fraccion} |
||||||
|
displayType={'input'} |
||||||
|
style={{ |
||||||
|
fontSize: '18px', |
||||||
|
backgroundColor: '#F1EEF9', |
||||||
|
border: '2px solid #5923F6', |
||||||
|
color: '#5923F6', |
||||||
|
width: '120px', |
||||||
|
textAlign: 'right', |
||||||
|
borderRadius: '10px' |
||||||
|
}} |
||||||
|
/> |
||||||
|
</Col> |
||||||
|
<Col xs={3}> |
||||||
|
<Button |
||||||
|
onClick={() => { |
||||||
|
saveFraccion() |
||||||
|
}} |
||||||
|
> |
||||||
|
Guardar |
||||||
|
</Button> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
</Modal.Body> |
||||||
|
</Modal> |
||||||
|
<MsgInformativo |
||||||
|
show={show} |
||||||
|
msg={msg} |
||||||
|
header={header} |
||||||
|
msgColor={msgColor} |
||||||
|
closeToast={() => { |
||||||
|
setShowMsg(false) |
||||||
|
}} |
||||||
|
/> |
||||||
</div> |
</div> |
||||||
); |
) |
||||||
} |
} |
||||||
|
@ -0,0 +1,4 @@ |
|||||||
|
export default interface DTO2096Fraccion { |
||||||
|
id: number, |
||||||
|
fraccion: string |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
export default interface I2096Detail { |
||||||
|
id: number |
||||||
|
idHeader: number |
||||||
|
invoiceNumber: string |
||||||
|
amazonShipmentReferenceId: string |
||||||
|
trailerId: string |
||||||
|
itemId: string |
||||||
|
itemIdType: string |
||||||
|
itemDescription: string |
||||||
|
pedimentoDescription: string |
||||||
|
destinationHTSCode: string |
||||||
|
validaFraccionOriginal: number |
||||||
|
fraccionGEMCO: string |
||||||
|
sourceHTSCode: string |
||||||
|
eccn: string |
||||||
|
licEx: string |
||||||
|
countryOfOrigin: string |
||||||
|
productGroup: string |
||||||
|
upc: string |
||||||
|
brand: string |
||||||
|
model: string |
||||||
|
itemQuantityUnitOfMeasure: string |
||||||
|
quantity: number |
||||||
|
netWeightUnitOfMeasure: string |
||||||
|
weightValue: string |
||||||
|
actualUnitCostChargeOrAllowance: string |
||||||
|
actualUnitCostCurrencyISOCode: string |
||||||
|
actualUnitCostMonetaryAmount: string |
||||||
|
totalUnitValueChargeOrAllowance: string |
||||||
|
totalUnitValueCurrencyISOCode: string |
||||||
|
totalUnitValueMonetaryAmount: string |
||||||
|
archivo: string |
||||||
|
fCreacion: string |
||||||
|
estatus: number |
||||||
|
} |
@ -1,9 +1,18 @@ |
|||||||
import http from '../../../../Services/common/http-common' |
import http from '../../../../Services/common/http-common' |
||||||
import I2096Headers from '../Interfaces/I2096Header' |
import I2096Headers from '../Interfaces/I2096Header' |
||||||
|
import IRespuesta from '../../../../Interfaces/IRespuesta' |
||||||
|
import DTO2096Fraccion from '../DTO/DTO2096Fraccion' |
||||||
|
import I2096Detail from '../Interfaces/I2096Detail' |
||||||
|
|
||||||
class AmazonDataService { |
class AmazonDataService { |
||||||
GetPendingInvoice() { |
GetPendingInvoice() { |
||||||
return http.get<I2096Headers[]>(`/AmazonInvoice/C2096PendingInvoiceGet`) |
return http.get<I2096Headers[]>(`/AmazonInvoice/C2096PendingInvoiceGet`) |
||||||
} |
} |
||||||
|
GetValidaFraccion(Fraccion: string) { |
||||||
|
return http.get<IRespuesta>(`/AmazonInvoice/C2096ValidaFraccion?Fraccion=${Fraccion}`) |
||||||
|
} |
||||||
|
SetFraccion(data: DTO2096Fraccion) { |
||||||
|
return http.post<I2096Detail>(`/AmazonInvoice/C2096FraccionSet`, data) |
||||||
|
} |
||||||
} |
} |
||||||
export default new AmazonDataService() |
export default new AmazonDataService() |
||||||
|
Loading…
Reference in new issue