diff --git a/src/Components/Clientes/Amazon/Components/ComboSelect/ComboDescripcion.tsx b/src/Components/Clientes/Amazon/Components/ComboSelect/ComboDescripcion.tsx
index f602f70..1e9c01d 100644
--- a/src/Components/Clientes/Amazon/Components/ComboSelect/ComboDescripcion.tsx
+++ b/src/Components/Clientes/Amazon/Components/ComboSelect/ComboDescripcion.tsx
@@ -1,21 +1,35 @@
-import { useState } from 'react'
+import { useEffect, 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 DTO2096Descripcion from '../../DTO/DTO2096Descripcion'
-import DTO2096Fraccion from '../../DTO/DTO2096Fraccion'
+import { RootState } from '../../../../../store/store'
+import {
+ populateInvoices,
+ addInvoice,
+ updateInvoice,
+ deleteInvoice
+} from '../../../../../store/features/Clientes/2096/AmazonInvoices'
+// Redux
+import { useDispatch, useSelector } from 'react-redux'
import DSAmazon from '../../Services/Amazon.Services'
+import I2096Headers from '../../Interfaces/I2096Header'
+import I2096Detail from '../../Interfaces/I2096Detail'
export interface IComboDescripcionProps {
+ IDInvoice: number
IDDetail: number
DescripcionOriginal: string
Habilitado: boolean
}
export function ComboDescripcion(props: IComboDescripcionProps) {
+ const dispatch = useDispatch()
+ const mInvoices = useSelector(
+ (state: RootState) => state.AmazonInvoices.Invoice
+ )
const [Validacion, setValidacion] = useState(0)
const [showModal, setShowModal] = useState(false)
- const [Descripcion, setDescripcion] = useState('')
+ const [Descripcion, setDescripcion] = useState(props.DescripcionOriginal)
const [header, setHeader] = useState('')
const [show, setShowMsg] = useState(false)
const [msg, setMsg] = useState('')
@@ -23,16 +37,19 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
const changeValidacion = (e: number) => {
setValidacion(e)
- if (e === 2) {
+ /* if (e === 2) {
+ setDescripcion('')
setShowModal(true)
- }
- if (e === 1) {
+ } else if (e === 1) {
+ setDescripcion(props.DescripcionOriginal)
const data: DTO2096Descripcion = {
id: props.IDDetail,
- descripcion: props.DescripcionOriginal
+ descripcion: Descripcion
}
+ setDescripcion(props.DescripcionOriginal)
DSAmazon.SetDescripcion(data)
.then((response) => {
+ UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
@@ -42,7 +59,7 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
.catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString())
})
- }
+ } */
}
const saveDescripcion = () => {
@@ -52,6 +69,7 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
}
DSAmazon.SetDescripcion(data)
.then((response) => {
+ UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
@@ -63,6 +81,82 @@ export function ComboDescripcion(props: IComboDescripcionProps) {
})
}
+ const refreshStore = (Invoice: I2096Headers, Detail: I2096Detail[]) => {
+ const updatedInvoice: I2096Headers = {
+ id: props.IDInvoice,
+ commercialInvoiceDate: Invoice.commercialInvoiceDate,
+ invoiceNumber: Invoice.invoiceNumber,
+ trailerNumber: Invoice.trailerNumber,
+ trailerId: Invoice.trailerId,
+ porOfLoading: Invoice.porOfLoading,
+ portOfEntry: Invoice.portOfEntry,
+ paymentsTerms: Invoice.paymentsTerms,
+ incoterms: Invoice.incoterms,
+ hawb: Invoice.hawb,
+ totalInvoiceQuantityUnitOfMeasure:
+ Invoice.totalInvoiceQuantityUnitOfMeasure,
+ totalInvoiceQuantity: Invoice.totalInvoiceQuantity,
+ totalInvoiceWeightUnitOfMeasure: Invoice.totalInvoiceWeightUnitOfMeasure,
+ totalInvoiceWeight: Invoice.totalInvoiceWeight,
+ totalInvoiceValueChargeOrAllowance:
+ Invoice.totalInvoiceValueChargeOrAllowance,
+ totalInvoiceValueCurrencyISOCode:
+ Invoice.totalInvoiceValueCurrencyISOCode,
+ totalInvoiceValueMonetaryAmount: Invoice.totalInvoiceValueMonetaryAmount,
+ footNote: Invoice.footNote,
+ archivo: Invoice.archivo,
+ fCreacion: Invoice.fCreacion,
+ estatus: Invoice.estatus,
+ max: true,
+ detail: Detail
+ }
+ dispatch(updateInvoice(updatedInvoice))
+ }
+
+ const UpdateInfo = () => {
+ const Invoice = mInvoices
+ .filter((el) => el.id === props.IDInvoice)
+ .map((el) => {
+ return el
+ })
+ const newDetail = Invoice[0].detail.map((el) => {
+ if (el.id === props.IDDetail) {
+ return {
+ ...el,
+ descripcionGEMCO: Descripcion
+ }
+ }
+ return el
+ })
+ refreshStore(Invoice[0], newDetail)
+ }
+
+ useEffect(() => {
+ if (Validacion === 2) {
+ setDescripcion('')
+ setShowModal(true)
+ } else if (Validacion === 1) {
+ setDescripcion(props.DescripcionOriginal)
+ const data: DTO2096Descripcion = {
+ id: props.IDDetail,
+ descripcion: Descripcion
+ }
+ setDescripcion(props.DescripcionOriginal)
+ DSAmazon.SetDescripcion(data)
+ .then((response) => {
+ UpdateInfo()
+ setShowModal(false)
+ setHeader('Confirmacion')
+ setMsg('La descripcion se ha guardado correctamente')
+ setShowMsg(true)
+ return
+ })
+ .catch((e: Error) => {
+ alert('Ocurrio un error' + e.message.toString())
+ })
+ }
+ }, [Validacion])
+
return (
void = useState({})[1].bind(null, {}) // see NOTE below
+
+ const refreshStore = (Invoice: I2096Headers, Detail: I2096Detail[]) => {
+ const updatedInvoice: I2096Headers = {
+ id: props.IDInvoice,
+ commercialInvoiceDate: Invoice.commercialInvoiceDate,
+ invoiceNumber: Invoice.invoiceNumber,
+ trailerNumber: Invoice.trailerNumber,
+ trailerId: Invoice.trailerId,
+ porOfLoading: Invoice.porOfLoading,
+ portOfEntry: Invoice.portOfEntry,
+ paymentsTerms: Invoice.paymentsTerms,
+ incoterms: Invoice.incoterms,
+ hawb: Invoice.hawb,
+ totalInvoiceQuantityUnitOfMeasure:
+ Invoice.totalInvoiceQuantityUnitOfMeasure,
+ totalInvoiceQuantity: Invoice.totalInvoiceQuantity,
+ totalInvoiceWeightUnitOfMeasure: Invoice.totalInvoiceWeightUnitOfMeasure,
+ totalInvoiceWeight: Invoice.totalInvoiceWeight,
+ totalInvoiceValueChargeOrAllowance:
+ Invoice.totalInvoiceValueChargeOrAllowance,
+ totalInvoiceValueCurrencyISOCode:
+ Invoice.totalInvoiceValueCurrencyISOCode,
+ totalInvoiceValueMonetaryAmount: Invoice.totalInvoiceValueMonetaryAmount,
+ footNote: Invoice.footNote,
+ archivo: Invoice.archivo,
+ fCreacion: Invoice.fCreacion,
+ estatus: Invoice.estatus,
+ max: true,
+ detail: Detail
+ }
+ dispatch(updateInvoice(updatedInvoice))
+ }
- const forceUpdate: () => void = useState({})[1].bind(null, {}) // see NOTE below
+ const UpdateInfo = () => {
+ const Invoice = mInvoices
+ .filter((el) => el.id === props.IDInvoice)
+ .map((el) => {
+ return el
+ })
+ const newDetail = Invoice[0].detail.map((el) => {
+ if (el.id === props.IDDetail) {
+ return {
+ ...el,
+ fraccionGEMCO: Fraccion
+ }
+ }
+ return el
+ })
+ refreshStore(Invoice[0], newDetail)
+ }
const changeValidacion = (e: number) => {
setValidacion(e)
- if (e === 2) {
+ }
+
+ useEffect(() => {
+ if (Validacion === 2) {
setShowModal(true)
- }
- if (e === 1) {
+ } else if (Validacion === 1) {
const data: DTO2096Fraccion = {
id: props.IDDetail,
- fraccion: props.FraccionOriginal
+ fraccion: Fraccion
}
DSAmazon.SetFraccion(data)
.then((response) => {
-
- /*
- let Invoice: I2096Headers[] = mInvoices.filter((item) => item.id === props.IDInvoice)
- const Obj = { ...Invoice[0] }
-
- const newObject = Invoice.map(Invoice => ({ ...Invoice,
- detail: Invoice.detail.filter(detail=>detail.id===props.IDDetail).map(detail => ({ ...detail,
- fraccionGEMCO: detail.destinationHTSCode.replaceAll('.','')
- }))
- }))
-
-
- const Obj2 = { ...newObject[0] }
- Obj2.max = !Obj2.max
-
- console.log('.................................new object '+JSON.stringify(Obj2))
- dispatch(updateInvoice(Obj2))
-*/
-
-/* const newObj = mInvoices.forEach(function(o) {
- o.detail = o.detail.filter(s => (s.idHeader === props.IDInvoice) && (s.id!=props.IDDetail));
-}); */
-
-/* const newObj = mInvoices.map(function(o) {
- const newDetail = {...o.detail}
- if (newDetail[0].id===props.IDDetail) {
- newDetail[0].fraccionGEMCO=Fraccion
- }
- return newDetail
-});
-
-console.log(newObj) */
-
-//dispatch(updateInvoice(newObj))
-
-
+ UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
setShowMsg(true)
- forceUpdate()
+ //forceUpdate()
return
})
.catch((e: Error) => {
alert('Ocurrio un error' + e.message.toString())
})
}
- }
-
-
+ }, [Validacion])
const saveFraccion = () => {
DSAmazon.GetValidaFraccion(Fraccion)
@@ -114,6 +129,7 @@ console.log(newObj) */
}
DSAmazon.SetFraccion(data)
.then((response) => {
+ UpdateInfo()
setShowModal(false)
setHeader('Confirmacion')
setMsg('La descripcion se ha guardado correctamente')
@@ -138,7 +154,7 @@ console.log(newObj) */
return (
changeValidacion(parseInt(e.target.value))}
@@ -159,9 +175,9 @@ console.log(newObj) */
- Proporcione la facccion GEMCO {props.IDInvoice}
+ Proporcione la facccion GEMCO
- {
const { value } = values
setFraccion(value)
@@ -179,7 +195,7 @@ console.log(newObj) */
borderRadius: '10px'
}}
/>
-{/* ; */}
+ {/* ; */}