|
|
@ -28,10 +28,11 @@ import { useDispatch, useSelector } from 'react-redux' |
|
|
|
import { RootState } from '../../../store/store' |
|
|
|
import { RootState } from '../../../store/store' |
|
|
|
import { AgGridReact } from 'ag-grid-react' |
|
|
|
import { AgGridReact } from 'ag-grid-react' |
|
|
|
import { RowClickedEvent } from 'ag-grid-community' |
|
|
|
import { RowClickedEvent } from 'ag-grid-community' |
|
|
|
import { BiCoinStack } from 'react-icons/bi' |
|
|
|
import { BiCoinStack, BiDownload } from 'react-icons/bi' |
|
|
|
import CurrencyFormat from 'react-currency-format' |
|
|
|
import CurrencyFormat from 'react-currency-format' |
|
|
|
import FileManager from '../../Utils/FileManager/FileManager' |
|
|
|
import FileManager from '../../Utils/FileManager/FileManager' |
|
|
|
import DTOAnticiposAutoriza from '../../../DTO/Corresponsales/DTOAnticiposAutoriza' |
|
|
|
import DTOAnticiposAutoriza from '../../../DTO/Corresponsales/DTOAnticiposAutoriza' |
|
|
|
|
|
|
|
import CorresponsalesAnticiposServices from '../../../Services/Corresponsalias/Corresponsales.Anticipos.Services' |
|
|
|
|
|
|
|
|
|
|
|
interface ItemList { |
|
|
|
interface ItemList { |
|
|
|
id: number |
|
|
|
id: number |
|
|
@ -40,8 +41,10 @@ interface ItemList { |
|
|
|
|
|
|
|
|
|
|
|
interface IProps { |
|
|
|
interface IProps { |
|
|
|
IDTrafico: number |
|
|
|
IDTrafico: number |
|
|
|
|
|
|
|
FolioTrafico: string |
|
|
|
closeCRUDItems: (arg: boolean) => void |
|
|
|
closeCRUDItems: (arg: boolean) => void |
|
|
|
canDelete: boolean |
|
|
|
canDelete: boolean |
|
|
|
|
|
|
|
canUseActions: boolean |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export const Anticipos: FC<IProps> = (props) => { |
|
|
|
export const Anticipos: FC<IProps> = (props) => { |
|
|
@ -73,7 +76,7 @@ export const Anticipos: FC<IProps> = (props) => { |
|
|
|
const btnSaveRef = React.useRef<HTMLButtonElement>(null) |
|
|
|
const btnSaveRef = React.useRef<HTMLButtonElement>(null) |
|
|
|
const [deleteFile, setDeleteFile] = useState(false) |
|
|
|
const [deleteFile, setDeleteFile] = useState(false) |
|
|
|
const [columnDefs] = useState([ |
|
|
|
const [columnDefs] = useState([ |
|
|
|
Depto === 'Corresponsalias' |
|
|
|
props.canUseActions |
|
|
|
? { |
|
|
|
? { |
|
|
|
field: 'id', |
|
|
|
field: 'id', |
|
|
|
headerName: 'Acciones', |
|
|
|
headerName: 'Acciones', |
|
|
@ -82,6 +85,7 @@ export const Anticipos: FC<IProps> = (props) => { |
|
|
|
filter: true, |
|
|
|
filter: true, |
|
|
|
cellRenderer: (params: any) => { |
|
|
|
cellRenderer: (params: any) => { |
|
|
|
return ( |
|
|
|
return ( |
|
|
|
|
|
|
|
Depto === 'Corresponsalias' ? |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<IconContext.Provider value={{ color: 'blue', size: '18px' }}> |
|
|
|
<IconContext.Provider value={{ color: 'blue', size: '18px' }}> |
|
|
|
<BsPencilFill |
|
|
|
<BsPencilFill |
|
|
@ -114,6 +118,16 @@ export const Anticipos: FC<IProps> = (props) => { |
|
|
|
/> |
|
|
|
/> |
|
|
|
</IconContext.Provider> : "" |
|
|
|
</IconContext.Provider> : "" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
</div> :
|
|
|
|
|
|
|
|
<div> |
|
|
|
|
|
|
|
<IconContext.Provider value={{ color: 'blue', size: '18px' }}> |
|
|
|
|
|
|
|
<BiDownload |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
downloadAnticipo(params.data.id, params.data.concepto) |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
style={{ cursor: 'pointer' }} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</IconContext.Provider> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) |
|
|
|
) |
|
|
|
}, |
|
|
|
}, |
|
|
@ -374,6 +388,24 @@ export const Anticipos: FC<IProps> = (props) => { |
|
|
|
const result = mCAnticipos.filter((row) => row.id > 0 && row.idTrafico === props.IDTrafico) |
|
|
|
const result = mCAnticipos.filter((row) => row.id > 0 && row.idTrafico === props.IDTrafico) |
|
|
|
}, [mCAnticipos]) |
|
|
|
}, [mCAnticipos]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const downloadAnticipo = (idAnticipo: number, concepto: string) => { |
|
|
|
|
|
|
|
CorresponsalesAnticiposServices.DownloadAnticipo(props.IDTrafico, idAnticipo) |
|
|
|
|
|
|
|
.then((response) => { |
|
|
|
|
|
|
|
const url = window.URL.createObjectURL(new Blob([response.data])); |
|
|
|
|
|
|
|
const link = document.createElement('a'); |
|
|
|
|
|
|
|
link.href = url; |
|
|
|
|
|
|
|
link.setAttribute('download', `Anticipo_${concepto}_${props.FolioTrafico}.pdf`); |
|
|
|
|
|
|
|
document.body.appendChild(link); |
|
|
|
|
|
|
|
link.click(); |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
.catch((error) => { |
|
|
|
|
|
|
|
setHeader('Error') |
|
|
|
|
|
|
|
setMsg('Ocurrio un error al generar el archivo. Por favor, intentelo de nuevo.') |
|
|
|
|
|
|
|
setShowMsg(true) |
|
|
|
|
|
|
|
return |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<Container className='labelSize13px'> |
|
|
|
<Container className='labelSize13px'> |
|
|
@ -473,7 +505,7 @@ export const Anticipos: FC<IProps> = (props) => { |
|
|
|
</Row> |
|
|
|
</Row> |
|
|
|
<Row style={{ paddingBottom: 5 }}> |
|
|
|
<Row style={{ paddingBottom: 5 }}> |
|
|
|
<Col xs={12}> |
|
|
|
<Col xs={12}> |
|
|
|
<div className='ag-theme-alpine' style={{ height: 500, width: '100%' }}> |
|
|
|
<div className='ag-theme-alpine' style={{ height: 300, width: '100%' }}> |
|
|
|
<AgGridReact |
|
|
|
<AgGridReact |
|
|
|
rowData={mCAnticipos.filter((p) => p.id !== 0)} |
|
|
|
rowData={mCAnticipos.filter((p) => p.id !== 0)} |
|
|
|
columnDefs={columnDefs} |
|
|
|
columnDefs={columnDefs} |
|
|
|