{"version":3,"sources":["images/Edenred_Digital-use.png","images/TarjetaEmpresarial.png","store/WeatherForecasts.ts","store/index.ts","store/Counter.ts","components/layout/NavBar.tsx","components/misc/Redirect/ToLogin.tsx","components/layout/Header.tsx","components/layout/Footer.tsx","components/layout/Layout.tsx","components/charts/GraficoReembolso.tsx","components/reembolso/HistorialTablaReembolsos.tsx","components/dashboard/Ultimos.tsx","components/dashboard/DashBoard.tsx","components/misc/Redirect/Cargando.tsx","components/home/BuscarComercio.tsx","components/terminosCondiciones/AceptarTerminos.tsx","components/terminosCondiciones/General.tsx","components/pages/Home.tsx","components/misc/Message/Result.tsx","components/login/BlanquearClave.tsx","components/pages/Login.tsx","components/reembolso/TransaccionesAsociadas.tsx","components/pages/ReembolsoComercioRaizen.tsx","components/misc/SliderComp/components.tsx","components/reembolso/Confirmar.tsx","components/terminosCondiciones/SolicitudEmpresarialTyC.tsx","components/misc/Redirect/ToHomeFromAdelantar.tsx","components/reembolso/SolicitudEmpresarial.tsx","components/reembolso/Adelantar.tsx","components/reembolso/Disponibles.tsx","components/terminosCondiciones/PagoExpress.tsx","components/pages/ReembolsoExpress.tsx","components/home/CambiarComercio.tsx","App.tsx","registerServiceWorker.ts","index.tsx","store/configureStore.ts","images/logo-edenred.png"],"names":["module","exports","unloadedState","forecasts","isLoading","reducers","counter","state","incomingAction","undefined","count","type","weatherForecasts","action","startDateIndex","NavBar","props","toggle","bind","setRedirect","blankRedirect","isOpen","activePage","this","populateNavbarData","setState","page","p","to","_this","menu","className","Navbar","color","light","expand","NavbarBrand","onClick","e","style","cursor","src","mainLogo","alt","NavbarToggler","Collapse","navbar","Nav","map","item","url","indexOf","NavItem","key","label","toString","replace","href","target","UncontrolledDropdown","nav","inNavbar","DropdownToggle","caret","DropdownMenu","right","items","a","fetch","response","json","data","console","log","menus","React","sleep","milliseconds","Promise","resolve","setTimeout","ToLogin","redirect","loading","tyc","header","visible","width","onHide","titulo","mensaje","render","window","location","Header","cabecera","isRedirect","onLogout","populateHeaderData","method","headers","Accept","then","nologin","nombre","Footer","footerLogo","children","renderCustomizedLabel","x","y","value","height","fill","fontSize","textAnchor","dominantBaseline","amount","decimalCount","decimal","thousands","Math","abs","isNaN","negativeSign","i","parseInt","Number","toFixed","j","length","substr","slice","formatMoney","CustomizedAxisTick","payload","stroke","transform","dy","GraficoReembolso","volumenprocesado30d","volumenprocesado60d","volumenprocesado90d","inProgress","programmed","factor","updateWindowDimensions","populateChartData","addEventListener","removeEventListener","innerWidth","innerHeight","graficos","volumenEnProceso","volumenProgramado","icon","iconPos","display","margin","top","left","bottom","tick","axisLine","interval","dataKey","tickCount","stackId","position","content","split","HistorialTablaReembolsos","dt","globalFilter","filterTable","filterTableOptions","actionBodyTemplate","export","onFilterTable","getListaReembolso","fliterListaReembolso","reembolsos","postData","body","JSON","stringify","options","onChange","optionLabel","onInput","selectedItem","adelantoExpressLabel","adelantoExpressStr","adelantoExpress","razonSocial","comercio","presentacion","fechaPresentacionStr","producto","Producto","fechaPagoStr","estadoReembolso","Reembolso","metodoPago","debitos","debitoEspecial","textAlign","montoStr","cargosImpuestosStr","monto","montoNetoStr","exportCSV","renderHeader","ref","el","csvSeparator","responsive","rowHover","selection","onSelectionChange","paginator","rows","emptyMessage","currentPageReportTemplate","paginatorTemplate","rowsPerPageOptions","field","headerStyle","bodyStyle","overflow","modal","renderDialogContent","Ultimos","VolumenConsumido","VolumenConsumidoDecimales","VolumenConsumidoPromedioTRX","VolumenConsumidoPromedioTRXDecimales","CantidadTRX","tipo","legend","border","paddingTop","paddingLeft","Data","strokeWidth","dot","DashBoard","dataGrfico30","CantidadTRX30D","VolumenConsumido30D","VolumenConsumidoPromedioTRX30D","dataGrfico12","CantidadTRX12M","VolumenConsumido12M","VolumenConsumidoPromedioTRX12M","padding","lineHeight","BuscarComercio","role","comercios","keyEnter","searching","enable","userLabel","user","setComercios","onUserChange","onClickUser","trim","setUsuario","enviarComercios","users","usuarios","drop","placeholder","filter","filterPlaceholder","filterBy","showClear","disabled","onKeyPress","AceptarTerminos","onCancelar","onAcceptar","preventDefault","componente","General","Home","tycVisible","loadingTyC","loadingKpi","showDashBoard","ultimos","volumenConsumido12M","cantidadTRX12M","volumenConsumidoPromedioTRX12M","volumenConsumido30D","cantidadTRX30D","volumenConsumidoPromedioTRX30D","showBuscarComercio","verificar","tycVerify","getInitial","handleComercios","result","getKpis","error","comerciosString","todos","respuesta","idTyC","success","tyC","blockScroll","presentaciones12M","presentaciones30D","connect","Result","accept","closable","title","message","BlanquearClave","onAceptar","close","login","Usuario","usuario","Clave","footer","Login","onChangeUsuario","onChangeClave","clave","aceptar","token","popup","userValidation","onClickBlanquearClave","handleBlanquearClave","loged","enviarLogeo","TransaccionesAsociadas","cargarResumen","vtasSinDesc","tipoMovimiento","importeBruto","reduce","b","vtasEnComercioBruto","devolucionDescuentosBruto","startsWith","comisionProgramaBruto","devolucionDescuentosNeto","importeNeto","comisionProgramaNeto","acreditacionVtasBruto","acreditacionVtasNeto","vtasComercio","vtasComercioSinDesc","devolucionDescuentos","comisionPrograma","ajusteCtaCorriente","acreditacionVta","impuestos","bruto","neto","lts","cantidad","tableHeader","listaCupon","size","onExport","selectedMultiPresentacionesProd","id","selectedMultiPresentaciones","presentaciones","onChangeddlPresentaciones","productos","onChangeDdlProductos","colHeader","texto","renderResumen","bodyCurrencySmall","bodyCant","selectedPresentaciones","presentacionSugerida","pres","numeroPresentacion","index","prod","servicio","date","Date","fechaPresentacion","getTime","dia","getDate","mes","getMonth","anio","getFullYear","n","numeroDocumento","unidadMedida","redId","exportCSVFile","fileName","unshift","jsonObject","csv","convertToCSV","exportName","blob","Blob","navigator","msSaveBlob","link","document","createElement","download","URL","createObjectURL","setAttribute","visibility","appendChild","click","removeChild","shift","objArray","array","parse","str","line","parseFloat","toLocaleString","minimumFractionDigits","maximumFractionDigits","formatted_date","m","formatDate","toLocaleDateString","months","year","exportFilename","sortMode","scrollable","bodySmallComercio","bodyComercioHeader","bodySmall","bodyFechPres","bodyNumeroDoc","ReembolsoComercioRaizen","traerCupones","selectedComercio","fechaDesde","fechaHasta","validarFechas","dNoneDDE","dNoneHTA","loadingReembolsos","rId","comercioId","callback_reembolsosComerciosRaizen","limpiarCupones","listaReembolsos","rta","minDateFechaDDE","transcurso","round","onComercioChange","onChangeFechaDesde","min","showError","severity","summary","detail","growl","show","onChangeFechaHasta","fecha","renderMensaje","calDDE","handleLoading","redirectLogin","loadingComercios","filteredComercios","minDateFechaHTA","maxDateFechaDDE","maxDateFechaHTA","yearRangeDDE","yearRangeHTA","callback_comercios","prevProps","prevState","vrfReceiveDateFrom","vrfReceiveDateTo","reembolsosComerciosRaizen","es","firstDayOfWeek","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","today","clear","htmlFor","locale","dateFormat","monthNavigator","yearNavigator","yearRange","showButtonBar","showIcon","view","readOnlyInput","isNull","Handle","domain","max","handle","percent","getHandleProps","aria-valuemin","aria-valuemax","aria-valuenow","marginLeft","marginTop","zIndex","borderRadius","boxShadow","backgroundColor","Track","source","getTrackProps","Confirmar","nuevaFechaPago","dateText","String","padStart","opcion","modo","adelanto","adelantoMaximo","costoAdelanto","plazoTexto","dias","montoAcreditar","SolicitudEmpresarialTyC","colSpan","ToHomeFromAdelantar","SolicitudEmpresarial","onChangeRazonSocial","solEmp","RazonSocial","onChangeCuit","Cuit","onChangeEmail","Email","onChangeTelefono","Telefono","onChangeDireccion","Direccion","onChangeLocalidad","Ciudad","onChangeProvincia","Provincia","onClickSeguir","step","onClickAceptar","validar","solicitaEmpresarial","invalido","onClickCancelar","canceloEmpresarial","paso","tarjetaEmpresarial","sliderStyle","railStyle","defaultValues","Adelantar","onChangeMonto","montoText","num","push","onUpdate","values","update","maxActual","op","calcularIntereses","porcentajeAdelanto","digital","totales","calcularTotalesDisponibles","transferencia","gastoAdmin","intereses","IVA","percepciones","montoTotal","obtenerTotalPorNeto","medioPago","enviarMonto","callBack_reembolso","populateCuitsData","onBlur","onFocus","onCuitChange","callBack_disponible","onClickTransferencia","onClickDigital","callBack_SetEmpresarial","onGuardarTyC","handleResult","handlePopupEmpresarial","calcularFecha","clickAdelantar","rate","rateMax","rateMin","fetchCuit","cantReembolsos","asked","requestedCard","popupEmpresarial","adelantando","solicitud","cargoAdministrativo","cargoAdministrativoIva","cargoAdministrativoBonificacion","cargoAdministrativoEmpresarial","cargoAdministrativoIvaEmpresarial","cargoAdministrativoBonificacionEmpresarial","cargoFinanciero","cargoFinancieroIva","cargoFinancieroPercepciones","cargoFinancieroBonificacion","cargoFinancieroEmpresarial","cargoFinancieroIvaEmpresarial","cargoFinancieroPercepcionesEmpresarial","cargoFinancieroBonificacionEmpresarial","dataDisponible","forEach","cuit","domainReset","valuesReset","enviarDisponible","domainRes","acumulado","maxAdelanto","cuits","cuitRazon","PresentacionesArray","Monto","MetodoPagoId","CuitRazon","enviarAdelanto","catch","nt","calcularMaximo","montoOriginal","aci","acM","opciones","reem","diasFaltantes","diasAdelantoEmpresarial","diasAdelantoTransferencia","tasaTotal","tna","interesMonto","reembolso","calcularInteres","habilitadoLanet","permiteExpress","cupo","isEmpresarial","plazo","disable","claseTrans","claseEmpre","disableAdelantar","paddingBottom","mode","rootStyle","onSlideStart","getRailProps","handles","tracks","scope","name","checked","defaultProps","Disponibles","displayValueTemplate","confirmar","totalIntDigital","totalIntTransferencia","hoy","porcentaje","montoUsado","montoString","dd","mm","sdd","smm","yyyy","fechaReembolso","porcentajeString","PagoExpress","RembolsoExpress","handleData","handleDataDisponible","handleAdelanto","callBack_empresarial","callBack_parametros","online","metodosPago","on","metodoPagoId","tra","opcionOnLine","gastosAdministrativos","diasPago","medio","respuestaCupo","cupoEmpresarial","opcionTransf","cupoTransferencia","opcionDefault","habilitar","CambiarComercio","App","handleLogin","verify","Layout","exact","path","component","ReembolsoExpress","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","baseUrl","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","initialState","middleware","thunk","routerMiddleware","rootReducer","combineReducers","router","connectRouter","enhancers","windowIfDefined","__REDUX_DEVTOOLS_EXTENSION__","createStore","compose","applyMiddleware","configureStore","ReactDOM","getElementById","process","origin","contentType","get","status","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.190534ac.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/Edenred_Digital-use.ab756647.png\";","module.exports = __webpack_public_path__ + \"static/media/TarjetaEmpresarial.883854f8.png\";","import { Action, Reducer } from 'redux';\nimport { AppThunkAction } from './';\n\n// -----------------\n// STATE - This defines the type of data maintained in the Redux store.\n\nexport interface WeatherForecastsState {\n isLoading: boolean;\n startDateIndex?: number;\n forecasts: WeatherForecast[];\n}\n\nexport interface WeatherForecast {\n date: string;\n temperatureC: number;\n temperatureF: number;\n summary: string;\n}\n\n// -----------------\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\n// They do not themselves have any side-effects; they just describe something that is going to happen.\n\ninterface RequestWeatherForecastsAction {\n type: 'REQUEST_WEATHER_FORECASTS';\n startDateIndex: number;\n}\n\ninterface ReceiveWeatherForecastsAction {\n type: 'RECEIVE_WEATHER_FORECASTS';\n startDateIndex: number;\n forecasts: WeatherForecast[];\n}\n\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\n// declared type strings (and not any other arbitrary string).\ntype KnownAction = RequestWeatherForecastsAction | ReceiveWeatherForecastsAction;\n\n// ----------------\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\n\nexport const actionCreators = {\n requestWeatherForecasts: (startDateIndex: number): AppThunkAction => (dispatch, getState) => {\n // Only load data if it's something we don't already have (and are not already loading)\n const appState = getState();\n if (appState && appState.weatherForecasts && startDateIndex !== appState.weatherForecasts.startDateIndex) {\n fetch(`weatherforecast`)\n .then(response => response.json() as Promise)\n .then(data => {\n dispatch({ type: 'RECEIVE_WEATHER_FORECASTS', startDateIndex: startDateIndex, forecasts: data });\n });\n\n dispatch({ type: 'REQUEST_WEATHER_FORECASTS', startDateIndex: startDateIndex });\n }\n }\n};\n\n// ----------------\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\n\nconst unloadedState: WeatherForecastsState = { forecasts: [], isLoading: false };\n\nexport const reducer: Reducer = (state: WeatherForecastsState | undefined, incomingAction: Action): WeatherForecastsState => {\n if (state === undefined) {\n return unloadedState;\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case 'REQUEST_WEATHER_FORECASTS':\n return {\n startDateIndex: action.startDateIndex,\n forecasts: state.forecasts,\n isLoading: true\n };\n case 'RECEIVE_WEATHER_FORECASTS':\n // Only accept the incoming data if it matches the most recent request. This ensures we correctly\n // handle out-of-order responses.\n if (action.startDateIndex === state.startDateIndex) {\n return {\n startDateIndex: action.startDateIndex,\n forecasts: action.forecasts,\n isLoading: false\n };\n }\n break;\n }\n\n return state;\n};\n","import * as WeatherForecasts from './WeatherForecasts';\nimport * as Counter from './Counter';\n\n// The top-level state object\nexport interface ApplicationState {\n counter: Counter.CounterState | undefined;\n weatherForecasts: WeatherForecasts.WeatherForecastsState | undefined;\n}\n\n// Whenever an action is dispatched, Redux will update each top-level application state property using\n// the reducer with the matching name. It's important that the names match exactly, and that the reducer\n// acts on the corresponding ApplicationState property type.\nexport const reducers = {\n counter: Counter.reducer,\n weatherForecasts: WeatherForecasts.reducer\n};\n\n// This type can be used as a hint on action creators so that its 'dispatch' and 'getState' params are\n// correctly typed to match your store.\nexport interface AppThunkAction {\n (dispatch: (action: TAction) => void, getState: () => ApplicationState): void;\n}\n","import { Action, Reducer } from 'redux';\n\n// -----------------\n// STATE - This defines the type of data maintained in the Redux store.\n\nexport interface CounterState {\n count: number;\n}\n\n// -----------------\n// ACTIONS - These are serializable (hence replayable) descriptions of state transitions.\n// They do not themselves have any side-effects; they just describe something that is going to happen.\n// Use @typeName and isActionType for type detection that works even after serialization/deserialization.\n\nexport interface IncrementCountAction { type: 'INCREMENT_COUNT' }\nexport interface DecrementCountAction { type: 'DECREMENT_COUNT' }\n\n// Declare a 'discriminated union' type. This guarantees that all references to 'type' properties contain one of the\n// declared type strings (and not any other arbitrary string).\nexport type KnownAction = IncrementCountAction | DecrementCountAction;\n\n// ----------------\n// ACTION CREATORS - These are functions exposed to UI components that will trigger a state transition.\n// They don't directly mutate state, but they can have external side-effects (such as loading data).\n\nexport const actionCreators = {\n increment: () => ({ type: 'INCREMENT_COUNT' } as IncrementCountAction),\n decrement: () => ({ type: 'DECREMENT_COUNT' } as DecrementCountAction)\n};\n\n// ----------------\n// REDUCER - For a given state and action, returns the new state. To support time travel, this must not mutate the old state.\n\nexport const reducer: Reducer = (state: CounterState | undefined, incomingAction: Action): CounterState => {\n if (state === undefined) {\n return { count: 0 };\n }\n\n const action = incomingAction as KnownAction;\n switch (action.type) {\n case 'INCREMENT_COUNT':\n return { count: state.count + 1 };\n case 'DECREMENT_COUNT':\n return { count: state.count - 1 };\n default:\n return state;\n }\n};\n","import * as React from 'react'; // Importamos React\nimport fetch from 'isomorphic-fetch';\nimport { Link } from 'react-router-dom';\nimport mainLogo from '../../images/logo-edenred.png';\nimport { Redirect } from 'react-router-dom';\nimport { Collapse, Navbar, NavbarToggler, NavbarBrand, Nav, NavItem, NavLink, Container, Row, Col, Jumbotron, Button, UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';\nimport { memoryUsage } from 'process';\n\n\ninterface IMenu {\n label: string,\n url: string,\n items: IMenu[]\n\n}\ninterface IState {\n menu?: IMenu[],\n isOpen: boolean,\n activePage: string\n\n}\n// State nunca se establece por lo que usamos '{}'. style={{ textAlign: 'right' }}\nexport default class NavBar extends React.Component<{}, IState> {\n constructor(props: any) {\n super(props);\n this.toggle = this.toggle.bind(this);\n this.setRedirect = this.setRedirect.bind(this);\n this.blankRedirect = this.blankRedirect.bind(this);\n this.state = ({ isOpen: false, activePage: \"\" })\n }\n\n public componentDidMount() { \n \n this.populateNavbarData(); \n }\n\n toggle() {\n this.setState({ isOpen: !this.state.isOpen });\n }\n\n setRedirect(page: string) {\n this.setState({\n activePage: \"/\" + page\n })\n }\n\n blankRedirect() {\n this.setState({\n activePage: \"\"\n })\n }\n\n public render() {\n if (this.state.activePage != \"\") {\n let p = this.state.activePage;\n this.setState({ activePage: \"\" })\n return \n }\n let _this = this;\n if (this.state.menu == null) {\n return (\n
\n\n
\n )\n }\n return (\n
\n \n _this.setRedirect(\"Home\")} style={{ cursor: 'pointer' }}>\n \"Edenred\"\n \n \n \n \n \n \n
\n );\n }\n\n async populateNavbarData() {\n const response = await fetch(`api/NavBar/Get`);\n const data = await response.json();\n console.log('populateNavbarData', data); \n var menu = null;\n menu = data.menus.menu;\n this.setState({ menu });\n //this.setState({ menu: data.menus.menu });\n console.log('populateNavbarDatabefore', data);\n\n\n\n }\n};","import * as React from \"react\";\nimport { Route } from \"react-router\";\nimport { Dialog } from \"primereact/dialog\";\n\ninterface IProps {\n url: string,\n tyc?: boolean,\n titulo?: string,\n mensaje?: string\n}\n\ninterface IState {\n loading: boolean;\n}\n\nconst sleep = (milliseconds: any) => {\n return new Promise(resolve => setTimeout(resolve, milliseconds))\n}\n\nexport class ToLogin extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = { loading: true }\n this.redirect = this.redirect.bind(this);\n }\n\n onHide() {\n\n }\n\n redirect = async () => {\n await sleep(5000)\n this.setState({ loading: false });\n }\n\n public componentDidMount() {\n this.redirect();\n }\n\n render() {\n if (this.state.loading) {\n if (this.props.tyc)\n return (\n \n
\n Para continuar debe aceptar los terminos y condiciones, será redireccionado a la pantalla de Login\n
\n
\n )\n else if (this.props.titulo != undefined && this.props.mensaje != undefined)\n return (\n \n
\n {this.props.mensaje}\n
\n
)\n else\n return (\n \n
\n Se ha vencido la sesión, será redireccionado a la pantalla de Login\n
\n
\n )\n }\n else {\n return (\n {\n window.location.replace(this.props.url);\n return null;\n }}\n />\n );\n }\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { ToLogin } from '../misc/Redirect/ToLogin';\n\ninterface datosCabecera {\n nombre: string,\n empresa: string\n}\n\ninterface state {\n cabecera?: datosCabecera,\n isRedirect: boolean,\n loading: boolean,\n url: string\n}\n\nexport default class Header extends React.Component<{}, state> {\n constructor() {\n super({});\n this.state = { loading: true, cabecera: undefined, isRedirect: false, url: \"\" };\n this.onLogout = this.onLogout.bind(this);\n }\n public componentDidMount() {\n this.setState({ loading: true })\n this.populateHeaderData();\n }\n\n async onLogout() {\n var _this = this;\n await fetch('api/Logout/Logout', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.setState({\n isRedirect: true, url: data.nologin\n });\n });\n }\n render() {\n if (this.state.isRedirect) {\n return \n }\n else if (this.state.loading) {\n return (\n
\n

ARGENTINA

\n
)\n }\n else {\n return (\n
\n

ARGENTINA

\n
\n {this.state.cabecera != undefined ?\n
\n {this.state.cabecera.nombre}\n |\n {\"Cerrar Sesión\"}\n
\n :\n
\n
\n }\n
\n
\n )\n }\n }\n\n async populateHeaderData() {\n const response = await fetch(`api/Header/Get`);\n const data = await response.json();\n this.setState({ cabecera: data, loading: false });\n \n }\n}","import * as React from 'react';\nimport footerLogo from '../../images/Edenred_Digital-use.png';\n\nexport default class Footer extends React.Component<{}> {\n render() {\n return (\n
\n
\n
\n
\n \n
\n

Dirección Comercial: Alferez Hipólito Bouchard 4169/4191, 7° Piso, Munro, Buenos Aires, Argentina. Tel (011) 4909 1234.

\n
\n
\n

© 2020 Edenred Argentina. Todos los derechos reservados.

\n
\n
\n
\n )\n }\n}","import * as React from 'react';\nimport NavBar from './NavBar';\nimport Header from './Header';\nimport Footer from './Footer';\n\nexport default (props: { children?: React.ReactNode }) => (\n \n
\n
\n \n
\n {props.children}\n
\n
\n
\n
\n);","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Redirect } from 'react-router-dom';\nimport { BarChart, Bar, XAxis, YAxis, LabelList, CartesianGrid, Tooltip, Legend } from 'recharts';\nimport { Button } from 'primereact/button';\n\ninterface state {\n loading: boolean,\n isRedirect: boolean,\n width: number,\n height: number,\n data?: any,\n volumenprocesado30d: number,\n volumenprocesado60d: number,\n volumenprocesado90d: number,\n inProgress: number,\n programmed: number,\n factor: number,\n}\n\ninterface props {\n redirect: boolean;\n cursor: string;\n}\n\nconst renderCustomizedLabel = (props: { x?: any; y?: any; width?: any; height?: any; value?: any; }) => {\n const {\n x, y, width, height, value,\n } = props;\n const radius = 10;\n if (value == 0)\n return (
);\n else\n return (\n \n \n {formatMoney(value, 0)}\n \n \n );\n};\nconst CustomizedAxisTick = (props: { x?: any; y?: any; width?: any; height?: any; value?: any; stroke?: any; payload?: any; }) => {\n const { x, y, stroke, payload } = props;\n\n return (\n \n {payload.value}\n \n );\n};\n\n\nfunction formatMoney(amount: any, decimalCount = 2) {\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n}\n\nexport class GraficoReembolso extends React.Component {\n constructor(props: Readonly) {\n super(props);\n this.state = {\n loading: true,\n isRedirect: false,\n width: 0,\n height: 0,\n volumenprocesado30d: 0,\n volumenprocesado60d: 0,\n volumenprocesado90d: 0,\n inProgress: 0,\n programmed: 0,\n factor: 0.75\n\n };\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n this.populateChartData = this.populateChartData.bind(this);\n this.setRedirect = this.setRedirect.bind(this);\n }\n\n formatMoney(amount: any, decimalCount = 2) {\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n }\n\n public componentDidMount() {\n this.populateChartData();\n this.updateWindowDimensions();\n window.addEventListener('resize', this.updateWindowDimensions);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateWindowDimensions);\n }\n\n updateWindowDimensions() {\n var factor = 0.75;\n if (window.innerWidth <= 1280)\n factor = 0.90;\n\n this.setState({ width: window.innerWidth, height: window.innerHeight, factor: factor });\n }\n\n async populateChartData() {\n const response = await fetch('api/Home/GetGraficoReembolso');\n const data = await response.json();\n this.setState({\n data: data.graficos,\n volumenprocesado30d: data.volumenprocesado30d,\n volumenprocesado60d: data.volumenprocesado60d,\n volumenprocesado90d: data.volumenprocesado90d,\n inProgress: data.volumenEnProceso,\n programmed: data.volumenProgramado\n });\n }\n\n setRedirect = () => {\n this.setState({\n isRedirect: true\n })\n }\n\n render() {\n if (this.state.isRedirect && this.props.redirect) {\n return \n }\n return (\n
\n
\n \n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n

\n $ \n {this.formatMoney(this.state.volumenprocesado90d + this.state.volumenprocesado60d + this.state.volumenprocesado30d, 0)},\n {(this.formatMoney(this.state.volumenprocesado90d + this.state.volumenprocesado60d + this.state.volumenprocesado30d)).split(',')[1]}\n

\n

Pagados

\n
\n
\n
\n
\n

\n $ \n {this.formatMoney(this.state.inProgress, 0)},\n {(this.formatMoney(this.state.inProgress)).split(',')[1]}\n

\n

En proceso

\n
\n
\n
\n
\n

\n $ \n {this.formatMoney(this.state.programmed, 0)},\n {(this.formatMoney(this.state.programmed)).split(',')[1]}\n

\n

Programados

\n
\n
\n
\n
\n )\n }\n}","import * as React from 'react';\nimport { DataTable } from 'primereact/datatable';\nimport { InputText } from 'primereact/inputtext';\nimport { Column } from \"primereact/column\";\nimport { Button } from 'primereact/button';\nimport { IReembolso } from '../../interfaces/IReembolso';\nimport { Dialog } from 'primereact/dialog';\nimport { Dropdown } from 'primereact/dropdown';\n\ninterface IState {\n loading: boolean,\n visible: boolean,\n selectedItem?: IReembolso,\n globalFilter: any,\n filterTable: any,\n filterTableOptions: any,\n reembolsos?: IReembolso[]\n}\n\ninterface IProps {\n}\n\nexport class HistorialTablaReembolsos extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n loading: true,\n visible: false,\n globalFilter: null,\n filterTable: 'En Proceso/Programados',\n filterTableOptions: [\n { value: 'En Proceso/Programados' },\n { value: 'Últimos 30 días' },\n { value: 'Últimos 90 días' }\n ]\n }\n this.actionBodyTemplate = this.actionBodyTemplate.bind(this);\n this.export = this.export.bind(this);\n this.onFilterTable = this.onFilterTable.bind(this);\n }\n\n public componentDidMount() {\n this.getListaReembolso(this);\n }\n\n dt: any;\n\n onFilterTable(e: any) {\n this.setState({ filterTable: e.value });\n\n this.fliterListaReembolso(this, e.value)\n }\n\n async getListaReembolso(_this: this) {\n await fetch('api/Home/ObtenerListaReembolso', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.setState({ reembolsos: data });\n });\n }\n\n async fliterListaReembolso(_this: this, value: string) {\n let postData = { value: \"\" }\n\n if (value == 'En Proceso/Programados')\n postData.value = \"1\";\n if (value == 'Últimos 30 días')\n postData.value = \"2\";\n if (value == 'Últimos 90 días')\n postData.value = \"3\";\n\n await fetch('api/Home/FiltrarListaReembolso', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.setState({ reembolsos: data });\n });\n }\n\n formatMoney(amount: any) {\n var decimalCount = 2;\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n }\n\n renderHeader() {\n return (\n
\n
\n \n
\n
\n

Filtrar por:

\n \n
\n
\n

Buscar por:

\n this.setState({ globalFilter: e.target.value })} />\n
\n
\n );\n }\n\n actionBodyTemplate(item: IReembolso) {\n return (\n \n );\n }\n\n renderDialogContent() {\n\n if (this.state.selectedItem) {\n const adelantoExpressLabel = ((this.state.selectedItem.adelantoExpressStr == \"0,00\") ? null : );\n const adelantoExpress = ((this.state.selectedItem.adelantoExpressStr == \"0,00\") ? null : );\n return (\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n
\n
Composición de Pago
\n
\n
\n \n \n {adelantoExpressLabel}\n {\n this.state.selectedItem.debitos.map(function (item) {\n return ()\n })\n }\n \n
\n
\n \n \n {adelantoExpress}\n {\n this.state.selectedItem.debitos.map(function (item) {\n let monto = (item.monto >= 0 ? item.montoStr :\n \"(\" + item.montoStr.toString().replace(\"-\", \"\") + \")\")\n return ()\n })\n }\n \n
\n
\n
\n
\n );\n }\n else {\n return (\n
\n
\n );\n }\n }\n\n export() {\n this.dt.exportCSV();\n }\n\n render() {\n\n const header = this.renderHeader();\n\n return (\n
\n
\n this.dt = el} value={this.state.reembolsos} csvSeparator=\";\"\n header={header} responsive className=\"p-datatable-customers\" dataKey=\"id\" rowHover globalFilter={this.state.globalFilter}\n selection={this.state.selectedItem} onSelectionChange={e => this.setState({ selectedItem: e.value })}\n paginator rows={10} emptyMessage=\"No customers found\" currentPageReportTemplate=\"Mostrando del {first} a {last} de {totalRecords} registros\"\n paginatorTemplate=\"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink CurrentPageReport RowsPerPageDropdown\" rowsPerPageOptions={[5, 10, 25, 50]}>\n \n \n \n \n \n \n \n \n
\n this.setState({ visible: false })}>\n {this.renderDialogContent()}\n \n
\n );\n }\n}","import * as React from 'react'\nimport fetch from 'isomorphic-fetch';\nimport { Chart } from 'primereact/chart';\nimport { Panel } from 'primereact/panel';\nimport { IGraficoKPI } from '../../interfaces/IGraficoKPI';\nimport { AreaChart, Area, XAxis, YAxis, LabelList, CartesianGrid, Tooltip, Legend } from 'recharts';\nimport { Fieldset } from 'primereact/fieldset';\n\ninterface IProps {\n VolumenConsumido: number,\n CantidadTRX: number,\n VolumenConsumidoPromedioTRX: number,\n titulo: string,\n Data: IGraficoKPI | any,\n tipo: string\n}\n\ninterface IState {\n VolumenConsumido: string,\n VolumenConsumidoDecimales: string,\n VolumenConsumidoPromedioTRX: string,\n VolumenConsumidoPromedioTRXDecimales: string,\n CantidadTRX: string,\n height: number,\n width: number,\n factor: number\n}\nexport class Ultimos extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n VolumenConsumido: \"\",\n VolumenConsumidoDecimales: \"\",\n VolumenConsumidoPromedioTRX: \"\",\n VolumenConsumidoPromedioTRXDecimales: \"\",\n CantidadTRX: \"\",\n height: 0,\n width: 0,\n factor: 0.361\n }\n this.updateWindowDimensions = this.updateWindowDimensions.bind(this);\n }\n formatMoney(amount: any, decimalCount = 2) {\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n }\n public componentDidMount() {\n this.setState({\n VolumenConsumido: this.formatMoney(this.props.VolumenConsumido, 0),\n VolumenConsumidoDecimales: this.formatMoney(this.props.VolumenConsumido, 2).split(',')[1],\n VolumenConsumidoPromedioTRX: this.formatMoney(this.props.VolumenConsumidoPromedioTRX, 0),\n VolumenConsumidoPromedioTRXDecimales: this.formatMoney(this.props.VolumenConsumidoPromedioTRX, 2).split(',')[1],\n CantidadTRX: this.formatMoney(this.props.CantidadTRX, 0)\n });\n this.updateWindowDimensions();\n window.addEventListener('resize', this.updateWindowDimensions);\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateWindowDimensions);\n }\n\n updateWindowDimensions() {\n var factor = 0.361;\n if (window.innerWidth <= 1800)\n var factor = 0.358;\n if (window.innerWidth <= 1700)\n var factor = 0.354;\n if (window.innerWidth <= 1600)\n factor = 0.348;\n if (window.innerWidth <= 1400)\n factor = 0.342;\n if (window.innerWidth <= 1280)\n factor = 0.436;\n if (window.innerWidth <= 1250)\n factor = 0.433;\n if (window.innerWidth <= 1220)\n factor = 0.429;\n if (window.innerWidth <= 1070)\n factor = 0.426;\n if (window.innerWidth <= 1024)\n factor = 0.412;\n if (window.innerWidth <= 900)\n factor = 0.40;\n if (window.innerWidth <= 800)\n factor = 0.39;\n if (window.innerWidth <= 700)\n factor = 0.38;\n if (window.innerWidth <= 600)\n factor = 0.36;\n if (window.innerWidth <= 500)\n factor = 0.34;\n this.setState({ width: window.innerWidth, height: window.innerHeight, factor: factor });\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n \n $ \n {this.state.VolumenConsumido}\n \n Volumen Consumido\n
\n
\n
\n
\n
\n
\n {this.state.CantidadTRX}\n Cantidad de Transacciones\n
\n
\n
\n
\n \n $ \n {this.state.VolumenConsumidoPromedioTRX}\n \n Consumo promedio por Transacción\n
\n
\n
\n
\n
\n {this.props.Data != undefined ?\n \n \n \n
} />\n \n :\n
\n
\n }\n \n
\n );\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Redirect } from 'react-router-dom';\nimport { Panel } from 'primereact/panel';\n\nimport { GraficoReembolso } from '../charts/GraficoReembolso';\nimport { HistorialTablaReembolsos } from '../reembolso/HistorialTablaReembolsos';\nimport { Ultimos } from './Ultimos';\n\nimport { IGraficoKPI } from '../../interfaces/IGraficoKPI';\n\ninterface IState {\n isRedirect: boolean,\n loading: boolean\n}\n\ninterface IProps {\n VolumenConsumido12M: number,\n CantidadTRX12M: number,\n VolumenConsumidoPromedioTRX12M: number,\n VolumenConsumido30D: number,\n CantidadTRX30D: number,\n VolumenConsumidoPromedioTRX30D: number,\n dataGrfico12?: IGraficoKPI,\n dataGrfico30?: IGraficoKPI\n}\n\nexport class DashBoard extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n isRedirect: false,\n loading: true\n }\n }\n\n render() {\n if (this.state.isRedirect) {\n return \n }\n\n return (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n );\n }\n}","import * as React from 'react';\ninterface IState {\n}\ninterface IProps {\n}\n\n\nexport default class BuscarComercio extends React.Component {\n constructor(props: IProps) {\n super(props);\n }\n render() {\n return (
\n \n

Cargando

\n
)\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Button } from 'primereact/button';\nimport { Dropdown } from 'primereact/dropdown';\nimport Cargando from '../misc/Redirect/Cargando';\n\ninterface IState {\n searching: boolean,\n enable: boolean,\n comercios: string,\n user: string,\n userLabel: string,\n users?: users[]\n}\n\ninterface IProps {\n enviarComercios: Function\n}\n\ninterface users {\n login: string,\n nombre: string,\n apellido: string,\n email: string,\n value: string,\n label: string,\n}\nexport class BuscarComercio extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n searching: false,\n enable: true,\n comercios: \"\",\n userLabel: \"\",\n user: \"\"\n };\n this.onClick = this.onClick.bind(this);\n this.setComercios = this.setComercios.bind(this);\n this.onChange = this.onChange.bind(this);\n this.keyEnter = this.keyEnter.bind(this);\n this.onUserChange = this.onUserChange.bind(this);\n this.onClickUser = this.onClickUser.bind(this);\n\n }\n\n onChange = (e: any) => {\n this.setState({ comercios: e.target.value });\n };\n\n onClickUser() {\n if (this.state.user && this.state.user.trim().length > 0)\n this.setUsuario();\n }\n onClick() {\n this.setComercios();\n }\n\n keyEnter = (e: any) => {\n if (e.key === 'Enter') {\n this.onClick();\n }\n }\n async setUsuario() {\n this.setState({ searching: true });\n var comercios = { value: this.state.user };\n var _this = this;\n await fetch('api/Home/SetUsuario', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(comercios)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.props.enviarComercios(_this.state.comercios);\n _this.setState({ enable: false });\n });\n }\n async setComercios() {\n this.setState({ searching: true });\n var comercios = { value: this.state.comercios };\n var _this = this;\n await fetch('api/Home/SetComercios', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(comercios)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.setState({ users: data.usuarios, searching: false });\n });\n }\n async onUserChange(e: any) {\n this.setState({ user: e.value });\n }\n render() {\n console.log(\"buscarcomercios\");\n const drop = (this.state.users ?\n
\n \n
\n :\n
)\n\n if (this.state.enable)\n return (\n
\n
\n
\n \n \n \n \n {drop}\n
\n
\n
\n )\n else\n return ;\n }\n}","import * as React from 'react';\nimport { Button } from 'primereact/button';\nimport { ScrollPanel } from 'primereact/scrollpanel';\n\ninterface IState {\n}\n\ninterface IProps {\n componente: React.ReactElement,\n onCancelar: Function,\n onAcceptar: Function\n}\n\nexport class AceptarTerminos extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n }\n this.onCancelar = this.onCancelar.bind(this);\n this.onAcceptar = this.onAcceptar.bind(this);\n }\n onCancelar(e: any) {\n e.preventDefault();\n this.props.onCancelar();\n }\n onAcceptar(e: any) {\n e.preventDefault();\n this.props.onAcceptar();\n }\n render() {\n return (\n \n
\n
\n
\n {this.props.componente}\n
\n\n
\n )\n }\n}","import * as React from 'react';\n\nexport class General extends React.Component {\n constructor() {\n super({});\n this.state = {\n\n }\n }\n\n render() {\n return (\n \n

TÉRMINOS Y CONDICIONES DE USO

\n

Bienvenido. Este Sitio Web es una herramienta de EDENRED ARGENTINA S.A. a disposición de los establecimientos integrantes de su Red de comercios, con el objeto de que estos realicen las gestiones de correspondientes a los reembolsos por las transacciones realizadas, adelantos de reembolso y acceso a información sobre resultados de negocio.

\n

El uso de este Sitio está sujeto a los presentes Términos y condiciones. En la Página Principal de este Sitio Web aparece en forma ostensible un vínculo –link- con estos Términos, los cuales estarán disponibles permanentemente para su revisión, siendo su lectura y aceptación de carácter obligatorio, así mismo se enviará el documento vía mail.

\n

EL USO DE ESTE SITIO IMPLICA QUE ACUERDA SOMETERSE A TODOS Y CADA UNO DE LOS SIGUIENTES TÉRMINOS Y COMPRENSIÓN DE LOS MISMOS.

\n

EDENRED ARGENTINA podrá modificar estos Términos (de manera parcial o total) en cualquier momento, poniendo a disposición los nuevos Términos en este Sitio. El hecho de que continúe utilizando este Sitio implica que Ud. presta su consentimiento a cualquiera de dichas modificaciones y, por lo tanto, sugerimos visitar periódicamente esta página a fin de comprobar cuáles son los Términos en vigencia en ese momento.

\n

En el caso de que cualquier disposición de estos Términos fuera declarada inválida, ilegal o inexigible por un tribunal, se considerará que dicha disposición puede excluirse de estos Términos, permaneciendo las restantes disposiciones en plena vigencia y efecto. El hecho de que EDENRED ARGENTINA no ejerciera o hiciera valer algún derecho o disposición de estos Términos no constituirá una renuncia a dicho derecho o disposición.

\n

Algunas Definiciones:

\n

A continuación, se establecen las definiciones que explican algunas de las acepciones y alcances sobre el vocabulario empleado en estos Términos:

\n

Las palabras \"usted\", “Ud.” y \"su\" hacen referencia a el/los establecimientos comerciales de la Red de Edenred Argentina, pudiendo ser estos personas humanas o jurídicas, conforme la legislación aplicable, y sus agentes, apoderados o representantes.

\n
    \n
  • \"EDENRED ARGENTINA \" hace referencia a EDENRED ARGENTINA S.A.

  • \n
  • \"Nosotros\", \"nuestro\" y demás pronombres personales de primera persona hacen referencia a EDENRED ARGENTINA.

  • \n
  • \"Sitio\" significa la página principal y todas las páginas relacionadas a las que pueda accederse a través de la página principal en forma directa o mediante vínculos adicionales, pero no incluye sitios web de terceros que no sean mantenidos o patrocinados por EDENRED ARGENTINA.

  • \n
  • “Material” y “Materiales” hacen referencia a todo dato, información, comprobante, factura, nota de crédito, etc. que Ud. cargue en el Sitio.

  • \n
  • Acreditación en cuenta: es la modalidad de depósito normal y habitual por la que el comercio percibe los montos acreditados.

  • \n
  • Consumo promedio por transacción: es la resultante del cálculo entre volumen consumido y Cantidad de transacciones.

  • \n
  • Días ganados: días de adelanto generado sobre Reembolsos programados que generó un comercio o CUIT.

  • \n
  • Empresarial: es la modalidad de depósito mediante tarjeta Edenred (red MasterCard) por la que el comercio puede optar percibir los montos a acreditar.

  • \n
  • Estado: Es la categoría interna de Edenred que indica la situación de la presentación.

  • \n
  • Gastos Administrativos: son los gastos correspondientes a la ejecución de operatorias que puede implicar el adelanto de un reembolso, conforme el método o forma de acreditación seleccionada por el comercio.

  • \n
  • Monto a acreditar: es el monto neto a percibir por el comercio, resultante de la aplicación de la totalidad de descuentos correspondientes a los reembolsos.

  • \n
  • Pago Express: es la posibilidad de adelantar la fecha de acreditación de los reembolsos programados, pudiendo el comercio seleccionar los montos y modalidad de acreditación, según lo estipulado en los términos y condiciones del particular.

  • \n
  • Presentación: agrupación de transacciones presentadas por el comercio (de manera automática o manual por el comercio, según la tipología de solución) para la generación de reembolsos a los Comercios de la red.

  • \n
  • Producto: es la tipología de solución o servicio al que hace referencia una Presentación.

  • \n
  • Reembolsados: es la suma de liquidaciones netas percibidas por los comercios en un plazo de tiempo determinado.

  • \n
  • Reembolsos en proceso: son los reembolsos cuya fecha de acreditación se encuentra prevista dentro de las próximas 48hs en la que se realiza la consulta, cuya fecha de acreditación no es susceptible de ser modificada.

  • \n
  • Reembolsos programados: son aquellos reembolsos cuya fecha de acreditación está prevista a partir de las 72hs (en adelante) a la generación de la consulta de reembolsos, cuya fecha de acreditación es susceptible de ser adelantada mediante la modalidad de “Reembolso Express” conforme aceptación de términos y condiciones del particular.

  • \n
  • Reembolsos: suma de liquidaciones presentadas para ser percibidas por el/los comercio/s de la Red. Cada reembolso cuenta con una fecha estipulada para su acreditación, conforme condiciones comerciales por solución y proceso correspondiente.

  • \n
  • TNM: tasa nominal mensual.

  • \n
  • Transacciones: suma de operaciones individuales realizadas por los usuarios de las soluciones de Edenred que componen una liquidación.

  • \n
  • Volumen Consumido: es la sumatoria nominal de transacciones unitarias generadas en un comercio o CUIT, para un periodo de tiempo determinado.

  • \n
\n

Accesibilidad:

\n

Para acceder al presente Sitio EDENRED ARGENTINA le proporcionó a Ud., en su carácter de establecimiento perteneciente a la Red, un usuario y contraseña. Por lo dicho sí Ud. no pertenece la red de establecimientos de EDENRED ARGENTINA absténgase de utilizar el presente Sitio.

\n

Uso de Material Protegido por Derechos de Autor en este Sitio

\n

Los derechos de autor sobre todos los materiales provistos incluyendo, entre otros las marcas y logos, en este Sitio por EDENRED ARGENTINA son de titularidad de EDENRED ARGENTINA o del creador original del material. EDENRED ARGENTINA le otorga una licencia limitada, no exclusiva e intransferible, para usar y mostrar –de buena fe- los materiales de este Sitio solamente con la finalidad de su interacción con el mismo. La licencia incluye el derecho a imprimir dicho material, pero sólo con los fines mencionados. A menos que se establezca lo contrario, usted no tiene derecho alguno a copiar, mostrar, reproducir, descargar, distribuir, modificar, editar, alterar o incrementar los materiales en forma alguna, incluyendo, sin que implique limitación, en forma electrónica, mecánica, de fotocopiado, grabación o de otra manera, sin la previa autorización escrita de EDENRED ARGENTINA o del titular de los derechos de autor. Esta licencia se extingue automáticamente y sin notificación previa si usted infringe cualquiera de estos Términos. Una vez extinguida, usted debe destruir cualquiera de los materiales descargados o impresos que hubieran sido obtenidos de este Sitio.

\n

Información Confidencial o de Propiedad de EDENRED ARGENTINA:

\n

EDENRED ARGENTINA posee políticas y procedimientos diseñados para prevenir, en su sitio de internet, la revelación de información que EDENRED ARGENTINA considera confidencial o secretos comerciales de su propiedad. Sin embargo, si en cualquier momento Ud. obtiene de este sitio de internet, información confidencial o secretos comerciales de propiedad de EDENRED ARGENTINA que pudieran ser revelados inadvertidamente por EDENRED ARGENTINA, Ud. acuerda actuar de buena fe en reconocer y respetar la confidencialidad de esa información y Ud. acuerda no hacer uso de o revelar a ningún tercero, cualquier información o secreto comercial que pudiera obtener de este sitio de internet, y a destruir cualquier copia de esa información que pudiera tener en su posesión, en cualquier soporte en que se encuentre la misma.

\n

Nombres de Usuarios y Contraseñas:

\n

Para ingresar y utilizar el presente Sitio Ud. ha recibido, de EDENRED ARGENTINA, un nombre de Usuario y contraseña, entonces:

\n
    \n
  • Usted acuerda utilizar el Sitio exclusivamente con fines legítimos.

  • \n
  • Al ingresar con su nombre de Usuario, acuerda emplear únicamente información exacta y verdadera sobre usted y no imitará a ninguna otra persona ni asumirá una identidad falsa.

  • \n
  • Usted acuerda notificarnos de inmediato sobre cualquier uso no autorizado de su Contraseña, Nombre de Usuario o del Sitio, o cualquier otra violación de seguridad, para ello envíe un mail a la siguiente casilla: mde_comunicacion-AR@edenred.com o contáctese telefónicamente a: 11 4909-1234 opción MDE-.

  • \n
  • Usted acuerda no compartir su Nombre de Usuario o Contraseña con ninguna otra persona.

  • \n
  • Usted acuerda asumir plena responsabilidad por todos los riesgos emergentes del uso del Sitio por parte de usted o de cualquier otra persona que utilice su Nombre de Usuario o Contraseña.

  • \n
\n

EDENRED ARGENTINA se reserva el derecho, en cualquier momento y a su exclusivo criterio, de modificar o suspender el Sitio, modificar o suspender cualquier información u otro contenido del Sitio o revocar su Contraseña y Nombre de Usuario y su uso del Sitio, con o sin motivo.

\n

Operaciones:

\n

Ud., con su Nombre de Usuario y Contraseña, deberá ingresar al Sitio y seleccionar aquel/aquellos lote/s que desea presentar, completando la información solicitada en el Sitio y adjuntando la imagen del comprobante debidamente emitido (factura, nota de crédito y/o ticket factura) que corresponda a dicho/s lote/s. Cumplimentado esto, EDENRED ARGENTINA iniciará el proceso de validación de la información y documentación por Ud. presentada. Finalizado este proceso, podrá resultar la aprobación o rechazo de la información y documentación presentada. En caso de rechazo, Ud. deberá presentar nuevamente la información y documentación correctas para dar respuesta al motivo del rechazo. Realizado ello, EDENRED ARGENTINA iniciará el proceso de validación correspondiente conforme lo explicado en el presente párrafo.

\n

Aprobada/s la/s presentación/presentaciones, Ud. Tendrá la obligación de remitir, vía postal y la primer semana de cada mes, a EDENRED ARGENTINA la documentación en original cuya/s imagen/imágenes haya/n sido presentada/s. Dicha documentación deberá ser remitida en sobre/s rotulado/s conforme instrucciones de EDENRED ARGENTINA. En tal sentido, en el/los sobre/s se incluirá, además de la documentación mencionada, copia del comprobante de operación que emite el Sitio al finalizar cada presentación. Le recordamos que la falta de cumplimiento de este requisito -envío vía postal y durante la primer semana de cada mes, conforme lo expuesto en este párrafo- imposibilitará que las subsiguientes presentaciones prosperen.

\n

Marcas:

\n

Las marcas, marcas de servicios y logotipos (las \"Marcas\") que se usan y muestran en este Sitio son Marcas registradas de EDENRED. A menos que se establezca lo contrario en el Sitio, no se interpretará que nada en este Sitio otorga una licencia o derecho a usar cualquier Marca que se muestre en el Sitio, sin la aprobación escrita del titular de la Marca. Salvo que se indique expresamente en el Sitio, el nombre EDENRED ARGENTINA o su logo no podrá ser usado en forma alguna, incluyendo avisos o publicidad, sin la previa autorización escrita de EDENRED ARGENTINA.

\n

Privacidad:

\n

En la medida en que este Sitio contenga Información Personal sobre usted, nuestro uso de dicha información se encuentra sujeto a la Política de Privacidad de EDENRED ARGENTINA, cuyos términos se encuentran incluidos en este Sitio.

\n

Inexistencia de Garantías

\n

EDENRED ARGENTINA NO OTORGA GARANTÍA NI EFECTÚA DECLARACIÓN ALGUNA EN RELACIÓN CON EL USO, VALIDEZ, EXACTITUD O CONFIABILIDAD O LOS RESULTADOS DEL USO DE, O DE OTRA MANERA RELACIONADOS CON, LOS MATERIALES EN ESTE SITIO, EL FUNCIONAMIENTO DEL SITIO O DE CUALESQUIERA SITIOS VINCULADOS A ESTE SITIO.

\n

Limitaciones a la Responsabilidad de EDENRED ARGENTINA:

\n

EDENRED ARGENTINA NO TENDRÁ RESPONSABILIDAD ALGUNA, BAJO NINGUNA CIRCUNSTANCIA, INCLUYENDO, SIN QUE ELLO IMPLIQUE LIMITACIÓN ALGUNA, POR CULPA, EN RELACION CON CUALESQUIERA DAÑOS Y PERJUICIOS DIRECTOS O INDIRECTOS, INCLUYENDO, SIN CARÁCTER RESTRICTIVO, LA PÉRDIDA DE DATOS O LUCRO CESANTE, ORIGINADOS EN EL SITIO O EN EL USO O LA IMPOSIBILIDAD DE USO DE LOS MATERIALES OBRANTES EN ESTE SITIO, AÚN CUANDO EDENRED ARGENTINA O UN REPRESENTANTE AUTORIZADO DE EDENRED ARGENTINA HAYAN SIDO INFORMADOS ACERCA DE LA POSIBLE OCURRENCIA DE DICHOS DAÑOS Y PERJUICIOS.

\n

EN CASO DE QUE, COMO CONSECUENCIA DE SU UTILIZACION DE ESTE SITIO, FUERA NECESARIO UN MANTENIMIENTO, REPARACION O CORRECCIÓN DE EQUIPOS O DATOS, UD. ASUMIRÁ LOS COSTOS QUE DE ELLO SE DERIVARAN.

\n

Obligaciones de Indemnizar:

\n

Usted acuerda defender, indemnizar y mantener indemne a EDENRED ARGENTINA y sus respectivos directores, funcionarios, empleados y agentes respecto de todos los daños y perjuicios, reclamos y gastos, incluyendo los honorarios de abogados, originados en el uso que usted hiciera de este Sitio o por el uso indebido de cualquier información obtenida de este Sitio o la transmisión que usted hiciera de información, datos, materiales o contenido del Sitio.

\n

Avisos que pueden aparecer en el Sitio:

\n

En caso que en este Sitio aparezca una publicidad de un producto o servicio brindado por otra persona que no sea EDENRED ARGENTINA, esta última no avala ni brinda garantía alguna respecto de dicho producto o servicio y no será parte ni en modo alguno supervisará ninguna operación llevada a cabo entre usted y terceros proveedores de productos o servicios. Respecto a la compra de un producto o servicio a través de cualquier medio o en cualquier entorno, deberá emplear su mejor criterio y adoptar una conducta cautelosa cuando ello fuere menester.

\n

Material, datos e información ingresados en el Sitio:

\n

El Sitio le permite colocar o cargar contenido en el mismo por lo que serán aplicables a dicho uso y son aceptados por usted en el presente los siguientes términos:

\n

Usted interpreta que toda la información, contenido, texto, datos, mensajes u otros materiales, incluidos en el Sitio o transmitidos en forma privada (el \"Material\") son de responsabilidad de la persona de quien proviene dicho Material. Usted será responsable de todo Material que coloque, transmita o que de otro modo ponga a disposición del Sitio; quedando sujeto el Material a la posterior validación de EDENRED ARGENTINA. Usted reconoce y acuerda que debe evaluar y soportar todos los riesgos vinculados al uso de cualquier Material, incluso como consecuencia de haberse basado en la exactitud e integridad del Material.

\n

EDENRED ARGENTINA no tiene el control de dicho Material y por lo tanto no garantiza la exactitud, integridad o calidad de éste. EDENRED ARGENTINA no será responsable en modo alguno por el Material, incluyendo, sin que ello implique limitación, cualesquiera errores u omisiones en el Material o cualquier pérdida o daño de cualquier índole como resultado del uso de cualquier Material colocado, transmitido o de otro modo disponible en el Sitio.

\n

Toda vez que EDENRED ARGENTINA no analiza ni puede analizar toda comunicación o información colocada o transmitida por usted u otras personas al Sitio o a terceros y no tiene responsabilidad alguna respecto del contenido de estos mensajes, EDENRED ARGENTINA se reserva el derecho de suprimir, trasladar el Material o solicitar a Ud. que lo suprima o modifique.

\n

Usted acuerda utilizar el Sitio en forma adecuada y asimismo que, al utilizar el Sitio, se abstendrá de:

\n
    \n
  • Cargar, distribuir o de otro modo publicar material calumnioso, difamatorio, obsceno, desagradable, pornográfico, abusivo, ilegal, amenazador o de otro modo censurable;

  • \n
  • Cargar o distribuir archivos que contengan virus, gusanos, archivos dañados o cualquier otro software o programa similar que pudiera dañar el funcionamiento de la computadora o propiedad de otra persona;

  • \n
  • Hostigar, acosar, amenazar o de otro modo violar los derechos legales (incluyendo el derecho a la privacidad y el derecho a la publicidad) de terceros;

  • \n
  • Transmitir o de otro modo poner a disposición cualquier Material sobre el cual usted no tuviera derecho;

  • \n
  • Colocar material que viole los derechos de propiedad intelectual de terceros (incluyendo, sin limitación alguna, derechos de autor, secretos comerciales, marcas o demás derechos de propiedad exclusiva);

  • \n
  • Violar, en forma intencionada o no, cualquier ley aplicable de carácter local, provincial, nacional o internacional;

  • \n
  • Transmitir o de otro modo poner a disposición propagandas, material publicitario no pedido ni autorizado o cualquier otra forma de captación; y

  • \n
  • Distribuir o de otro modo publicar cualquier material que contenga captación de fondos, publicidad o bienes o servicios.

  • \n
\n

Usted reconoce y acuerda que EDENRED ARGENTINA podrá divulgar cualquier Material, y la fuente o propietario de cualquier Material, si ello le fuera requerido por una disposición o procedimiento legal, a fin de hacer cumplir las disposiciones de los presentes Términos o proteger los derechos de EDENRED ARGENTINA, sus clientes y/o Visitantes del Sitio.

\n

Derechos de EDENRED ARGENTINA sobre el Material Enviado al Sitio

\n

A menos que Usted indique lo contrario, cualquier Material que usted transmita o ponga de otro modo a disposición de este Sitio deberá adecuarse a estos Términos y no reviste el carácter de confidencial o de propiedad exclusiva. Automáticamente usted reconoce o garantiza, que Ud. y/o el propietario del Material ha otorgado a EDENRED ARGENTINA el derecho a usar, reproducir, publicar y crear obras derivadas de dicho Material, exhibir, distribuir, importar y transmitir dicho Material en cualquier forma, medios o tecnología, conocidos en la actualidad o desarrollados en el futuro, así como publicar el nombre de su propietario en relación con ello.

\n

EDENRED ARGENTINA da y dará cumplimiento a los presente términos en consonancia con la normativa argentina vigente.

\n

La última modificación de estos Términos tuvo lugar el 30 de abril de 2020, y los mismos regirán su acceso a este Sitio desde dicha fecha y hasta tanto se incluya una modificación posterior.

\n
\n )\n }\n}\n","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { connect } from 'react-redux';\nimport { Dialog } from 'primereact/dialog';\n\nimport { DashBoard } from '../dashboard/DashBoard';\nimport { BuscarComercio } from '../home/BuscarComercio';\nimport { ToLogin } from '../misc/Redirect/ToLogin';\nimport { AceptarTerminos } from '../terminosCondiciones/AceptarTerminos';\nimport { General } from '../terminosCondiciones/General';\n\nimport { IReembolso } from '../../interfaces/IReembolso';\nimport { IGraficoKPI } from '../../interfaces/IGraficoKPI';\nimport { ITyCRequest } from '../../interfaces/ITyCRequest';\n\ninterface IState {\n loadingKpi: boolean,\n loadingTyC: boolean,\n showDashBoard: boolean,\n showBuscarComercio: boolean,\n data?: any,\n comercios: string,\n ultimos: IUltimos,\n reembolsos?: IReembolso[],\n redirect: boolean,\n url: string,\n tycVisible: boolean\n} \n\ninterface IUltimos {\n volumenConsumido12M: number,\n cantidadTRX12M: number,\n volumenConsumidoPromedioTRX12M: number,\n volumenConsumido30D: number,\n cantidadTRX30D: number,\n volumenConsumidoPromedioTRX30D: number,\n presentaciones12M?: IGraficoKPI,\n presentaciones30D?: IGraficoKPI\n}\n\ninterface IProps {\n enviarComercios: Function\n}\n\nexport class Home extends React.Component {\n constructor(props: IProps) {\n super(props);\n let ult: IUltimos = {\n volumenConsumido12M: 0,\n cantidadTRX12M: 0,\n volumenConsumidoPromedioTRX12M: 0,\n volumenConsumido30D: 0,\n cantidadTRX30D: 0,\n volumenConsumidoPromedioTRX30D: 0\n }\n\n this.state = {\n tycVisible: false,\n loadingTyC: true,\n loadingKpi: true,\n showDashBoard: false,\n comercios: \"\",\n ultimos: ult,\n redirect: false,\n url: \"\",\n showBuscarComercio: false\n };\n\n this.onCancelar = this.onCancelar.bind(this);\n this.onAcceptar = this.onAcceptar.bind(this);\n this.onHide = this.onHide.bind(this);\n\n this.verificar = this.verificar.bind(this);\n this.tycVerify = this.tycVerify.bind(this);\n this.getInitial = this.getInitial.bind(this);\n this.handleComercios = this.handleComercios.bind(this);\n }\n\n handleComercios(result: string) {\n this.setState({ comercios: result });\n this.getKpis(this);\n }\n\n public componentDidMount() {\n this.getInitial();\n }\n\n async getInitial() {\n this.verificar();\n this.tycVerify();\n }\n\n async verificar() {\n let _this = this;\n await fetch('api/Home/VerificarCarga', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else if (!data.error) {\n _this.setState({ comercios: data.comerciosString });\n if (_this.state.comercios != \"\") {\n _this.getKpis(_this);\n }\n else {\n _this.setState({ showBuscarComercio: data.todos });\n }\n }\n });\n }\n\n async getKpis(_this: this) {\n const response = await fetch('api/Home/GetKpis');\n const data = await response.json();\n\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else {\n _this.setState({ ultimos: data.respuesta, loadingKpi: false, showDashBoard: true, showBuscarComercio: false });\n }\n }\n\n async tycVerify() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 1,\n }\n await fetch('api/TerminosCondiciones/ObtenerTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.success)\n _this.setState({ tycVisible: !data.tyC, loadingTyC: false });\n });\n }\n\n async onAcceptar() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 1,\n }\n await fetch('api/TerminosCondiciones/aceptarTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.success)\n _this.setState({ tycVisible: false });\n });\n }\n\n async onCancelar() {\n var _this = this;\n await fetch('api/Logout/Logout', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n _this.setState({\n redirect: true, url: data.nologin\n });\n });\n }\n\n onHide() {\n this.onCancelar();\n }\n\n render() {\n const tyc = ;\n if (this.state.redirect) {\n return \n }\n else if (this.state.showBuscarComercio)\n return ;\n else if (this.state.loadingKpi || this.state.loadingTyC)\n return
\n \n

Cargando

\n
;\n else if (this.state.tycVisible) {\n return (\n \n )\n }\n else if (this.state.showDashBoard && this.state.comercios != \"\" && this.state.comercios != undefined)\n return ;\n }\n}\n\nexport default connect()(Home);","import * as React from 'react';\nimport { Dialog } from 'primereact/dialog';\nimport { Redirect } from 'react-router-dom';\n\ninterface IProps {\n title: string,\n message: string,\n type: string,\n redirect: boolean,\n url: string,\n accept: Function\n}\n\ninterface IState {\n loading: boolean,\n visible: boolean\n}\n\nconst sleep = (milliseconds: any) => {\n return new Promise(resolve => setTimeout(resolve, milliseconds))\n}\n\nexport class Result extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n loading: true,\n visible: true\n }\n this.onAcceptar = this.onAcceptar.bind(this);\n }\n\n redirect = async () => {\n await sleep(4000)\n this.setState({ loading: false });\n }\n\n public componentDidMount() {\n if (this.props.redirect)\n this.redirect();\n }\n\n onAcceptar(e: any) {\n e.preventDefault();\n if (this.props.redirect)\n this.setState({ loading: false });\n else\n this.props.accept(\"\");\n }\n\n render() {\n\n if (!this.state.loading && this.props.redirect) {\n return \n }\n const header = (\n
\n {(() => {\n switch (this.props.type) {\n case 'success':\n return
\n \n
\n case 'info':\n return
\n \n
\n case 'error':\n return
\n \n
\n }\n })()}\n
\n );\n const body = (\n
\n this.setState({ visible: false })}>\n

{this.props.title}

\n
\n

{this.props.message}

\n
\n \n {(() => {\n switch (this.props.type) {\n case 'success':\n return \n case 'info':\n return \n case 'error':\n return \n }\n })()}\n\n \n \n
\n );\n if (this.props.type == \"\") {\n return null\n }\n else {\n return (body)\n }\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Dialog } from 'primereact/dialog';\nimport { Button } from 'primereact/button';\n\nimport { Result } from '../misc/Message/Result';\n\ninterface IState {\n result: number\n}\ninterface IProps {\n close: Function,\n usuario: string\n}\n\nexport default class BlanquearClave extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n result: 0\n }\n this.onHide = this.onHide.bind(this);\n this.onAceptar = this.onAceptar.bind(this);\n }\n\n onHide() {\n this.props.close();\n }\n\n async onAceptar() {\n var _this = this;\n\n var login = { Usuario: this.props.usuario, Clave: \"\" };\n\n await fetch('api/User/Blanquear', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(login)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data)\n _this.setState({ result: 1 })\n else\n _this.setState({ result: 2 })\n });\n }\n\n footer() {\n return (\n
\n
\n );\n }\n\n render() {\n if (this.state.result == 1) {\n return ()\n }\n\n if (this.state.result == 2) {\n return ()\n }\n return (\n \n

¿Deseas blanquear la contraseña?

\n \n );\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Route } from \"react-router\";\nimport { Button } from 'primereact/button';\nimport { Redirect } from 'react-router-dom';\nimport Home from './Home';\nimport mainLogo from '../../images/logo-edenred.png';\nimport backgroundLogin from '../../images/login-background.png';\nimport BlanquearClave from '../login/BlanquearClave';\n\nimport { Result } from '../misc/Message/Result';\n\ninterface IState {\n url: string,\n token: string,\n loading: boolean,\n enable: boolean,\n usuario: string,\n clave: string,\n error: number,\n popup: boolean,\n userValidation: number\n}\ninterface IProps {\n enviarLogeo: Function\n}\nexport default class Login extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = {\n loading: true,\n enable: true,\n url: \"\",\n token: \"\",\n usuario: \"\",\n clave: \"\",\n error: 0,\n popup: false,\n userValidation: 0\n };\n\n this.aceptar = this.aceptar.bind(this);\n this.onChangeUsuario = this.onChangeUsuario.bind(this);\n this.onChangeClave = this.onChangeClave.bind(this);\n this.keyEnter = this.keyEnter.bind(this);\n this.onClickBlanquearClave = this.onClickBlanquearClave.bind(this);\n this.handleBlanquearClave = this.handleBlanquearClave.bind(this);\n }\n\n async aceptar() {\n var _this = this;\n\n var comercios = { Usuario: this.state.usuario, Clave: this.state.clave };\n\n _this.setState({ enable: false, error: 0 });\n await fetch('api/Login/Authenticate', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(comercios)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data != false && data.loged) {\n _this.props.enviarLogeo(true, true)\n _this.setState({ url: data.url, loading: false, enable: true, token: data.token });\n }\n else\n _this.setState({ error: 1, enable: true });\n });\n }\n\n onChangeUsuario = (e: any) => {\n this.setState({ usuario: e.target.value });\n };\n\n onChangeClave = (e: any) => {\n this.setState({ clave: e.target.value });\n };\n\n keyEnter = (e: any) => {\n if (e.key === 'Enter') {\n this.aceptar();\n }\n }\n // { window.location.replace(this.state.url); return null; }} />\n // \n\n onClickBlanquearClave() {\n if (this.state.usuario.length != 0) {\n if (this.state.popup == false) {\n this.setState({ popup: true });\n } else {\n this.setState({ popup: false });\n }\n this.setState({ userValidation: 0 });\n } else {\n this.setState({ userValidation: 1 });\n }\n }\n\n handleBlanquearClave() {\n this.setState({ popup: false });\n }\n\n render() {\n if (this.state.loading)\n return (\n
\n
\n
\n

Portal de Comercios

\n
\n
\n \"Edenred\"\n
\n
\n
\n
\n
\n \"Edenred\"\n
\n
\n

¡Es bueno verte de nuevo!

\n

En este portal de acceso exclusivo podrás gestionar tu cuenta, monitorear los pagos y acceder a todas las ventajas y beneficios que te ofrece Edenred por ser parte de su red.

\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n {(this.state.enable ?
\n
\n
\n Olvidé mi contraseña\n {this.state.popup == true ? : this.onClickBlanquearClave}\n {(this.state.userValidation == 1 ? Ingrese el campo Usuario y luego de clic en \"Olvidé mi contraseña\" : null)}\n
\n
\n
\n
\n )\n\n else\n return (\n \n )\n }\n}","import * as React from 'react';\nimport { DataTable } from 'primereact/datatable';\nimport { Column } from 'primereact/column';\nimport { InputText } from 'primereact/inputtext';\nimport { Panel } from 'primereact/panel';\nimport { Dropdown } from 'primereact/dropdown';\nimport { Button } from 'primereact/button';\nimport 'primereact/resources/primereact.css';\nimport 'primeflex/primeflex.css';\n\n\ninterface IState {\n listaCupon: any,\n globalFilter: any,\n presentaciones: any,\n selectedPresentaciones: any,\n presentacionSugerida: any,\n selectedMultiPresentaciones: any\n selectedMultiPresentacionesProd: any,\n productos: any,\n disabled: boolean,\n vtasComercio: any,\n vtasComercioSinDesc: any,\n devolucionDescuentos: any,\n comisionPrograma: any,\n ajusteCtaCorriente: any,\n impuestos: any,\n bruto: any,\n neto: any,\n acreditacionVta: any,\n lts: any\n\n}\n\n\ninterface IProps {\n listaCupon: any[],\n redId: any\n \n}\n\nexport class TransaccionesAsociadas extends React.Component {\n constructor(props: IProps) {\n super(props);\n\n this.state = {\n listaCupon: this.props.listaCupon,\n globalFilter: null,\n selectedPresentaciones: [],\n presentaciones: [],\n selectedMultiPresentaciones: null,\n selectedMultiPresentacionesProd: null,\n presentacionSugerida: null,\n productos: null,\n disabled: true,\n vtasComercio: 0,\n vtasComercioSinDesc: 0,\n devolucionDescuentos: 0,\n comisionPrograma: 0,\n ajusteCtaCorriente: 0,\n impuestos: 0,\n neto: 0,\n bruto:0,\n acreditacionVta: 0,\n lts: 0\n };\n }\n componentDidMount() {\n \n let pres = [...this.props.listaCupon].map(e => {\n return e.numeroPresentacion\n });\n\n let presentaciones = pres.filter((item, index) => {\n return pres.indexOf(item) === index;\n }).map(e => { return { numeroPresentacion: e } })\n\n let prod = [...this.props.listaCupon].map(e => {\n return e.servicio\n });\n\n let productos = prod.filter((item, index) => {\n return prod.indexOf(item) === index;\n }).map(e => { return { servicio: e } })\n\n\n this.setState({ presentaciones, productos });\n this.cargarResumen([...this.props.listaCupon]);\n\n\n\n }\n\n //#region \"onChanges\"\n onChangeddlPresentaciones(e: any) {\n let a = e.value;\n let selectedPresentaciones = [];\n let p = this.state.listaCupon.slice();\n this.setState({ selectedMultiPresentaciones: a });\n if (a) {\n \n selectedPresentaciones = p.filter((e:any) => {\n if (e.numeroPresentacion === a.numeroPresentacion) {\n return e;\n }\n })\n }\n\n this.setState({ selectedPresentaciones });\n if (selectedPresentaciones.length > 0) {\n this.cargarResumen(selectedPresentaciones);\n } else {\n this.cargarResumen(this.state.listaCupon);\n\n }\n }\n onChangeDdlProductos(e: any) {\n let a = e.value;\n let selectedPresentaciones = [];\n this.setState({ selectedMultiPresentacionesProd: a });\n if (a) {\n let p = this.state.listaCupon.slice();\n selectedPresentaciones = p.filter((e:any) => {\n if (e.servicio === a.servicio) {\n return e;\n }\n })\n }\n this.setState({ selectedPresentaciones });\n if (selectedPresentaciones.length > 0) {\n this.cargarResumen(selectedPresentaciones);\n } else {\n this.cargarResumen(this.props.listaCupon);\n\n }\n\n }\n\n cargarResumen = (props: any) => {\n \n if (props.length > 0) {\n /*\n a.\tTotal Bruto Margen Calculado = Ventas en comercio Bruto + Devolución Descuentos Bruto - Comisión Programa Bruto\n b.\tTotal Neto Margen Calculado = Ventas en comercio Neto + Devolución Descuentos Neto - Comisión Programa Neto\n c.\tAcreditación por Ventas Bruto = Suma Ventas en Comercio Bruto\n d.\tAcreditación por Ventas Neto = Acreditación por Ventas informado en input Raizen\n e.\tVentas comercio Sin Desc = Suma por presentacion trd_monto_sin_desc\n \n */\n let vtasSinDesc = [...props].filter(e => e.tipoMovimiento === \"Ventas Sin Desc.($ Surt.)\").map(e => e.importeBruto).reduce((a, b) => a + b, 0);\n let vtasEnComercioBruto = [...props].filter(e => e.tipoMovimiento === \"Ventas Con Desc.\").map(e => e.importeBruto).reduce((a, b) => a + b, 0);\n let devolucionDescuentosBruto = [...props].filter(e => e.tipoMovimiento.startsWith(\"Devo\")).map(e => e.importeBruto).reduce((a, b) => a + b, 0);\n let comisionProgramaBruto = [...props].filter(e => e.tipoMovimiento.startsWith(\"Comi\")).map(e => e.importeBruto).reduce((a, b) => a + b, 0);\n let vtasEnComercioNeto = [...props].filter(e => e.tipoMovimiento === \"Ventas Con Desc.\").map(e => e.importeNeto).reduce((a, b) => a + b, 0);\n let devolucionDescuentosNeto = [...props].filter(e => e.tipoMovimiento.startsWith(\"Devo\")).map(e => e.importeNeto).reduce((a, b) => a + b, 0);\n let comisionProgramaNeto = [...props].filter(e => e.tipoMovimiento.startsWith(\"Comi\")).map(e => e.importeNeto).reduce((a, b) => a + b, 0);\n let acreditacionVtasBruto = vtasEnComercioBruto;\n let acreditacionVtasNeto = [...props].filter(e => e.tipoMovimiento.startsWith(\"Acre\")).map(e => e.importeNeto).reduce((a, b) => a + b, 0);\n\n //Items\n\n //Item Ventas en Comercio:\n let vtasComercio = vtasEnComercioBruto;\n let vtasComercioSinDesc = vtasSinDesc;\n //Item Devolución descuentos:\n let devolucionDescuentos = devolucionDescuentosNeto;\n //Item Comision Programa:\n let comisionPrograma = comisionProgramaNeto;\n //Item Ajuste Cta. Corriente:\n let ajusteCtaCorriente = [...props].filter(e => e.tipoMovimiento === \"Ajuste Cta. Cte.\").map(e => e.importeBruto).reduce((a, b) => a + b, 0);\n //Item Acreditación por ventas:\n let acreditacionVta = acreditacionVtasNeto;\n //Item Impuestos:\n let impuestosDevolucionDescuentos = devolucionDescuentosBruto - devolucionDescuentosNeto;\n let impuestosComisionPrograma = comisionProgramaBruto - comisionProgramaNeto;\n let impuestosAcreditacionPorVentas = acreditacionVtasNeto > 0 ? acreditacionVtasBruto - acreditacionVtasNeto : 0;\n\n let impuestos = impuestosDevolucionDescuentos - impuestosComisionPrograma + impuestosAcreditacionPorVentas;\n\n //MArgen Calculado\n \n let bruto = 0;\n let neto = 0;\n //no lo muestra si la comision no esta porque es mensual y letian los datos si filtra por presentacion\n if (comisionProgramaNeto > 0) {\n //Total Bruto Margen Calculado = Ventas en comercio Bruto + Devolución Descuentos Bruto - Comisión Programa Bruto\n bruto = vtasComercio + devolucionDescuentosBruto - comisionProgramaBruto;\n //Total Neto Margen Calculado = Ventas en comercio Neto + Devolución Descuentos Neto - Comisión Programa Neto\n neto = acreditacionVtasNeto + devolucionDescuentosNeto - comisionProgramaNeto;\n if (bruto<= 0 ) {\n bruto = 0;\n neto = 0;\n }\n \n \n } \n \n \n //Total lts = suma lts de la trd\n let lts = [...props].filter(e => e.tipoMovimiento === \"Ventas Con Desc.\").map(e => e.cantidad).reduce((a, b) => a + b, 0);\n \n\n\n this.setState({ vtasComercio, vtasComercioSinDesc,devolucionDescuentos, comisionPrograma, ajusteCtaCorriente, impuestos, neto, lts, acreditacionVta,bruto });\n \n \n }\n\n }\n\n //#endregion \"onChanges\"\n\n //#region \"Exporta el csv\"\n onExport(e: any) {\n //trae el array que tiene la tabla filtrada o no\n // this.state.selectedPresentaciones.length > 0 ? this.state.selectedPresentaciones : \n let a = []\n if (this.state.selectedPresentaciones.length > 0) {\n a = this.state.selectedPresentaciones.slice();\n\n } else {\n a = this.props.listaCupon.slice()\n }\n \n let b = a.map((e:any) => {\n let date = new Date(e.fechaPresentacion);\n if (!isNaN(date.getTime())) {\n\n let dia = date.getDate();\n let mes = date.getMonth();\n let anio = date.getFullYear();\n if (e.tipoMovimiento.startsWith(\"Comi\")) {\n if (mes <= 8) {\n e.fechaPresentacion = '0' + (mes + 1).toString() + '/' + anio;\n } else {\n e.fechaPresentacion = (mes + 1).toString() + '/' + anio;\n }\n\n } else {\n if (mes <= 8) {\n e.fechaPresentacion = dia + '/' + '0' + (mes + 1).toString() + '/' + anio;\n } else {\n e.fechaPresentacion = dia + '/' + (mes + 1).toString() + '/' + anio;\n }\n }\n }\n \n let n = parseInt(e.cantidad)\n e.cantidad = n;\n\n switch (e.tipoMovimiento) {\n case \"Devolución Descuentos\":\n e.tipoMovimiento = \"Devolucion Descuentos\"\n break;\n case \"Comisión programa\":\n e.tipoMovimiento = \"Comision programa\"\n break;\n case \"Acreditación por Ventas\":\n e.tipoMovimiento = \"Acreditacion por Ventas\"\n break;\n default:\n }\n switch (e.numeroDocumento) {\n case null:\n e.numeroDocumento = ''\n break;\n\n default:\n }\n switch (e.producto) {\n case null:\n e.producto = ''\n break;\n case \"-\":\n e.producto = ''\n break;\n\n default:\n }\n switch (e.servicio) {\n case null:\n e.servicio = ''\n break;\n case \"-\":\n e.servicio = ''\n break;\n\n default:\n }\n switch (e.unidadMedida) {\n case null:\n e.unidadMedida = ''\n break;\n case \"-\":\n e.unidadMedida = ''\n break;\n\n default:\n }\n let comercio = this.props.redId;\n\n\n return {\n comercio: comercio,\n tipoMovimiento: e.tipoMovimiento,\n fechaPresentacion: e.fechaPresentacion,\n numeroPresentacion: e.numeroPresentacion,\n numeroDocumento: e.numeroDocumento, \n servicio: e.servicio,\n importeBruto: e.importeBruto,\n impuestos: e.impuestos,\n importeNeto: e.importeNeto,\n cantidad: e.cantidad,\n unidadMedida: e.unidadMedida\n };\n\n\n })\n // arma los encabezados de las columnas de la tabla\n const headers = {\n comercio:'Comercio',\n tipoMovimiento: 'Tipo Movimiento',\n fechaPresentacion: 'Fecha Pres',\n numeroPresentacion: 'Presentacion',\n numeroDocumento: 'Doc. CS Online', \n servicio: 'Producto',\n importeBruto: 'Bruto',\n impuestos: 'Impuestos',\n importeNeto: 'Neto',\n cantidad: 'Cant',\n unidadMedida: 'UM',\n };\n\n\n //llama a la funcion que exporta\n this.exportCSVFile(headers, b, 'DetalleReembolsosCsv');\n }\n\n exportCSVFile(headers: any, items: any, fileName: any) {\n if (headers) {\n items.unshift(headers);\n }\n const jsonObject = JSON.stringify(items);\n const csv = this.convertToCSV(jsonObject);\n\n const exportName = fileName + \".csv\" || \"export.csv\";\n const blob = new Blob([csv], { type: \"text/csv;charset=windows-1252;\" });\n if (navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, exportName);\n } else {\n const link = document.createElement(\"a\");\n if (link.download !== undefined) {\n const url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", exportName);\n link.style.visibility = \"hidden\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n items.shift();\n }\n convertToCSV(objArray: any) {\n const array = typeof objArray != \"object\" ? JSON.parse(objArray) : objArray;\n let str = \"\";\n for (let i = 0; i < array.length; i++) {\n let line = \"\";\n for (let index in array[i]) {\n if (line != \"\") line += \";\";\n line += array[i][index];\n }\n str += line + \"\\r\\n\";\n }\n return str;\n }\n //#endregion \"Exporta el csv\"\n\n //#region \"Encabezado de tabla\"\n tableHeader = () => {\n return (\n
\n
Detalle de reembolsos
\n\n {this.props.listaCupon.length > 0 ?\n
\n
\n \n\n 0 ? false : true}\n type=\"search\"\n onInput={(e: any) => this.setState({ globalFilter: e.target.value })}\n placeholder=\"Busqueda global...\"\n size={20} />\n
\n
\n 0 ? false : true}\n type=\"button\" icon=\"pi pi-external-link\" iconPos=\"left\" label=\"CSV\"\n onClick={(e) => this.onExport(e)}>\n \n
\n {this.props.listaCupon.length > 0 && !this.state.selectedMultiPresentacionesProd ?\n
\n\n 0 && !this.state.selectedMultiPresentacionesProd ? false : true}\n id=\"ddlPresentaciones\"\n className=\"text-wrap mt-0\"\n value={this.state.selectedMultiPresentaciones}\n options={this.state.presentaciones}\n onChange={(e) => this.onChangeddlPresentaciones(e)}\n optionLabel='numeroPresentacion'\n placeholder=\"Filtrar Presentación...\"\n style={this.props.listaCupon.length > 0 && !this.state.selectedMultiPresentacionesProd ? { width: '12em' } : { width: '12em' }}\n filter={true} filterBy=\"numeroPresentacion\"\n showClear={true} />\n\n
: ''}\n\n {this.props.listaCupon.length > 0 && !this.state.selectedMultiPresentaciones ?\n
\n 0 && !this.state.selectedMultiPresentaciones ? false : true}\n id=\"ddlProductos\"\n className=\"text-wrap mt-0\"\n value={this.state.selectedMultiPresentacionesProd}\n options={this.state.productos}\n onChange={(e) => this.onChangeDdlProductos(e)}\n optionLabel='servicio'\n placeholder=\"Filtrar Producto...\"\n style={this.props.listaCupon.length > 0 && !this.state.selectedMultiPresentaciones ? { width: '12em' } : { width: '22em' }}\n filter={true} filterBy='servicio'\n showClear={true} />\n
: ''}\n\n\n
\n : ''}\n\n
\n\n );\n\n }\n //#endregion \"Encabezado de tabla\"\n\n //#region \"formato campos de tabla\"\n // achica la letra del encabezado\n colHeader = (texto: string) => {\n return (\n
\n {texto}\n
\n\n );\n\n }\n //Retorna texto pequeño\n bodySmall(props: any) {\n\n if (props) {\n if (props === '-') {\n return {''}\n } else {\n return {props}\n }\n }\n }\n bodySmallComercio(props: any) {\n\n if (props) {\n if (props === '-') {\n return {'-'}\n } else {\n return {props}\n }\n }\n }\n\n bodyComercioHeader(props: any) {\n\n if (props) {\n if (props === '-') {\n return {''}\n } else {\n return {props}\n }\n }\n }\n\n bodyCant(props: any) {\n\n if (props) {\n let n = parseFloat(props);\n\n return {n.toLocaleString('es-MX', { minimumFractionDigits: 0, maximumFractionDigits: 0 })}\n\n }\n }\n //Retorna texto pequeño\n bodyNumeroDoc(props: any) {\n\n if (props) {\n return {props}\n\n } else {\n\n return {\"\"}\n }\n }\n\n\n //Retorna dd-mm\n bodyFechPres(props: any) {\n console.log('bodyFechPres');\n let date = new Date(props.fechaPresentacion);\n const months = [\"ene\", \"feb\", \"mar\", \"abr\", \"may\", \"jun\", \"jul\", \"ago\", \"sep\", \"oct\", \"nov\", \"dic\"];\n\n const formatDate = (date: Date) => {\n let formatted_date = '';\n if (isNaN(date.getTime())) {\n formatted_date = props.fechaPresentacion;\n } else {\n let m = date.getMonth();\n let mes = '';\n if (m <= 8) {\n mes = '0' + (m + 1);\n\n } else {\n mes = m.toString();\n }\n formatted_date = mes + \"/\" + date.getFullYear();\n }\n \n return formatted_date;\n }\n if (props.tipoMovimiento.startsWith(\"Comi\")) {\n return {formatDate(date)}\n }\n\n\n if (props) {\n return {isNaN(date.getTime()) ? props.fechaPresentacion:date.toLocaleDateString('en-GB')}\n\n }\n }\n //Retorna mm-yy\n bodyMesPres(props: any) {\n let date = new Date(props.fechaPresentacion);\n const months = [\"ene\", \"feb\", \"mar\", \"abr\", \"may\", \"jun\", \"jul\", \"ago\", \"sep\", \"oct\", \"nov\", \"dic\"];\n let year = date.getFullYear().toString().slice(2, 5);\n const formatDate = (date: Date) => {\n let formatted_date = months[date.getMonth()] + \"-\" + year\n return formatted_date;\n }\n\n\n if (props) {\n return {formatDate(date)}\n\n }\n }\n bodyCurrencySmall(props: any) {\n\n if (props) {\n let n = parseFloat(props);\n /*console.log('bodyCurrencySmall :', n);*/\n\n return (
\n {'$ '}\n\n {n.toLocaleString('es-MX', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}\n
\n )\n\n }\n }\n //#endregion \n\n //interna de la clase para referenciar al Datatable\n dt: any;\n\n\n renderResumen = () => {\n\n\n return (\n
\n \n\n
\n
\n
\n
\n Item\n
\n
\n Importe\n
\n {/*Vtas*/}\n
\n Ventas en Comercio Sin Desc ($ Surtidor):\n
\n\n
\n {this.bodyCurrencySmall(this.state.vtasComercioSinDesc)}\n
\n
\n Ventas en Comercio con Desc.:\n
\n\n
\n {this.bodyCurrencySmall(this.state.vtasComercio)}\n
\n\n
\n Devolución descuentos Neto:\n
\n
\n {this.bodyCurrencySmall(this.state.devolucionDescuentos)}\n
\n
\n Comision Programa Neto:\n
\n\n
\n {this.bodyCurrencySmall(this.state.comisionPrograma)}\n
\n
\n Ajuste Cta. Corriente:\n
\n
\n {this.bodyCurrencySmall(this.state.ajusteCtaCorriente)}\n
\n
\n Acreditación por ventas Neto:\n
\n
\n {this.bodyCurrencySmall(this.state.acreditacionVta)}\n
\n
\n Impuestos:\n
\n
\n {this.bodyCurrencySmall(this.state.impuestos)}\n
\n
\n
\n
\n
\n
\n Margen Calculado\n
\n
\n Total Bruto:\n
\n
\n {this.bodyCurrencySmall(this.state.bruto)}\n
\n
\n Total Neto:\n
\n
\n {this.bodyCurrencySmall(this.state.neto)}\n
\n
\n Total Lts.:\n
\n
\n {this.bodyCant(this.state.lts)}\n
\n
\n
\n
\n\n
\n
\n\n );\n\n }\n\n\n\n render() {\n\n /* console.log('render transacciones');*/\n return (\n
\n {this.props.listaCupon.length > 0 ? this.renderResumen() : ''}\n
\n\n\n \n\n this.dt = el\n\n }\n csvSeparator=\";\"\n exportFilename=\"presentaciones\"\n dataKey=\"id\"\n value={this.state.selectedPresentaciones.length > 0 ? this.state.selectedPresentaciones : this.props.listaCupon} sortMode=\"multiple\"\n globalFilter={this.state.globalFilter}\n paginator={true}\n rows={25}\n scrollable={true}\n emptyMessage=\"No se encontraron registros\"\n currentPageReportTemplate=\"Mostrando {first} a {last} de {totalRecords} registros\"\n paginatorTemplate=\"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink CurrentPageReport\"\n rowsPerPageOptions={[10, 25, 50]}\n >\n this.bodySmallComercio(this.props.redId)} header={this.bodyComercioHeader(this.colHeader(\"Comercio\"))} style={{ width: '5em' }} />\n this.bodySmall(e.tipoMovimiento)} header={this.colHeader(\"Tipo Movimiento\")} style={{ width: '10em' }} />\n \n this.bodySmallComercio(e.numeroPresentacion)} header={this.colHeader(\"# Pres.\")} style={{ width: '5em' }} />\n this.bodyNumeroDoc(e.numeroDocumento)} header={this.colHeader(\"Doc CS Online\")} style={{ width: '7em' }} />\n {/* this.bodySmall(e.producto)} header={this.colHeader(\"Prod Edenred\")} />*/}\n this.bodySmall(e.servicio)} header={this.colHeader(\"Producto\")} style={{ width: '10em' }} />\n this.bodyCurrencySmall(e.importeBruto)} header={this.colHeader(\"Bruto\")} style={{ width: '6em' }} />\n this.bodyCurrencySmall(e.impuestos)} header={this.colHeader(\"Impuestos\")} style={{ width: '6em' }} />\n this.bodyCurrencySmall(e.importeNeto)} header={this.colHeader(\"Neto\")} style={{ width: '6em' }} />\n this.bodyCant(e.cantidad)} header={this.colHeader(\"Cant\")} style={{ width: '4em' }} />\n this.bodySmallComercio(e.unidadMedida)} header={this.colHeader(\"UM\")} style={{ width: '4em' }} />\n\n \n \n\n\n
\n\n
\n );\n\n }\n\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Panel } from 'primereact/panel';\nimport { connect } from 'react-redux';\nimport { ToLogin } from '../misc/Redirect/ToLogin';\nimport { TransaccionesAsociadas } from '../reembolso/TransaccionesAsociadas';\nimport { IComercioRequest } from '../../interfaces/IComercioRequest';\nimport { IReembolsosComerciosRaizenRequest } from '../../interfaces/IReembolsosComerciosRaizenRequest';\nimport { Growl } from 'primereact/growl';\nimport { ProgressSpinner } from 'primereact/progressspinner';\nimport { Button } from 'primereact/button';\nimport { Dropdown } from 'primereact/dropdown';\nimport { Calendar } from 'primereact/calendar';\nimport 'primereact/resources/primereact.css';\nimport 'primeflex/primeflex.css';\nimport { Dialog } from 'primereact/dialog';\nimport { isNull } from 'util';\n\n\n\n\n\n\ninterface IState {\n redirectLogin: boolean,\n url: string,\n comercios: any,\n loadingComercios: boolean,\n loadingReembolsos: boolean,\n selectedComercio: any,\n filteredComercios: any,\n fechaDesde: any,\n fechaHasta: any,\n listaReembolsos: any,\n visible: boolean;\n rId: any,\n minDateFechaDDE: any,\n minDateFechaHTA: any,\n maxDateFechaDDE: any,\n maxDateFechaHTA: any,\n yearRangeDDE: any,\n yearRangeHTA: any,\n dNoneDDE: any,\n dNoneHTA: any\n\n}\n\nexport class ReembolsoComercioRaizen extends React.Component<{}, IState> {\n\n constructor() {\n super({});\n\n this.state = {\n redirectLogin: false,\n url: \"\",\n comercios: [],\n loadingComercios: true,\n loadingReembolsos: false,\n selectedComercio: null,\n filteredComercios: null,\n fechaDesde: null,\n fechaHasta: null,\n listaReembolsos: [],\n visible: false,\n rId: 0,\n minDateFechaDDE: new Date(2021, 8, 1),\n minDateFechaHTA: new Date(2021, 8, 31),\n maxDateFechaDDE: new Date(2030, 10, 1),\n maxDateFechaHTA: new Date(2030, 11, 31),\n yearRangeDDE: '2021:2030',\n yearRangeHTA: '2021:2030',\n dNoneDDE: 'd-none',\n dNoneHTA: 'd-none'\n\n };\n this.callback_comercios = this.callback_comercios.bind(this);\n\n }\n\n\n //#region \"componentDid\"\n public componentDidMount() {\n //LLama al controller \n this.callback_comercios();\n\n }\n public componentDidUpdate(prevProps: any, prevState: any) {\n\n if (this.state.comercios !== prevState.comercios) {\n //console.log(\"componentDidUpdate comerciostate\", this.state.comercios);\n }\n if (this.state.selectedComercio !== prevState.selectedComercio) {\n //console.log(\"componentDidUpdate selectedcomerciostate\", this.state.selectedComercio);\n }\n }\n //#endregion \"componentDid\"\n\n //#region \"callbacks\"\n //trae la lista de cupones con las tra del comercio\n async callback_reembolsosComerciosRaizen() {\n\n var _this = this;\n let postData: IReembolsosComerciosRaizenRequest = {\n redId: this.state.selectedComercio.comercioId,\n vrfReceiveDateFrom: this.state.fechaDesde,\n vrfReceiveDateTo: this.state.fechaHasta\n };\n\n\n\n await fetch('api/Reembolso/ObtenerReembolsosComerciosRaizen', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else if (data.success) {\n var listaReembolsos = [...data.reembolsosComerciosRaizen];\n _this.setState({ listaReembolsos, loadingReembolsos: false });\n //console.log(\"Post Reembolsos _this.state.listaReembolsos\", _this.state.listaReembolsos);\n\n }\n });\n\n }\n //traer los comercios asociados al USER\n async callback_comercios() {\n var _this = this;\n let postData: IComercioRequest = {\n usuario: 'comercio',\n }\n await fetch('api/Reembolso/UsuariosObtenerComerciosRaizen', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else if (data.success) {\n var comercios = [...data.comercios].map(e => {\n return {\n comercioId: e.comercioId,\n label: e.comercioId + '-' + e.razonSocial\n\n }\n });\n _this.setState({ comercios, loadingComercios: false });\n //console.log(\"Post Comercios _this.state.comercios\", _this.state.comercios);\n\n }\n });\n\n }\n //#endregion \"callbacks\"\n\n //#region \"metodosCupones\"\n traerCupones = () => {\n\n if (!this.state.selectedComercio || !this.state.fechaDesde || !this.state.fechaHasta) {\n\n this.setState({ visible: true })\n\n } else {\n\n if (this.validarFechas()) {\n this.setState({ dNoneDDE: 'd-none', dNoneHTA: 'd-none' });\n this.setState({ loadingReembolsos: true });\n this.setState({ rId: this.state.selectedComercio.comercioId });\n this.callback_reembolsosComerciosRaizen();\n\n }\n\n\n }\n\n\n }\n limpiarCupones = () => {\n this.setState({ listaReembolsos: [], selectedComercio: null, fechaDesde: null, fechaHasta: null })\n }\n //#endregion \"metodosCupones\"\n\n //#region \"metodosCalendars\"\n validarFechas = () => {\n var fechaDesde = new Date();\n var fechaHasta = new Date();\n var mesDDE = 1;\n var anioDDE = 1;\n var mesHTA = 1;\n var anioHTA = 1;\n var rta = false;\n\n if (this.state.fechaDesde) {\n fechaDesde = new Date(this.state.fechaDesde);\n mesDDE = fechaDesde.getMonth();\n anioDDE = fechaDesde.getFullYear();\n if ( fechaDesde.getTime()>= this.state.minDateFechaDDE.getTime()) {\n rta = true;\n this.setState({ dNoneDDE: 'd-none' })\n }\n }\n if (this.state.fechaHasta) {\n fechaHasta = new Date(this.state.fechaHasta);\n mesHTA = fechaHasta.getMonth();\n anioHTA = fechaHasta.getFullYear();\n\n var transcurso = Math.round((fechaHasta.getTime() - fechaDesde.getTime()) / (1000 * 60 * 60 * 24))\n\n if (fechaDesde.getTime() < this.state.minDateFechaDDE.getTime()) {\n rta = false;\n this.setState({ dNoneDDE: '' })\n } else {\n if (transcurso > 0 && transcurso <= 90) {\n rta = true\n this.setState({ dNoneHTA: 'd-none' })\n } else {\n rta = false;\n this.setState({ dNoneHTA: '' })\n\n }\n }\n\n }\n\n return rta;\n\n\n }\n\n //#endregion \"metodosCalendars\"\n\n //#region \"onChanges\"\n onComercioChange = (e: any) => {\n var a = e;\n this.setState({ selectedComercio: e.value });\n }\n \n onChangeFechaDesde = (e: any) => {\n var fechaDesde = null;\n var min = new Date(this.state.minDateFechaDDE);\n if (e) {\n\n var dia = 1;\n var mes = e.getMonth();\n var anio = e.getFullYear();\n fechaDesde = new Date(anio, mes, dia);\n\n if (fechaDesde.getTime() >= min.getTime()) {\n\n this.setState({ dNoneDDE: 'd-none' })\n } else {\n this.setState({ dNoneDDE: '' })\n\n }\n\n\n } else {\n this.setState({ fechaHasta: null });\n\n }\n this.setState({ fechaDesde });\n this.validarFechas();\n }\n\n showError = (severity: string, summary: string, detail: string) => {\n this.growl.show({ severity: severity, summary: summary, detail: detail });\n }\n\n\n\n onChangeFechaHasta = (e: any) => {\n var fechaHasta = null;\n\n if (e) {\n var fecha = new Date(e);\n\n var dia = 0;\n var mes = fecha.getMonth();\n var anio = fecha.getFullYear();\n\n switch (mes) {\n case 11:\n mes = 0;\n anio = anio + 1;\n break;\n\n default:\n mes = mes + 1;\n break;\n }\n\n\n fechaHasta = new Date(anio, mes, dia);\n var min = new Date(this.state.fechaDesde);\n var transcurso = Math.round((fechaHasta.getTime() - min.getTime()) / (1000 * 60 * 60 * 24))\n if ((transcurso >= 0 && transcurso <= 90) && fechaHasta.getTime()>=this.state.minDateFechaDDE.getTime()) {\n\n\n this.setState({ dNoneHTA: 'd-none' })\n } else {\n \n this.setState({ dNoneHTA: '' })\n\n }\n } \n this.setState({ fechaHasta })\n }\n\n\n //#endregion \"onChanges\"\n\n\n renderMensaje = () => {\n var mensaje = [\n !this.state.selectedComercio ? 'Se debe seleccionar comercio ' : '',\n !this.state.fechaDesde ? 'Se debe seleccionar Fecha desde' : '',\n !this.state.fechaHasta ? 'Se debe seleccionar Fecha Hasta' : ''\n ]\n return (\n this.setState({ visible: false })}>\n\n
    \n
  • {mensaje[0]}
  • \n
  • {mensaje[1]}
  • \n
  • {mensaje[2]}
  • \n\n
\n\n\n
\n );\n\n }\n\n renderHeader = () => {\n return (\n
\n
Shell Flota
\n
\n
\n
);\n }\n growl: any;\n calDDE: any;\n handleLoading = () => {\n if (this.state.loadingReembolsos) {\n return (\n
\n \n

Cargando

\n
)\n } \n }\n\n\n render() {\n console.log('render()ReembolsoComercioRaizen');\n if (this.state.redirectLogin) {\n return \n }\n else\n if (!this.state.loadingComercios ) {\n //console.log('this.state.loadingComercios', this.state.loadingComercios);\n const es = {\n firstDayOfWeek: 1,\n dayNames: [\"domingo\", \"lunes\", \"martes\", \"miércoles\", \"jueves\", \"viernes\", \"sábado\"],\n dayNamesShort: [\"dom\", \"lun\", \"mar\", \"mié\", \"jue\", \"vie\", \"sáb\"],\n dayNamesMin: [\"D\", \"L\", \"M\", \"X\", \"J\", \"V\", \"S\"],\n monthNames: [\"enero\", \"febrero\", \"marzo\", \"abril\", \"mayo\", \"junio\", \"julio\", \"agosto\", \"septiembre\", \"octubre\", \"noviembre\", \"diciembre\"],\n monthNamesShort: [\"ene\", \"feb\", \"mar\", \"abr\", \"may\", \"jun\", \"jul\", \"ago\", \"sep\", \"oct\", \"nov\", \"dic\"],\n today: \"este mes\",\n clear: \"x\"\n };\n\n\n return (\n
\n
\n this.growl = el} />\n {this.renderMensaje()}\n
\n
\n \n
\n
\n \n \n \n \n\n
\n
\n \n \n \n this.calDDE = el}\n id=\"calFechaDDE\"\n value={this.state.fechaDesde}\n onChange={(e) => this.onChangeFechaDesde(e.value)}\n locale={es}\n dateFormat=\"M/yy\"\n monthNavigator={true}\n yearNavigator={true}\n yearRange=\"2021:2030\"\n showButtonBar={true}\n showIcon={true}\n view=\"month\"\n readOnlyInput={true}\n\n\n />\n \n *-Se debe asignar mes-desde posterior a sep/2021\n \n\n\n
\n
\n \n \n \n this.onChangeFechaHasta(e.value)}\n locale={es}\n dateFormat=\"M/yy\"\n monthNavigator={true}\n yearNavigator={true}\n yearRange=\"2021:2030\"\n showButtonBar={true}\n showIcon={true}\n view=\"month\"\n readOnlyInput={true}\n disabled={!isNull(this.state.fechaDesde) ? false : true}\n\n\n />\n \n *-El rango de meses debe mayor a uno o menor a tres meses\n \n
\n
\n\n
\n
\n
\n \n {!this.state.loadingReembolsos?\n \n :\n this.handleLoading()}\n\n \n\n
\n\n
\n
\n
\n )\n }\n else\n return (\n
\n \n

Cargando

\n
\n );\n }\n}\n\nexport default connect()(ReembolsoComercioRaizen);\n","import * as React from 'react';\nimport {\n SliderItem,\n GetHandleProps,\n GetTrackProps\n} from 'react-compound-slider';\n\n// *******************************************************\n// HANDLE COMPONENT\n// *******************************************************\ninterface IHandleProps {\n domain: number[];\n handle: SliderItem;\n getHandleProps: GetHandleProps;\n color: string;\n}\n\nexport const Handle: React.SFC = ({\n domain: [min, max],\n handle: { id, value, percent },\n color: color,\n getHandleProps\n}) => (\n \n );\n\n// *******************************************************\n// TRACK COMPONENT\n// *******************************************************\ninterface ITrackProps {\n source: SliderItem;\n target: SliderItem;\n getTrackProps: GetTrackProps;\n}\n\nexport const Track: React.SFC = ({\n source,\n target,\n getTrackProps\n}) => (\n \n );\n\n// *******************************************************\n// TICK COMPONENT\n// *******************************************************\ninterface ITickProps {\n key: string;\n tick: SliderItem;\n count: number;\n}\n\nexport const Tick: React.SFC = ({ tick, count }) => (\n
\n \n \n {tick.value}\n
\n \n);\n","import * as React from 'react';\nimport { Panel } from 'primereact/panel';\nimport { ScrollPanel } from 'primereact/scrollpanel';\nimport { Disponibles } from '../reembolso/Disponibles';\nimport { IOpcion } from '../../interfaces/OpcionReembolso';\n\ninterface dataDisponible {\n monto: number,\n cupon: string,\n acumulado: number,\n fecha: Date\n}\n\ninterface IProps {\n opcion: IOpcion[],\n modo: number,\n dias?: number,\n nuevaFechaPago?: Date\n}\n\ninterface IState {\n loading: boolean,\n}\n\nexport class Confirmar extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = { loading: true };\n console.log(\"Confirmar\");\n }\n\n formatMoney(amount: any) {\n var decimalCount = 2;\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n }\n\n render() {\n let hoy: Date = new Date();\n //let date: Date = new Date(hoy.setDate(hoy.getDate() + this.props.opcion[this.props.modo].plazo));\n let date: Date = (this.props.nuevaFechaPago ? this.props.nuevaFechaPago : new Date());\n //let dateText = (String(date.getDate()).padStart(2, '0') + \"/\" + (String(date.getMonth() + 1)).padStart(2, '0') + \"/\" + date.getFullYear());\n let dateText = (String(date.getDate()).padStart(2, '0') + \"/\" + (String(date.getMonth() + 1)).padStart(2, '0') + \"/\" + date.getFullYear());\n\n return (\n
\n
\n
\n
\n \n
\n
\n $\n \n
\n
\n \n
\n
\n $\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n $\n \n
\n
\n
\n
\n )\n }\n}","import * as React from 'react';\n\nexport class SolicitudEmpresarialTyC extends React.Component {\n constructor() {\n super({});\n this.state = {\n\n }\n }\n\n render() {\n return (\n \n

FORMULARIO SOLICITUD DE INCORPORACIÓN (O ACTUALIZACIÓN DE DATOS) AL SISTEMA EMPRESARIAL EDENRED

\n
\n
\n

............................................

\n

LUGAR

\n
\n
\n

............................................

\n

FECHA

\n
\n
\n

Señores

\n

EDENRED ARGENTINA S.A.

\n

Oficinas Comerciales sitas en Alférez Hipólito Bouchard N° 4169/4191, Piso 7°, Munro, Provincia de Buenos Aires.

\n

I - SOLICITUD DE INCORPORACION O ACTUALIZACION DE DATOS

\n

Quien suscribe el presente formulario …………………………………………………, en nombre y representación de la razón social…………..…………………………………., CUIT N° …………….., cuya actividad principal es …………………………………………., me dirijo a Uds. (en adelante, “Edenred” y/o el “mandatario”), en mi carácter de ........................... (en adelante la “Empresa” y/o el “mandante” y/o COMERCIOL), con domicilio legal de mi representada en .................................................................., para solicitar la incorporación de nuestra Empresa a la Solución Empresarial Edenred.

\n

La solución Empresarial opera por medio de una tarjeta con banda magnética que cuenta con la red de establecimientos de MasterCard.

\n

Esta Solicitud de incorporación, en caso de ser aceptada expresa o tácitamente, importará a favor de Edenred un mandato en los términos del Artículo 1321 del Código Civil y Comercial de la Nación.

\n

II – DATOS SOCIETARIOS. DOCUMENTACIÓN.

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
APELLIDO Y NOMBRE/ RAZON SOCIAL DE ACCIONSTASN° DNI/CUIT/CUIL/CDIPAIS Y AUTORIDAD DE EMISIONPORCENTAJE DE PARTICIPACION
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
NÓMINA DE INTEGRANTES DE LA EMPRESA –DIRECTORIO/GERENTES (DE ACUERDO AL TIPO SOCIETARIO) y/o APODERADOS-
APELLIDO Y NOMBREN° DNI/CUIT/CUIL/CDIPAIS Y AUTORIDAD DE EMISIONCARÁCTER
\n

Asimismo, nos obligamos a entregar a Edenred la siguiente documentación:

\n
    \n
  • Fotocopia DNI, LC, LE, PASAPORTE en el caso de extranjeros, del representante de la explotación comercial.

  • \n
  • Planilla de declaración jurada indicando expresamente Si/No reviste la calidad de “Persona Expuesta Políticamente” con firma autenticada ante Banco o Escribano Público.

  • \n
  • Copia autenticada del poder del firmante o acta autenticada que designe al firmante como representante legal.

  • \n
\n

Nota: En todos los casos en que se requiera documentación autenticada por Escribano, la misma deberá encontrarse legalizada por el Colegio de Escribanos del domicilio del Escribano certificante (con excepción de Ciudad Autónoma de Buenos Aires). Declaramos que somos actualmente un establecimiento de le red de afiliados de EDENRED, en adelante COMERCIO, por lo que, en relación a la información fiscal y legal, así como las constancias de inscripciones respectivas nos remitimos a la existente en nuestro legajo como COMERCIO declarando que se encuentra vigente y que cualquier modificación será puesta en conocimiento de EDENRED.

\n

III - AUTORIZACIONES

\n

AUTORIZADOS PARA INSTRUIR y UTILIZAR LA WEB Y LAS CLAVE

\n

La EMPRESA ha recibido de EDENRED, dispone y ya utiliza, atento su calidad de COMERCIO, de clave/s para el acceso a la web de EDENRED así como de sus funcionalidades.

\n

Por lo dicho asumimos en forma expresa la plena y exclusiva responsabilidad por la utilización de dicha/s clave/s. Declaramos conocer y aceptar que la asignación de una nueva clave, a nuestro pedido, se hará bajo nuestra exclusiva responsabilidad y demandará como mínimo de 24 horas desde el pedido.

\n

IV – PRECIO DEL SERVICIO

\n

Nos damos por notificados que el costo del Servicio que Uds. nos facturan es:

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DETALLE (*)PorcentajeFIJO PESOSFIJO DOLARES
Costo de implementación---
Retribución---
Producción y personalización de tarjetas---
Reposición de tarjetas--7
Costo por tarjeta activa---
Costo por uso de la plataforma---
Costo de entrega---
Capital Federal---
Gran Buenos Aires---
Interior del País---
A los importes arriba mencionados habrá que adicionarle el 21% de IVA, excepto para aquellos contribuyentes amparados en la Ley 19640 (Tierra del Fuego)---
Concepto a facturar: Retribución por nuestra gestión ---
\n

Informamos a Uds. que nuestra condición frente al I.V.A. es Responsable Inscripto.

\n

(*) Los conceptos del presente cuadro se encuentran bonificados, a excepción del concepto “Reposición de tarjetas” IVA correspondiente. Aceptamos que EDENRED pueda suspender la bonificación bastando para ello la comunicación correo electrónico.

\n

V - CANCELACION DEL SISTEMA

\n

Nos damos por notificados que Uds., o nosotros, podremos cancelar la utilización del Servicio notificando tal decisión por escrito y medio fehaciente, con una antelación mínima de 90 (noventa) días. En caso de que la cancelación fuese notificada por nosotros incluiremos en tal notificación el detalle de tarjetas cuya baja se solicita.

\n

VI.- COMPENSACIÓN

\n

Por medio de la presente, reconocemos y aceptamos que toda vez que reunamos junto a EDENRED la calidad de acreedor y deudor –recíprocamente- de obligaciones de dar sumas de dinero, se encuentren dichas obligaciones vencidas o no a la fecha en que opere la compensación, y cualquiera fuera la causa y/o título que diera origen a las deudas en cuestión (incluyendo por ejemplo, sin limitar, la presente Solicitud, y/o los reglamentos de cualquier otra de EDENRED –Mantenimiento de Flota, Social, Restaurant Edenred, Premium, Empresarial, o cualquier otro- que vincule a las Partes), EDENRED tendrá el exclusivo e irrevocable derecho a compensar con fuerza de pago las dos deudas hasta el monto de la menor, en los términos del artículo 921 del Código Civil y Comercial de la Nación, con la sola obligación de notificar ello a esta parte.

\n

VII.- DECLARACIONES

\n

Declaramos que los datos consignados en la presente son correctos, completos y fiel expresión de la verdad, asumimos el compromiso de informar cualquier modificación que se produzca a este respecto dentro de los cinco días corridos de ocurrida, mediante la presentación por escrito firmada por un representante de nuestra Empresa.

\n

Asimismo, declaramos conocer y nos obligamos a cumplir las Normas Operativas adjuntas como Anexo I a la presente, el cual se firma junto con esta Solicitud en prueba de nuestra conformidad con las mismas.

\n

Finalmente, declaramos que nuestra representada/o NO/SI se encuentra alcanzada como Sujeto Obligado conforme el artículo 20 de la Ley 25.246 y modificatorias.

\n

VIII.- CONFIDENCIALIDAD

\n

Las Partes reconocen y aceptan que en el marco de la presente, cada una de ellas proporcionará a la otra y/o la otra podrá tener acceso a cierta información relacionada con sus negocios, productos, actividades, personal, clientes, proveedores, etc., reconociendo y aceptando expresamente que dicha información será de carácter estrictamente confidencial.

\n

Cada una de las Partes se compromete a mantener como mínimo respecto de la información confidencial de la otra, el mismo nivel de cuidado y grado de protección que adopta respecto de su propia información confidencial.

\n

EDENRED no garantiza la inviolabilidad de los sistemas que utilizará para alojar/conservar/procesar nuestra información confidencial.

\n

A su vez, reconocemos y aceptamos expresamente el riesgo que conlleva la utilización de medios digitales para transmitir y/o almacenar información (incluyendo las nubes/clouds) y que internet es un medio riesgoso e inseguro.

\n

Aceptamos expresamente que EDENRED pueda efectuar revelaciones de nuestra información cuando le sea requerido a EDENRED por una autoridad administrativa o judicial competente o cuando tal revelación sea requerida por ley.

\n

La obligación de confidencialidad establecida en esta cláusula mantendrá su vigencia durante todo el tiempo de duración de la relación jurídica emanante de la aceptación de la presente, y se extenderá por un período no inferior a 7 años a contar desde su finalización.

\n

IX.- PROTECCIÓN DE DATOS PERSONALES

\n

Por medio de la presente reconocemos y aceptamos que a los efectos de que EDENRED pueda cumplir correctamente con las obligaciones asumidas en la presente, deberemos proporcionarle los datos personales (tanto propios de la EMPRESA, como de nuestro personal, clientes y/o proveedores) que EDENRED oportunamente nos solicite. Los datos que proveamos a EDENRED conforme lo anterior deberán ser veraces, completos y actuales.

\n

Por medio de la presente, autorizamos expresa e irrevocablemente a EDENRED para llevar a cabo el tratamiento, conservación y cesión/transferencia de todos los datos personales que le proporcionemos a EDENRED en el marco de la presente.

\n

Por medio de la presente nos obligamos a contar con/obtener el consentimiento de los titulares de dichos datos personales (cuando ello resultare necesario conforme la normativa aplicable), quedando establecido que seremos responsables por cualquier perjuicio que se cause a EDENRED como consecuencia directa o indirecta de la falta de obtención de dicho consentimiento. Asimismo, nos comprometemos a mantener integralmente indemne a EDENRED de cualquier acción, reclamación, demanda, requerimiento, procedimiento, bien sea judicial o administrativo o de cualquier otra índole, que guarde relación con el tratamiento de datos personales sin el consentimiento de sus titulares.

\n

Queda establecido que EDENRED podrá utilizar los datos personales para: (i) Cumplir con sus obligaciones asumidas en la presente; (ii) Elaborar estadísticas/informes tendientes a mejorar el servicio brindado; (iii) Remitirnos información y/o publicidad de interés general, o relativa a soluciones/servicios de EDENRED. Con la aceptación de la presente, se entenderá que EDENRED se compromete a realizar esfuerzos razonables para garantizar la seguridad de los datos personales, evitar su alteración, pérdida, y tratamiento o acceso no autorizado.

\n

Por medio de la presente reconocemos y aceptamos que los datos que sean recolectados por EDENRED en el marco de la presente podrán ser comunicados/transmitidos a (i) sociedades afiliadas, controladas, controlantes, filiales, representaciones o vinculadas de EDENRED y/o (ii) terceros proveedores de servicio de almacenamiento/tratamiento de datos.

\n

En caso que la transferencia de los datos personales recolectados por EDENRED fuere efectuada a una nube/cloud y/o a un país que no cuente con normas adecuadas de protección de datos personales conforme los parámetros establecidos por las autoridades y normativa de la República Argentina, con la aceptación de la presente se entenderá que EDENRED se compromete a exigir a quienes transfiere los datos, el cumplimiento de estándares adecuados de confidencialidad, protección y seguridad análogos a los exigidos en la República Argentina por la normativa vigente, y que circunscriban el uso de los datos para el fin específico para el cual se lo transmitió EDENRED.

\n

De aceptar la presente, EDENRED reconocerá que los titulares de los datos personales poseen los derechos referidos en los artículos 13, 14, 16 y 27, inc. 2 y 3 de la Ley 25.326, y se compromete a permitir el ejercicio de tales derechos a los titulares de los Datos Personales en todo conforme con dicha ley y demás normativa aplicable.

\n

X.- ANTICORRUPCIÓN Y PREVENCIÓN DEL LAVADO DE ACTIVOS

\n

Por medio de la presente, aceptamos y reconocemos expresa e irrevocablemente que será causal de finalización de la relación establecida entre las Partes a partir de la aceptación de la presente, de pleno derecho y en cualquier estado de la misma, por nuestra exclusiva culpa, y sin perjuicio de las acciones penales y/o administrativas que se pudieran deducir, el hecho de que la EMPRESA, un representante o apoderado de la misma, diera u ofreciera dinero o cualquier tipo de bien a fin de que uno o varios empleados de EDENRED, haga/n o deje/n de hacer algo relativo a sus funciones y/u obligaciones con el objeto de, a título ejemplificativo: i) obtener un beneficio o ventaja económica, ii) mejores condiciones comerciales, iii) obtener información de otros clientes de EDENRED, iv) obtener información sobre aspectos confidenciales de la actividad desarrollada por EDENRED, y/o v) obtener cualquier otro tipo de información vinculado con la actividad comercial propia de EDENRED A estos fines, serán considerados sujetos activos quienes hayan cometido tales actos en interés propio de la EMPRESA u otro tercero, directa o indirectamente, ya sea que actúen (a modo ejemplificativo y sin limitar) como representantes, administradores, socios, mandatarios, gerentes, empleados, contratados, gestores de negocios, síndicos de la EMPRESA. Las consecuencias de estas conductas ilícitas se producirán aun cuando lo sean en grado de tentativa.

\n

Por medio de la presente nos comprometemos, durante la vigencia de la relación emergente de la aceptación de la presente, a efectuar un manejo adecuado y transparente de los bienes y/o recursos destinados al objeto de la presente relación comercial, con fundamento en los principios de honestidad, eficiencia, eficacia y legalidad, y respetar la normativa jurídica y reglamentaria vigente en el ordenamiento jurídico nacional e internacional en materia de actos tales como por ejemplo: de corrupción, de extinción de dominio, de responsabilidad penal empresaria, de extorsión, de lavado de activos, de financiación del terrorismo, de pagos indebidos, de ventajas indebidas, de soborno, de cohecho y/o de conducta similar.

\n

Declaramos bajo juramento que a la fecha de emisión de la presente, la EMPRESA no se encuentra incluida en la lista de la Office of Foreign Assets Control de los Estados Unidos (OFAC), ni se encuentra vinculada en ningún proceso penal por lavado de activos o cualquiera de sus delitos subyacentes.

\n

XI. - LEY APLICABLE - DOMICILIO - JURISDICCIÓN

\n

Las partes acuerdan que esta Solicitud se regulará exclusivamente por las normas de locación de servicios en lo que respecta a las herramientas de control de gastos que ofrece la Solución EMPRESARIAL y del mandato en todo lo que respecta a los pagos por cuenta y orden que Uds. realizarán a los Afiliados de la Red por las transacciones realizadas por los Usuarios. Queda expresamente excluida de la presente toda normativa referida a la Ley 25.065.

\n

A todos los efectos legales derivados del presente, se tendrán por constituidos los siguientes domicilios, las Partes constituyen domicilios especiales en los indicados a continuación, en los cuales se tendrán por válidas para producir sus efectos jurídicos todas las comunicaciones, citaciones, intimaciones, reclamos, interpelaciones y notificaciones, judiciales o extrajudiciales, efectuadas por escrito, que deban ser cursadas entre las Partes.

\n

EDENRED: Talcahuano 833, piso 2° G (C1013AAQ), Ciudad Autónoma de Buenos Aires

\n

LA EMPRESA: ____________________________________________________

\n

Para el caso de divergencias suscitadas entre las partes, se fija la jurisdicción de los Tribunales Ordinarios de la Ciudad Autónoma de Buenos Aires, con renuncia expresa a cualquier otro fuero o jurisdicción que pudiera corresponder.

\n

Este documento es emitido electrónicamente y en papel. La versión papel será presentada por nosotros a EDENRED en Alférez Hipólito Bouchard N° 4169/4191, Piso 7°, Munro, Provincia de Buenos Aires, dentro de los cinco (5) días de la emisión de la versión electrónica, debidamente firmada con certificación notarial de firma y personería, y con todos los datos que se indican a continuación:

\n

Asimismo, en mi/nuestro carácter de firmantes de este documento en nombre y representación de la Empresa solicitante, declaro/declaramos bajo juramento los siguientes datos:

\n

Atentamente,

\n

FIRMA: ____________________________________________________

\n

ACLARACIÓN MANUSCRITA: ____________________________________________________

\n

LUGAR Y FECHA DE NACIMIENTO: ____________________________________________________

\n

NACIONALIDAD: ____________________________________________________

\n

DOCUMENTO (TIPO Y Nº) ____________________________________________________

\n

CUIT/CUIL/CDI Nº: ____________________________________________________

\n

DOMICILIO: ____________________________________________________

\n

PROFESIÓN/OFICIO/ACTIVIDAD PRINCIPAL: ____________________________________________________

\n

TELEFONO: ____________________________________________________

\n

CORREO ELECTRÓNICO: _____________________________________________________

\n

SELLO:

\n
\n )\n }\n}","import * as React from \"react\";\nimport { Dialog } from \"primereact/dialog\";\nimport { Redirect } from 'react-router-dom';\n\ninterface IProps {\n tyc?: boolean\n}\ninterface IState {\n loading: boolean\n}\nconst sleep = (milliseconds: any) => {\n return new Promise(resolve => setTimeout(resolve, milliseconds))\n}\n\nexport class ToHomeFromAdelantar extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.state = { loading: true }\n this.redirect = this.redirect.bind(this);\n this.onHide = this.onHide.bind(this);\n }\n onHide() {\n \n }\n\n redirect = async () => {\n await sleep(5000)\n this.setState({ loading: false });\n }\n public componentDidMount() {\n this.redirect();\n }\n render() {\n if (this.state.loading) {\n if (this.props.tyc)\n return (\n \n
\n Para continuar debe aceptar los terminos y condiciones, será redireccionado a la pantalla de Home\n
\n
\n )\n else\n return (\n \n
\n Se ha procesado la solicitud con éxito!\n
\n
\n )\n }\n else {\n return \n }\n }\n}","import * as React from 'react'\nimport { Button } from 'primereact/button';\nimport { Panel } from 'primereact/panel';\nimport { InputText } from 'primereact/inputtext';\nimport { Dialog } from 'primereact/dialog';\n\nimport { AceptarTerminos } from '../terminosCondiciones/AceptarTerminos';\nimport { SolicitudEmpresarialTyC } from '../terminosCondiciones/SolicitudEmpresarialTyC';\nimport { ToHomeFromAdelantar } from '../misc/Redirect/ToHomeFromAdelantar';\n\nimport { ISolicitudEmpresarial } from '../../interfaces/ISolicitudEmpresarial'\nimport { ITyCRequest } from '../../interfaces/ITyCRequest';\n\nimport tarjetaEmpresarial from '../../images/TarjetaEmpresarial.png';\n\n\ninterface IState {\n step: number,\n SolicitudEmpresarial: ISolicitudEmpresarial,\n loadingTyC: boolean;\n redirect: boolean,\n url: string,\n tycVisible: boolean,\n invalido: boolean\n}\n\ninterface IProps {\n solicitaEmpresarial: Function,\n canceloEmpresarial: Function\n}\n\nexport class SolicitudEmpresarial extends React.Component {\n constructor(props: IProps) {\n super(props);\n\n var solEmp: ISolicitudEmpresarial = {\n RazonSocial: \"\",\n Cuit: \"\",\n Email: \"\",\n Telefono: \"\",\n Ciudad: \"\",\n Provincia: \"\",\n Direccion: \"\"\n }\n\n this.state = {\n tycVisible: false, loadingTyC: true,\n step: 1, redirect: false, url: \"\",\n SolicitudEmpresarial: solEmp,\n invalido: false\n }\n\n this.onChangeRazonSocial = this.onChangeRazonSocial.bind(this);\n this.onChangeCuit = this.onChangeCuit.bind(this);\n this.onChangeEmail = this.onChangeEmail.bind(this);\n this.onChangeTelefono = this.onChangeTelefono.bind(this);\n this.onChangeLocalidad = this.onChangeLocalidad.bind(this);\n this.onChangeProvincia = this.onChangeProvincia.bind(this);\n this.onChangeDireccion = this.onChangeDireccion.bind(this);\n this.onClickSeguir = this.onClickSeguir.bind(this);\n this.onClickAceptar = this.onClickAceptar.bind(this);\n this.onClickCancelar = this.onClickCancelar.bind(this);\n\n this.onCancelar = this.onCancelar.bind(this);\n this.onAcceptar = this.onAcceptar.bind(this);\n this.onHide = this.onHide.bind(this);\n this.validar = this.validar.bind(this);\n }\n public componentDidMount() {\n this.tycVerify();\n }\n onChangeRazonSocial = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.RazonSocial = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeCuit = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Cuit = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeEmail = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Email = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeTelefono = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Telefono = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeDireccion = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Direccion = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeLocalidad = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Ciudad = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onChangeProvincia = (e: any) => {\n var solEmp = this.state.SolicitudEmpresarial;\n solEmp.Provincia = e.target.value;\n this.setState({ SolicitudEmpresarial: solEmp });\n };\n onClickSeguir = (e: any) => {\n this.setState({ step: 2 });\n\n }\n onClickAceptar = (e: any) => {\n if (this.validar())\n this.props.solicitaEmpresarial({ \"PedidoEmpresarial\": this.state.SolicitudEmpresarial });\n else\n this.setState({ invalido: true });\n\n }\n validar() {\n var paso = true;\n if (this.state.SolicitudEmpresarial.Ciudad.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.Cuit.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.Direccion.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.Email.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.Provincia.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.RazonSocial.length <= 1)\n paso = false;\n if (this.state.SolicitudEmpresarial.Telefono.length <= 1)\n paso = false;\n return paso\n }\n onClickCancelar = (e: any) => {\n this.props.canceloEmpresarial();\n }\n\n\n async tycVerify() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 2,\n }\n await fetch('api/TerminosCondiciones/ObtenerTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function(response) {\n return response.json();\n }).then(function(data: any) {\n if (data.success)\n _this.setState({ tycVisible: !data.tyC, loadingTyC: false });\n });\n }\n async onAcceptar() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 2,\n }\n await fetch('api/TerminosCondiciones/aceptarTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function(response) {\n return response.json();\n }).then(function(data: any) {\n if (data.success)\n _this.setState({ tycVisible: false });\n });\n }\n async onCancelar() {\n this.onClickCancelar(null);\n }\n onHide() {\n this.onCancelar();\n }\n\n render() {\n const tyc = ;\n if (this.state.redirect) {\n return \n }\n else if (this.state.step == 2 && this.state.tycVisible)\n return (\n \n )\n if (this.state.step == 1)\n return (\n
\n
\n

Empresarial Edenred se puede usar en cualquier comercio de la Red Mastercard en Argentina.

\n

¡A la mejor Tasa del Mercado!

\n

Sin costo de emisión, ni mantenimiento.

\n

Plazo de entrega de la tarjeta: 7 días.

\n
\n {this.state.tycVisible ?
\n
\n
\n
\n
\n \"Responsive\n
\n
\n )\n else\n return (\n
\n

Complete por favor los siguientes datos:

\n \n \n \n \n \n \n \n
\n
\n
\n {(this.state.invalido ?

Todos los campos son requeridos.

: null)}\n
\n
\n )\n }\n}","import * as React from 'react';\nimport { Slider, Rail, Handles, Tracks, Ticks } from 'react-compound-slider';\nimport { Handle, Track, Tick } from '../misc/SliderComp/components';\nimport { Dialog } from 'primereact/dialog';\nimport { Button } from 'primereact/button';\nimport { RadioButton } from 'primereact/radiobutton';\nimport { Dropdown } from 'primereact/dropdown';\n\nimport Cargando from '../misc/Redirect/Cargando';\nimport { Confirmar } from './Confirmar';\nimport { ToLogin } from '../misc/Redirect/ToLogin';\nimport { SolicitudEmpresarial } from '../reembolso/SolicitudEmpresarial';\nimport { Result } from '../misc/Message/Result';\n\nimport { IOpcion } from '../../interfaces/OpcionReembolso';\nimport { ISolicitudEmpresarial } from '../../interfaces/ISolicitudEmpresarial'\nimport { ITyCRequest } from '../../interfaces/ITyCRequest';\n\n\ninterface dataDisponible {\n monto: number,\n reembolso: string,\n presentacion: string,\n acumulado: number,\n fecha: Date,\n diasAdelantoTransferencia: number,\n diasAdelantoEmpresarial: number,\n producto: string,\n cargoAdministrativo: number,\n cargoAdministrativoIva: number,\n cargoAdministrativoBonificacion: number,\n cargoAdministrativoEmpresarial: number,\n cargoAdministrativoIvaEmpresarial: number,\n cargoAdministrativoBonificacionEmpresarial: number,\n cargoFinanciero: number,\n cargoFinancieroIva: number,\n cargoFinancieroPercepciones: number,\n cargoFinancieroBonificacion: number,\n cargoFinancieroEmpresarial: number,\n cargoFinancieroIvaEmpresarial: number,\n cargoFinancieroPercepcionesEmpresarial: number,\n cargoFinancieroBonificacionEmpresarial: number\n}\ninterface IAdelantarRequest {\n PresentacionesArray?: string[],\n Monto: number,\n MetodoPagoId: number,\n CuitRazon: string\n}\nconst sliderStyle: React.CSSProperties = {\n position: 'relative',\n width: '100%'\n};\n\nconst railStyle: React.CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: 14,\n borderRadius: 7,\n cursor: 'pointer',\n backgroundColor: 'rgb(234, 234, 234)'\n};\n\ninterface cuits {\n label: string,\n value: string,\n}\n\ninterface IDisponibleRequest {\n cuit: string\n}\n\ninterface IState {\n monto: number,\n loading: boolean,\n date: Date,\n values: ReadonlyArray,\n update: ReadonlyArray,\n clickAdelantar: boolean,\n medioPago: string,\n montoText: string,\n rate: number,\n rateMax: number,\n rateMin: number,\n cuit?: string,\n cuits?: cuits[],\n domain: number[],\n fetchCuit: boolean,\n dataDisponible?: dataDisponible[]\n cantReembolsos: number,\n opcion: IOpcion[],\n maxActual: number,\n digital: number,\n transferencia: number,\n redirect: boolean\n url: string,\n reembolsos?: string[],\n dias: number,\n success: boolean,\n asked: boolean,\n requestedCard: boolean,\n adelanto: string,\n popupEmpresarial: boolean,\n adelantando: boolean\n}\n\ninterface IProps {\n enviarAdelanto: Function,\n enviarMonto: Function,\n enviarDisponible: Function,\n opcion: IOpcion[],\n isEmpresarial: boolean,\n requestedCard: boolean,\n habilitadoLanet: boolean\n}\nconst defaultValues = [0];\nexport class Adelantar extends React.Component {\n constructor(props: IProps) {\n super(props);\n\n this.callBack_reembolso = this.callBack_reembolso.bind(this);\n this.populateCuitsData = this.populateCuitsData.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onHide = this.onHide.bind(this);\n this.onAcceptar = this.onAcceptar.bind(this);\n this.onCancelar = this.onCancelar.bind(this);\n this.onChangeMonto = this.onChangeMonto.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onUpdate = this.onUpdate.bind(this);\n this.onChange = this.onChange.bind(this);\n this.onCuitChange = this.onCuitChange.bind(this);\n this.callBack_disponible = this.callBack_disponible.bind(this);\n this.calcularIntereses = this.calcularIntereses.bind(this);\n this.obtenerTotalPorNeto = this.obtenerTotalPorNeto.bind(this);\n this.onClickTransferencia = this.onClickTransferencia.bind(this);\n this.onClickDigital = this.onClickDigital.bind(this);\n\n this.solicitaEmpresarial = this.solicitaEmpresarial.bind(this);\n this.canceloEmpresarial = this.canceloEmpresarial.bind(this);\n this.callBack_SetEmpresarial = this.callBack_SetEmpresarial.bind(this);\n this.onGuardarTyC = this.onGuardarTyC.bind(this);\n this.calcularTotalesDisponibles = this.calcularTotalesDisponibles.bind(this);\n\n this.handleResult = this.handleResult.bind(this);\n this.handlePopupEmpresarial = this.handlePopupEmpresarial.bind(this);\n this.calcularFecha = this.calcularFecha.bind(this);\n\n this.state = {\n loading: true, monto: 0, date: new Date(), values: defaultValues.slice(),\n update: defaultValues.slice(), clickAdelantar: false, medioPago: \"Digital\",\n montoText: \"0,00\", rate: 0.01, rateMax: 100, rateMin: 0.01,\n fetchCuit: false, domain: [-0.01, 0], cantReembolsos: 0,\n opcion: this.props.opcion, maxActual: 0,\n digital: 0, transferencia: 1,\n redirect: false,\n url: \"\",\n success: false,\n asked: false,\n requestedCard: this.props.requestedCard,\n adelanto: \"\",\n popupEmpresarial: false,\n dias: 0,\n adelantando: false\n };\n var op = this.props.opcion;\n this.setState({ opcion: op });\n console.log(\"Adelantar\");\n }\n formatMoney(amount: any) {\n var decimalCount = 2;\n var decimal = \",\";\n var thousands = \".\";\n\n decimalCount = Math.abs(decimalCount);\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\n const negativeSign = amount < 0 ? \"-\" : \"\";\n let i: any = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(decimalCount)).toString();\n let j: any = (i.length > 3) ? i.length % 3 : 0;\n return negativeSign + (j ? i.substr(0, j) + thousands : '') + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + thousands) + (decimalCount ? decimal + Math.abs(amount - i).toFixed(decimalCount).slice(2) : \"\");\n }\n\n handleResult() {\n this.setState({\n adelanto: \"\",\n clickAdelantar: false\n });\n }\n handlePopupEmpresarial() {\n this.setState({\n popupEmpresarial: false\n });\n }\n solicitaEmpresarial(solicitud: ISolicitudEmpresarial) {\n this.setState({\n clickAdelantar: false,\n requestedCard: true,\n asked: true\n });\n this.callBack_SetEmpresarial(solicitud);\n }\n canceloEmpresarial() {\n this.setState({\n clickAdelantar: false,\n requestedCard: false,\n asked: true\n });\n }\n\n calcularTotalesDisponibles(_this: this): number[] {\n var totales: number[];\n var cargoAdministrativo: number = 0;\n var cargoAdministrativoIva: number = 0;\n var cargoAdministrativoBonificacion: number = 0;\n var cargoAdministrativoEmpresarial: number = 0;\n var cargoAdministrativoIvaEmpresarial: number = 0;\n var cargoAdministrativoBonificacionEmpresarial: number = 0;\n var cargoFinanciero: number = 0;\n var cargoFinancieroIva: number = 0;\n var cargoFinancieroPercepciones: number = 0;\n var cargoFinancieroBonificacion: number = 0;\n var cargoFinancieroEmpresarial: number = 0;\n var cargoFinancieroIvaEmpresarial: number = 0;\n var cargoFinancieroPercepcionesEmpresarial: number = 0;\n var cargoFinancieroBonificacionEmpresarial: number = 0;\n\n if (_this.state.dataDisponible != undefined) {\n _this.state.dataDisponible.forEach(function (item) {\n cargoAdministrativo += item.cargoAdministrativo;\n cargoAdministrativoIva += item.cargoAdministrativoIva;\n cargoAdministrativoBonificacion += item.cargoAdministrativoBonificacion;\n cargoAdministrativoEmpresarial += item.cargoAdministrativoEmpresarial;\n cargoAdministrativoIvaEmpresarial += item.cargoAdministrativoIvaEmpresarial;\n cargoAdministrativoBonificacionEmpresarial += item.cargoAdministrativoBonificacionEmpresarial;\n cargoFinanciero += item.cargoFinanciero;\n cargoFinancieroIva += item.cargoFinancieroIva;\n cargoFinancieroPercepciones += item.cargoFinancieroPercepciones;\n cargoFinancieroBonificacion += item.cargoFinancieroBonificacion;\n cargoFinancieroEmpresarial += item.cargoFinancieroEmpresarial;\n cargoFinancieroIvaEmpresarial += item.cargoFinancieroIvaEmpresarial;\n cargoFinancieroPercepcionesEmpresarial += item.cargoFinancieroPercepcionesEmpresarial;\n cargoFinancieroBonificacionEmpresarial += item.cargoFinancieroBonificacionEmpresarial;\n });\n }\n\n totales = [cargoAdministrativo, cargoAdministrativoIva, cargoAdministrativoBonificacion, cargoAdministrativoEmpresarial, cargoAdministrativoIvaEmpresarial, cargoAdministrativoBonificacionEmpresarial, cargoFinanciero, cargoFinancieroIva, cargoFinancieroPercepciones, cargoFinancieroBonificacion, cargoFinancieroEmpresarial, cargoFinancieroIvaEmpresarial, cargoFinancieroPercepcionesEmpresarial, cargoFinancieroBonificacionEmpresarial];\n\n return totales;\n }\n\n async onCuitChange(e: any) {\n this.setState({ cuit: e.value });\n if (e.value != null) {\n await this.callBack_disponible(e, this);\n\n let num: number[] = [this.state.opcion[0].adelantoMaximo];\n this.onChange(num);\n this.onUpdate(num);\n\n this.setState({\n montoText: this.state.opcion[0].adelantoMaximo.toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 }),\n loading: false,\n });\n this.onClickDigital();\n }\n else {\n let domainReset: number[] = [-0.8, 0];\n let valuesReset: number[] = [-0.8];\n this.setState({ domain: domainReset, montoText: \"0,00\", values: valuesReset, cantReembolsos: 0, maxActual: 0 })\n this.props.enviarDisponible(null);\n }\n }\n\n static defaultProps = {\n monto: 0\n }\n\n onClick() {\n this.setState({ clickAdelantar: true });\n }\n\n onBlur() {\n this.setState({ rate: this.state.rateMax });\n }\n\n onFocus() {\n this.setState({ rate: this.state.rateMin });\n }\n\n onAcceptar(e: any) {\n e.preventDefault();\n this.setState({ clickAdelantar: false, adelantando: true });\n this.callBack_reembolso();\n }\n\n onCancelar(e: any) {\n e.preventDefault();\n this.setState({ clickAdelantar: false });\n }\n\n onHide() {\n this.setState({ clickAdelantar: false });\n }\n\n public onChangeMonto = (e: any) => {\n if (e.target.value.length === 1) {\n e.target.value = '0' + e.target.value;\n }\n else if (e.target.value.length === 0) {\n e.target.value = '0'\n }\n if (+e.target.value.replace(\",\", \"\").replace(\".\", \"\") > 0) {\n this.setState({ montoText: parseFloat(e.target.value.replace(/[^\\d]/g, '').replace(/(\\d\\d?)$/, '.$1')).toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 }) });\n let num = [];\n if ((+e.target.value.replace(\",\", \"\").replace(\".\", \"\") / 100) > 1) {\n num.push((+e.target.value.replace(\",\", \"\").replace(\".\", \"\")) / 100);\n this.onChange(num);\n this.onUpdate(num);\n }\n }\n else {\n this.setState({ montoText: \"0,00\" });\n this.onChange([0]);\n this.onUpdate([0]);\n }\n };\n\n onChange = (values: ReadonlyArray) => {\n this.setState({ values });\n };\n\n onUpdate = (update: ReadonlyArray) => {\n // update[0] = monto a adelantar\n if (update[0] > this.state.maxActual) {\n update = [this.state.maxActual];\n this.setState({ update: update });\n }\n\n this.setState({\n montoText: update[0].toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 }),\n })\n this.setState({ update: update })\n\n var intereses: number[]\n var op = this.state.opcion;\n\n if (update[0] > 0) {\n // Llama a calcularIntereses() -> calcularInteres(), aca se asignan los dias faltantes y los reembolsos a adelantar\n intereses = this.calcularIntereses(this, update[0], false);\n\n // Obtener porcentaje de adelanto\n var porcentajeAdelanto = (update[0] / this.state.opcion[this.state.digital].adelantoMaximo) * 100;\n\n // Obtener todos los totales de las presentaciones pendientes\n var totales = this.calcularTotalesDisponibles(this);\n\n // Transferencias\n /*\n totales[0] += item.cargoAdministrativo;\n totales[1] += item.cargoAdministrativoIva;\n totales[2] += item.cargoAdministrativoBonificacion;\n totales[6] += item.cargoFinanciero;\n totales[7] += item.cargoFinancieroIva;\n totales[8] += item.cargoFinancieroPercepciones;\n totales[9] += item.cargoFinancieroBonificacion;\n */\n op[this.state.transferencia].adelanto = update[0];\n op[this.state.transferencia].gastoAdmin = totales[0];\n op[this.state.transferencia].intereses = (totales[6] * porcentajeAdelanto) / 100;\n op[this.state.transferencia].IVA = ((totales[7] * porcentajeAdelanto) / 100) + totales[1];\n op[this.state.transferencia].percepciones = (totales[8] * porcentajeAdelanto) / 100;\n op[this.state.transferencia].costoAdelanto = op[this.state.transferencia].gastoAdmin + op[this.state.transferencia].intereses + op[this.state.transferencia].IVA + op[this.state.transferencia].percepciones;\n op[this.state.transferencia].montoAcreditar = update[0] - op[this.state.transferencia].costoAdelanto;\n\n // Empresarial\n /*\n totales[3] += item.cargoAdministrativoEmpresarial;\n totales[4] += item.cargoAdministrativoIvaEmpresarial;\n totales[5] += item.cargoAdministrativoBonificacionEmpresarial;\n totales[10] += item.cargoFinancieroEmpresarial;\n totales[11] += item.cargoFinancieroIvaEmpresarial;\n totales[12] += item.cargoFinancieroPercepcionesEmpresarial;\n totales[13] += item.cargoFinancieroBonificacionEmpresarial;\n */\n op[this.state.digital].adelanto = update[0];\n op[this.state.digital].gastoAdmin = totales[3];\n op[this.state.digital].intereses = (totales[10] * porcentajeAdelanto) / 100;\n op[this.state.digital].IVA = ((totales[11] * porcentajeAdelanto) / 100) + totales[4];\n op[this.state.digital].percepciones = (totales[12] * porcentajeAdelanto) / 100;\n op[this.state.digital].costoAdelanto = op[this.state.digital].gastoAdmin + op[this.state.digital].intereses + op[this.state.digital].IVA + op[this.state.digital].percepciones;\n op[this.state.digital].montoAcreditar = update[0] - op[this.state.digital].costoAdelanto;\n }\n else {\n // Transferencias\n op[this.state.transferencia].adelanto = 0;\n op[this.state.transferencia].gastoAdmin = 0;\n op[this.state.transferencia].intereses = 0;\n op[this.state.transferencia].IVA = 0;\n op[this.state.transferencia].percepciones = 0;\n op[this.state.transferencia].costoAdelanto = 0;\n op[this.state.transferencia].montoAcreditar = 0;\n\n // Empresarial\n op[this.state.digital].adelanto = 0;\n op[this.state.digital].gastoAdmin = 0;\n op[this.state.digital].intereses = 0;\n op[this.state.digital].IVA = 0;\n op[this.state.digital].percepciones = 0;\n op[this.state.digital].costoAdelanto = 0;\n op[this.state.digital].montoAcreditar = 0;\n }\n this.setState({ opcion: op });\n let montoTotal = this.obtenerTotalPorNeto(update);\n\n if (this.state.medioPago === 'Digital')\n this.props.enviarMonto(montoTotal[this.state.digital]);\n else\n this.props.enviarMonto(montoTotal[this.state.transferencia]);\n }\n obtenerTotalPorNeto(neto: ReadonlyArray): number[] {\n var total: number[];\n total = [neto[0], neto[0]];\n return total;\n }\n async callBack_SetEmpresarial(postData: ISolicitudEmpresarial) {\n var _this = this;\n\n await fetch('api/Empresarial/SetSolicitud', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else if (data.success)\n _this.onGuardarTyC()\n });\n }\n\n async onGuardarTyC() {\n //var _this = this;\n this.setState({ popupEmpresarial: true });\n\n //let postData: ITyCRequest = {\n // idTyC: 3,\n //}\n //await fetch('api/TerminosCondiciones/aceptarTyC', {\n // method: 'POST',\n // headers: {\n // Accept: \"application/json\",\n // \"Content-Type\": \"application/json\"\n // },\n // body: JSON.stringify(postData)\n //}).then(function(response) {\n // return response.json();\n //}).then(function(data: any) {\n // if (data.success)\n // _this.setState({ popupEmpresarial: true });\n //});\n }\n\n async callBack_disponible(e: any, _this: this) {\n let postData: IDisponibleRequest = {\n cuit: e.value\n };\n await fetch('api/Reembolso/PostDisponiblesPorCuit', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else {\n let maxReembolso = data[data.length - 1].acumulado;\n let domainRes: number[] = [0, maxReembolso];\n _this.setState({ domain: domainRes, cantReembolsos: data.length, dataDisponible: data });\n\n _this.props.enviarDisponible(data);\n var op = _this.state.opcion;\n\n op[_this.state.digital].adelantoMaximo = _this.state.domain[1];\n op[_this.state.transferencia].adelantoMaximo = _this.state.domain[1];\n\n var maxAdelanto = (_this.state.medioPago === 'Digital' ? op[_this.state.digital].adelantoMaximo : op[_this.state.transferencia].adelantoMaximo);\n _this.setState({ maxActual: (maxAdelanto) });\n\n _this.setState({ opcion: op });\n }\n });\n }\n\n async callBack_reembolso() {\n var _this = this;\n if (this.state.cuits != undefined) {\n let cuitRazon = this.state.cuits.filter(cuit => cuit.value == this.state.cuit);\n if (cuitRazon != undefined) {\n let postData: IAdelantarRequest = {\n PresentacionesArray: this.state.reembolsos,\n Monto: (this.state.medioPago === 'Digital' ? this.state.opcion[this.state.digital].adelanto : this.state.opcion[this.state.transferencia].adelanto),\n MetodoPagoId: (this.state.medioPago === 'Digital' ? 15 : 3),\n CuitRazon: cuitRazon[0].label\n };\n await fetch('api/Reembolso/Adelantar', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else {\n _this.setState({ success: data.success, adelantando: false })\n if (data.success)\n _this.props.enviarAdelanto(\"success\");\n else\n _this.props.enviarAdelanto(\"error\");\n }\n })\n .catch(function (error) {\n _this.props.enviarAdelanto(\"error\");\n console.log('Request failed', error);\n });\n }\n }\n else {\n this.props.enviarAdelanto(\"error\");\n }\n }\n\n async populateCuitsData() {\n var _this = this;\n if (!this.state.fetchCuit) {\n const response = await fetch('api/Reembolso/GetCuits', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n })\n const data = await response.json();\n\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirect: true, url: data.nologin });\n }\n else {\n this.setState({ cuits: data, fetchCuit: true });\n if (data.length == 1) {\n let e: any = { value: data[0].value }\n this.onCuitChange(e);\n }\n }\n }\n }\n //CRA 20210326 se agrega fn calcularFecha, recibe por parametro un fecha y los dias a restar y devuelve la nueva fecha restandole los dias\n //recibidos por parametro\n calcularFecha(fecha: Date, dias: number): Date {\n var nf = new Date(fecha);\n var nt = nf.getTime();\n var d = dias * 60 * 60 * 24 * 1000;\n var df = nt-d;\n return new Date(df); \n}\n\n calcularInteres(_this: this, monto: number, calcularMaximo: boolean, opcion: number): number {\n var aci = 0;\n let montoOriginal: number;\n montoOriginal = monto;\n let acM: number = 0;\n let opciones = this.state.opcion;\n if (_this.state.dataDisponible != undefined) {\n let i = 1;\n let reem: string[] | undefined;\n reem = undefined;\n let diasFaltantes = 0;\n\n //let date: Date = new Date(hoy.setDate(hoy.getDate() + this.props.opcion[this.props.modo].plazo));\n _this.state.dataDisponible.forEach(function (item) {\n let hoy: Date = new Date();\n if (_this.state.digital == opcion) {\n diasFaltantes = item.diasAdelantoEmpresarial;\n //CRA 20210326 se agrega fn calcularFecha para traer los dias de adelanto ya que casteaba mal la nueva fecha de pago\n opciones[opcion].nuevaFechaPago = _this.calcularFecha(item.fecha,item.diasAdelantoEmpresarial);\n \n // opciones[opcion].nuevaFechaPago = new Date(hoy.setDate(new Date(item.fecha).getDate() - item.diasAdelantoEmpresarial));\n }\n else {\n diasFaltantes = item.diasAdelantoTransferencia;\n //CRA 20210326 se agrega fn calcularFecha para traer los dias de adelanto\n opciones[opcion].nuevaFechaPago = _this.calcularFecha(item.fecha, item.diasAdelantoTransferencia);\n //opciones[opcion].nuevaFechaPago = new Date(hoy.setDate(new Date(item.fecha).getDate() - item.diasAdelantoTransferencia));\n }\n\n\n let tna = _this.state.opcion[opcion].tna;\n let tasaDiaria = tna / 365;\n let tasaTotal = tasaDiaria * +diasFaltantes;\n let interesMonto: number = 0;\n\n if (calcularMaximo) {\n interesMonto = tasaTotal * item.monto;\n }\n else {\n\n if (montoOriginal >= item.acumulado) {\n monto = item.monto;\n interesMonto = ((monto * tasaTotal) / (100));\n if (reem != undefined) {\n reem.push(item.reembolso);\n }\n else {\n reem = [item.reembolso];\n }\n }\n else if (montoOriginal - acM > 0) {\n monto = montoOriginal - acM;\n interesMonto = ((monto * tasaTotal) / (100));\n if (reem != undefined) {\n reem.push(item.reembolso);\n }\n else {\n reem = [item.reembolso];\n }\n }\n else {\n interesMonto = 0;\n }\n }\n aci = aci + interesMonto;\n acM = acM + monto;\n });\n _this.setState({ dias: +diasFaltantes, reembolsos: reem });\n return aci;\n }\n return 0;\n }\n\n calcularIntereses(_this: this, monto: number, calcularMaximo: boolean): number[] {\n var intereses: number[];\n if (_this.state.dataDisponible != undefined) {\n var digital = _this.calcularInteres(_this, monto, calcularMaximo, _this.state.digital);\n var transferencia = _this.calcularInteres(_this, monto, calcularMaximo, _this.state.transferencia);\n intereses = [digital, transferencia];\n return intereses;\n } else {\n intereses = [0, 0];\n return intereses;\n }\n }\n\n public onClickTransferencia() {\n console.log('onClickTransferencia');\n if ((this.props.habilitadoLanet) || (this.state.cuit != null && this.state.cuit.length > 0))\n if ((this.props.habilitadoLanet) || (this.state.opcion[this.state.transferencia].permiteExpress &&\n this.state.opcion[this.state.transferencia].cupo > this.state.domain[1])) {\n\n this.setState({ medioPago: 'Transferencia', maxActual: this.state.opcion[this.state.transferencia].adelantoMaximo })\n if (this.state.opcion[this.state.transferencia].adelanto > this.state.opcion[this.state.transferencia].adelantoMaximo) {\n let num: number[] = [this.state.opcion[this.state.transferencia].adelantoMaximo];\n this.onChange(num);\n this.onUpdate(num);\n }\n }\n };\n\n public onClickDigital() {\n if ((this.props.habilitadoLanet) || (this.state.cuit != null && this.state.cuit.length > 0))\n if ((this.props.habilitadoLanet) || (this.state.opcion[this.state.digital].permiteExpress &&\n this.state.opcion[this.state.digital].cupo > this.state.domain[1])) {\n\n this.setState({ medioPago: 'Digital', maxActual: this.state.opcion[this.state.digital].adelantoMaximo })\n if (this.state.opcion[this.state.digital].adelanto > this.state.opcion[this.state.digital].adelantoMaximo) {\n let num: number[] = [this.state.opcion[this.state.digital].adelantoMaximo];\n this.onChange(num);\n this.onUpdate(num);\n }\n }\n }\n\n render() {\n if (this.state.redirect) {\n return \n }\n else if (this.state.adelantando) {\n return \n }\n else {\n this.populateCuitsData();\n const footer = (\n
\n
\n );\n const result = (\n
\n {(() => {\n if (this.state.popupEmpresarial) {\n return ()\n }\n else if ((this.state.medioPago === 'Transferencia' && this.state.clickAdelantar) ||\n (this.state.clickAdelantar && this.props.isEmpresarial)) {\n return (\n \n \n )\n }\n else if (this.state.medioPago === 'Digital' && this.state.clickAdelantar && !this.props.isEmpresarial) {\n if (this.state.requestedCard && this.state.adelanto != \"\")\n return ()\n else if (!this.state.requestedCard)\n return (
\n \n \n \n
)\n else {\n return (null)\n }\n }\n else {\n return (null)\n }\n })()}\n
\n );\n const { state: { values, update } } = this;\n\n let disable = !(this.state.cuit != null && this.state.cuit.length > 0);\n\n let modo = (this.state.medioPago === 'Digital' ? 0 : 1);\n\n let claseTrans = (disable ? '' : this.state.medioPago === 'Transferencia' ? 'boxBlue' : '');\n let claseEmpre = (disable ? '' : this.state.medioPago === 'Digital' ? 'boxBlue' : '');\n\n claseTrans = (this.state.opcion[this.state.transferencia].permiteExpress ? claseTrans : 'boxDisable');\n claseEmpre = (this.state.opcion[this.state.digital].permiteExpress ? claseEmpre : 'boxDisable');\n\n claseTrans = (this.state.opcion[this.state.transferencia].cupo > this.state.domain[1] ? claseTrans : 'boxDisable');\n claseEmpre = (this.state.opcion[this.state.digital].cupo > this.state.domain[1] ? claseEmpre : 'boxDisable');\n\n claseTrans = (this.props.habilitadoLanet ? (disable ? '' : this.state.medioPago === 'Transferencia' ? 'boxBlue' : '') : claseTrans);\n claseEmpre = (this.props.habilitadoLanet ? (disable ? '' : this.state.medioPago === 'Digital' ? 'boxBlue' : '') : claseEmpre);\n\n let disableAdelantar = !((this.state.opcion[modo].montoAcreditar > 0) &&\n ((claseTrans == 'boxDisable' ? false : this.state.medioPago === 'Transferencia') ||\n (claseEmpre == 'boxDisable' ? false : this.state.medioPago === 'Digital')));\n\n return (\n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n

Pagos programados:

\n
\n
\n

${this.formatMoney(this.state.domain[1])}

\n
\n
\n
\n
\n

Monto a Adelantar:

\n
\n
\n $\n \n
\n
\n
\n
\n
\n \n \n {({ getRailProps }) => (\n
\n )}\n \n \n {({ handles, getHandleProps }) => (\n
\n {handles.map(handle => (\n \n ))}\n
\n )}\n
\n \n {({ tracks, getTrackProps }) => (\n
\n {tracks.map(({ id, source, target }) => (\n \n ))}\n
\n )}\n
\n \n
\n
\n
\n
\n
\n

$0,00

\n
\n
\n

${this.formatMoney(this.state.domain[1])}

\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
MedioAcreditación en cuentaEmpresarial
TNM:{this.formatMoney(this.state.opcion[this.state.transferencia].tna / 12)}%{this.formatMoney(this.state.opcion[this.state.digital].tna / 12)}%
Plazo:{this.state.opcion[this.state.transferencia].plazoTexto}{this.state.opcion[this.state.digital].plazoTexto}
Gasto Admin.:${this.formatMoney(this.state.opcion[this.state.transferencia].gastoAdmin)}${this.formatMoney(this.state.opcion[this.state.digital].gastoAdmin)}
Intereses:${this.formatMoney(this.state.opcion[this.state.transferencia].intereses)}${this.formatMoney(this.state.opcion[this.state.digital].intereses)}
IVA:${this.formatMoney(this.state.opcion[this.state.transferencia].IVA)}${this.formatMoney(this.state.opcion[this.state.digital].IVA)}
Percepciones:${this.formatMoney(this.state.opcion[this.state.transferencia].percepciones)}${this.formatMoney(this.state.opcion[this.state.digital].percepciones)}
Costo Adelanto:${this.formatMoney(this.state.opcion[this.state.transferencia].costoAdelanto)}${this.formatMoney(this.state.opcion[this.state.digital].costoAdelanto)}
Monto Neto:${this.formatMoney((this.state.opcion[this.state.transferencia].montoAcreditar) < 0 ? 0 : this.state.opcion[this.state.transferencia].montoAcreditar)}${this.formatMoney(this.state.opcion[this.state.digital].montoAcreditar)}
\n
\n
\n {result}\n
\n
\n
\n )\n }\n }\n}","import * as React from 'react';\nimport { ScrollPanel } from 'primereact/scrollpanel';\nimport { ProgressBar } from 'primereact/progressbar';\nimport { IOpcion } from '../../interfaces/OpcionReembolso';\n\ninterface dataDisponible {\n monto: number,\n reembolso: string,\n presentacion: string,\n acumulado: number,\n fecha: Date,\n producto: string\n}\n\ninterface IState {\n loading: boolean,\n confirmar: boolean,\n opcion?: IOpcion[],\n totalIntTransferencia: number,\n totalIntDigital: number,\n visible: boolean\n}\n\ninterface IProps {\n monto: number,\n dataDisponible?: dataDisponible[],\n confirmar: boolean,\n opcion?: IOpcion[]\n}\n\nexport class Disponibles extends React.Component {\n constructor(props: IProps) {\n super(props);\n this.displayValueTemplate = this.displayValueTemplate.bind(this);\n this.onHide = this.onHide.bind(this);\n this.state = { loading: true, confirmar: this.props.confirmar, opcion: this.props.opcion, totalIntDigital: 0, totalIntTransferencia: 0, visible: false };\n }\n onHide() {\n this.setState({ visible: false });\n }\n\n displayValueTemplate(value: number) {\n return (\n \n {value}%\n \n );\n }\n\n render() {\n\n let monto = this.props.monto;\n\n let data = this.props.dataDisponible;\n let _this = this;\n let hoy = new Date();\n if (data == null) {\n return (\n
\n \n \n
\n )\n }\n else {\n return (\n
\n \n
    \n {\n data.map(function (item) {\n let porcentaje = 0;\n let montoUsado = 0;\n let montoString = item.monto.toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 });\n porcentaje = (monto < item.acumulado ?\n (monto > (item.acumulado - item.monto) ?\n (((monto - (item.acumulado - item.monto)) * 100) / item.monto)\n : 0)\n : 100);\n montoUsado = (monto < item.acumulado ?\n (monto > (item.acumulado - item.monto) ?\n (monto - (item.acumulado - item.monto))\n : 0)\n : item.monto);\n if (!(porcentaje <= 0 && _this.state.confirmar)) {\n let fecha: Date = new Date(item.fecha.toString());\n\n var dd = fecha.getDate();\n var mm = fecha.getMonth() + 1;\n var sdd = dd.toString();\n var smm = mm.toString();\n var yyyy = fecha.getFullYear();\n if (dd < 10) {\n sdd = '0' + dd.toString();\n }\n if (mm < 10) {\n smm = '0' + mm.toString();\n }\n let fechaReembolso = sdd + '/' + smm + '/' + yyyy;\n\n let diasFaltantes = ((fecha.getTime() - hoy.getTime()) / (1000 * 3600 * 24)).toLocaleString(undefined, { maximumFractionDigits: 0, minimumFractionDigits: 0 });\n\n let porcentajeString = porcentaje.toLocaleString(undefined, { maximumFractionDigits: 0, minimumFractionDigits: 0 });\n porcentaje = +porcentajeString;\n\n return (\n
  • \n
    \n \n
    \n
    \n

    Monto:

    \n
    \n
    \n

    \n $\n {montoUsado.toLocaleString(undefined, { maximumFractionDigits: 2, minimumFractionDigits: 2 })}\n /\n ${montoString}\n

    \n
    \n
    \n
    \n
    \n

    Presentación:

    \n
    \n
    \n

    {item.presentacion}

    \n
    \n
    \n
    \n
    \n

    Producto:

    \n
    \n
    \n

    {item.producto}

    \n
    \n
    \n
    \n
    \n

    Fecha de pago:

    \n
    \n
    \n

    {fechaReembolso}

    \n
    \n
    \n
    \n
  • \n )\n }\n })\n }\n
\n
\n
\n )\n }\n }\n}","import * as React from 'react';\n\nexport class PagoExpress extends React.Component {\n constructor() {\n super({});\n this.state = {\n\n }\n }\n\n render() {\n return (\n \n

TÉRMINOS Y CONDICIONES DE LA HERRAMIENTA “PAGO EXPRESS” DE EDENRED ARGENTINA S.A.

\n

Última actualización: 05/05/2020

\n

Los presentes términos y condiciones (en adelante los “T&C”) regulan el uso y funcionamiento de la herramienta web “Pago Express” (en adelante la “Herramienta”) que EDENRED ARGENTINA S.A., CUIT 30-62360867-7 (en adelante “EDENRED”) pone a disposición de Ud., en su calidad de comercio adherido a la red de EDENRED (en adelante, “Ud.”), a través del sitio web https://www.edenred.com.ar/comercios. Previo al uso de la Herramienta, Ud. deberá aceptar los presentes T&C de la Herramienta. Dicha aceptación se efectiviza tildando el recuadro destinado a tal fin, al pie de los presentes.

\n

Para ello, deberá leer este documento con atención y detenimiento. Si luego de la lectura de estos T&C Ud. tuviera cualquier duda respecto de los mismos, podrá contactarse con EDENRED a través de cualquiera de los puntos de contacto dispuestos en el Sitio Web de Comercios (en la sección “Contacto”), y deberá abstenerse de utilizar la Herramienta.

\n

Si Ud. no acepta los presentes T&C, deberá abstener de utilizar la Herramienta.

\n

PRIMERO: DEFINICIONES

\n
    \n
  • Cliente/s: Refiere a la/s persona/s que solicita/n a EDENRED la adhesión a cualquiera de las soluciones comercializadas por EDENRED, quienes en su relación con EDENRED habilitan e identifican a las personas autorizadas para el uso de las tarjetas/calcos/NFC/plataformas según el caso (en adelante, los “Usuarios”).

  • \n
  • Comercio/s: Refiere a todo establecimiento adherido a la red de EDENRED que presten sus servicios/expendan bienes bajo la modalidad de las Soluciones de EDENRED.

  • \n
  • EDENRED: Refiere a EDENRED ARGENTINA S.A.

  • \n
  • EMPRESARIAL: Refiere a la solución EDENRED denominada “Empresarial” cuyo uso y funcionamiento se indican en el: Formulario Solicitud de Incorporación (o actualización de datos) al sistema Empresarial Edenred.

  • \n
  • Herramienta: Refiere a la herramienta web del Sitio Web de Comercios cuyo uso y funcionamiento se indican en los presentes T&C.

  • \n
  • Locales: Refiere a los locales en el/los que Ud. desarrolla su actividad comercial.

  • \n
  • Pagos en Proceso: Refiere a los pagos que debe efectuar EDENRED a Ud. para cancelar (por cuenta y orden de los Clientes) las facturas emitidas por Ud. por las Transacciones y presentadas a EDENRED en tiempo y forma conforme lo previsto en el Reglamento y cuya fecha de vencimiento opera dentro de las próximas cuarenta y ocho a (48) horas menos (i) los costos y gastos establecidos en el Reglamento y (ii) los tributos correspondientes.

  • \n
  • Pagos Programados: Refiere a los pagos que debe efectuar EDENRED a Ud. para cancelar (por cuenta y orden de los Clientes) las facturas emitidas por Ud. por las Transacciones y presentadas a EDENRED en tiempo y forma conforme lo previsto en el Reglamento y cuya fecha de vencimiento opera en un plazo mayor a cuenta y ocho (48) horas hábiles menos (i) los costos y gastos establecidos en el Reglamento y (ii) los tributos correspondientes.

  • \n
  • Reglamento: Refiere al Reglamento de la/s Solución/es, de EDENRED, a las que el Comercio se encuentra adherido junto a la/s respectiva/s solicitudes de incorporación que une/n a Ud., como Cliente, con EDENRED.

  • \n
  • TNM: Refiere a la tasa nominal mensual.

  • \n
  • Transacciones: Refiere a las operaciones realizadas por los Usuarios con las Soluciones de EDENRED en los Locales de los COMERCIOS de la red.

  • \n
\n

SEGUNDO: NUEVAS FUNCIONES

\n

La Herramienta se encuentra disponible y alojada en el Sitio Web de Comercios.

\n

En la Herramienta Ud. podrá visualizar:

\n
    \n
  • El detalle de las Transacciones, diferenciando aquellas efectuadas durante los últimos 12 meses y aquellas efectuadas durante los últimos 30 días.

  • \n
  • Pagos en Proceso.

  • \n
  • Pagos Programados.

  • \n
\n

La Herramienta no permite el pago anticipado de los Pagos en Proceso.

\n

Los Pagos en Proceso serán abonados por EDENRED en las fechas pactadas y por la vía de pago prevista en el Reglamento.

\n

TERCERO: ALTERNATIVAS DE PAGOS EXPRESS

\n

La Herramienta le permite a Ud. solicitar a EDENRED el pago anticipado total o parcial de los Pagos Programados mediante:

\n
    \n
  • Acreditación en Cuenta.

  • \n
  • Acreditación en EMPRESARIAL.

  • \n
\n

La utilización de cualquiera de estas alternativas de pago anticipado implicará un costo extra y adicional. Dichos costos no aplicarán a Ud. si Ud. no utiliza tales alternativas.

\n

La alternativa de acreditación en EMPRESARIAL solamente estará habilitada para Ud. en caso que Ud. tenga la EMPRESARIAL.

\n

Para poder requerir la EMPRESARIAL Ud. deberá realizar el procedimiento de solicitud de la misma accediendo al sitio Web en la sección Pago Express y cumplir con las condiciones y requisitos allí previstos.

\n

Ambas alternativas descriptas se encuentran sujeta a la aceptación y aprobación de EDENRED. La selección por el COMERCIO de una o ambas de las alternativas no genera en EDENRED la obligación de su aceptación. EDENRED se reserva la facultad de discontinuar la herramienta de Pago Express, en cualquier momento, para ello bastará informar al comercio mediante un aviso en la web respectiva.

\n

CUARTO: SOLICITUD DE ACREDITACIÓN EN CUENTA

\n

Ud. podrá solicitar a EDENRED que le anticipe parcial o totalmente los Pagos Programados mediante transferencia bancaria de las sumas respectivas.

\n

Los costos por anticipar los Pagos Programados mediante transferencia bancaria se corresponderán al siguiente detalle:

\n
    \n
  • TNM.

  • \n
  • Gastos administrativos.

  • \n
  • Impuesto al valor agregado (IVA).

  • \n
\n

El monto específico aplicable por cada uno de tales conceptos y que será deducido por EDENRED será informado/visualizado en pantalla de forma previa a que Ud. confirme la solicitud del Pago Programado.

\n

El saldo resultante entre el “monto solicitado” por Ud. y los “conceptos deducidos” por EDENRED será transferido por EDENRED a la cuenta bancaria que Ud. informó a EDENRED al momento de adherir al Reglamento dentro de las 48hs de efectuada la solicitud.

\n

En caso que Ud. solicite la transferencia total de los Pagos Programados a su cuenta bancaria y que EDENRED proceda a efectuar la transferencia respectiva, la totalidad de las facturas contabilizadas para la fijación de los Pagos Programados quedarán totalmente canceladas.

\n

En caso que Ud. solicite la transferencia parcial de los Pagos Programados a su cuenta bancaria y que EDENRED proceda a efectuar la transferencia respectiva, las facturas que fueron contabilizadas para la fijación de los Pagos Programados serán canceladas por hasta un monto igual al “monto solicitado” por Ud. bajo la Herramienta y por orden cronológico, desde las facturas que tengan vencimiento más próximo a vencimiento más lejano en el tiempo. Las facturas que correspondan a los Pagos en Proceso serán canceladas por EDENRED en las fechas pactadas y por la vía de pago establecida en el Reglamento.

\n

QUINTO: SOLICITUD DE ACREDITACION EN EMPRESARIAL

\n

Ud. podrá solicitar a EDENRED que le anticipe parcial o totalmente los Pagos Programados mediante acreditación en la EMPRESARIAL de las sumas respectivas.

\n

Los costos por anticipar los Pagos Programados mediante acreditación en la EMPRESARIAL se corresponderán al siguiente detalle:

\n
    \n
  • TNM.

  • \n
  • Gastos administrativos.

  • \n
  • Impuesto al valor agregado (IVA).

  • \n
\n

El monto específico aplicable por cada uno de tales conceptos y que será deducido por EDENRED será informado/visualizado en pantalla de forma previa a que Ud. confirme la solicitud del Pago Programado.

\n

El saldo resultante entre el “monto solicitado” por Ud. y los “conceptos deducidos” por EDENRED será acreditado por EDENRED en EMPRESARIAL dentro de las 12 horas hábiles, entendiendo por tales el horario de oficina de 9 a 18 horas de lunes a viernes, de recibida por EDENRED su solicitud.

\n

En caso que Ud. solicite la acreditación total de los Pagos Programados en la EMPRESARIAL y que EDENRED proceda a efectuar la acreditación respectiva, la totalidad de las facturas contabilizadas para la fijación de los Pagos Programados quedarán totalmente canceladas.

\n

En caso que Ud. solicite la acreditación parcial de los Pagos Programados en la EMPRESARIAL y que EDENRED proceda a efectuar la acreditación respectiva, las facturas que fueron contabilizadas para la fijación de los Pagos Programados serán canceladas por hasta un monto igual al monto requerido por Ud. bajo la Herramienta y por orden cronológico, desde las facturas que tengan vencimiento más próximo a vencimiento más lejano en el tiempo. Las facturas que correspondan a los Pagos en Proceso serán canceladas por EDENRED en las fechas pactadas y por la vía de pago establecida en el Reglamento.

\n

Los términos de uso de la EMPRESARIAL se indican en: Formulario Solicitud de Incorporación (o actualización de datos) al sistema Empresarial Edenred.

\n

La alternativa Pago Express Acreditación EMPRESARIAL generará para el COMERCIO una tarjeta EMPRESARIAL por CUIT. La tarjeta EMPRESARIAL emitida a su favor tendrá uso al portador, la selección del establecimiento comercial donde la utilice, así como los servicios y bienes que Ud. reciba será de su exclusiva responsabilidad y cualquier reclamo derivado de ello será atendido por el establecimiento seleccionado. Además, siendo la tarjeta EMPRESARIAL al portador, Ud. no podrá desconocer las transacciones realizadas con la tarjeta, así como tampoco los cargos a través de dichas transacciones generados. Les recordamos que la tarjeta EMPRESARIAL no es una tarjeta de la ley 25.065.

\n

En el caso de pérdida/robo/hurto de la tarjeta EMPRESARIAL que Ud. haya recibido deberá realizar la denuncia correspondiente por teléfono y por email comunicándose por los canales de contacto indicados en la cláusula DECIMOQUINTA, dicha denuncia será procesada dentro de las 24 horas hábiles de recibida. Toda transacción efectuada con la tarjeta con fecha y hora anterior a la del procesamiento por EDENRED de su denuncia no podrá ser impugnada.

\n

QUINTO: PROHIBICION EXPRESA

\n

Ud. tiene estrictamente prohibido manipular, alterar y/o modificar por medios informáticos la programación y/o información provista a Ud. a través de la Herramienta.

\n

SEXTO: LIMITACIÓN DE RESPONSABILIDAD

\n

Con la aceptación de estos T&C por parte de Ud. se entenderá de forma irrevocable que:

\n
    \n
  • Ud. declara reconocer y aceptar que internet es un medio riesgoso e inseguro y exonera de toda responsabilidad a EDENRED por cualquier virus o malware que pudiera infectar su ordenar como consecuencia del uso de la Herramienta, salvo dolo de EDENRED.

  • \n
  • Ud. reconoce y acepta que EDENRED no se responsabiliza y es ajeno respecto del mérito, oportunidad y conveniencia del uso de la Herramienta por parte de Ud., siendo su utilización una facultad discrecional suya y no de EDENRED.

  • \n
  • EDENRED no garantiza el acceso y el uso continuado o ininterrumpido de la Herramienta.

  • \n
  • Ud. reconoce y acepta que la Herramienta es un servicio excepcional que EDENRED le ofrece y que puede eventualmente no estar disponible/accesible por razones ajenas a EDENRED o por decisión propia de EDENRED, incluyendo las tareas de mantenimiento informático del Sitio Web de Comercios y/o de la Herramienta que lleve a cabo EDENRED. El no funcionamiento de la Herramienta por los motivos antedichos no otorgará a Ud. derecho a resarcimiento ni reclamo alguno.

  • \n
  • El sistema puede eventualmente no estar disponible debido a dificultades técnicas o fallas de Internet, o por cualquier otra circunstancia ajena a EDENRED; en tales casos se procurará restablecerlo con la mayor celeridad posible sin que por ello pueda imputársele a EDENRED algún tipo de responsabilidad.

  • \n
  • EDENRED no se responsabiliza por los daños y perjuicios que Ud. pudiera sufrir como consecuencias del uso y/o mal uso de la Herramienta por parte de Ud.

  • \n
\n

SEPTIMO: SUSPENSION DEFINITIVA DE LA HERRAMIENTA

\n

EDENRED podrá, en cualquier momento y a su sola discreción, suspender definitivamente la operatividad de la Herramienta. Ello no otorgará a Ud. derecho a reclamo o compensación alguna.

\n

OCTAVO: ALMACENAMIENTO DE DATOS

\n

Cuando Ud. utilice la Herramienta, EDENRED almacenará las instrucciones/solicitudes que efectúe con la misma.

\n

Tales instrucciones/solicitudes serán almacenadas a fin de su procesamiento y debido registro.

\n

EDENRED podrá transferir el detalle de las distintas instrucciones/solicitudes efectuadas por Ud. a cualquiera de las sociedades relacionadas, afiliadas, controladas, controlantes, filiales, representaciones o vinculadas de EDENRED, y a terceros proveedores de servicios de procesamiento y tratamiento de datos.

\n

Ud., reconoce y acepta que EDENRED podrá transmitir/compartir el detalle de tales instrucciones/solicitudes con autoridades públicas, administrativas o judiciales, a fin de dar cumplimiento a los requerimientos normativos/judiciales que puedan efectuársele a EDENRED.

\n

EDENRED almacena la información en sus servidores ubicados físicamente en el Data Center KIO Edenred México y en el Cloud DXC USA. Sin perjuicio de ello, EDENRED se reserva el derecho de reubicar en cualquier otro país estos servidores a su sola discreción, lo cual Ud. acepta y autoriza expresamente. En tal caso, EDENRED se compromete a garantizar el cumplimiento de los estándares exigidos por la normativa vigente de Argentina en materia de confidencialidad y protección de datos personales. EDENRED se compromete a guardar confidencialidad de sus datos y a efectuar esfuerzos razonables para mantener sistemas de seguridad adecuados para el tipo de información almacenada en sus servidores. No obstante ello, EDENRED no garantiza a Ud. la inviolabilidad de los mismos.

\n

EDENRED reconoce los derechos de acceso, rectificación, actualización y eliminación de sus datos.

\n

Para ejercer tales derechos Ud. deberá remitir a EDENRED una solicitud en tal sentido (la “Solicitud”), mediante:

\n
    \n
  • Una presentación en las oficinas de EDENRED, sitas en Óptima Business Park Alferez Hipólito Bouchard 4169/4191, 7° piso. Munro, Buenos Aires, Argentina.

  • \n
\n

La Solicitud deberá contener su número de COMERCIO afiliado, nombre y apellido/razón social, número de documento y copia simple del mismo, dirección de correo electrónico, domicilio, y número telefónico. Asimismo, deberá contener una descripción clara y precisa de los datos respecto de los cuales busca ejercer el derecho de acceso, rectificación, actualización o eliminación y una descripción de los hechos que motivan tal solicitud. En caso de modificación/actualización de datos, Ud. deberá acompañar los documentos que sustenten el cambio solicitado.

\n

EDENRED cuenta con 10 (diez) días hábiles desde la recepción de la Solicitud para expedirse en los casos de pedido de acceso (art. 14 de la LDPD) y con 5 (cinco) días hábiles si Ud. hubiere solicitado la rectificación, actualización, o la eliminación de sus datos (art. 16 de la LDPD).

\n

EDENRED sólo procederá a la supresión de sus datos si no hubiera ningún contrato vigente que uniera a las Partes y Ud. no mantuviera con EDENRED ninguna deuda (sea o no líquida y exigible).

\n

Ud. podrá ejercer estos derechos en forma gratuita en intervalos no inferiores a 6 (seis) meses, salvo que acredite un interés legítimo al efecto (art. 14 inciso 3 de la LDPD). Se le hace saber que la Agencia de Acceso a la Información Pública (ex Dirección Nacional de Protección de Datos Personales), como órgano de control de la Ley de Protección de Datos Personales, tiene la atribución de atender denuncias y reclamos con relación al incumplimiento de las normas sobre protección de datos personales (conf. artículo 2 de la Disposición 10/08 de la Dirección Nacional de Protección de Datos Personales). Para contactar a la misma deberá dirigirse a: Agencia de Acceso a la Información Pública, Av. Pte. Gral. Julio A. Roca 710, piso 2do, Ciudad Autónoma de Buenos Aires. T.E.011-2821-0047 https://www.argentina.gob.ar/aaip.

\n

EDENRED conservará sus datos durante toda la vigencia de la relación comercial, y por un plazo de cinco (5) años a contarse desde la terminación del vínculo contractual que una a Ud. con EDENRED. Vencido dicho plazo, procederemos a eliminar sus datos de nuestra base de datos.

\n

NOVENA: COOKIES

\n

Para mejorar el funcionamiento del Sitio Web de Comercios, y brindar una experiencia de uso más eficiente, dinámica y personalizada de la Herramienta, Ud. reconoce y acepta que hay cierta información personal que recopilamos cada vez que Ud. accede al Sitio Web de Comercios y/o a la Herramienta. Una cookie es un archivo de texto informático que se almacena en su navegador web y tiene el objeto, entre otros, de proporcionar la información necesaria para recordar sus datos de ingreso y cualquier información relacionada con su cuenta, de ayudar a personalizar las propuestas de servicios y promociones dirigidas a Ud., y de brindar mayor eficiencia al funcionamiento del Sitio Web de Comercios y/o de la Herramienta (como puede ser, por ejemplo, el sistema operativo del cual accede, fechas y horas de utilización del Sitio Web de Comercios, etc.).

\n

DECIMA: PROPIEDAD INTELECTUAL

\n

Ud. reconoce y acepta que EDENRED es el único y exclusivo titular de todo derecho sobre el Sitio Web de Comercios y la Herramienta, como así también de todas las derivaciones, modificaciones y mejoras efectuadas a los mismos, y de todo logo, emblema, logotipo, diseño, contenido, etc. que forme parte de los mismos (incluyendo pero no limitando, la titularidad de todos los derechos de propiedad intelectual).

\n

Ud. declara comprender u aceptar que EDENRED no le otorga el título o la propiedad del Sitio Web de Comercios ni de la Herramienta y/o sus derivaciones modificaciones y mejoras, sino sólo un derecho de uso limitado.

\n

Ud. se compromete a informar a EDENRED en forma inmediata respecto de toda violación y otra acción indebida a la que tome conocimiento con respecto a la propiedad intelectual de EDENRED.

\n

UNDECIMA: CESIÓN DE POSICION CONTRACTUAL

\n

Ud. no podrá ceder ni transferir su posición contractual ni sus derechos y obligaciones emergentes de la aceptación de los presentes T&C.

\n

EDENRED podrá transferir su posición contractual, así como los derechos y obligaciones emergentes de los presentes T&C con la sola obligación de notificar ello a Ud.

\n

DUODECIMO: INTEGRACION DE TERMINOS Y CONDICIONES

\n

La Herramienta se rige por los términos y condiciones establecidos en los presentes T&C y también por los términos y condiciones del Sitio Web de Comercio y su respectiva política de privacidad.

\n

DECIMOTERCERO: ACTUALIZACIÓN DE LOS T&C

\n

EDENRED se reserva el derecho de modificar y enmendar en cualquier momento estos T&C. Dichas modificaciones serán comunicadas a Ud. y requerirá de su lectura y aceptación. Todos los términos modificados entrarán en vigor a partir del día en que fueran informados.

\n

Como consecuencia de lo anterior, recomendamos a Ud. leer los presentes T&C y toda modificación de los mismos de forma previa a utilizar la Herramienta. Si Ud. no acepta las modificaciones a los T&C deberá abstener de utilizar la Herramienta.

\n

DECIMOCUARTO: LEY APLICABLE Y JURISDICCIÓN

\n

Los presentes T&C serán regidos e interpretados de conformidad con las leyes de la República Argentina.

\n

Las disputas, controversias o reclamaciones en relación con la ejecución, cumplimiento o interpretación del presente serán sometidas a la jurisdicción de los Tribunales Nacionales Ordinarios con asiento en la Ciudad Autónoma de Buenos Aires, renunciando a cualquier otra jurisdicción que pudiera corresponder.

\n

DECIMOQUINTO: CANALES DE CONTACTO

\n
\n

Nuestros canales de contacto son:

\n

Telefónico 4909 1400

\n

E-mail cliente-ar@edenred.com

\n
\n

\n
\n )\n }\n}","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Panel } from 'primereact/panel';\nimport { connect } from 'react-redux';\n\nimport { ToLogin } from '../misc/Redirect/ToLogin';\nimport { Adelantar } from '../reembolso/Adelantar';\nimport { Disponibles } from '../reembolso/Disponibles';\nimport { Result } from '../misc/Message/Result';\nimport { PagoExpress } from '../terminosCondiciones/PagoExpress';\nimport { ToHomeFromAdelantar } from '../misc/Redirect/ToHomeFromAdelantar';\nimport { Dialog } from 'primereact/dialog';\nimport { AceptarTerminos } from '../terminosCondiciones/AceptarTerminos';\n\nimport { ITyCRequest } from '../../interfaces/ITyCRequest';\nimport { IOpcion } from '../../interfaces/OpcionReembolso';\nimport { IMetodoPago } from '../../interfaces/IMetodoPago'\n\ninterface dataDisponible {\n monto: number,\n reembolso: string,\n presentacion: string,\n acumulado: number,\n fecha: Date,\n producto: string\n}\n\ninterface IState {\n loading: boolean,\n loadingTyC: boolean;\n monto: number,\n dataDisponible?: dataDisponible[],\n opcion?: IOpcion[],\n isEmpresarial: boolean,\n requestedCard: boolean,\n asked: boolean,\n visible: boolean,\n metodosPago?: IMetodoPago,\n adelanto: string,\n redirect: boolean,\n redirectLogin: boolean,\n url: string,\n tycVisible: boolean,\n habilitadoLanet: boolean\n}\n\nexport class RembolsoExpress extends React.Component<{}, IState> {\n constructor() {\n super({});\n\n this.state = {\n tycVisible: false, loadingTyC: true, redirectLogin: false,\n loading: true, monto: 0, isEmpresarial: true,\n requestedCard: false, visible: true, asked: false,\n adelanto: \"\", redirect: false, url: \"\",\n habilitadoLanet: true\n };\n\n this.handleData = this.handleData.bind(this);\n this.handleDataDisponible = this.handleDataDisponible.bind(this);\n this.handleAdelanto = this.handleAdelanto.bind(this);\n this.handleResult = this.handleResult.bind(this);\n\n this.callBack_empresarial = this.callBack_empresarial.bind(this);\n this.callBack_parametros = this.callBack_parametros.bind(this);\n\n this.onCancelar = this.onCancelar.bind(this);\n this.onAcceptar = this.onAcceptar.bind(this);\n this.onHide = this.onHide.bind(this);\n this.tycVerify = this.tycVerify.bind(this);\n }\n\n public componentDidMount() {\n this.callBack_parametros();\n this.tycVerify();\n }\n\n handleData(result: number) {\n this.setState({\n monto: result\n });\n }\n\n handleDataDisponible(result: dataDisponible[]) {\n this.setState({\n dataDisponible: result\n });\n }\n\n handleAdelanto(result: string) {\n this.setState({\n adelanto: result\n });\n }\n\n handleResult() {\n this.setState({\n adelanto: \"\"\n });\n }\n\n async callBack_parametros() {\n var _this = this;\n\n await fetch('api/Reembolso/Parametros', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else {\n var online = data.respuesta.metodosPago.filter((on: { metodoPagoId: number; }) => on.metodoPagoId === 15);\n var transferencia = data.respuesta.metodosPago.filter((tra: { metodoPagoId: number; }) => tra.metodoPagoId === 3);\n var opcionOnLine: IOpcion = {\n tna: online[0].tna,\n gastoAdmin: online[0].gastosAdministrativos,\n costoAdelanto: 0,\n adelanto: 0,\n IVA: 0,\n plazo: online[0].diasPago,\n plazoTexto: (online[0].diasPago === 1 ? \"1 Día\" : online[0].diasPago + \" Días \"),\n medio: true,\n cupo: data.respuestaCupo.cupoEmpresarial,\n intereses: 0,\n montoAcreditar: 0,\n permiteExpress: online[0].permiteExpress,\n adelantoMaximo: 0,\n percepciones: 0\n }\n var opcionTransf: IOpcion = {\n tna: transferencia[0].tna,\n gastoAdmin: transferencia[0].gastosAdministrativos,\n costoAdelanto: 0,\n adelanto: 0,\n IVA: 0,\n plazo: transferencia[0].diasPago,\n plazoTexto: (transferencia[0].diasPago == 1 ? \"1 Día\" : transferencia[0].diasPago + \" Días \"),\n medio: false,\n cupo: data.respuestaCupo.cupoTransferencia,\n intereses: 0,\n montoAcreditar: 0,\n permiteExpress: transferencia[0].permiteExpress,\n adelantoMaximo: 0,\n percepciones: 0\n }\n var opcionDefault: Array = [];\n opcionDefault.push(opcionOnLine);\n opcionDefault.push(opcionTransf);\n\n _this.setState({ opcion: opcionDefault, metodosPago: data.respuesta.metodosPago, habilitadoLanet: data.habilitar })\n\n _this.callBack_empresarial();\n }\n });\n }\n\n async callBack_empresarial() {\n var _this = this;\n\n await fetch('api/Empresarial/GetTiene', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else {\n if (data == 0)\n _this.setState({ isEmpresarial: false })\n else if (data == 1)\n _this.setState({ isEmpresarial: false, requestedCard: true })\n else if (data == 2)\n _this.setState({ isEmpresarial: true })\n\n _this.setState({ loading: false })\n }\n });\n }\n\n async tycVerify() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 10,\n }\n await fetch('api/TerminosCondiciones/ObtenerTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else if (data.success)\n _this.setState({ tycVisible: !data.tyC, loadingTyC: false });\n });\n }\n\n async onAcceptar() {\n var _this = this;\n let postData: ITyCRequest = {\n idTyC: 10,\n }\n await fetch('api/TerminosCondiciones/aceptarTyC', {\n method: 'POST',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(postData)\n }).then(function (response) {\n return response.json();\n }).then(function (data: any) {\n if (data.nologin != undefined && data.nologin.indexOf(\"http\") > -1) {\n _this.setState({ redirectLogin: true, url: data.nologin });\n }\n else if (data.success)\n _this.setState({ tycVisible: false });\n });\n }\n\n async onCancelar() {\n this.setState({\n redirect: true\n });\n }\n\n onHide() {\n this.onCancelar();\n }\n\n render() {\n\n const result = (\n
\n {(() => {\n switch (this.state.adelanto) {\n case 'success':\n return \n case 'error':\n return \n }\n })()}\n
\n );\n\n const tyc = ;\n if (this.state.redirectLogin) {\n return \n }\n else if (this.state.redirect) {\n return \n }\n else if (this.state.tycVisible) {\n return (\n \n )\n }\n else if (this.state.opcion != undefined && !this.state.loading && !this.state.loadingTyC)\n return (\n
\n {result}\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n )\n else\n return
\n \n

Cargando

\n
;\n }\n}\n\nexport default connect()(RembolsoExpress);\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { BuscarComercio } from './BuscarComercio';\n\ninterface IProps {\n enviarComercios: Function\n}\n\ninterface IState {\n redirect: boolean\n}\n\nexport class CambiarComercio extends React.Component {\n constructor(props: IProps) {\n super(props);\n\n this.state = {\n redirect: false\n };\n this.handleComercios = this.handleComercios.bind(this);\n }\n\n handleComercios(comercios: string) {\n if (comercios.length > 0)\n this.setState({ redirect: true });\n else\n this.setState({ redirect: false });\n }\n\n render() {\n if (this.state.redirect) {\n return \n }\n return (\n \n );\n }\n}\n\nexport default connect()(CambiarComercio);","import * as React from 'react';\nimport fetch from 'isomorphic-fetch';\nimport { Route } from 'react-router';\nimport Layout from './components/layout/Layout';\nimport Home from './components/pages/Home';\nimport Login from './components/pages/Login';\nimport ReembolsoComercioRaizen from './components/pages/ReembolsoComercioRaizen';\nimport ReembolsoExpress from './components/pages/ReembolsoExpress';\nimport CambiarComercio from './components/home/CambiarComercio';\n\n// Importaci�n de Estilos.\n\nimport './components/layout/normalize.css';\nimport 'primereact/resources/primereact.min.css';\nimport './components/layout/themes/nova-light-eden/theme.css';\nimport 'primeicons/primeicons.css';\nimport 'primeflex/primeflex.css';\nimport './components/layout/layout.scss';\n\n// Importaci�n de Imagenes.\n\nimport './images/logo-edenred.png';\nimport './images/Edenred_Digital-use.png';\n\ninterface IState {\n dataDisponible: string,\n token: string,\n login: boolean,\n loged: boolean\n}\n\nexport default class App extends React.Component<{}, IState> {\n constructor() {\n super({});\n this.handleLogin = this.handleLogin.bind(this);\n this.handleComercios = this.handleComercios.bind(this);\n //this.handleLogin = this.handleLogin.bind(this);\n this.verify = this.verify.bind(this);\n this.state = {\n dataDisponible: \"\",\n token: \"\",\n loged: false,\n login: false\n };\n }\n\n public componentDidMount() {\n this.verify();\n }\n\n handleComercios(result: string) {\n this.setState({\n dataDisponible: result\n });\n }\n\n handleLogin(loged: boolean, login: boolean) {\n this.setState({\n loged: loged,\n login: login\n });\n }\n // } />\n\n //CRA 20230227 Cambio fetch con try-catch\n async verify() {\n var _this = this;\n \n try {\n const response = await fetch('api/Login/Verify', {\n method: 'GET',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n });\n const data = await response.json();\n _this.setState({ loged: data, login: data });\n } catch (error) {\n console.log(error);\n }\n }\n\n /*async verify() {\n var _this = this;\n await fetch('api/Login/Verify', {\n method: 'GET',\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n }\n }).then(function(response) {\n return response.json();\n }).then(function(data: boolean) {\n _this.setState({ loged: data, login: data });\n });\n }*/\n\n public render() {\n if (this.state.login && this.state.loged)\n return (\n \n \n \n \n \n \n \n )\n else if (!this.state.login && !this.state.loged)\n return (\n } />\n )\n }\n}\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const url = process.env.PUBLIC_URL as string;\n const publicUrl = new URL(url, window.location.toString());\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing as ServiceWorker;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (response.status === 404 || (contentType && contentType.indexOf('javascript') === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","//import 'react-app-polyfill/ie11';\n//import 'react-app-polyfill/stable';\n//import 'fast-text-encoding/text';\n\n\nimport 'bootstrap/dist/css/bootstrap.css';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { ConnectedRouter } from 'connected-react-router';\nimport { createBrowserHistory } from 'history';\nimport configureStore from './store/configureStore';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\n\n// Create browser history to use in the Redux store\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href') as string;\nconst history = createBrowserHistory({ basename: baseUrl });\n\n// Get the application-wide store instance, prepopulating with state from the server where available.\nconst store = configureStore(history);\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'));\n\nregisterServiceWorker();\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\nimport thunk from 'redux-thunk';\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\nimport { History } from 'history';\nimport { ApplicationState, reducers } from './';\n\nexport default function configureStore(history: History, initialState?: ApplicationState) {\n const middleware = [\n thunk,\n routerMiddleware(history)\n ];\n\n const rootReducer = combineReducers({\n ...reducers,\n router: connectRouter(history)\n });\n\n const enhancers = [];\n const windowIfDefined = typeof window === 'undefined' ? null : window as any;\n if (windowIfDefined && windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__) {\n enhancers.push(windowIfDefined.__REDUX_DEVTOOLS_EXTENSION__());\n }\n\n return createStore(\n rootReducer,\n initialState,\n compose(applyMiddleware(...middleware), ...enhancers)\n );\n}\n","module.exports = __webpack_public_path__ + \"static/media/logo-edenred.600b7ce6.png\";"],"sourceRoot":""}