diff --git a/src/Components/Clientes/Amazon/DTO/DTO2096ItemAutoriza.ts b/src/Components/Clientes/Amazon/DTO/DTO2096ItemAutoriza.ts
new file mode 100644
index 0000000..821e645
--- /dev/null
+++ b/src/Components/Clientes/Amazon/DTO/DTO2096ItemAutoriza.ts
@@ -0,0 +1,4 @@
+export default interface DTO2096ItemAutoriza {
+ id: number,
+ autoriza: boolean
+}
\ No newline at end of file
diff --git a/src/Components/Clientes/Amazon/Interfaces/I2096Detail.ts b/src/Components/Clientes/Amazon/Interfaces/I2096Detail.ts
index 6a9ab35..5040ce9 100644
--- a/src/Components/Clientes/Amazon/Interfaces/I2096Detail.ts
+++ b/src/Components/Clientes/Amazon/Interfaces/I2096Detail.ts
@@ -33,4 +33,5 @@ export default interface I2096Detail {
archivo: string
fCreacion: string
estatus: number
+ autorizado: boolean
}
diff --git a/src/Components/Clientes/Amazon/Interfaces/I2096Header.ts b/src/Components/Clientes/Amazon/Interfaces/I2096Header.ts
index 118102e..aac2dda 100644
--- a/src/Components/Clientes/Amazon/Interfaces/I2096Header.ts
+++ b/src/Components/Clientes/Amazon/Interfaces/I2096Header.ts
@@ -1,3 +1,5 @@
+import Detail from './I2096Detail'
+
export default interface I2096Headers {
id: number
commercialInvoiceDate: string
@@ -22,41 +24,4 @@ export default interface I2096Headers {
estatus: number
max: boolean
detail: Detail[]
-}
-
-interface Detail {
- id: number
- idHeader: number
- invoiceNumber: string
- amazonShipmentReferenceId: string
- trailerId: string
- itemId: string
- itemIdType: string
- itemDescription: string
- pedimentoDescription: string
- destinationHTSCode: string
- validaFraccionOriginal: number
- fraccionGEMCO: string
- descripcionGEMCO: 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
-}
+}
\ No newline at end of file
diff --git a/src/Components/Clientes/Amazon/Reportes/RptAmazonFinishedInvoices.tsx b/src/Components/Clientes/Amazon/Reportes/RptAmazonFinishedInvoices.tsx
index 9525c4d..59befec 100644
--- a/src/Components/Clientes/Amazon/Reportes/RptAmazonFinishedInvoices.tsx
+++ b/src/Components/Clientes/Amazon/Reportes/RptAmazonFinishedInvoices.tsx
@@ -15,8 +15,8 @@ import DTO2096PrevioExcel from '../DTO/DTO2096PrevioExcel'
import { MsgInformativo } from '../../../Utils/Toast/msgInformativo'
import { RootState } from '../../../../store/store'
import {
+ initializeInvoice,
populateInvoices,
- addInvoice,
updateInvoice,
} from '../../../../store/features/Clientes/2096/AmazonInvoices'
import RtpAmazonPendingInvoicesDetail from './RptAmazonPendingInvoicesDetail'
@@ -51,7 +51,7 @@ export default function RptAmazonFinishedInvoices (props: IRptAmazonFinishedInvo
const loadReport = () => {
DSAmazon.GetFinishedInvoice()
.then((response) => {
- console.log(response.data)
+ dispatch(initializeInvoice([]))
dispatch(populateInvoices(response.data))
})
.catch((e: Error) => {
diff --git a/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx b/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx
index 479900f..d93696f 100644
--- a/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx
+++ b/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoices.tsx
@@ -15,8 +15,8 @@ import DTO2096PrevioExcel from '../DTO/DTO2096PrevioExcel'
import { MsgInformativo } from '../../../Utils/Toast/msgInformativo'
import { RootState } from '../../../../store/store'
import {
+ initializeInvoice,
populateInvoices,
- addInvoice,
updateInvoice,
deleteInvoice
} from '../../../../store/features/Clientes/2096/AmazonInvoices'
@@ -52,7 +52,7 @@ export default function RtpAmazonPendingInvoices(
const loadReport = () => {
DSAmazon.GetPendingInvoice()
.then((response) => {
- console.log(response.data)
+ dispatch(initializeInvoice([]))
dispatch(populateInvoices(response.data))
})
.catch((e: Error) => {
@@ -497,6 +497,15 @@ export default function RtpAmazonPendingInvoices(
>
Total value
+
+ Autorizado
+ |
diff --git a/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx b/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx
index 26dab12..c6cb491 100644
--- a/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx
+++ b/src/Components/Clientes/Amazon/Reportes/RptAmazonPendingInvoicesDetail.tsx
@@ -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 (
<>
@@ -73,7 +192,7 @@ export default function RtpAmazonPendingInvoivesDetail(
@@ -108,7 +227,7 @@ export default function RtpAmazonPendingInvoivesDetail(
|
@@ -118,7 +237,6 @@ export default function RtpAmazonPendingInvoivesDetail(
FraccionOriginal={props.detail.destinationHTSCode}
parentFunction={parentFunction}
Habilitado={props.Habilitado}
-
/>
|
{props.detail.totalUnitValueMonetaryAmount}
|
+
+ {
+ setShowModal(!props.detail.autorizado)
+ }}
+ className="mb-8"
+ label=""
+ />
+ |
+ {
+ setShowModal(false)
+ }}
+ size={'sm'}
+ dialogClassName={'modal-50w'}
+ >
+
+
+
+
+
+
+ ¿Esta seguro que esta fraccion ya la autorizo Amazon?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ setShowMsg(false)
+ }}
+ />
>
)
}
diff --git a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts
index b0144aa..8d5f34d 100644
--- a/src/Components/Clientes/Amazon/Services/Amazon.Services.ts
+++ b/src/Components/Clientes/Amazon/Services/Amazon.Services.ts
@@ -6,6 +6,7 @@ import I2096Detail from '../Interfaces/I2096Detail'
import DTO2096Descripcion from '../DTO/DTO2096Descripcion'
import I2096NoParte from '../Interfaces/I2096NoParte'
import I2096PaisClave from '../Interfaces/I2096PaisClave'
+import DTO2096ItemAutoriza from '../DTO/DTO2096ItemAutoriza'
class AmazonDataService {
GetPendingInvoice() {
@@ -23,6 +24,9 @@ class AmazonDataService {
SetDescripcion(data: DTO2096Descripcion) {
return http.post(`/AmazonInvoice/C2096DescripcionSet`, data)
}
+ Set$Autorizado(data: DTO2096ItemAutoriza) {
+ return http.post(`/AmazonInvoice/C2096ItemAutorizado`, data)
+ }
TerminaFactura(id: number) {
return http.get(`/AmazonInvoice/TerminaFactura?id=${id}`)
}
diff --git a/src/store/features/Clientes/2096/AmazonInvoices.ts b/src/store/features/Clientes/2096/AmazonInvoices.ts
index aca54e1..f8d8819 100644
--- a/src/store/features/Clientes/2096/AmazonInvoices.ts
+++ b/src/store/features/Clientes/2096/AmazonInvoices.ts
@@ -1,5 +1,5 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit'
-import I2096Headers from '../../../../Components/Clientes/Amazon/Interfaces/I2096Header';
+import I2096Headers from '../../../../Components/Clientes/Amazon/Interfaces/I2096Header'
const Invoice: I2096Headers[] = []
const initialState = { Invoice }
@@ -7,36 +7,44 @@ export const AmazonInvoicesSlice = createSlice({
name: 'AmazonInvoices',
initialState: initialState,
reducers: {
- populateInvoices : (state, action: PayloadAction) => {
- action.payload.forEach(newItem => {
- var Existe = state.Invoice.find(function(onMemoryItem) {
- return onMemoryItem.id === newItem.id;
- });
- if (!Existe) state.Invoice.push(newItem)
- })
+ initializeInvoice: (state, action: PayloadAction) => {
+ state.Invoice = action.payload
},
- addInvoice : (state, action: PayloadAction) => {
- var Existe = state.Invoice.find(function(item) {
- return item.id === action.payload.id;
- });
- if (!Existe) state.Invoice.push(action.payload)
+ populateInvoices: (state, action: PayloadAction) => {
+ action.payload.forEach((newItem) => {
+ var Existe = state.Invoice.find(function (onMemoryItem) {
+ return onMemoryItem.id === newItem.id
+ })
+ if (!Existe) state.Invoice.push(newItem)
+ })
},
- updateInvoice : (state, action: PayloadAction) => {
- const i = state.Invoice.findIndex(_element => _element.id === action.payload.id);
- if (i > -1) state.Invoice[i] = action.payload;
- else state.Invoice.push(action.payload);
+ addInvoice: (state, action: PayloadAction) => {
+ var Existe = state.Invoice.find(function (item) {
+ return item.id === action.payload.id
+ })
+ if (!Existe) state.Invoice.push(action.payload)
},
- updateInvoiceDetail : (state, action: PayloadAction) => {
- const i = state.Invoice.findIndex(_element => _element.id === action.payload.id);
- if (i > -1) state.Invoice[i] = action.payload;
- else state.Invoice.push(action.payload);
+ updateInvoice: (state, action: PayloadAction) => {
+ const i = state.Invoice.findIndex(
+ (_element) => _element.id === action.payload.id
+ )
+ if (i > -1) state.Invoice[i] = action.payload
+ else state.Invoice.push(action.payload)
},
- deleteInvoice : (state, action: PayloadAction) => {
- const newArr = state.Invoice.filter(data => data.id != action.payload);
- state.Invoice=newArr
+ updateInvoiceDetail: (state, action: PayloadAction) => {
+ const i = state.Invoice.findIndex(
+ (_element) => _element.id === action.payload.id
+ )
+ if (i > -1) state.Invoice[i] = action.payload
+ else state.Invoice.push(action.payload)
},
- },
+ deleteInvoice: (state, action: PayloadAction) => {
+ const newArr = state.Invoice.filter((data) => data.id != action.payload)
+ state.Invoice = newArr
+ }
+ }
})
-export const { addInvoice, populateInvoices, updateInvoice, deleteInvoice } = AmazonInvoicesSlice.actions;
-export default AmazonInvoicesSlice.reducer;
+export const { initializeInvoice, addInvoice, populateInvoices, updateInvoice, deleteInvoice } =
+ AmazonInvoicesSlice.actions
+export default AmazonInvoicesSlice.reducer